前言
一个信号系统课程中使用Matlab对系统的零状态响应、零输入响应、完全响应、冲激响应、阶跃响应求解、波形生成以及分析的实验。
一、内容
设系统的微分方程为:
![系统的微分方程](https://img-blog.csdnimg.cn/cd8ab45115b74e738dbe42882a617634.png)
激励为: ![激励](https://img-blog.csdnimg.cn/37d707dad3754a11bd9d457de68e6254.png)
起始状态条件为:
、 ![条件2](https://img-blog.csdnimg.cn/acbaa1cb3ccb45c2837e5cb5779077f8.png)
可求得
零输入响应:
![零输入响应](https://img-blog.csdnimg.cn/0dd72eea83d44a73b15f3faa6a4e6eed.png)
零状态响应:
![零状态响应](https://img-blog.csdnimg.cn/b80a10db40b14111abc82f3c3c8ce005.png)
完全响应:
![完全响应](https://img-blog.csdnimg.cn/1b8d2f02c85c4038b95a595844dca089.png)
冲激响应:
![冲激响应](https://img-blog.csdnimg.cn/883c007612ff4419b458d2e9e0587b10.png)
阶跃响应:
![阶跃响应](https://img-blog.csdnimg.cn/2108986cbf5f4555aac87bbde3d837cb.png)
二、原理
- 使用拉普拉斯变换求解微分方程即可得到零状态响应、零输入响应、完全响应、冲激响应、阶跃响应的表达式。
- 将激励代入微分方程
![](https://img-blog.csdnimg.cn/8ba6ad0a02294843be15fb9708443a47.png)
并两边求拉式变换得(公式1)
![公式1](https://img-blog.csdnimg.cn/85c876220e31455197da8dfffbedc6a8.png)
若令
![](https://img-blog.csdnimg.cn/12bc8a9e263347a59095f585e6c6d27d.png)
带入上公式1,并对Y(s)求拉式逆变换即可得零状态响应。
- 令激励为0,对微分方程求拉式变换得(公式2)
![(公式2)](https://img-blog.csdnimg.cn/21d724da08344763a0b99aa1c7cfc94a.png)
将
,![](https://img-blog.csdnimg.cn/068c8526ee5540b5b43ea43bd468fb93.png)
代入公式2,并对Y(s)求拉式逆变换可得零输入响应。
- 将零输入响应与零状态响应求和可得完全响应。
- 冲激响应就是将使用冲激信号作为激励,即
![](https://img-blog.csdnimg.cn/0b24522483e04e7185bbf8916c04b952.png)
由系统函数(公式3)
![(公式3)](https://img-blog.csdnimg.cn/66937d6e89184991a707dd70b9ed6b69.png)
可得冲激响应
- 阶跃响应就是将使用阶跃信号作为激励,即
![](https://img-blog.csdnimg.cn/5c043ad057004beabc55c99157552812.png)
由公式3可得阶跃响应
三、程序源码
% 微分方程 y''+3y'+2y = 2x
t=0:0.01:10;
y_zi=(4*exp(-t)-3*exp(-2*t));
y_zs=(1+2*exp(-t)-exp(-2*t));
y_total=y_zi+y_zs;
ht=(2*exp(-t)-2*exp(-2*t));
gt=(1+2*exp(-t)-exp(-2*t));
subplot(311),plot(t,y_total);
title('完全响应 (1+2e^{-t}-2e^{-2t})u(t)');
xlabel('t','Fontsize',12);ylabel('y_{total}','Fontsize',12);grid on;
subplot(323),plot(t,y_zi);
title('零输入响应 (4e^{-t}-3e^{-2t})u(t)');
xlabel('t','Fontsize',12);ylabel('y_{zi}','Fontsize',12);grid on;
subplot(324),plot(t,y_zs);
title('零状态响应 (1+2e^{-t}-e^{-2t})u(t)');
xlabel('t','Fontsize',12);ylabel('y_{zs}','Fontsize',12);grid on;
subplot(325),plot(t,ht);
title('冲激响应 (2e^{-t}-2e^{-2t})u(t)');
xlabel('t','Fontsize',12);ylabel('h(t)','Fontsize',12);grid on;
subplot(326),plot(t,gt);
title('阶跃响应 (1+2e^{-t}-e^{-2t})u(t)');
xlabel('t','Fontsize',12);ylabel('g(t)','Fontsize',12);grid on;
四、结果分析
- 完全响应是零状态响应和零输入响应的和。
- 零输入响应是当激励为0是的响应。
- 零状态响应是系统无初始状态时的响应。
- 冲激响应是当激励为冲激信号时的响应。
- 阶跃响应是当激励为阶跃信号时的响应。
- 由于输入函数是u(t)所以零状态响应和阶跃响应是一致的。
结语
系统的响应分析是信号系统中重要的一环,本文从微分方程入手,说明了系统响应的求解和Matlab波形绘制