怎么样对2M的采样频率要滤去400Hz的噪声

来源:百度知道 编辑:UC知道 时间:2024/06/10 07:49:35
采样频率是2MHz,现有400Hz左右的噪声。用matlab怎样滤波?不太了解滤波,希望写出代码,并说明清楚用法。急着用!

【MATLAB设计一个抽样频率为f 为1KHZ的数字带通滤波器-采用巴特沃斯滤波器】

4阶Butterworth滤波器源代码

n = 2;
Wn = [200 250]/500;
[b,a] = butter(n,Wn);
freqz(b,a,512,1000);

这个滤波器100Hz、400Hz处衰减在-30db以上。

可以通过增大n增加衰减。

--------------------------------------------------------------------

其实写filter很简单的。

比如说,3*3均值滤波:

A=1/9*[1 1 1; 1 1 1; 1 1 1];

Y = filter2(h,A)

h是你的图片。

其他滤波器,只要改变A的结构就可以,任何一本图像处理的书里都有这些结构

有问题的话,可以继续来Matlab中文论坛的图像处理板块来讨论。
参考资料:http://www.iLoveMatlab.cn/index.php

最好进行频谱分析确定噪声频谱范围,然后制作相应的滤波器,滤波器可以在采集前加一级低通滤波器,把高频噪声去掉,不过对于粉红噪声的频谱范围很宽,几乎整个频域。这个只能优化不能彻底去除,数字化后还可以加数字滤波器把噪声弃掉。
具体为采集的数据选择一定的长度也就是点数加汉宁窗后进行FFT,如果不加汉宁窗则默认为加了矩形窗,不过这样会造成部分频谱泄露,当然汉宁窗也会泄露,但泄露会大大降低。FFT后得到这帧信号的数字频谱,然后根据你信号的频率范围把其他的频率下的幅值统统清零,然后在把这帧数据IFFT(傅里叶反变换),得到时域波形数据,这样就去除了相关噪声信号。注意在频域你的频率分辨率 f = 采样频率F