A simple LowPass Filter
63 views (last 30 days)
Show older comments
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
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.
Accepted Answer
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.
More Answers (1)
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
See Also
Categories
Find more on Digital Filter Analysis in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!