matlab应用线性时不变系统的时域分析.docx
《matlab应用线性时不变系统的时域分析.docx》由会员分享,可在线阅读,更多相关《matlab应用线性时不变系统的时域分析.docx(17页珍藏版)》请在冰豆网上搜索。
![matlab应用线性时不变系统的时域分析.docx](https://file1.bdocx.com/fileroot1/2023-6/27/0216c092-99a2-4d03-bce5-ca0bef4155c4/0216c092-99a2-4d03-bce5-ca0bef4155c41.gif)
matlab应用线性时不变系统的时域分析
matlab应用线性时不变系统的时域分析(总11页)
线
性
时
不
变
系
统
的
时
域
分
析
MATLAB在通信中的应用—课程论文
姓名:
XXX
专业:
通信工程
班级:
XXX
学号:
XXX
指导教师:
XXX
摘要:
信号与系统是通信和电子信息类专业的核心基础课。
其中的概念和分析方法广泛应用于通信、自动控制、信号与信息处理、电路与系统等领域。
MATLAB是MatrixLABoratoy的缩写它是一种以矩阵运算为基础的交互式程序语言专门针对科学、工程计算及绘图的需求。
MATLAB是美国MathWorks公司开发的大型工程计算软件,其顶尖的数值计算功能、强大的图形可视化功能、简洁易学的编程语言、可交互式的集成环境,深受工程技术人员欢迎。
由于其内部包含规模极大、覆盖面极广的工具箱,因此应用范围十分广泛。
利用其强大的信号处理工具箱可以生成信号,而且还可计算系统的响应,并可完成对连续时间系统的时域、频域及复频域的分析和仿真。
MATLAB可应用于连续系统中零输入和零状态响应的数值求解和符号求解冲激响应和阶跃响应以及卷积积分的求解和仿真。
可应用于离散系统的时域分析和响应、单位取样响应、卷积运算、信号抽样的运算和仿真。
关键词:
线性系统时域分析MATLAB仿真
一、引言
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案并在很大程度上摆脱了传统非交互式程序设计语言如C、Fortran的编辑模式代表了当今国际科学计算软件的先进水平。
《信号与线性系统分析》是通信类学生一门主干课程,该课程所涉及到的许多基本概念和五种基本分析方法,是每个学生所必须熟练掌握的内容。
但是,由于信号与系统实验所需的设备价格较高,试验难度较大,许多教学单位都因不具备试验条件而放弃了试验课程的开设,这极大的影响了教育质量的提高。
近年以来,随着计算机硬件性能的不断提升和计算机软件技术的飞速发展,利用计算机进行虚拟试验成为一种国际潮流,国内也逐步开始了这一方面的工作,并在取得积极的成果
而MATLAB,经过多年的不断发展与完善已发展成为由MATLAB语言、MATLAB工作环境、MATLAB图象处理系统、MATLAB数据函数库和MATLAB,应用程序接口五大部分组成的集数值计算、图象处理、程序开发为遗体的功能强大的系统。
它具有以下的功能和特点,高效的数值计算及符号计算功能,能使我们从繁杂的数学运算分析中解脱出来,完备的图形处理功能,实现了计算机结果和编程的可视化,友好的界面及接近数学表达式的自然化语言,便于学习和掌握。
实践证明,学生可以在几十分钟的时间内学会MATLAB,的基本知识,经过几个小时的使用就能初步掌握。
所以,在此次的课程设计中我选择连续系统时域系统分析这个理论性比较强的项目。
在信号与系统分析中应用Matlab,软件的内容,编制了多个程序与习题,使学生对信号与系统中的许多重要的概念增加了直观认识,以便加深对概念的理解,并学会应用Matlab,软件来快速而有效地分析解决问题。
用Matlab,软件来进行上机作业显然是本课程未来发展的一个必然趋势.学生通过上机训练,不仅能很快地理解所增加的新内容,而且也激发了学生们的学习兴趣,,对许多概念的理解加深了,,而且学会了利用Matlab,软件来分析问题的技巧与方法.
二、设计概况
描述连续系统的输入-输出特性的是常系数微分方程。
从系统的模型出发,在时域研究
输入信号通过系统后响应的变化规律,是研究系统时域性的重要方法,这种方法就是时域分析方法。
在连续系统中,以冲激函数为基本信号,将任意信号分解,从而得到系统的零状态响应等于激励与系统冲激响应的卷积积分。
在做课程设计中首先是对MATLAB,软件的了解和认识,掌握一些MATLAB,软件的基本常用函数的用法,对MATLAB软件进行程序操作,例如,用MATLAB软件绘出Sa(t)函数的波形图、sinc(t)的波形图等等各种连续信号的波形图。
同时利用MATLAB,软件也能对书本上的知识进行验证,在MATLAB,软件下编写函数程序,然后运行程序,与书本上的信号的求解进行对照分析和比较。
对MATLAB软件进行一定的了解和运用之后,开始做此次课程设计——连续系统的分析仿真,用MATLAB软件对此次课程设计的系统零状态响应、冲激响应进行绘图求解,并且记录其分析过程。
对所做的LTI,连续系统时域分析仿真课程设计完成以后撰写论文,说明自己的实习过程和实习心得等内容。
正文
三、设计目的和意义
设计目的
通过本设计,熟悉信号的变换和运算能力,具有对信号的时域和频域的分析能力,知道信号的发送、传输和接受的过程,要会根据信号的传输指标要求,设计能完成某种功能的电路系统,并且整个系统物理可实现性和对信号的不失真传输进行检验。
1.熟悉并熟练掌握常用于连续系统时域分析的MATLAB函数。
2.掌握系统的冲激响应、阶跃响应、零输入响应及零状态响应、卷积的概念,,掌握系统冲激响应、阶跃响应、零输入响应及零状态响应、卷积的表达式及其物理意义,掌握单位冲激响应、阶跃响应、零输入响应及零状态响应、卷积的计算方法及其基本性质。
3.了解MATLAB的目录结构和基本功能以及MATLAB在信号与系统中的应用。
4.掌握MATLAB描述系统的常用方法及有关函数,并学会利用MATLAB,求解LTI系统响应,并绘制相应曲线。
基本要求:
掌握用MATLAB描述连续时间信号的方法,能够编写MATLAB程序,实现各种信号的时域变换和运算,并且以图形的方式再现各种信号的波形。
掌握线性时不变连续系统的时域数学模型用MATLAB,描述的方法,掌握零状态、零输入、阶跃响应及冲激响应等方程。
的求解编程,熟悉信号的转换和运算,并能对信号进行分析;会根据信号的传输和课题的要求设计完成某功能的子系统;通过实验,熟悉信号的时域和频域的分析方法并掌握分析结果的方法,要在计算机上能模拟信号与系统分析的基本流程,进行系统分析。
设计意义
通过此次课程设计能使我掌握一些MATLAB软件的操作方法,会编写MATLAB程序,并能够利用MATLAB,求解此次课程设计所要求的各种系统响应、频率特性及零极点,并能绘制出相关的波形图。
掌握了信号的时域分析方法及分析试验结果的方法,对原本不是特别理解的
地方,通过此次课程设计也有了进一步的了解和理解。
并且,学会了MATLAB的操作方法,对以后学习相关的课程,会带来更多的方便,也有利于这些课程的掌握学习。
此次课程设计能够用到MATLAB,软件对连续系统时域分析进行仿真,对我来说具有重要的意义,同时对此次课程设计也有重要的意义。
设计的目标
1.熟悉MATLAB软件平台。
2.编程实现常用信号及其运算MATLAB实现方法。
3.通过MATLAB软件对LTI,连续系统时域进行分析仿真。
设计的总体方案
1.通过图书馆、网络,请教老师等途径查找并整理有关资料,深入掌握MATLAB控制系统功能的实现,复习信号与系统相关知识。
2.对Matlab进行简单的程序运行。
3.运用MATLAB数值求解连续系统的零状态响应、零输入响应、冲激响应、阶跃响应、卷积,并对系统进行分析判断。
四、设计原理
流程图:
连续时间系统的冲击响应与阶跃响应
一个LTI系统,当其初始状态为零时,输入为单位冲激函数所引起的响应称为单位冲激响应,简称冲激响应。
单位冲激函数
无法直接用MATLAB,描述时可以把它看作是宽度为1/中用dt)表示,幅度为1/矩形脉冲,即
一个LTI系统,当其初始状态为零时,输入为单位阶跃函数所引起的响应称为单位阶跃响应,简称阶跃响应。
阶跃函数定义为
MATLAB语言如下:
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,是一实数,显示0~t,的波形,若t,为数组,则显示数组内的波形,
y=step(b,a,t),将结果存入变量y,不直接显示波形
零输入响应
零输入响应,从观察的初始时刻,例如t=0,起不再施加输入信号,即零输入。
仅由该时刻系统本身具有的起始状态引起的响应称为零输入响应,或称为储能响应。
连续LTI系统的零输入响应:
[y,t,x]=initial(a,b,c,d,x0)
离散系统的零输入响应:
[y,x,n]=dinitial(a,v,c,d,x0)
卷积
信号的卷积是针对时域信号处理的一种分析方法。
信号的卷积一般用于求取信号通过某
系统后的响应。
在信号与系统中,我们通常求取某系统的单位冲激响应,所求的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。
求取线性连续系统对任意输入的函数——lsim
其他
实例已知H(s)=1/(LC*s2+RC*s+1),LC=,RC=,求时域的冲击响应和阶跃响应。
用matlab编辑程序如下:
clear
a=[,,1];%系统函数分母的系数%
b=[1];%系统函数分子的系数%
subplot(2,1,1);
step(b,a);%计算并显示连续系统的阶跃响应的波形%
subplot(2,1,2);
impulse(b,a)%显示连续系统的冲击响应的波形%
程序运行结果如右图所示:
实例求解单位冲激信号和单位阶跃信号。
用matlab,编辑程序如下:
clear
t1=0;t2=10;t0=-4;
t=t1:
:
-t0;
tt=-t0:
:
t2;
n=length(t);
nn=length(tt);
u=zeros(1,n);
uu=ones(1,nn);
subplot(211);
plot(tt,uu);
holdon
plot(t,u)
plot([-t0,-t0],[0,1])
holdoff
title('单位阶跃信号y(t)')
axis([t1,t2,,])
clear
x=-10:
:
10;
y=(x==0);
subplot(212);
plot(x,y);
title('单位冲激信号y(t)')
程序运行结果如右图所示:
实例已知系统函数
,求其冲激响应和阶跃响应。
用matlab,编辑程序如下:
Clear
a=[1,8,4];b=[4,2];
subplot(2,1,1)
impulse(b,a)
title('系统的冲激响应波形h(t)')
subplot(2,1,2)
step(b,a)
title('系统的阶跃响应波形g(t)')
程序运行结果如右图:
实例,描述某LTI,系统的微分方程为y’’(t)-2(t)+y(t)=f’(t)+2(t),初始状态x0=[1;0]时,求其零输入响应。
MATLAB源程序:
num=[0,1,2];den=[1,-2,1];
x0=[1;0];t0=0:
:
20;
[a,b,c,d]=tf2ss(num,den);
initial(a,b,c,d,x0,t0)
title('零输入响应');
gridon;
程序运行结果如右图所示:
实例描述某LTI,系统的微分方程为y’’(t)+3y’(t)+2y(t)=2f’(t)+6f(t)
已知y(0-)=2,y’(0-)=1,f(t)=u(t),求出该系统的零输入响应、零状态响应和全响应。
用matlab,编辑程序如下:
clear
num=[0,2,6];%系统函数分子的系数%
den=[1,3,2];%系统函数分母的系数%
n=0:
20;
nl=length(n);%求零输入响应%
y01=[1,3];%y的初始状态%
x01=[0,0];%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=[0,0];
x02=[0,0];
x2=.^n;
zi2=filtic(num,den,y02,x02);
y2=filter(num,den,x2,zi2);
subplot(2,1,2);
plot(n,y2);
title('零状态响应');
gridon;
程序运行结果见右图:
实例已知x1=(t),(0用matlab,编辑程序如下:
clear
t1=0:
20;
x1=exp*t1);
t2=0:
15;
x2=ones(1,length(t2));
y=conv(x1,x2);
subplot(3,1,1);
plot(t1,x1);
legend('激励:
exp*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');
运行结果如右图所示:
五、结论
本设计基本实现了信号的基本运算。
这次的课程设计,根据时域分析原理,掌握信号
经过LTI,系统的时域分析方法。
在掌握书本上理论知识的基础上,结合所学的matlab,独立
编程实现零状态相应、冲激响应、阶跃响应、卷积积分和卷积和的求解。
但由于我对《信号与系统》课程和MATLAB,语言认识有限,该实验系统存在诸多缺陷。
比如界面粗糙,不够美观,可操作性不强。
还有就是对MATLAB,还要有进一步的认识。
MATLAB高效的数值计算及符号计算功能,能使我们从繁杂的数学运算分析中解脱出来,完备的图形处理功能,实现了计算机结果和编程的可视化,友好的界面及接近数学表达式的自然化语言,便于学习和掌握。
六、致谢
在这次课程设计的撰写过程中,遇到了很多的困难,但我也得到了许多人的帮助。
首先我要感谢我的老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能
顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系
统做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己
的设计能力。
其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计商的难题。
同时也感谢学院为我提供良好的做毕业设计的环境。
还有很多因素,有些程序的编写,我上网观看其他同学和高手的程序设计,并从中获得了一些灵感,对于我的设计有很大的帮助。
最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。
七、参考文献
[1]吴大正.?
信号与线性系统分析?
.第四版.化工工业出版社,2008年。
[2]刘卫国.?
Matlab,程序设计教程?
.第二版.中国水利水电出版社.2010,年2月。
[3]谷源涛,郑君里.?
信号与系统Matlab,综合实验?
.高等教育出版社,2007年。
[4]王颖明.?
信号与系统实验?
.西南交通大学出版社,2010年。
[5]高平.?
信号系统实验教程?
.化学工业出版社,2008年。