基于MATLAB实现连续信号与系统复频域分析.docx
《基于MATLAB实现连续信号与系统复频域分析.docx》由会员分享,可在线阅读,更多相关《基于MATLAB实现连续信号与系统复频域分析.docx(7页珍藏版)》请在冰豆网上搜索。
基于MATLAB实现连续信号与系统复频域分析
摘要
拉普拉斯变换(LaplaceTransform),是工程数学中常用的一种积分变换。
它是为简化计算而建立的实变量函数和复变量函数间的一种函数变换。
对一个实变量函数作拉普拉斯变换,并在复数域中作各种运算,再将运算结果作拉普拉斯反变换来求得实数域中的相应结果,往往比直接在实数域中求出同样的结果在计算上容易得多。
拉普拉斯变换的这种运算步骤对于求解线性微分方程尤为有效,它可把微分方程化为容易求解的代数方程来处理,从而使计算简化。
在经典控制理论中,对控制系统的分析和综合,都是建立在拉普拉斯变换的基础上的。
引入拉普拉斯变换的一个主要优点,是可采用传递函数代替微分方程来描述系统的特性。
这就为采用直观和简便的图解方法来确定控制系统的整个特性(见信号流程图、动态结构图)、分析控制系统的运动过程(见奈奎斯特稳定判据、根轨迹法),以及综合控制系统的校正装置(见控制系统校正方法)提供了可能性。
拉普拉斯变换在工程学上的应用:
应用拉普拉斯变换解常变量齐次微分方程,可以将微分方程化为代数方程,使问题得以解决。
在工程学上,拉普拉斯变换的重大意义在于:
将一个信号从时域上,转换为复频域(s域)上来表示;在线性系统,控制自动化上都有广泛的应用。
关键词:
拉普拉斯变换,拉普拉斯反变换,拉普拉斯变换幅度曲面,MATLAB
绪论
(一)MATLAB软件简介
MATLAB(矩阵实验室)是MatrixLaboratory的缩写,是一款由美国TheMathworks公司出品的商业数学软件。
MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。
尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。
另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
(二)课程设计意义及目的
正所谓“纸上得来终觉浅,觉知此事要躬行。
”学习任何知识,仅从理论上去求知,而不去实践、探索是不够的。
因此在学期末来临之际,我们迎来了MATLAB课程设计。
为期两周的MATLAB课程设计,旨在加强同学们对于MATLAB软件及课程知识的了解及提高。
在这两周时间里,希望同学们通过自己摸索,查阅资料,并且在小组成员的相互协作和老师的指导下完成课题。
在整个设计过程中学得许多东西,培养独立思考和设计的能力,树立对知识应用的信心。
相信这会对今后的学习工作和生活有非常大的帮助,并且提高了同学们的动手实践操作能力,充分体会到了在设计过程中的成功喜悦。
通过亲身实践,了解课程设计的真正含义。
在没有进行课程设计以前,同学们觉得课程设计只是对知识的单纯总结,希望通过这次课程设计,同学们能够对课程设计有新的认识:
课程设计不仅是对前面所学知识的一种检验,也是对自己能力的一种提高。
通过这次课程设计,明白学习是一个长期积累的过程,在以后的工作和生活中都应该不断的学习,努力提高自己的知识和综合素质。
设计原理
(一)拉普拉斯变换
1.拉普拉斯变换法
拉普拉斯变换法是一种数学积分变换,其核心是把时间函数f(t)与复变函数F(s)联系起来,把时域问题通过数学变换为复频域问题,把时间域的高阶微分方程变换为复频域的代数方程,在求出待求的复变函数后,再作相反的变换得到待求的时间函数。
由于解复变函数的代数方程比解时域微分方程较有规律且有效,所以拉普拉斯变换在线性电路分析中得到广泛应用。
2.拉普拉斯变换的定义
一个定义在[0,+∞]区间的函数f(t),它的拉普拉斯变换式F(s)定义为
式中s=σ+jω为复数,被称为复频率;F(s)为f(t)的象函数,f(t)为F(s)的原函数。
由F(s)到f(t)的变换称为拉普拉斯反变换,它定义为
式中c为正的有限常数。
注意:
(1)定义中拉氏变换的积分从t=0-开始,即:
它计及t=0-至0+,f(t)包含的冲激和电路动态变量的初始值,从而为电路的计算带来方便。
(2)象函数F(s)一般用大写字母表示,如I(s),U(s),原函数f(t)用小写字母表示,如i(t),u(t)。
(3)象函数F(s)存在的条件:
(二)拉普拉斯反变换
1.拉普拉斯反变换法
用拉氏变换求解线性电路的时域响应时,需要把求得的响应的拉氏变换式反变换为时间函数。
由象函数求原函数的方法有:
(1)利用公式
(2)对简单形式的F(S)可以查拉氏变换表得原函数
(3)把F(S)分解为简单项的组合,也称部分分式展开法。
则
2.部分分式展开法
用部分分式法求拉氏反变换(海维赛德展开定理),即将展开成部分分式,成为可在拉氏变换表中查到的的简单函数,然后通过反查拉氏变换表求取原函数。
设,的阶次不高于的阶次,否则,用除,以得到一个的多项式与一个余式(真分式)之和。
部分分式为真分式时,需对为分母多项式作因式分解,求出=0的根。
设象函数的一般形式:
即F(s)为真分式。
下面讨论=0的根的情况。
(1)若=0有n个不同的单根p1、p2……pn。
利用部分分式可将F(s)分解为:
待定常数的确定:
方法一:
按,i=1,2,3,…,n来确定。
方法二:
用求极限方法确定ai的值
得原函数的一般形式为:
(2)若=0有共轭复根和,可将F(s)分解为:
则,
因为F(s)为实系数多项式之比,故和为共轭复数。
设,
(3)=0的具有重根时,因含有的因式。
则,;;……;
总结上述得由F(s)求f(t)的步骤:
(1)n=m时将F(s)化成真分式和多项式之和;
(2)求真分式分母的根,确定分解单元;
(3)将真分式展开成部分分式,求各部分分式的系数;
(4)对每个部分分式和多项式逐项求拉氏反变换。
课程设计
(一)拉普拉斯变换的MATLAB实现
如果连续时间信号f﹙t﹚可用符号表达式表示,则可直接调用MATLAB的laplace函数来实现拉普拉斯变换,调用拉普拉斯函数的命令格式为
L=laplace(F)
现以单边正弦函数f(t)=sint*u(t)为例,调用laplace函数计算拉式变换的命令如下:
symst;%定义时间符号变量
F=sin(t);%定义连续时间信号的符号表达式
L=laplace(F)%计算laplace变换的符号表达式
运行结果如下:
(二)拉普拉斯的反变换的MATLAB实现
通过MATLAB实现拉普拉斯反变换,有两种方式:
1.利用MATLAB的符号运算实现
F=ilaplace(L)
现以函数F(s)=(2*s+4)/(s*s-5*s+6)为例,调用ilaplace函数计算拉式反变换的命令如下:
symss;%定义变量s
L=(2*s+4)/(s*s-5*s+6);%定义拉普拉斯变换的符号表达式
F=ilaplace(L)%计算拉普拉斯反变换
运行结果如下:
2.部分分式展开实现拉普拉斯反变换
使用该方法时需要分两种情况讨论:
(1)F(s)的极点均为单极点
(2)F(s)有共轭极点
现以示例说明两种情况下具体操作方法:
(1)F(s)的极点均为单极点
已知F(s)=(s³+6s²+11s+4)/(s²+3s+2),求其拉普拉斯反变换,调用MATLAB命令如下:
a=[16114];%定义拉普拉斯变换分子多项式行向量a
b=[132];%定义拉普拉斯变换分母多项式行向量b
[k,p,c]=residue(a,b)%计算部分分式展开系数k,c及拉普拉斯变换极点p
运行结果如下:
由运算结果推知:
F(s)=(s+3)-2/(s+1)+2(s+2)
进而推知F(s)拉普拉斯反变换f(t)=δ´(t)+3δ(t)-2e-2t+2e-t
(2)F(s)有共轭极点
已知F(s)=(2s+4)/(s3+4s),求其拉普拉斯反变换,调用MATLAB命令如下:
a=[24];%定义拉普拉斯变换分子多项式行向量a
b=[1040];%定义拉普拉斯变换分母多项式行向量b
[k,p,c]=residue(a,b)%计算部分分式展开系数k,c及拉普拉斯变换极点p
运行结果如下:
由运算结果可知,F(S)有二个共轭极点,因此需要求出共轭极点对应的部分分式展开式系数的模和幅角,调用MATLAB命令如下:
r=abs(k)%求共轭极点对应部分分式展开项系数的模
w=angle(k)/pi%求共轭极点对应部分分式展开项系数的幅角
运行结果如下:
由上可知,F(s)=
进而推知f(t)=[1+√2cos(2t-0.75π)]u(t)
(三)通过MATLAB实现拉普拉斯变换曲面图
拉普拉斯变换幅度曲面的可视化通过MATLAB可以很便捷的实现。
现以函数F(s)=1(s*s+3s+1)说明操作方法。
(1)流程图
(2)MATLAB命令调用
x=-1:
0.1:
0.2;
y=-2:
0.1:
2;
[x,y]=meshgrid(x,y);
s=x+i*y;
F=abs(1./(s.*s+3*s+1));
mesh(x,y,F);
surf(x,y,F);
colormap(hsv);
运行结果如下:
致谢
经过十天的学习,我完成了这个课程设计,在这次课程设计期间,我学到了许多不同的知识,同时也巩固加深了以前的学过的一些知识点,我很感谢老师在课设期间对我的指导,在做课程设计时我们应该经常并及时的与老师进行沟通,这样才能更全面的了解到自己所作的课程设计有什么问题,从而进行完善,也感谢同学们对我的帮助,在遇到一些小问题或课程设计之外的问题时,就没有必要再去麻烦老师了,同学之间自己就可以解决了,增加了我与同学们之间的沟通,也增强了同学们自己思考问题和自己动手的能力,还可以相互之间进行学习,因为同