A simple LowPass Filter

121 views (last 30 days)
NDKA
NDKA on 4 May 2012
Edited: ES_Thorny on 25 Feb 2019
Hello everyone, I just want to create a simple Low Pass Filter in the mfile, with a Cut-off frequency of 3Hz and sampling frequency of 100Hz.
My input signal is just an array of [1000x1] i.e. 1000 rows and 1column. And I want to pass this data through a LPF of cutoff freq of 3Hz and fs = 100Hz, and see the output signal.
Can anyone please advice how can I do this? I'm pretty new to matlab and filters. I tried FDAtool and other methods, but they have several no. of filter types, and many more filter parameters. So, its getting difficult for me to understand.
All I want to do is to just allow the signals below 3Hz and reject them above 3Hz using my m-file.
Thank You
  2 Comments
Walter Roberson
Walter Roberson on 4 May 2012
Please do not use your email address as a tag. A "tag" should be relevant to the subject category, such as "lowpass filter". Tags are used by people to find other messages that might be of relevance to them.
NDKA
NDKA on 4 May 2012
Oh, I completely misunderstand about "tag". Sorry about that, I don't do that again. And thanks for your advice, otherwise I would have not know about this.

Sign in to comment.

Accepted Answer

Wayne King
Wayne King on 4 May 2012
Do you have the Signal Processing Toolbox?
d = fdesign.lowpass('Fp,Fst,Ap,Ast',3,5,0.5,40,100);
Hd = design(d,'equiripple');
output = filter(Hd,input);
where input is your input signal and output gives the filtered output.
You can use
fvtool(Hd)
to see your filter response and
plot(psd(spectrum.periodogram,output,'Fs',100))
to see the spectrum of your signal aftering filtering.
I've specified 40 dB of attenuation in the above, that may or may not be enough or too much depending on your data.
  1 Comment
NDKA
NDKA on 4 May 2012
Wayne,
Thank you very much for your help.I think your code will help me to understand Filter parameters using Matlab environment more easily.

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 4 May 2012
A "simple" low-pass filter will never have a sharp cut-off at a particular frequency, especially not if it has to be a "streaming" filter. If you do not have any time constraints then you can use the more complex filtering of fft, zeroing coefficients, fft back.
  1 Comment
ES_Thorny
ES_Thorny on 25 Feb 2019
Edited: ES_Thorny on 25 Feb 2019
The idea of filtering like that is the most natural. Why is it not commonly used? Just a curiosity ...

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!