我对 IIR 滤波器的零频率 (DC) 响应有疑问。三阶 IIR 滤波器的系数如下:
% polynomial coefficients for the numerator of the IIR transfer function
b = [0.0066324, -0.0130292, 0.0063988];
% polynomial coefficients for the denominator of the IIR transfer function
a = [1, -1.4158855, 0.4158913];
请注意,所有的根a
都小于一,但一个非常接近一。我试图理解为什么 MATLAB 的filter()
函数会产生以下结果:
rng default;
x = rand(15,1);
y = filter(b,a,x);
mean(y)/mean(x)
>> 0.0012
在最后一条语句中,我计算了输入和输出均值的比率,MATLAB 返回 0.0012。
(即)的零频率来看,我预计. 检查这个,sum(b)/sum(a)=0.3448
mean(y)/mean(x)=0.3448
[H,W] = freqz(b,a);
H(1)
>> 0.3448
我是否在这里误解了关于 MATLABfilter()
函数的某些内容,或者对传递函数的零频响应的其他误解?感谢任何能够提供对此问题的见解的人。