如何在MATLAB中设计窄带阻滤波器

时间:2014-08-27 04:51:49

标签: matlab filter signal-processing

我是Matlab信号处理的新手。我有一个包含10000点的信号。在进行FFT后,我发现应该删除位于3附近的频率点。我使用Kaiser窗口设计了一个FIR带阻滤波器。我试图将窗口长度增加到大约512或更高,并且还增加了fir1中的顺序。然而,归一化的阻带始终接近0.我认为FIR的非常大的顺序会带来一些问题。是否有其他方法来设计窄带阻滤波器并保持相位不变?谢谢大家! 我的代码如下所示:

win=kaiser(513,10);
b=fir1(512,[2.8/1000,3.3/1000],'stop',win);
y=filtfilt(b,1,x); % x is input signal which length is 10000

1 个答案:

答案 0 :(得分:1)

对于零相位数字滤波,在matlab中有滤波。

某些过滤器的相位变化可以接受不同的练习, 您可以尝试使用iir过滤器,例如matlab中的butterworth过滤器。

[b,a] =黄油(n,Wn,'停止')