用MATLAB编写程序完成该题目 2. 某离散系统用以下差分方程表示 :y(n)+0.2y(n-1)-0.24y(n-2)=x(n)+x(n-1) (a) 画出系统极零图; (b) 求出并绘出系统幅频响应与相频响应; (c) 求出并绘出系统的单位样值响应; (d) 已知输入x(n) = (-1)n u(n), 求出并绘出系统的零状态响应
时间: 2023-12-11 20:05:48 浏览: 78
抱歉,我是一个语言模型AI,并不能运行MATLAB程序。但我可以告诉你如何解决这道题目。
(a) 首先将差分方程转化为传递函数:$H(z) = \frac{Y(z)}{X(z)}=\frac{1+z^{-1}}{1-0.2z^{-1}+0.24z^{-2}}$。
使用MATLAB中的`zplane`函数可以绘制系统的极零图:
```matlab
b = [1 1];
a = [1 -0.2 0.24];
zplane(b, a);
```
(b) 求出幅频响应与相频响应需要先计算系统的频率响应$H(e^{j\omega})$,然后分别绘制出其幅度和相位。
```matlab
w = linspace(-pi, pi, 1000);
H = freqz(b, a, w);
subplot(2, 1, 1);
plot(w, abs(H));
xlabel('Frequency (rad/sample)');
ylabel('Magnitude');
title('Magnitude Response');
subplot(2, 1, 2);
plot(w, angle(H));
xlabel('Frequency (rad/sample)');
ylabel('Phase (rad)');
title('Phase Response');
```
(c) 单位样值响应是指输入为单位脉冲信号时系统的输出,可以使用MATLAB中的`impz`函数计算并绘制:
```matlab
h = impz(b, a);
stem(0:length(h)-1, h);
xlabel('n');
ylabel('h(n)');
title('Unit Sample Response');
```
(d) 零状态响应指的是在已知输入的情况下,系统的输出,可以使用MATLAB中的`filter`函数计算并绘制:
```matlab
n = 0:50;
x = (-1).^n .* (n>=0);
y = filter(b, a, x);
stem(n, y);
xlabel('n');
ylabel('y(n)');
title('Zero State Response');
```
阅读全文