【发布时间】:2021-08-12 17:00:40
【问题描述】:
我正在尝试计算 IIR 滤波器的频率响应。
滤波器的传递函数为:
a 的值计算如下:
f = 1000;
fsamp = 16000;
a = 1 / (1 + (2 * pi * f) / fsamp);
好的,现在我有了 IIR 滤波器的传递函数。我现在应该如何计算频率响应?我考虑过使用freqz 函数,但我需要帮助定义参数,如何定义分子和分母多项式?
【问题讨论】:
-
本站不支持 LaTex。
freqz的分子和分母是来自您的 H(z) 的分子和分母,表示为变量 z^-1 的多项式。你见过this example吗? -
是的,我尝试过这个例子,但没能做到,主要是因为我的分子和分母只有一个多项式,我应该如何使用 conv 函数?
-
这里不需要
conv。conv是多项式乘法,在示例中使用它是因为 num 和 den 都是多项式的乘积。在您的情况下,freqz的“b”将是1-a(其中a是您的变量),freqz的“a”将是[1,-a]。看看结果是否有意义 -
谢谢!因此,使用您所说的定义 num=[1-a] 和 den=[1, -a],然后我执行 freqz(num, den, 'whole', 2001);就像示例一样,但在 Octave 中出现此错误:错误:绘图:没有要绘制的数据错误:从 plt 在第 127 行第 11 行绘图在第 229 行第 10 列 freqz_plot 在第 60 行第 3 列频率在第 199 行第 5 列
-
不确定
'whole'做了什么。freqz(num, den, 2001)适用于我的 Octave 版本