信号与系统仿真实验——实验一 连续系统时域分析的MATLAB实现

【 实验目的】

1.掌握连续系统冲激响应、阶跃响应和零状态响应的分析方法
2.观察系统函数零、极点与冲激响应时域波形的关系

【 实验内容】

一、线性时不变因果系统的微分方程如下所示:
在这里插入图片描述
(一)根据所学知识分析上述方程描述系统的冲激响应形式的特点;
(二)分别求上述系统的冲激响应和阶跃响应,通过观察波形判断自己的结论。
二、绘出下面两个系统的冲激响应波形,观察两个波形的不同:
在这里插入图片描述

【 实现方法】

1.冲激响应的求解在 MATLAB 中利用 impulse()函数实现,有如下几种调用格式:
在这里插入图片描述
2.阶跃响应的求解在 MATLAB 中利用 step( )函数来实现,其调用格式同 impulse( ) 函数;
3.系统的零状态响应在 MATLAB 中可以利用 lsim( ) 函数来实现方真分析,其调用格式为:
lsim(b,a,x,t) 或 y=lsim(b,a,x,t)
说明:a、b 为系统微分方程的系数向量,t 表示输入信号的时间范围向量,x 表示输入信号在向量 t 定义的时间点上的取样值。例如命令 t=0 :0.001 :10 ; x=exp(-t) ; 定义了一个时间范围为 0~10 秒内的指数信号,根据系统的 a、b 和 t、x,调用 lsim 函数就可以分析系统的零状态响应。

【 实验报告要求】

  1. 记录实验中的波形
  2. 对二阶系统的冲激响应的波形形式进行简单总结
  3. 对实验中出现的问题进行分析

Matlab程序一:

ts=0;te=5;dt=0.01;%t轴设置    
sys=tf([2,4],[1,4,3]);%sys是LTI系统模型
t=ts:dt:te;
y=impulse(sys,t);%impulse()函数来仿真分析系统冲激响应
subplot(2,4,1);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('冲击响应-Make by 磊');grid on;
y=step(sys,t);%step()函数来仿真分析系统阶跃响应
subplot(2,4,5);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('阶跃响应响应-Make by 磊');
grid on;
ts=0;te=5;dt=0.01;%t轴设置    
sys=tf([30],[1,0.4,100.4]);%sys是LTI系统模型
t=ts:dt:te;
y=impulse(sys,t);%impulse()函数来仿真分析系统冲激响应
subplot(2,4,2);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('冲击响应-Make by 磊');grid on;
 
y=step(sys,t);%step()函数来仿真分析系统阶跃响应
subplot(2,4,6);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('阶跃响应响应-Make by 磊');grid on;
ts=0;te=5;dt=0.01;%t轴设置    
sys=tf([1],[1,0,100]);%sys是LTI系统模型
t=ts:dt:te;
y=impulse(sys,t);%impulse()函数来仿真分析系统冲激响应
subplot(2,4,3);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('冲击响应-Make by 磊');grid on;
y=step(sys,t);%step()函数来仿真分析系统阶跃响应
subplot(2,4,7);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('阶跃响应响应-Make by 磊');grid on;
 
ts=0;te=5;dt=0.01; %t轴设置   
sys=tf([3,2],[1,5,6]);%sys是LTI系统模型
t=ts:dt:te;
y=impulse(sys,t);%impulse()函数来仿真分析系统冲激响应
subplot(2,4,4);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('冲击响应-Make by 磊');grid on;
y=step(sys,t);%step()函数来仿真分析系统阶跃响应
subplot(2,4,8);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('阶跃响应响应-Make by 磊');grid on;

运行结果一:

在这里插入图片描述

Matlab程序二:

ts=0;te=5;dt=0.01;%t轴设置     
sys=tf([1,3],[1,20,10010]);%sys是LTI系统模型
t=ts:dt:te;
y=impulse(sys,t);%impulse()函数来仿真分析系统冲激响应
subplot(2,1,1);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('冲击响应-Make by 磊');grid on;
ts=0;te=5;dt=0.01; %t轴设置   
sys=tf([50],[1,20,10010]);%sys是LTI系统模型
t=ts:dt:te;
y=impulse(sys,t);%impulse()函数来仿真分析系统冲激响应
subplot(2,1,2);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('冲击响应-Make by 磊');grid on;

运行结果二:

在这里插入图片描述

Matlab程序三:

ts=0;te=5;dt=0.01;%t轴设置    
sys=tf([1,16],[1,2,32]);%sys是LTI系统模型
t=ts:dt:te;
y=impulse(sys,t);%impulse()函数来仿真分析系统冲激响应
subplot(2,1,1);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('h(t)');
title('冲击响应-Make by 磊');grid on;
 
y=step(sys,t);%step()函数来仿真分析系统阶跃响应
subplot(2,1,2);%作图区域划分
plot(t,y);%作图
xlabel('t(sec)');ylabel('g(t)');
title('阶跃响应响应-Make by 磊');grid on;

运行结果三:

在这里插入图片描述

Matlab程序四:

ts=0;te=5;dt=0.01;%t轴设置                
sys=tf([6],[1,5,6]);%sys是LTI系统模型
t=ts:dt:te;
f=10*sin(2*pi*t);    
y=lsim(sys,f,t);%用lsim()函数来仿真分析系统零状态响应
plot(t,y);%作图
xlabel('t(sec)');ylabel('y(t)');
title('零状态响应-Make by 磊');grid on;

运行结果四:

在这里插入图片描述
本人能力有限,解释尚不清楚明了,如遇任何问题,大家可留言或私信。后续将程序文件打包上传,供大家学习使用。

本文希望对大家有帮助,当然上文若有不妥之处,欢迎指正。

分享决定高度,学习拉开差距

猜你喜欢

转载自blog.csdn.net/qq_42078934/article/details/109251302