编写 MATLAB 程序,已知一个系统的差分方程为 y(n)=0.7y(n-1)+2x(n)-x(n-2),试求此系统的输入序列x(n)=u(n-3)的响应。
时间: 2023-12-12 10:02:15 浏览: 232
双曲型方程LaxWendroff的差分格式程序(Matlab).rar_LaxWendroff_Matla代码_Wendroff
5星 · 资源好评率100%
根据差分方程 y(n)=0.7y(n-1)+2x(n)-x(n-2),可以得到该系统的传递函数为 H(z) = (2z^2 - 1) / (z^2 - 0.7z)。因此,输入序列 x(n)=u(n-3) 的响应为 y(n) = h(n) * x(n) = h(n) * u(n-3),其中 h(n) 为系统的单位脉冲响应(即输入为单位脉冲时系统的响应)。
在 MATLAB 中,我们可以使用以下代码求解输入序列 x(n)=u(n-3) 的响应:
```
% 系统的差分方程为 y(n)=0.7y(n-1)+2x(n)-x(n-2)
% 计算系统的单位脉冲响应 h(n)
b = [2, 0, -1];
a = [1, -0.7, 0];
h = impz(b, a);
% 输入序列 x(n)=u(n-3)
n = 0:10;
x = [zeros(1, 3), ones(1, length(n)-3)];
% 计算系统的响应 y(n)
y = conv(h, x);
% 绘制输入序列和系统响应的图像
stem(n, x(1:length(n)), 'filled', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerEdgeColor', 'blue', 'MarkerFaceColor', 'blue');
hold on;
stem(n, y(1:length(n)), 'filled', 'LineWidth', 2, 'MarkerSize', 8, 'MarkerEdgeColor', 'red', 'MarkerFaceColor', 'red');
legend('输入序列 x(n)', '系统响应 y(n)');
```
运行以上代码后,将绘制出输入序列和系统响应的图像。
阅读全文