How to make bandpass filter?
1 次查看(过去 30 天)
显示 更早的评论
Dear community, I have got a signal with a noise. Frequency of this noise is 50 kHz. How can I cut it off? What is the easiest way to make bandpass filter? Thanks in advise.
Andrew
0 个评论
采纳的回答
Wayne King
2012-11-28
编辑:Wayne King
2012-11-28
OK, then you can do two filters. A highpass filter and a notch filter (I'll assume you have fdesign.notch)
d = fdesign.highpass('Fst,Fp,Ast,Ap',2500,3000,60,0.5,5e6);
Hd1 = design(d,'butter');
d2 = fdesign.notch('N,F0,Q',10,5e4,35,5e6);
Hd2 = design(d2);
Hd = cascade(Hd1,Hd2);
Now you can use Hd to filter data.
out = filter(Hd,input);
You can view the filter with
fvtool(Hd,'Fs',5e6)
更多回答(2 个)
Wayne King
2012-11-28
You have to know your sampling frequency, but you can you use fdesign.bandpass
Also when you specify the frequency of the noise as 50 kHz, are you saying that the "noise" is sinusoidal, only occurring at 50 kHz? If so, then a notch filter would be appropriate. If you have the DSP System Toolbox see fdesign.notch.
If you describe your the frequency band of interest (what you want to keep) and the sampling frequency, we can help you better. For example, it may be that a lowpass filter would be appropriate.
Wayne King
2012-11-28
With a 5 MHz sampling rate and what you want, it's going to be a very expensive filter, do you really need to keep frequencies below 1 kHz at that sampling rate? Or can you just get rid of everything below 3 kHz?
Or do you really need to have the data sampled at 5 MHz? Can you downsample to a lower sampling rate?
Also, you did not answer the question about the noise at 50 kHz. Is it sinusoidal?
另请参阅
类别
在 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!