gpt4 book ai didi

matlab - 如何在 MATLAB 中绘制数字滤波器的频率响应?

转载 作者:行者123 更新时间:2023-12-01 22:32:15 24 4
gpt4 key购买 nike

我正在尝试绘制频率响应图。我被要求在 MATLAB 中使用 filter,但自从我阅读了手册后,我仍然不明白它是如何执行 Z 转换的。

我有下面写的数字滤波器的脉冲响应:

for i=1:22;
y(i)= 0;
end
x(22) = 1;
for k=23:2523
x(k) = 0;
end
for n = 22:2522;
y(n) = ((1/21)*x(n))+((20/21)*y(n-21));
end
plot(y);

这只是一个y[n] = 1/21*x[n] + 20/21*y[n-21]的反馈系统

下面是我计算上述系统的 Z 变换的计算,它最终决定了脉冲响应:

Z(y) = Z((1/21)*x(n)+(20/21)*y(n-21))

Y(Z) = (1/21)X(Z)+(20/21)*Z.^-21Y(Z)

Z(Z)-(20/21)*Z.^-21Y(Z) = (1/21)X(Z)

Y(Z)(1-(20/21)*Z.^-21) = (1/21)X(Z) // divide by X(Z)*(1-(20/21)*Z.^-21)

Y(Z)/X(Z) = (1/21)/(1-(20/21)*Z.^-21)

H(Z) = (1/21)/(1-(20/21)*Z.^-21) // B = 1/21, A = 20/21

H(Z) = (B*Z.^21)/(Z.^21-A)

如何绘制 H(Z) 的频率响应?我应该使用 filter 吗?

最佳答案

如果您只需要绘制脉冲响应,那很容易。脉冲响应是数字滤波器对狄拉克脉冲的响应。你已经有了差分方程,所以你已经在'z'中并且你不关心's',你不必执行's'到'z'的变换(这是本身!)。

因此,只需生成一个信号 x(n),除了第一个样本 x(1) 为 1 之外,所有地方都由零组成。将其通过滤波器(是的,您的差分方程)。你得到的 y(n) 是你的脉冲响应 h(n)。这基本上就是您所做的。

当然,如果您对这个 h(n) 进行 FFT,您将获得相位和幅度响应。

关于matlab - 如何在 MATLAB 中绘制数字滤波器的频率响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29123011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com