我用Matlab创建了一个低通滤波器FIR,当我改变滤波器顺序时,在z平面上得到一些奇怪的零。
我使用Matlabs内置fir1
函数以下列方式计算滤波器系数:
sampling_rate=100;
cutoff_freq = 5;
filter_order=80;
b_l=fir1(filter_order,cutoff_freq*2/sampling_rate);
zplane(b_l);
如果过滤顺序是< 80,zplane图如下所示:
但如果过滤器顺序为> = 80,则一个零值为-6.5 * 10 ^ 14:
Matlab如何计算滤波器系数以及极点如何远离单位周期?
答案 0 :(得分:0)
回答我自己的问题:
在Matlab R2013a中执行代码所产生的奇怪极点/零图似乎是zplane
函数中的错误的后果。
根据评论,Octave 3.8使用相同的代码显示不同的极点/零图。
我使用b_l=fir1(filter_order,cutoff_freq*2/sampling_rate)
创建的滤波器系数来构造多项式并使用Mathematica找到它的根。没有根有很大的绝对值,所以情节必须是错误的。