我是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
答案 0 :(得分:1)
对于零相位数字滤波,在matlab中有滤波。
某些过滤器的相位变化可以接受不同的练习, 您可以尝试使用iir过滤器,例如matlab中的butterworth过滤器。
[b,a] =黄油(n,Wn,'停止')