《matlab课件第六章在信号与系统中的应用.ppt》由会员分享,可在线阅读,更多相关《matlab课件第六章在信号与系统中的应用.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第 6章 在信号与系统中的应用例6.1 连续信号的MATLAB描述(1)单位冲激函数(2)单位阶跃函数:(3)复指数函数例6.2 LTI系统的零输入响应 n阶线性时不变连续系统的微分方程 已知y及其各阶导数的初始值为y(0),y(1)(0),y(n-1)(0),求系统的零输入响应。解:方程的解为p1,p2,pn是方程a1n+a2n-1+an+an+1=0的根,C1,Cn由y及其各阶导数的初始值来确定。例6.2 LTI系统的零输入响应(续)C1+C2+Cn=y0 y0=y(0)p1C1+p2C2+pnCn=Dy0例6.2 LTI系统的零输入响应(续)即 VC=Y0其解为 C=V Y0式中 V为范
2、德蒙矩阵,在MATLAB的特殊矩阵库中有vander。调用方法:V=vander(p)例6.3 n阶LTI系统的冲激响应 n阶微分方程,写成系统函数为:冲击响应就是H(s)的拉普拉斯反变换,可以把H(s)展开为极点留数式。其反变换为例6.4 卷积的计算 根据卷积公式:因此编程的过程为:(1)写出h(t)的MATLAB表达式;(2)写出u(t)的MATLAB表达式;(3)利用MATLAB的卷积语句y=conv(u,h)求解(4)画曲线plot(t,y)。例6.5 LTI系统的零状态响应设二阶连续系统求其冲激响应。若输入为u=3t+cos(0.1t),求其零状态响应y(t)。解:特征方程 2+2+
3、8=0求出其特征根为p1,p2及相应的留数r1,r2,则冲击响应为:输出y(t)可用输入u(t)与冲击响应h(t)的卷积求得。例6.6 有重极点时的计算n级放大器,每级的传递函数均为0/(s+0),求阶跃响应,画出n不同时的波形和频率特性。解:阶跃信号下系统的输出为求Y(s)的拉普拉斯反变换,即得到阶跃响应y(t)。遇到的困难是重极点,公式复杂,且结果不稳定。为了避开重极点问题,可以有意把极点拉开一些,例如设n个极点散布在-0.950到1.050之间,那样也就可当非重极点来列程序。例6.7 方波分解为多次正弦波之和图示的周期性方波,其傅里叶级数为分别计算 直到9次谐波,并做图。图6.7-1 输
4、入周期性方波-x例6.8 全波整流信号的频谱周期信号f(t)可展开为直流与各次谐波之和,即其中,是基波角频率,T为周期。全波整流电压Us(t)的波形如图所示。用傅里叶级数可求得其偶次谐波幅值k=2,4,6,奇次谐波为零。例6.8 全波整流信号功率(续)信号每周期的有效值Us1可由数字积分求得取前n项分量的功率求出的有效值Us2为 用可以衡量所取谐波是否包含了原波形的主体。例6.9 周期信号的滤波图示滤波电路,如激励电压us(t)为全波整流信号,求负载R两端的直流和各次谐波分量。解:输入信号为多频的网络的输出由分压确定例6.9 周期信号的滤波(续)信号幅度随频率而变元件和系统函数都是频率的函数因
5、此输出电压为由此式可求得UR的各次谐波。例6.10 调幅信号通过带通滤波器已知带通滤波器的系统函数为激励电压u1(t)=(1+cost)cos(100t)求(1)带通滤器的频率响应;(2)输出的稳态响应u2(t)并画出波形。解:将激励信号u1(t)展开为傅立叶级数 例6.10 调幅信号通过滤波器(续)带通滤波器的频率响应为可画出其频率响应,并求各个分量通过滤波器后的幅度和相位变化,再将各分量叠合,得到按此信号作出图形与原有信号比较。例6.11 方波的频谱分析将积分上下限定为010s,并将t分成N等份,用求和代替积分。这样,傅立叶变换式可写为求和可以用f(t)行向量乘以e-jtn列向量来实现。式
6、中t是t的增量,在程序中,用dt表示。例6.11 方波的频谱分析(续)求不同处的F值,都用同一公式,这就可以利用MATLAB中的元素群运算。将设为一个行数组,代入上式,则可写为(程序中用w表示)其中,F是与w等长的行向量,t 是列向量,w是行向量,t*w是一矩阵,其行数与t相同,列数与w相同。这样,此式就完成了傅里叶变换。类似地也可得到傅里叶逆变换表示式为 例6.11 方波的频谱分析(续)算得的时域信号波形及其频谱图如右。下图为采样周期较低时的情况,有明显的频率泄漏。例6.12 信号通过滤波器计算幅度为1,宽度为5s的矩形脉冲(同例6.11)通过下列滤波器的响应。(1)理想低通滤波器,(2)低
7、通滤波器解:滤波器输出的频谱Y(j)=F(j)H(j)其时间响应y(t)是Y(j)的傅里叶反变换。例6.12 信号通过滤波器(续)(1)理想低通滤波器的截止角频率c=10,故只取F(j)中=010的部分,用MATLAB语言表述,输出频率分量对应的的下标数组为n2=find(w=wc)&(w=wc)其对应的频率数组为w2=w(n2)频段内的频谱数组为F2=F(n2:),它就是滤波后的频谱数组Y2,其逆变换即y2=F2*exp(j*n2*t)/pi*dw例6.12 信号通过滤波器(续)(2)三阶低通滤波器的频率响应滤波器的输出为例6.13 离散信号的MATLAB表述 编写MATLAB程序,产生下列
8、基本脉冲序列:(1)单位脉冲序列,起点n0,终点nf,在ns处有一单位脉冲(n0nsnf)。n1=n0:nf;x1=zeros(1,ns-n0),1,zeros(1,nf-ns);用逻辑关系编程:n1=n0:nf;x1=(n1-ns)=0 (2)单位阶跃序列,起点n0,终点nf,在ns前为0,在ns后为1(n0nsnf)。n2=n0:nf;x2=zeros(1,ns-n0),ones(1,nf-ns+1);(3)复数指数序列。n3=n0:nf;x3=exp(-0.2+0.5j)*n3);例6.14 解差分方程的递推程序描述线性时不变离散系统的差分方程为编写解上述方程的通用程序。解:建模可用递推
9、法解差分方程,移项如下:于是得y(n)=(b*us-a(2:na)*ys)/a(1)这里需要n=0之前的y和u,而MATLAB变量下标不能取负数。需要作一些技巧性的处理。例6.14 递推解差分方程(续)本例中的处理方法是另设两个变量ym和um,使ym(k)=ys(k-na+1),um(k)=us(k-na+1),这相当于把y和u右移na-1个序号,故ym和um的第1到na-1位相当于y和u在起点之前的初值。注意在程序中,随着计算点的右移,要随时更新相应于公式中的向量us和ys。例6.15 离散系统对输入的响应 描述LTI系统的差分方程为y(n)-y(n-1)+0.9y(n-2)-0.5y(n-
10、3)=5u(n)-2u(n-1)+2u(n-2)(1)如已知y(0)=-2,y(-1)=2,y(-2)=-0.5,求零输入的响应,计算20步。(2)求单位脉冲的响应h(n),计算20步。(3)求单位阶跃的响应g(n),计算20步。解:利用例6.14的通用程序(1)令us=zeros(1,20);ym=-1/2,2,-2;(2)令us=1,zeros(1,19);ym=0,0,0 (3)令um=ones(1,20);ym=0,0,0;例6.16 二阶数字滤波器的频响。低通滤波器的系统函数(传递函数)为求其频率响应。解:利用多项式求值的函数polyval,分别求出分子分母多项式在z=exp(jw)
11、时的值,求其比值。它是对应于w数组的复数数组,其幅值为幅特性,相角为相特性。然后绘图。也可用信号处理工具箱中的freqz函数快速求解,但为了弄清原理,这里不提倡。6.4.1 模型的典型表达式1连续系统 状态空间型设x为状态变量,u为输入,y为输出,系统的状态方程为:如果系统是n阶的,输入有nu个,输出有ny个,则A为nn阶,B为nnu阶,C为nyn阶,而D为nynu阶矩阵,对单输入单输出(SISO)系统,ny=nu=1。6.4.1 模型的典型表达式(续)传递函数型单输入单输出(SISO)n阶系统的传递函数为知道分子系数矢量f=f(1),f(2),f(m+1),分母系数矢量g=g(1),g(2)
12、,g(n+1),就惟一地确定了系统的模型(注意系统的阶次n)。而对物理可实现的系统,必有nm。6.4.1 模型的典型表达式(续)零极增益型对传递函数分子和分母进行因式分解,可得令z=z(1),z(2),z(m)为系统的零点矢量,p=p(1),p(2),p(n)为系统的极点矢量,k为系统增益,它是一个标量。可以看出,H(s)有m个零点、n个极点。物理可实现系统的nm,系统的模型将由矢量z,p及增益k惟一确定,故称为零极增益模型。零极增益模型通常用于描述SISO系统。并可以推广到MISO系统。6.4.1 模型的典型表达式(续)极点留数型如果零极增益模型中的极点都是单极点,将它分解为部分分式,可得
13、其中p=p(1),p(2),p(n)仍为极点矢量,而r=r(1),r(2),r(n)为对应于各极点的留数矢量,p,r两个矢量及常数h惟一地决定了系统的模型。6.4.1 典型表达式的比较比较一下这四种情况下模型系数的总个数。假定都是SISO系统,阶数为n,则状态空间型有n2+2n+1个系数;传递函数型为m+n+1个(不含g(1)(注意,由于mn,系数的数目小于等于2n+1);零极增益型的系数个数为n+m+1;而极点留数型为2n+1。因此,传递函数法的待定系数最少,而状态空间法的待定系数最多。这说明了状态空间法中有许多冗余的系数。事实上,同一个系统可以有无数个状态空间矩阵A,B,C,D的组合来描述
14、,其他描述方法则都是惟一的。6.4.1 离散模型的表达式2离散系统以上四种表示模型的方法可以全部推广至离散系统。只是将系数矩阵后面加小写字母d,便有:状态空间型 xn+1=Adxn+Bdunyn=Cdxn+Ddun传递函数型零极增益型6.4.1 离散模型的表达式(续)极点留数型 数字信号处理模型二阶环节型表6.1列出了连续和离散线性系统的模型式。6.4.2 模型转换MATLAB中各种模型转换的函数6.4.2 模型转换(续)传递函数型到零极增益型已知f,g,求z,p,k,即知道多项式求根。可用MATLAB内部函数roots,z=roots(f),p=roots(g),k=f(1)/g(1)零极增
15、益型到传递函数型已知z,p,k,求f,g,即已知根求多项式。可用MATLAB内部函数poly,它是roots的逆运算,即有 f=poly(z)*k,g=poly(p)6.4.2 模型转换(续)传递函数型到极点留数型及反向变换知道传递函数的系数g求其极点p,方法同上,而求其中某极点处留数r,可用专用函数residue,格式为 r,p,h=residue(f,g)可直接由f,g求出r,p,k。由极点留数型到传递函数型仍可用同一函数。f,g=residue(r,p,h)residue函数根据输入变元的数目为二或三个,决定变换的方向。例6.17 由传递函数模型转换为零极增益和状态空间模型 已知描述系统
16、的微分方程为(1)(2)求出它的传递函数模型、零极增益模型、极点留数模型和状态空间模型。解:(1)f=2,-5,3;g=2,3,5,9;(2)f=1,3,2;g=1,5,7,3;本例中用MATLAB的基本函数编程,在熟练后均可用工具箱函数tf2zp,tf2ss及residue函数求得。例6.18 由状态空间转为传递函数设SISO系统的状态方程为:如果系统是n阶的,则A为nn阶,B为n1阶,C为1n阶,而D为11阶。给定A,B,C,D,就建立了系统模型。对状态方程取拉氏变换,解出H(s)=f(s)/g(s),得故有f(s)=Cadj(s I-A)B+Dg(s)。g=poly(eig(A)=det
17、(sI-A)例6.19 系统的串联、并联和反馈 系统的串联由图所示,YB=WBUB=WBWAUA=WU故W(s)=WA(s)WB(s)多项式相乘由卷积函数conv实现,其表示式为:f=conv(fA,fB),g=conv(gA,gB)系统的并联 Y=WAU+WBU=(WA+WB)U=WU故 W(s)=WA(s)+WB(s)f=polyadd(conv(fA,gB),conv(fB,gA)g=conv(gA,gB)例6.19 系统的串并联和反馈 系统的反馈系统的连接方法如图6.18-3。复合系统的传递函数故MATLAB表达式为 f=conv(fA,gB)g=polyadd(conv(fA,fB)
18、,conv(gA,gB)例6.20 复杂系统的信号流图计算设信号流图中有ki个输入节点,k个中间和输出节点,它们分别代表输入信号ui(i=1,2,ki)和系统状态xj(j=1,2,k)。信号流图代表它们之间的联结关系。用拉普拉斯算子表示后,任意状态xj可以表为ui和xj的线性组合用矩阵表示,可写成:从而得到传递函数 H=(I-Q)-1P 这个简明的公式就等价于梅森公式。例6.20由图列出方程为x1=ux2=x1-x3-x5x3=G1x2x4=x1+x3-x5x5=G2x4x6=x3+x5-x7x7=G3x6x8=Kx7用矩阵表示例6.20写成X=QX+PU 其中系统传递函数为:H=(I-Q)-
19、1P例6.21 连续系统状态方程的解线性连续系统在输入信号为零时的状态方程表示式为,其中x为n1的列向量,A为nn阶的方阵,求其在初始条件作用下的解。解:建模:按线性方程理论,此齐次方程的解为其中此处要把方阵At作为一个整体求指数函数,就需要调用MATLAB矩阵指数函数expm。注意它与exp函数不同。例6.21 连续系统状态方程的解如果A是nn阶,则expm(At)也是nn阶,这时如果要算一系列的t值所对应的expm(At),就不可能像标量指数那样用元素群运算方法了,必须用for循环。不仅如此,如果t的长度为nt,则状态转移矩阵F(t)=expm(At)将是一个nnnt的三维矩阵,需要用MATLAB中高维矩阵的概念来解决问题。举以下数字例来说明。设A=-2,1;-17,-4,x0=3;4;求上述线性方程的状态转移矩阵F(t)及x的解。例6.22 离散系统状态方程的响应离散系统的状态方程为初始条件 输入信号为阶跃函数,求前10步的解x。解:已知x(0)和u(0)就可求出k=1时的x(1),再依次递推求x(2),x(10)。在程序中可用循环语句来完成。离散系统的计算比连续系统简单得多,只要作四则矩阵运算即可。