通过MATLAB软件对LTI连续系统时域进行分析仿真.docx
《通过MATLAB软件对LTI连续系统时域进行分析仿真.docx》由会员分享,可在线阅读,更多相关《通过MATLAB软件对LTI连续系统时域进行分析仿真.docx(14页珍藏版)》请在冰豆网上搜索。
通过MATLAB软件对LTI连续系统时域进行分析仿真
前言
“信号与线性系统分析”是通信类学生一门主干课程,该课程所涉及到的许多基本概念和五种基本分析方法,是每个学生所必须熟练掌握的内容。
近年来,我了解到国内一些著名大学中有关本课程的教学实践和发展动向,做出相应的分析得出一些结论:
学生的系统概念比较薄弱,而原有的教材存在着重信号而轻系统的偏向;在运用在纯工程运算方面的时间比较多,对一些重要的基本概念掌握得不够好。
虽然我们可以通过作大量信号与系统的试验来帮助学生理解《信号与系统》中的众多抽象概念。
但是,由于信号与系统实验所需的设备价格较高,试验难度较大,许多教学单位都因不具备试验条件而放弃了试验课程的开设,这极大的影响了教育质量的提高。
近年以来,随着计算机硬件性能的不断提升和计算机软件技术的飞速发展,利用计算机进行虚拟试验成为一种国际潮流,国内也逐步开始了这一方面的工作,并在取得积极的成果.
而MATLAB经过多年的不断发展与完善已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图象处理系统、MATLAB数据函数库和MATLAB应用程序接口五大部分组成的集数值计算、图象处理、程序开发为遗体的功能强大的系统。
它具有以下的功能和特点:
高效的数值计算及符号计算功能,能使我们从繁杂的数学运算分析中解脱出来:
完备的图形处理功能,实现了计算机结果和编程的可视化:
友好的界面及接近数学表达式的自然化语言,便于学习和掌握。
实践证明,学生可以在几十分钟的时间内学会MATLAB的基本知识,经过几个小时的使用就能初步掌握。
所以,在此次的课程设计中我选择连续系统时域系统分析这个理论性比较强的项目。
在信号与系统分析中应用Matlab软件的内容,编制了多个程序与习题,使学生对信号与系统中的许多重要的概念增加了直观认识,以便加深对概念的理解,并学会应用Matlab软件来快速而有效地分析解决问题。
用Matlab软件来进行上机作业显然是本课程未来发展的一个必然趋势.学生通过上机训练,不仅能很快地理解所增加的新内容,而且也激发了学生们的学习兴趣,对许多概念的理解加深了,而且学会了利用Matlab软件来分析问题的技巧与方法.
工程概况
描述连续系统的输入-输出特性的是常系数微分方程。
从系统的模型出发,在时域研究输入信号通过系统后响应的变化规律,是研究系统时域性的重要方法,这种方法就是时域分析方法。
在连续系统中,以冲激函数为基本信号,将任意信号分解,从而得到系统的零状态响应等于激励与系统冲激响应的卷积积分。
在做课程设计中首先是对MATLAB软件的了解和认识,掌握一些MATLAB软件的基本常用函数的用法,对MATLAB软件进行程序操作,例如:
用MATLAB软件绘出Sa(t)函数的波形图、sinc(t)的波形图等等各种连续信号的波形图。
同时利用MATLAB软件也能对书本上的知识进行验证,在MATLAB软件下编写函数程序,然后运行程序,与书本上的信号的求解进行对照分析和比较。
对MATLAB软件进行一定的了解和运用之后,开始做此次课程设计——连续系统的分析仿真,用MATLAB软件对此次课程设计的系统零状态响应、冲激响应进行绘图求解,并且记录其分析过程。
对所做的LTI连续系统时域分析仿真课程设计完成以后撰写论文,说明自己的实习过程和实习心得等内容。
正文
3.1设计的目的和意义
3.1.1设计的目的
通过本设计,熟悉信号的变换和运算能力,具有对信号的时域和频域的分析能力,知道信号的发送、传输和接受的过程,要会根据信号的传输指标要求,设计能完成某种功能的电路系统,并且整个系统物理可实现性和对信号的不失真传输进行检验。
(1)熟悉并熟练掌握常用于连续系统时域分析的MATLAB函数;
(2)掌握系统的冲激响应、阶跃响应、零输入响应及零状态响应、卷积的概念,掌握系统冲激响应、阶跃响应、零输入响应及零状态响应、卷积的表达式及其物理意义,掌握单位冲激响应、阶跃响应、零输入响应及零状态响应、卷积的计算方法及其基本性质;
(3)了解MATLAB的目录结构和基本功能以及MATLAB在信号与系统中的应用
(4)掌握MATLAB描述系统的常用方法及有关函数,并学会利用MATLAB求解LTI系统响应,绘制相应曲线。
基本要求:
掌握用MATLAB描述连续时间信号的方法,能够编写MATLAB程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形。
掌握线性时不变连续系统的时域数学模型用MATLAB描述的方法,掌握零状态、零输入、阶跃响应及冲激响应等方程的求解编程,熟悉信号的转换和运算,并能对信号进行分析;会根据信号的传输和课题的要求,设计完成某功能的子系统;通过实验,熟悉信号的时域和频域的分析方法并掌握分析结果的方法;要在计算机上能模拟信号与系统分析的基本流程,进行系统分析。
3.1.2设计意义
通过此次课程设计能使我掌握一些MATLAB软件的操作方法,会编写MATLAB程序,并能够利用MATLAB求解此次课程设计所要求的各种系统响应、频率特性及零极点,并能绘制出相关的波形图。
掌握了信号的时域分析方法及分析试验结果的方法,对原本不是特别理解的地方,通过此次课程设计也有了进一步的了解和理解。
并且,学会了MATLAB的操作方法,对以后学习相关的课程,会带来更多的方便,也有利于这些课程的掌握学习。
此次课程设计能够用到MATLAB软件对连续系统时域分析进行仿真,对我来说具有重要的意义,同时对此次课程设计也有重要的意义。
3.2设计的目标
(1)熟悉MATLAB软件平台;
(2)掌握MATLAB编程方法、常用语句和可视化绘图技术;
(3)编程实现常用信号及其运算MATLAB实现方法。
(4)通过MATLAB软件对LTI连续系统时域进行分析仿真。
3.3设计的总体方案
(1)通过图书馆、网络,请教老师等途径查找并整理有关资料,深入掌握Matlab控制系统功能的实现,复习信号与系统相关知识。
(2)利用Matlab功能实现系统设计。
(3)对Matlab进行简单的程序运行。
(4)运用MATLAB数值求解连续系统的零状态响应、零输入响应、冲激响应、阶跃响应、卷积,并对系统进行分析判断。
3.3.1零状态响应和零输入响应
零输入响应:
从观察的初始时刻(例如t=0)起不再施加输入信号(即零输入),仅由该时刻系统本身具有的起始状态引起的响应称为零输入响应(或称为储能响应);
零状态响应:
在起始状态为零的条件下,系统由外加输入(激励)信号引起的响应称为零状态响应(或称受激响应)
实例1.已知激励,求它的零状态响应。
用matlab编辑程序如下:
clear
symsst
xt=exp(-3*t)
Hs=(s+3)/(s^2+3*s+2);
Xs=laplace(xt);
Ys=Hs*Xs;
yt=ilaplace(Ys)
t1=0:
0.001:
9;
xt1=subs(xt,t,t1);
yt1=subs(yt,t,t1);
plot(t1,xt1,t1,yt1);
legend('激励:
exp(-3*t)','零状态响应y(t)');
str=strcat('\leftarrow','y(t)=',char(yt));
text(1.6,0.18,str,'fontsize',10);
图3-1零状态响应
实例2.描述某LTI系统的微分方程为
已知
,
,
,求出该系统的零输入响应、零状态响应和全响应。
用matlab编辑程序如下:
Clear
num=[026];%系统函数分子的系数%
den=[132];%系统函数分母的系数%
n=0:
20;
nl=length(n);
%求零输入响应%
y01=[13];%y的初始状态%
x01=[00];%x的初始状态%
x1=zeros(1,nl);
zi1=filtic(num,den,y01,x01);%为filter函数准备初始值%
y1=filter(num,den,x1,zi1);%求零输入响应%
subplot(2,1,1);
plot(n,y1);
title('零输入响应');
gridon;
%求零状态响应%
y02=[00];
x02=[00];
x2=0.5.^n;
zi2=filtic(num,den,y02,x02);
y2=filter(num,den,x2,zi2);
subplot(2,1,2);
plot(n,y2);
title('零状态响应');
gridon;
图3-2零状态响应和零输入响应
3.3.2连续时间系统的冲击响应与阶跃响应
一个LTI系统,当其初始状态为零时,输入为单位冲激函数所引起的响应称为单位冲激响应,简称冲激响应。
单位冲激函数(t)无法直接用MATLAB描述,可以把它看作是宽度为(程序中用dt表示),幅度为1/的矩形脉冲,即
x1(t)=(t-t1)=1/t1表示在t=t1处的冲激。
0其他
一个LTI系统,当其初始状态为零时,输入为单位阶跃函数所引起的响应称为单位阶跃响应,简称阶跃响应。
在t=t1处阶跃可写为u(t-t1).定义为
x2(t)=u(t-t1)=1t1t<0
x3(t)=e(u+j)t
Impulse(b,a),计算并显示连续系统的冲击响应h(t)的波形,t自动选取;
Impulse(b,a,t),计算并显示连续系统的冲击响应h(t)的波形,t由用户指定,若t是一实数,显示0~t的波形,若t为数组,则显示数组内的波形;
y=Impulse(b,a,t),将结果存入变量y,不直接显示波形;
step(b,a),计算并显示连续系统的阶跃响应g(t)的波形,t自动选取;
step(b,a,t),计算并显示连续系统的阶跃响应g(t)的波形,t由用户指定,若t是一实数,显示0~t的波形,若t为数组,则显示数组内的波形;
y=step(b,a,t),将结果存入变量y,不直接显示波形;
实例1.已知H(s)=1/(LC*s2+RC*s+1),求时域的冲击响应和阶跃响应。
用matlab编辑程序如下:
clear
a=[0.00220.0031];%系统函数分母的系数%
b=[1];%系统函数分子的系数%
subplot(2,1,1);
step(b,a);%计算并显示连续系统的阶跃响应的波形%
subplot(2,1,2);
impulse(b,a);%显示连续系统的冲击响应的波形%
图3-3时域的冲击响应和阶跃响应
实例2.求解单位冲击信号和单位阶跃信号
用matlab编辑程序如下:
clear
t1=0;t2=10;t0=-4
t=t1:
0.01:
-t0;
tt=-t0:
0.01:
t2;
n=length(t);
nn=length(tt);
u=zeros(1,n);
uu=ones(1,nn);
plot(tt,uu)
holdon
plot(t,u)
plot([-t0,-t0],[0,1])
holdoff
title('单位阶跃信号y(t)')
axis([t1,t2,-0.2,1.5]
图3-4单位阶跃信号
clear
x=-10:
0.000001:
10;
y=(x==0);
plot(x,y)
图3-5单位冲击信号
实例3
用matlab编辑程序如下:
clear
a=[184];b=[42];
subplot(2,1,1)
impulse(b,a)
title('系统的冲激响应波形h(t)')
subplot(2,1,2)
step(b,a)
title('系统的阶跃响应波形g(t)')
图3-6系统的冲击响应和阶跃响应
3.3.3卷积
信号的卷积是针对时域信号处理的一种分析方法。
信号的卷积一般用于求取信号通过某系统后的响应。
在信号与系统中,我们通常求取某系统的单位冲激响应,所求的h(n)可作为系统的时域表征。
任意系统的系统响应可用卷积的方法求得:
y(n)=x(n)*h(n)
卷积运算
设两个序列为想x(n)和h(n),则它们的卷积和定义为:
y(n)=x(n)*h(n)
其中,把卷积和用*来表示。
卷积和的运算在图形上可以分为四步:
反折、移位、相乘、相加。
反折:
先将变量坐标m上做出x(m)和h(m),将h(m)以m=0的垂直轴为对称轴反折成h(-m)
移位:
将h(-m)移位n,既得好h(n-m)。
当n为正整数时,右移n位。
当n位负整数时,左移n位。
相乘:
再将h(n-m)和x(m)的相同m值的对应点相乘。
相加:
把以上所有对应点的乘积叠加起来。
涉及的函数:
Y=conv(x,h),求x和h的卷积,y的长度等于x和h长度之和减1
x1=e-0.5tu(t),(0x2=u(t),(0用matlab编辑程序如下:
clear
t1=0:
20;
x1=exp(-0.5*t1);
t2=0:
15;
x2=ones(1,length(t2));
y=conv(x1,x2);
subplot(3,1,1)
plot(t1,x1);
legend('激励:
exp(-0.5*t1)','x1');
subplot(3,1,2)
plot(t2,x2);
legend('激励:
ones(1,length(t2))','x2');
subplot(3,1,3)
plot(y);
legend('激励:
x1,x2','y');
图3-7两个信号的原图和卷积后的波形图
3.4结论
本系统基本实现了信号的基本运算。
这次的课程设计,根据时域分析原理,掌握信号经过LTI系统的时域分析方法。
在掌握书本上理论知识的基础上,结合所学的matlab独立编程实现零状态相应、冲激响应、阶跃响应、卷积积分和卷积和的求解。
使生可以从传统的既费时的计算中摆脱出来,而把学习重点放在对概念原理的理解和实际应用中来,相信可以很好地提高教学效果,同时也能有效提高学生利用计算机编程解决实际问题的能力。
但由于本人对《信号与系统》课程和MATLAB语言认识有限,该实验系统存在诸多缺陷。
比如界面粗糙,不够美观,可操作性不强。
还有就是对matlab有进一步的认识。
高效的数值计算及符号计算功能,能使我们从繁杂的数学运算分析中解脱出来:
完备的图形处理功能,实现了计算机结果和编程的可视化:
友好的界面及接近数学表达式的自然化语言,便于学习和掌握。
实践证明,学生可以在几十分钟的时间内学会MATLAB的基本知识,经过几个小时的使用就能初步掌握。
致谢
这是我第一次接触课程设计,在这次课程设计的撰写过程中,遇到了很多的困难,但我也得到了许多人的帮助。
首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。
其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。
同时也感谢学院为我提供良好的做毕业设计的环境。
最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。
参考文献
[1]吴大正.《信号与线性系统分析》.第四版.化工工业出版社.2008年。
[2]刘卫国.《Matlab程序设计教程》.第二版.中国水利水电出版社.2010年2月。
[3]谷源涛,郑君里.《信号与系统Matlab综合实验》.高等教育出版社.2007年。
[4]王颖明.《信号与系统实验》.西南交通大学出版社.2010年。
[5]高平.《信号系统实验教程》.化学工业出版社.2008年。