matlab求已知两个系统的差分方程分别为 y(n)=0.6y(n-1)-0.08y(n-2)+x(n) y(n)=0.7y(n-1)-0.1y(n-2)+2x(n)-x(n-2) 求出所描述系统的单位脉冲响应(长度32),画出其波形。
时间: 2024-10-11 13:11:54 浏览: 37
matlab-疲劳曲线拟合算法(S-N曲线)-线性回归
5星 · 资源好评率100%
在MATLAB中,可以使用`tfest`函数来估计传递函数,并通过`impz`函数求解单位脉冲响应(Impulse Response)。首先,假设我们知道系统的系数,我们将创建两个状态空间模型(SSM):
```matlab
% 定义系统一的A、B矩阵
sys1_A = [0 1; -0.6 0];
sys1_B = [0; 1];
% 定义系统二的A、B矩阵
sys2_A = [0 1; -0.7 0];
sys2_B = [0; 1 -1];
% 系统系数
sys1_C = [1; 0];
sys2_C = [1; 2];
% 确定系统的阶数(在这种情况下,都是2阶)
sys1 = ss(sys1_A, sys1_B, sys1_C, [0 0]);
sys2 = ss(sys2_A, sys2_B, sys2_C, [0 0]);
% 求单位脉冲响应,长度为32
[h1, t] = impz(sys1, 'UnitStep', 32);
[h2, t] = impz(sys2, 'UnitStep', 32);
```
这里,`impz`函数的第二个参数`'UnitStep'`指定了输入信号是单位阶跃序列,而第三个参数`32`是响应的采样点数。
然后,你可以用`plot(t, h1)`和`plot(t, h2)`分别绘制两个系统的单位脉冲响应波形。请注意,如果你的MATLAB版本较旧,可能需要使用`impulse`函数而不是`impz`。
阅读全文