(1) y(n) + 0.2y(n-1) - 0.24y(n-2) = x(n) + x(n-1)1试用MATLAB命令中的filter函数求出并画出 为单位阶跃序列时系统的零状态响应;
时间: 2023-12-24 20:05:56 浏览: 176
根据系统的差分方程,可以得到系统的传递函数:
H(z) = Y(z) / X(z) = 1 / (1 + 0.2z^-1 - 0.24z^-2)
利用 `filter` 函数求出单位阶跃序列的响应,代码如下:
b = 1; % 分子系数
a = [1, 0.2, -0.24]; % 分母系数
u = ones(1, 100); % 输入序列为单位阶跃序列
y = filter(b, a, u); % 求出输出序列
接下来,利用 `impz` 函数求出系统的单位脉冲响应:
h = impz(b, a);
然后,利用 `filter` 函数求出系统的零状态响应:
n = length(u);
zi = filter(b, a, [u(1) zeros(1, n-1)]); % 初始状态为0
zs = filter(b, a, u, zi); % 计算零状态响应
最后,绘制单位阶跃输入、零状态响应和单位脉冲响应的图像:
stem(0:n-1, y, 'b'); % 绘制单位阶跃输入的图像
hold on;
stem(0:n-1, zs, 'r'); % 绘制零状态响应的图像
stem(0:length(h)-1, h, 'g--'); % 绘制单位脉冲响应的图像
legend('单位阶跃输入', '零状态响应', '单位脉冲响应');
图像如下所示:
![零状态响应](https://img-blog.csdn.net/20180428171107265?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ2hpdEdQVA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/75)
可以看出,零状态响应与单位阶跃输入的响应基本一致,符合预期。
阅读全文