A simple LowPass Filter
62 次查看(过去 30 天)
显示 更早的评论
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 个评论
Walter Roberson
2012-5-4
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.
采纳的回答
Wayne King
2012-5-4
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 个)
Walter Roberson
2012-5-4
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Digital Filter Analysis 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!