能够用MATLAB求离散系统的单位阶跃响应、单位样值响应、任意输入作用下的响应
时间: 2023-08-24 10:03:55 浏览: 197
可以使用MATLAB的`step`、`impulse`和`lsim`函数分别求解离散系统的单位阶跃响应、单位样值响应和任意输入作用下的响应。这里给出一个简单的示例:
假设已知离散系统的传递函数为:
```matlab
H(z) = (1 - 0.5z^-1) / (1 - 0.9z^-1)
```
则可以使用以下代码求解:
```matlab
% 定义系统传递函数
num = [1, -0.5];
den = [1, -0.9];
sys = tf(num, den, 1);
% 求解单位阶跃响应
[y_step, t_step] = step(sys);
% 求解单位样值响应
[y_impulse, t_impulse] = impulse(sys);
% 定义任意输入信号
t = 0:0.1:10;
u = sin(t);
% 求解任意输入作用下的响应
[y_lsim, t_lsim] = lsim(sys, u, t);
% 绘制图像
subplot(3,1,1);
plot(t_step, y_step);
title('Unit Step Response');
xlabel('Time');
ylabel('Amplitude');
subplot(3,1,2);
plot(t_impulse, y_impulse);
title('Unit Impulse Response');
xlabel('Time');
ylabel('Amplitude');
subplot(3,1,3);
plot(t_lsim, y_lsim);
title('Response to Arbitrary Input');
xlabel('Time');
ylabel('Amplitude');
```
运行以上代码可以得到离散系统的单位阶跃响应、单位样值响应和任意输入作用下的响应曲线。