第5章Z域分析 5.1基础理论 1. 求解差分方程 若线性时不变离散时间系统差分方程为 ∑Nk=0aky(n-k)=∑Mr=0brx(n-r)(51) 对差分方程求Z变换,得到 ∑Nk=0akz-kY(z)=∑Mr=0brz-rX(z)(52) 若响应为右边信号,对差分方程求Z变换,得到 ∑Nk=0akz-kY(z)+∑-1l=-ky(l)z-l=∑Mr=0brz-rX(z)+∑-1m=-rx(m)z-m(53) 对Y(z)求逆Z变换得到响应y(n)。 2. 系统函数 由线性时不变系统的输入输出关系y(n)=x(n)h(n),等式两边进行Z变换,根据卷积定理得到Y(z)=X(z)·H(z),进而得到系统函数的定义: H(z)=Y(z)X(z)=ZTh(n)(54) 一般情况下,系统函数是一个关于z的有理多项式分式,可以表示为 H(z)=P(z)Q(z)=∑ibiz-i∑kakz-k=A∏i1-ciz-1∏k1-dkz-1(55) 其中,ak和bi是系统差分方程的系数,ci和dk分别是系统函数的零点和极点。 3. 判断系统稳定性和因果性 当系统函数的所有极点都位于单位圆中时,离散LTI系统是稳定的。当系统函数的一个极点位于单位圆外或者系统函数的一个2阶或更高阶极点位于单位圆上时,离散LTI系统是不稳定的。 当系统函数的收敛域包含正无穷大时,离散LTI系统是因果的。 5.2实验示例 例5.1求解差分方程 y(n)-0.4y(n-1)-0.45y(n-2)=0.45x(n)+0.4x(n-1)-x(n-2),n≥0 其中x(n)=2+12nu(n),初始条件为y(-1)=0; y(-2)=3;x(-1)=2; x(-2)=2。要求列出解的函数表达式。 解: 对差分方程作单边Z变换: Y+(z)-0.4y(-1)+z-1Y+(z)-0.45y(-2)+z-1y(-1)+z-2Y+(z) =0.45X+(z)+0.4x(-1)+z-1X+(z)-[x(-2)+z-1x(-1)+z-2X+(z)] 代入初始条件,得到 Y+(z)=0.45+0.4z-1-z-21-0.4z-1-0.45z-2X+(z)+0.15-2z-11-0.4z-1-0.45z-2 代入X+(z)=3-2z-11-32z-1+12z-2并化简,得到Y+(z),它是一个有理函数,化简和部分分式展开可以用MATLAB来完成,程序如下: b=[0.45,0.4,-1]; a=[1,-0.4,-0.45]; Y=[0,3]; X=[2,2]; xic=filtic(b,a,Y,X) bxplus=[3,-2]; axplus=[1,-3/2,1/2]; ayplus=conv(a,axplus) byplus=conv(b,bxplus)+conv(xic,axplus) [R,p,C]=residuez(byplus,ayplus) xic =0.1500 -2.0000 ayplus = 1.0000-1.90000.65000.4750-0.2250 byplus = 1.5000-1.9250-0.72501.0000 R = -2.00002.11161.7188-0.3304 p = 1.00000.90000.5000-0.5000 最终可以得到 Y+(z)=-21-z+2.11161-0.9z+1.71881-0.5z-0.33041+0.5z 从而得到 y(n)=[2+2.11160.9n+1.71880.5n-0.3304-0.5n]u(n) 例5.2求解差分方程 y(n)=0.81y(n-2)+x(n)+x(n-1),n>0 其中y(-1)=y(-2)=2,x(n)=0.7nu(n+1)。 解: 将差分方程两边取单边Z变换得 Y+(z)=0.81y(-2)+z-1y(-1)+z-2Y+(z)+X+(z)+z-1X+(z) =0.812+2z-1+z-2Y+(z)+107·z+11-0.7z-1 得 Y+(z)=107·z+11-0.7z-1+1.62+1.62z-11-0.81z-2 =1.4z+3.02+0.486z-1-1.134z-21-0.7z-1-0.81z-2+0.567z-3 令 Y+1(z)=3.02+0.486z-1-1.134z-21-0.7z-1-0.81z-2+0.567z-3 z-1Y+2(z)=1.41-0.7z-1-0.81z-2+0.567z-3 分解Y+1(z)的MATLAB程序实现如下: b=[3.02,0.486,-1.134]; a=[1,-0.7,-0.81,0.567]; [R,p,C]=residuez(b,a) R = 0.30384.8600-2.1438 p = -0.90000.90000.7000 Y+1(z)=0.30381+0.9z-1+4.861-0.9z-1+-2.14381-0.7z-1 y1(n)=[0.3038-0.9n+4.860.9n-2.14380.7n]u(n) 对于Y+2(z),MATLAB程序实现如下: b=[1.4]; a=[1,-0.7,-0.81,0.567]; [R,p,C]=residuez(b,a) R = 0.39383.1500 -2.1438 p = -0.90000.90000.7000 y(n)=0.3038-0.9n+4.860.9n-2.14380.7nu(n)+ [0.3938-0.9n+1+3.150.9n+1-2.14380.7n+1]u(n+1) 例5.3求解y(n)-1.5y(n-1)+0.5y(n-2)=x(n),其中x(n)=0.25nu(n),初始条件为y(-1)=4,y(-2)=10。 解: 对差分方程的两边同时进行单边Z变换,得到 Y+(z)-1.5y(-1)+z-1Y+(z)+0.5y(-2)+z-1y(-1)+z-2Y+(z) =11-0.25z-1 代入初始条件并整理得 Y+(z)=(1-0.25z-1)-11-1.5z-1+0.5z-2+1-2z-11-1.5z-1+0.5z-2 最后得到 Y+(z)=2-2.25z-1+0.5z-2(1-0.5z-1)(1-z-1)(1-0.25z-1) 进行部分分式展开得到 Y+(z)=11-0.5z-1+2/31-z-1+1/31-0.25z-1 逆Z变换后,得到差分方程的全响应解为 y(n)=12n+23+1314nu(n) a=[1,-1.5,0.5];b=1; n=[0:7]; x=(1/4).^n; Y=[4,10]; xic=filtic(b,a,Y); y1=filter(b,a,x,xic); y2=(1/3)*(1/4).^n+(1/2).^n+(2/3)*ones(1,8); stem(n,y1,'ro'),hold on stem(n,y2,'*b'); h=legend('y1','y2'); title('Example 5.3'); xlabel('n'); ylabel('Amplitude'); 运行程序,结果如图5.1所示。 图5.1例5.3的运行结果 例5.4求解差分方程 y(n)-2y(n-1)+3y(n-2)=4x(n)-5x(n-1)+6x(n-2)-7x(n-3) 其中x(n)=u(n),初始条件为y(-1)=-1,y(-2)=1,x(-1)=1,x(-2)=-1。 解: 对差分方程做单边Z变换: Y+(z)-2y(-1)+z-1Y+(z)+3y(-2)+z-1y(-1)+z-2Y+(z) =4X+(z)-5x(-1)+z-1X+(z)+6x(-2)+z-1x(-1)+z-2X+(z)- 7[x(-3)+z-1x(-2)+z-2x(-1)+z-3X+(z)] 代入初始条件,得 Y+(z)=4-5z-1+6z-2-7z-31-z-1+3z-2X+(z)+-16+16z-1-7z-21-z-1+3z-2 MATLAB程序如下: b=[4,-5,6,-7];a=[1,-2,3]; Y=[-1,1];X=[1,-1]; xic=filtic(b,a,Y,X) bxplus=[1]; axplus=[1,-1]; ayplus=conv(a,axplus) byplus=conv(b,bxplus)+conv(xic,axplus); [r,p,k]=residuez(byplus,ayplus) xic = -1616-7 ayplus = 1-35-3 r = -5.5000 - 1.0607i-5.5000 + 1.0607i-1.0000 p = 1.0000 + 1.4142i1.0000 - 1.4142i1.0000 可以得到 Y+(z)=-5.5-1.0607j1-1+1.4142jz+-5.5+1.0607j1-1-1.4142jz-11-z =-11+14z1-2z+3z2-11-z 5.3练习题 5.1写出题图3.1所表示的离散时间系统的差分方程,使用MATLAB编程求解系统的单位样值响应h(n),然后绘制h(n)从n=0到n=50的结果。使用MATLAB编程求解系统的阶跃响应g(n),然后绘制g(n)从n=0到n=50的结果。 5.2写出题图3.2所表示的离散时间系统的差分方程,使用MATLAB编程求解系统的单位样值响应h(n),然后绘制h(n)从n=0到n=50的结果。使用MATLAB编程求解系统的阶跃响应g(n),然后绘制g(n)从n=0到n=50的结果。 5.3使用MATLAB编程求解如下差分方程并绘制响应y(n)从n=0到n=50的结果,随后使用Simulink图形仿真验证。 (1) y(n)+3y(n-1)=x(n),x(n)=0.5nu(n),y(-1)=1 (2) y(n)-0.5y(n-1)=x(n)-0.5x(n-1),x(n)=u(n),y(-1)=0 5.4使用MATLAB编程求解如下系统的单位样值响应h(n),求解激励x(n)=cosπn3时,响应y(n)从n=0到n=50的结果,随后使用Simulink图形仿真验证。 (1) H(z)=z+1z-0.5 (2) H(z)=1+z-1+z-22