discrete low pass in an array

8 views (last 30 days)
I have an array that is the power measurement. It is recorded each second, but sometimes the sample rate is higher. I want to apply a low-pass filter to that array, to eliminate noise. The signal is an already "discretized" array, and the sample time is a value per second, but it is not always constant. I want to be able to modify some parameters to check the denoise level applied. Is there some code, function or algorithm available to apply this low-pass filter?
P.S. I attached a file 'data.mat' with data.

Accepted Answer

Star Strider
Star Strider on 8 Oct 2019
You willl first need to use the resample function to create uniform sampling intervals for your data. Then there are any number of ways you can design a filter for it.
Your ‘test_data.mat’ file contains a (1000x1) double array that I assume is your signal (I have not examined it). If you want help with it, you need to provide a matching array of sampling times.
  8 Comments
Neko Benítez
Neko Benítez on 21 Oct 2019
I don't know how to use that link to design the FIR filter. Do I also need the Signal Processing Toolbox to implement the FIR filter? The link you sent me does not clarify how to do it.
Star Strider
Star Strider on 21 Oct 2019
There are several websites that can likely design the FIR filter for you (I linked to one of them), or you can design it yourself.
If you are going to do any significant amount of signal processing, I definitely recommend that you get the Signal Processing Toolbox.
If you design a linear-phase FIR filter, the MATLAB filter function is all you need.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!