20kHz高通滤波器matlab设计

编了一个matlab程序,20khz巴特沃斯高通数字滤波器,当采样频率加高时,频率响应图很不理想,不知滤波器是不是对采样频率有限高要求,请各位大侠帮忙看一下,小女子谢谢了!
Fs=3000000;
wp=20000*2/Fs
ws=18000*2/Fs
Nn=128;
rp=1;rs=20;
[n,wn]=buttord(wp,ws,rp,rs);
[b,a]=butter(n,wn,'high');
[H,f]=freqz(b,a,Nn,Fs);
plot(f,abs(H))
采样频率在200K以下时,频率响应还算正常,当采样频率增大时就不正常了,我非常不明白,滤波器与采样频率有什么直接关系,除了2倍关系之外。
我用采集卡采集的数据用3M的采样频率,设计的滤波器的采样频率与采集卡的采样频率有什么关系呢?

第1个回答  2010-04-27
在MATLAB的数字信号处理工具箱中,所有滤波器设计函数都使用归一化频率。
采样频率如果有变化,那么归一化截止频率就会有变化,滤波器滤去的频率会随着变化。因此,如果仍然采用原来的数字滤波器是不行的,需要重新设计。下面是我从书中找到的一个例子,希望可以帮到你。
滤波器的设计方法选择完全取决于这些指标的给定,如果给出了一个很宽松的指标要求,那么一般的巴特沃斯滤波器就能满足设计指标。例如,我们需要从一个采样率100Hz的数据x中滤去30Hz以上的噪声,在阻带指标要求不高的情况下,一个5阶的、低通截止频率为30Hz的巴特沃斯IIR滤波器足以满足要求,其MATLAB实现为
>> [b,a] = butter(5,30/50);
在定义了输入信号x后,输出信号y为
y = filter(b,a,x);
在MATLAB的数字信号处理工具箱(Signal Processing Toolbox)中,所有滤波器设计函数都使用归一化频率,以避免系统采样频率的变化导致外部数据输入的变化。工具箱规定Nyquist采样率为单位频率,因此上例中截止频率30Hz,采样率100Hz,归一化截止频率就为
30/(100/2) = 30/50 = 0.6
实际上,采用归一化频率也提示了数字信号处理的优点。例如,要从另一个信号y中滤去60Hz以上的噪声,如果200Hz的采样率能够适用于信号y,则可使用与上相同的同一个数字滤波器,因为两者的归一化频率相同。
第2个回答  2012-10-02
你好,请问这个问题您解决了吗?我也遇到了同样的问题,很不解
第3个回答  2010-04-22
采样频率那么高。。。
你把图放大了再看看。
相似回答