课程设计任务书2010—2011学年第一学期专业:通信工程学号:080110040姓名:刘静课程设计名称:数字信号处理课程设计设计题目:基于逆Z变换的系统响应的软件实现完成期限:自2010年12月23日至2010年12月30日共1周一.设计目的1.巩固所学的理论知识。2.提高综合运用所学理论知识独立分析和解决问题的能力。3.更好地将理论与实践相结合。4.掌握信号分析与处理的基本方法与实现。5.熟练使用MATLAB语言进行编程实现。二.设计内容设系统函数为2115.02.223zzzzH,输入信号5,3,4,2nx,用MATLAB编程实现用逆Z变换计算输出ny。三.设计要求1.输入信号nx的起点为n=-1;2.给出输出结果ny并图示nx和ny。四.设计条件计算机、MATLAB语言环境五、参考资料[1]《数字信号处理》(第三版),丁玉美,高西全.西安电子科技大学出版社,2000.[2]《MATLAB及在电子信息课程中的应用》,陈怀堔,吴大正,高西全.电子工业出版社,2006.[3]《MATLAB7.0从入门到精通》,求是科技.人民邮电出版社,2006.[4]《数字信号处理(第三版)》学习指导,高西全,丁玉美.西安科技大学出版社,2001.指导教师(签字):教研室主任(签字):批准日期:年月日摘要逆z变换的定义是这样描述的:已知序列的z变换及其收敛域,求原序列x(n)的过程称为求逆z变换。在此课程设计中,我们主要介绍了序列的逆z变换和z变换,并在MATLAB中用留数法实现逆z变换的过程。而序列的z变换正好是逆z变换的逆过程。系统响应是对系统而言,在时域内由系统函数和序列x(n)进行卷积可以求得系统的响应。而在频域内可由系统函数的z变换和x(n)的z变换做乘积可得系统响应y(n),本课程设计用的第二种方法。对于作图软件:MATLAB是MATrixLABoratory的缩写,早期主要用于现代控制中复杂的矩阵、向量的各种运算。MATLAB以矩阵作为基本编程单元,它提供了各种矩阵的运算与操作,并有较强的绘图功能。本设计将围绕如何实现逆z变换的设计展开有关z变换和逆z变换的相关知识点介绍。并用求逆z变换的方法在MATLAB实现求逆z变换,即求得系统的响应。关键词:MATLAB、逆z变换、系统响应、极点目录1课题描述----------------------------------------------------------12设计原理----------------------------------------------------------12.1求逆Z变换的方法-----------------------------------------------12.1.1FT的逆变换为----------------------------------------------12.1.2ZT的逆变换为----------------------------------------------22.2系统稳定性----------------------------------------------------23设计过程----------------------------------------------------------23.1逆Z的定义-----------------------------------------------------23.1.1围线积分法-------------------------------------------------33.1.2留数定理--------------------------------------------------33.1.3部分分式展开法---------------------------------------------44设计内容----------------------------------------------------------55设计步骤----------------------------------------------------------56程序运行结果------------------------------------------------------7总结--------------------------------------------------------------9参考文献-----------------------------------------------------------10课程设计说明书(论文)11课题描述在时域离散信号和系统中,用序列的傅里叶变换进行频域分析,z变换则是其推广,用以对序列进行复频域分析。因此z变换在十字信号处理中同样起着很重要的作用。在数字信号中有时也用逆z变换求解相关题目。逆z变换定义为:已知序列的z变换X(z)及其收敛域,求其原序列x(n)的过程称为求逆z变换。计算逆z变换的方法有留数法、部分分式展开法和幂级数法(长除法)。MATLAB是MATrixLABoratory的缩写,早期主要用于现代控制中复杂的矩阵、向量的各种运算。MATLAB以矩阵作为基本编程单元,它提供了各种矩阵的运算与操作,并有较强的绘图功能。本课题主要是利用MATLAB求逆z变换的输出。在此顺便探讨一下系统的稳定性和稳定性及频率响应的特点。2设计原理2.1求逆z变换的方法用留数定理求z变换及其逆z变换表示如下:()()nnXzxnz//xxRzR(1-1)11()()2ncxnXzzdzj(,)xxcRR(2-2)2.1.1FT的逆变换为1()()2jjnxnXeed(2-3)用留数定理求其逆变换,或将z=ejω代入X(ejω)中,得到X(z)函数,再用求逆z变换的方法求原序列。注意收敛域要取能包含单位圆的收敛域,或者说封闭曲线c可取单位圆。课程设计说明书(论文)2例如,已知序列x(n)的傅里叶变换为1()1jjXeae||1a(2-4)求其反变换x(n)。将z=ejω代入X(ejω)中,得到因极点z=a,取收敛域为|z||a|,由X(z)很容易得到x(n)=anu(n)。2.1.2ZT的逆变换为11()()2ncxnXzzdzj(,)xxcRR(2-5)求Z变换可以用部分分式法和围线积分法求解。用围线积分法求逆z变换有两个关键。一个关键是知道收敛域以及收敛域和序列特性之间的关系,可以总结成几句话:①收敛域包含∞点序列是因果序列;②收敛域在某圆以内,是左序列;③收敛域在某圆以外,是右序列;④收敛域在整个z面,是有限长序列;⑤以上②、③、④均未考虑0与∞两点,这两点可以结合问题具体考虑。另一个关键是会求极点留数。2.2系统稳定性若H(z)满足|()|nhn,则说明系统是稳定的。若H(z)的收敛域包含在单位圆里,则系统是稳定的。如果系统因果且稳定,收敛域包含点和单位圆,那么收敛域可表示为:||rz,0r1这样H(z)的极点集中在单位圆的内部。具体系统的因果性和稳定性可有系统函数H(z)的极点分布和收敛域确定。3设计过程3.1逆z的定义求原程序的过程,称为逆z变换。实质上是求X(z)的幂级数展开式各项的系数。求逆z变换常用以下3种基本方法:*围线积分法111)(azzX课程设计说明书(论文)3课程设计说明书(论文)3*部分分式展开法*长除法(或幂级数展开法)3.1.1围线积分法11()()2nxnXzzdzj(3-1)式中,c是X(z)收敛域中一条包围原点的逆时针的闭合围线,如图所示图1围线积分路径求逆z变换时,直接计算围线积分是比较麻烦的,用留数定理求则很容易。下面介绍留数定理。3.1.2留数定理用F(z)表示被积函数:11()Re[(),]2nkkXzzdzsFzzj(3-2)式中,Res[F(z),kz]表示被积函数F(z)在极点kzz的留数,逆Z变换是围线c内所有的极点留数点之和。如果kz是单极点,则根据留数定理有Res[F(z),kz]=()()|kkzzzzFz(3-3)如果kz是m阶极点,则根据留数定理有课程设计说明书(论文)4Res[F(z),kz]=111[()()]|(1)kmmkzzmdzzFzNdz!(3-4)(3-4)式表明,对于m阶极点,需要求m-1次倒数,这是比较麻烦的。如果c内有多个极点,而c外没有多个极点,则可以根据留数辅助定理改求c外极点留数之和,是问题简单化。如果F(z)在平面上有N个极点,在收敛域内的封闭曲线c将z平面上的极点分成两部分:一部分是c内极点,设有1N个极点,用1kz表示;另一部分是c外极点,有2N个,用2kz表式。表示N=1N+2N。根据留数辅助定理,下式成立:12N1k121]),([Re]),([ResNkkkzzFszzF(3-5)3.1.3部分分式展开法对于大多数单节极点的序列,常常也用部分分式展开法求逆z变换。设x(n)的z变换X(z)是有理函数,分母多项式是N阶,分子多项式M阶,将X(z)展开成一些简单的常用的部分分式之和,通过查表(常见序列的z变换)求得各部分的逆变换,再相加便得到原序列x(n)。设X(z)只有N个一阶极点,可展成下式:01()NmmmAzXzAzz(3-6)01()NmmmAAXzzzzz(3-7)观察上式,X(z)/z在z=0的极点留数就是系数0A,在极点z=mz的留数就是系数mA。0()Re[,0]XzAsz(3-8)()Re[,0]mXzAsz(3-9)求出mA系数(m=0,1,2,···,N)后,根据公式可得x(n)序列。根据以上介绍的方法,可以用MATLAB求得逆Z变换后的序列。课程设计说明书(论文)54设计内容设系统函数为2115.02.223zzzzH,输入信号5,3,4,2nx,1:2n,用Z变换计算输出ny,ZYIZTny,并图示nx和ny。5设计步骤系统的方程式是分式可以根据逆z变换球系统的留数和极点编程如下:(1)b=[0,-3];a=[2,-2.2,0.5];%多项式的系数[r,p,c]=residuez(b,a);%求留数、极点和系数项disp('留数');disp(r');%显示输出参数disp('极点');disp(p');运行结果为:留数-3.27333.2733极点0.77910.3209(2)(2)由)(nx知道125342)(zzzzX故)()()()()(zAzBzzWzXzYnsy,其中:]5.0,2.2,2[])53,4,2[,3(convAB,,,nsy=分母分子多项式z的最高幂次之差。调用[r,p,k]=residuez(B,A),可由B,A求出r,p,k,进而求逆z变换,得)1()2()()1()()2()2()()1)(1()(nsynknsynknsynuprnsynurnynsynnsyn(5-1)1、求)(ny程序如下:clear,closeallx=[2,4,3,5];nsx=-1;%输入序列及初始时间nfx=nsx+length(x)-1;%计算序列终止时间课程设计说明书(论文)6Bw=-3;nsbw=-1;%系统函数的分子系数,及z的最高次数Aw=[2,-2.2,.5];nsaw=0%系统函数的坟墓系数,及z的最高次数B=conv(-3,x);%输入与分子z变换的多项式乘积A=Aw;%分母不变nsy=nsaw-(nsbw-nsx);%分子比分母z的次数高nsy[r,p,k]=residuez(B,A);%求留数r,极点p及直接项knf=input('终点时间nf=20');%要求键入终点