matlab dtft代码
时间: 2023-09-14 21:13:04 浏览: 208
在MATLAB中,可以使用`freqz`函数来计算系统的DTFT。该函数的语法是:`[h,w] = freqz(b,a,n)`,其中`b`是H(z)分子多项式构成的数组,`a`是H(z)分母多项式构成的数组,`n`是0~Π内取样的点数,默认为512点。返回的`h`是复数形式的频率响应数组,`w`是对应于`h`的各个数字角频率数组。
下面是一个求解系统函数H(z)的DTFT的示例代码:
```
b = [0.8, -0.44, 0.36, 0.02];
a = [1, 0.7, -0.45, -0.3];
[h, w = freqz(b, a);
subplot(2, 2, 1)
plot(w/pi, real(h));
grid
title('实部')
xlabel('\omega/\pi')
ylabel('幅度')
subplot(2, 2, 2)
plot(w/pi, imag(h));
grid
title('虚部')
xlabel('\omega/\pi')
ylabel('幅度')
subplot(2, 2, 3)
plot(w/pi, abs(h));
grid
title('幅度谱')
xlabel('\omega/\pi')
ylabel('幅度')
subplot(2, 2, 4)
plot(w/pi, angle(h));
grid
title('相位谱')
xlabel('\omega/\pi')
ylabel('相位(rad)')
```
此代码将生成一个包含四个子图的图像,分别显示系统函数H(z)的实部、虚部、幅度谱和相位谱。每个子图的x轴是数字角频率,y轴是幅度或相位。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文