1、第第5章离散信号与系统的章离散信号与系统的时域分析时域分析 5.1离散信号5.2离散信号的基本运算及MATLAB实现5.3离散系统及其描述5.4离散系统的零输入响应5.5离散系统的单位样值响应5.6离散系统的零状态响应卷积和5.7离散系统响应的时域分析5.1离散信号离散信号 5.1.1离散信号概述离散信号概述在一些离散的瞬间才有定义的信号称为离散时间信号,简称为离散信号。这里“离散”是指信号的定义域时间是离散的,它只取某些规定的值。就是说,离散信号是定义在一些离散时间tn(n=0,1,2,3,)上的信号,在其余的时间,信号没有定义。时刻tn和tn+1之间的间隔Tn=tn+1-tn可以是常数,也
2、可以随n而变化,我们只讨论Tn等于常数的情况。若令相继时刻tn与tn+1之间的间隔为T,则离散信号只在均匀离散时刻t=,-2T,-T,0,T,2T,时有定义,它可以表示为f(nT)。为了方便,不妨把f(nT)简记为f(n),这样的离散信号也常称为序列。本书中序列与离散信号不加区别。一个离散时间信号f(n)可以用三种方法来描述。1.解析形式解析形式解析形式,又称闭合形式或闭式,即用一函数式表示。例如f1(n)=2(-1)n nnf21)(22.序列形式序列形式序列形式即将f(n)表示成按n逐个递增的顺序排列的一列有顺序的数。例如 序列下面的标记出n=0的位置。序列形式有时也表示为另一种形式,即在
3、大括号的右下脚处标出第一个样值点对应的序号n的取值。这种表示形式比较适合有始序列。例如 3.图形形式图形形式图形形式即信号的波形。例如上面f1(n)、f3(n)分别如图5-1(a)、(b)所示。图 5-1离散信号的波形5.1.2典型的离散信号典型的离散信号1.单位样值(Unit Sample)信号(n)(5-1)(n)的波形如图5-2(a)所示。图 5-2(n)、(n-m)和(n+m)的波形此序列只在n=0处取单位值1,其余样点上都为零。(n)也称为“单位取样”、“单位函数”、“单位脉冲”或“单位冲激”。(n)对于离散系统分析的重要性,类似于(t)对于连续系统分析的重要性,但(t)是一种广义函
4、数,可理解为在t=0处脉宽趋于零,幅度为无限大的信号;而(n)则在n=0处具有确定值,其值等于1。发生在n=m和n=-m的单位样值信号分别表示为(5-2)(5-3)它们的波形分别如图5-2(b)、(c)所示。2.单位阶跃序列U(n)(5-4)U(n)的波形如图5-3(a)所示。像U(n)这样的信号,只在n0时才有非零值,称为因果信号或因果序列;而只在n0时才有非零值的信号,称为反因果序列;只在n1nn2才有非零值的信号,称为有限长序列。相应地,移位(延时)单位阶跃序列U(n-m)定义为 U(n-m)的波形如图5-3(b)所示。(5-5)图 5-3U(n)和U(n-m)(m=”来实现这个序列,将
5、【例5-1】程序中的第2行语句换成关系运算语句“un=(n=0)”即可。语句“un=(n=0)”的返回值是由“0”和“1”组成的向量,当n0时,返回值为“1”;当n=0);要用上述函数表示矩形序列G6(n),可以把【例5-3】程序中的第2行语句写成rn=un(n)-un(n-6);程序运行结果与【例5-3】相同。4.斜变序列斜变序列斜变序列的函数表达式为x(n)=nU(n)【例5-4】绘制0n5范围内的斜变序列的波形。解设已经创建了M文件un.m,MATLAB程序如下:%program ch5-4 n=-2:5;xn=n.*un(n);stem(n,xn);xlabel(n);ylabel(x
6、(n);title(x(n)=nu(n);grid on;运行结果如图5-9所示。图 5-9斜变序列5.2离散信号的基本运算及离散信号的基本运算及MATLAB实现实现 像连续信号一样,离散信号也可以进行相应的变换和运算,这里只介绍利用MATLAB实现对离散信号的基本变换和运算。【例5-5】离散信号的定义如下:定义信号时间变量范围是-3n7,用MATLAB表示y1(n)=x(n-2)、y2(n)=x(-n)和y3(n)=x(-n+1),并画出各信号的波形。解y1(n)=x(n-2)相当于把信号x(n)右移2个单位,y2(n)=x(-n)相当于把信号x(n)反折,y3(n)=x(-n+1)相当于把
7、信号x(n)左移1个单位再反折,MATLAB程序如下:%program ch5-5nx=-3:7;x=zeros(1,3)201-13zeros(1,3);subplot(2,2,1);stem(nx,x);title(x(n);xlabel(n);ny1=nx+2;%时移-1:9ny2=-nx;%反折ny3=-(nx-1);y1=x;y2=x;y3=x;subplot(2,2,3);stem(ny1,y1);title(y_1(n)=x(n-2);xlabel(n);subplot(2,2,2);stem(ny2,y2);title(y_2(n)=x(-n);xlabel(n);subplo
8、t(2,2,4);stem(ny3,y3);title(y_3(n)=x(-n+1);xlabel(n);该程序是通过改变信号向量和时间向量的对应关系来进行自变量的变换的,以y1(n)=x(n-2)为例,将信号x(n)向右移动2个单位就相当于把时间样本与信号样本的对应位置向右移动2个单位,另外两个变换可以进行类似的处理。各信号的波形如图5-10所示。图 5-10【例5-5】信号x(n)的波形变换利用MATLAB的函数功能,同样可实现离散信号的产生及其基本运算。利用MATLAB可以实现有限区间上的(n)或(n-n0),可以用以下函数来实现:functionx,n=delta(n0,n1,n2)%
9、generate delta(n-n0);n1=n=n2;n=n1:n2;x=n=n0;if nargout1 stem(n,x);end 可以用如下的函数产生在n1nn2间的阶跃序列。functionx,n=stepN(n0,n1,n2)%generate U(n-n0),n1=n=n0;if nargout=n1(1)&n=n2(1)&n=n2(end)=f2;y=y1+y2;序列移位后,样本向量并没有变化,只是位置向量变了,任意序列的移位可以用以下函数来实现:functiony,n=sigshift(x,m,n0)%y=x(n-n0);y=x;n=m+n0;可以用以下函数实现序列的反折运
10、算y(n)=f(-n):functiony,n=sigfold(x,n)%y(n)=x(-n);y=fliplr(x);n=-fliplr(n);【例5-6】设f(n)=-1,2,2,3-1,用(n)及其移位信号表示f(n),试用MATLAB实现。解MATLAB实现代码如下:%program ch5-6%用常规的方法表示f(n)n=-1:2;f=-1,2,2,3;subplot(2,1,1);stem(n,f)title(f(n)的常规表示法);%用(n)表示f(n)clear f,n;n1=-1;n2=2;f=-1*delta(-1,n1,n2)+2*delta(0,n1,n2)+2*del
11、ta(1,n1,n2)+3*delta(2,n1,n2);n=n1:n2;subplot(2,1,2);stem(n,f)title(f(n)用(n)表示);运行结果如图5-11所示。图 5-11【例5-6】图【例5-7】f(n)=G4(n),求 和f(2n)。用MATLAB实现。解MATLAB实现代码如下:%program ch5-7n=-2:8;f=0,0,1,1,1,1,0,0,0,0,0;subplot(3,1,1);stem(n,f);title(f(n);nf21n1=-2:8;n=2*n1;subplot(3,1,2);stem(n,f);title(f(1/2*n);clear
12、 n;n2=-2:8;n=1/2*n2;k=1;for m=1:length(n)if rem(n(m),1)=0;ff(k)=f(m);%取出为整数的n值,形成新的序列和向量nn(k)=n(m);k=k+1;endendsubplot(3,1,3);stem(nn,ff);title(f(2*n);运行结果如图5-12所示。图 5-12【例5-7】图5.3离散系统及其描述离散系统及其描述 若系统的输入和输出都是离散信号,则称该系统为离散时间系统,简称离散系统,如图5-13所示。图5-13中f(n)是输入(激励),y(n)是输出(响应)。图 5-13离散时间系统描述离散系统的方法也有两种:数学
13、模型和模拟框图。下面就来讨论这两种描述方法。【例5-8】某人从当月起每月初到银行存款f(n)(元),月息r=1%。设第n月初的总存款数为y(n)元,试写出描述总存款数与月存款数关系的方程式。解第n月初的总存款数应由三项组成,即第n月初之前的总存款数y(n-1)、第n月初存入的存款数f(n)和第n月初之前的利息ry(n-1)。所以有y(n)=(1+r)y(n-1)+f(n)即y(n)-(1.01)y(n-1)=f(n)这是一个一阶常系数的差分方程。事实上,一个N阶线性离散系统可以用N阶线性差分方程来描述。差分方程有前向差分方程和后向差分方程两种。N阶前向差分方程的一般形式为y(n+N)+aN-1
14、y(n+N-1)+a0y(n)=bMf(n+M)+bM-1f(n+M-1)+b0f(n)(5-11)N阶后向差分方程的一般形式为 y(n)+a1y(n-1)+aNy(n-N)=b0f(n)+b1f(n-1)+bMf(n-M)(5-12)其中a0aN,b0bM都是常数。后向差分方程和前向差分方程并无本质上的差异,用哪种方程描述离散系统都是可以的,但考虑到通常研究的LTI离散系统的输入、输出信号多为因果信号(f(n)=0,y(n)=0,n0),故在系统分析中一般采用后向差分方程。差分方程即为描述离散系统的数学模型。除了利用差分方程描述离散系统之外,还可以借助模拟框图描述。与描述连续系统相类似,也是
15、用一些基本运算单元构成描述系统的模拟框图。表5-1给出了描述离散系统的基本运算单元及其输入、输出关系。表表5-1描述离散系统常用的基本运算单元描述离散系统常用的基本运算单元【例5-9】某离散系统的模拟框图如图5-14所示,写出该系统的差分方程。图 5-14【例5-9】的模拟框图解系统模拟框图中有两个延迟单元,所以该系统是二阶系统。由各运算单元的输入输出关系可知,若输出设为y(n),则图中两个延迟单元的输出分别为 和 。从加法器的输出可得)1(61ny)2(61ny整理得y(n)+5y(n-1)+4y(n-2)=6f(n)5.4离散系统的零输入响应离散系统的零输入响应 LTI离散系统用常系数线性
16、差分方程描述,要求出系统响应,便要解此差分方程。一个N阶离散系统的差分方程的一般形式可表示为y(n)+a1y(n-1)+aNy(n-N)=b0f(n)+b1f(n-1)+bMf(n-M)或(5-13)其中,ak、bl为常数,y(n)的最大位移N称为此差分方程的阶数,也称为系统的阶数。5.4.1离散系统的零输入响应求解离散系统的零输入响应求解离散系统的响应y(n)也可分解为零输入响应和零状态响应之和。零输入响应是激励为零时仅由初始状态引起的响应,用yx(n)表示。下面,就以几个例子说明零输入响应的求解方法。【例5-10】已知一系统的差分方程为y(n)-3y(n-1)+2y(n-2)=f(n-1)
17、-3f(n-2)yx(0)=0,yx(1)=1,求yx(n)。解特征方程为2-3+2=0解得特征根为1=1,2=2,是两不等单根,所以代入初始条件计算C1,C2,得 所以yx(n)=-1+2n,n0【例5-11】已知一系统的差分方程为y(n+4)-2y(n+3)+2y(n+2)-2y(n+1)+y(n)=f(n+2)yx(1)=1,yx(2)=0,yx(3)=1,yx(5)=1,求yx(n)。解差分方程的特征方程为4-23+22-2+1=0解得特征根为1=2=1(二重根),3=j,4=-j,所以代入初始值,可以得到 C1+C2+j(C3-C4)=yx(1)=1 2C1+C2-(C3+C4)=y
18、x(2)=0 3C1+C2-j(C3-C4)=yx(3)=1 5C1+C2+j(C3-C4)=yx(5)=1 由此方程组解得 所以【例5-12】因果系统的差分方程为y(n)+2y(n-1)=f(n),其中,激励信号f(n)=U(n),且已知y(0)=-1,求系统的零输入响应。解已知特征根为=-2,所以yx(n)=C(-2)n,n0因为n=0时,y(0)=-2y(-1)+f(0)=-2y(-1)+1所以yx(0)y(0)。为此,先求出y(-1)。1)0()0(21)1(yfy当n=-1时,f(n)=0,故yx(-1)=y(-1),因此,根据齐次方程即可得到yx(0)=-2yx(-1)=-2y(-
19、1)=-2将此“零输入”下的初始条件代入yx(n),得C=yx(0)=-2于是yx(n)=-2(-2)n=(-2)n+1,n0 5.4.2用用MATLAB求解离散系统的零输入响应求解离散系统的零输入响应【例5-13】用MATLAB求解【例5-10】。解求解代码如下:%program ch5-13 n=0:15;yx(1)=0;yx(2)=1;%设定初始条件 for m=3:length(n)yx(m)=3*yx(m-1)-2*yx(m-2);%递推求解end stem(n,yx);运行结果如图5-15所示。图 5-15【例5-13】运行结果【例5-14】用MATLAB实现【例5-12】。解求解
20、代码如下:%program ch5-14f n1=stepN(0,0,15);subplot(2,1,1);stem(n1,f);title(f(n);n2=n1;y0=-1;f0=f(1);y_1=1/2*(f0-y0);yx_1=y_1;yx0=-2*yx_1;%求yx0yx(1)=yx0;%设定初始状态for m=2:length(n2)yx(m)=-2*yx(m-1);endsubplot(2,1,2);stem(n2,yx);title(yx(n);运行结果如图5-16所示。图 5-16【例5-14】图5.5离散系统的单位样值响应离散系统的单位样值响应 5.5.1单位样值响应的定义及
21、求解单位样值响应的定义及求解当激励信号为(n)时系统的零状态响应称为单位样值响应,用h(n)表示。这里顺便指出,当激励为U(n)时系统的零状态响应称为单位阶跃响应,用g(n)表示。h(n)与g(n)的示意图如图5-17所示。图 5-17单位样值响应与单位阶跃响应下面仅讨论因果离散LTI系统的单位样值响应。【例5-15】已知某因果系统的差分方程为y(n)+3y(n-1)+2y(n-2)=2f(n-1)+f(n-2)求该系统的单位样值响应h(n)。解(1)设h1(n)为系统y(n)+3y(n-1)+2y(n-2)=f(n)的单位样值响应,易知特征根为1=-1,2=-2,所以初始条件为h1(-1)=
22、h2(-2)=0因此h1(0)=-3h1(-1)-2h1(-2)+(0)=1h1(1)=-3h1(0)-2h1(-1)+(1)=-3 由此得到求系数C1,C2的方程组解得C1=-1,C2=2所以h1(n)=(-1)n+1+2(-2)nU(n)(2)根据线性时不变性质,原系统的单位样值响应为h(n)=2h1(n-1)+h1(n-2)=2(-1)n+2(-2)n-1U(n-1)+(-1)n-1+2(-2)n-2U(n-2)=0.5(n)+(-1)nU(n)-1.5(-2)nU(n)【例5-16】某因果系统差分方程式为y(n)-2y(n-1)+y(n-2)=f(n),求系统的单位样值响应。解系统的特
23、征方程为2-2+1=0,特征根1=2=1。于是h(n)可表示为h(n)=(C1n+C2)U(n)由h(-1)=h(-2)=0,所以h(0)=2h(-1)-h(-2)+(0)=1h(1)=2h(0)-h(-1)+(1)=2于是得到求系统C1,C2的方程为解得C1=1,C2=1因此h(n)=(n+1)U(n)在连续时间系统中曾利用系统函数求拉氏逆变换的方法确定冲激响应h(t),与此类似,在离散时间系统中,也可利用系统函数求逆z变换来确定单位样值响应。一般情况下,这是一种较为简便的方法,将在第6章详述。21212CCC5.5.2用用MATLAB求解离散系统的单位样值响应求解离散系统的单位样值响应 M
24、ATLAB提供了函数impz求解离散系统的样值响应,其一般调用方式为H,T=impz(b,a,N)其中,H是系统的单位样值响应,T是输出序列的位置向量,a,b分别是系统差分方程左、右端的系数向量,N是样值响应的位置向量,如果N是整数,T=0 N-1,否则N为向量时T=N。【例5-17】已知因果系统的差分方程为y(n)-1.4y(n-1)+0.48y(n-2)=2f(n),求单位样值响应h(n),并与理论值比较。解h(n)的理论值可以求得为h(n)=8(0.8)n-6(0.6)n,n0用MATLAB求h(n)的代码如下。%program ch5-17b=2;a=1-1.4 0.48;n=0:15
25、;h=impz(b,a,n);hk=8*0.8.n-6*0.6.n;subplot(2,1,1);stem(n,hk);title(h(n)in theory);subplot(2,1,2);stem(n,h);title(h(n)computed by MATLAB);运行结果如图5-18所示。图 5-18【例5-17】图【例5-18】用MATLAB求解【例5-15】。解求解的代码如下:%program ch5-18n=0:15;a=1 3 2;b=0 2 1;h=impz(b,a,n);subplot(2,1,1);stem(n,h)title(h(n)computed by MATLAB
26、);h1=0.5*delta(0,n(1),n(end)+(-1).n.*stepN(0,n(1),n(end)-1.5*(-2).n.*stepN(0,n(1),n(end);subplot(2,1,2);stem(n,h1);title(h(n)in theory);运行结果如图5-19所示。图 5-19【例5-18】图【例5-19】用MATLAB求解【例5-16】。解求解代码如下:%program ch5-19n=0:15;a=1-3/5-4/25;b=1;h=impz(b,a,n);stem(n,h);title(h(n);运行结果如图5-20所示。图 5-20【例5-19】运行结果5
27、.6离散系统的零状态响应离散系统的零状态响应卷积和卷积和 与连续系统类似,当系统初始状态为零,仅由输入f(n)所引起的响应称为零状态响应,用yf(n)表示,如图5-21所示。下面讨论LTI离散系统对任意输入的零状态响应。图 5-21离散系统的零状态响应 5.6.1卷积和的定义卷积和的定义任何离散信号f(n)都可以看成是(n)的移位相加所构成,即(5-14)在LTI连续时间系统中,首先把激励信号分解为一系列冲激函数的叠加,然后求出各个冲激函数单独作用于系统时的响应,最后把这些响应叠加即可得到系统对该信号的零状态响应。这个叠加的过程表现为求卷积积分。在LTI离散系统中,可以采用大致相同的方法进行分
28、析。由式(5-14)可知,任意离散信号均可分解为一系列移位样值信号的叠加。如果系统的单位样值响应已知,那么,由时不变性不难求得每个移位样值信号作用于系统的响应。把这些响应相加就得到系统对于该信号的零状态响应。这个相加过程表现为求“卷积和”。将式(5-14)重写得=+f(-2)(n+2)+f(-1)(n+1)+f(0)(n)+f(1)(n-1)+(5-15)因为(n)作用下的零状态响应为h(n),表示为(n)h(n)根据LTI系统的线性和时不变性,有f(-2)(n+2)f(-2)h(n+2)f(-1)(n+1)f(-1)h(n+1)f(0)(n)f(0)h(n)f(1)(n-1)f(1)h(n-
29、1)f(m)(n-m)f(m)h(n-m)所以f(n)激励下系统的零状态响应为 即 记(5-16)则称式(5-16)为f(n)与h(n)的卷积和,仍简称为卷积。于是得到yf(n)=f(n)*h(n)(5-17)这便得LTI离散系统在任意激励下零状态响应的时域计算公式。公式表明零状态响应等于激励信号和系统单位样值响应的卷积。对式(5-16)进行变量置换可得到卷积和的另一种表示(5-18)这表明,两序列进行卷积的次序是无关紧要的,可以互换。卷积和公式(5-16)可以推广至任意两个序列的情形,即任意两个序列f1(n)和f2(n)的卷积定义为(5-19)若记 Wn(m)=f1(m)f2(n-m)式中m
30、为自变量,n看做常量,那么(5-20)如果序列f1(m)为因果序列,即有n0,f1(n)=0,则式(5-19)中求和下限可改写为零,于是(5-21)如果f1(n)不受限制,而f2(n)为因果序列,那么式(5-20)中,当n-mn时,f2(n-m)=0,因而求和的上限可改写为n,故(5-22)如果f1(n),f2(n)均为因果序列,则(5-23)表明两因果序列的卷积仍为因果序列。5.6.2卷积和的性质卷积和的性质1.交换律交换律f1(n)*f2(n)=f2(n)*f1(n)(5-24)式(5-24)说明,输入为f1(n)而单位样值响应为f2(n)的系统的响应,与输入为f2(n)而单位样值响应为f
31、1(n)的系统的响应完全一样。2.分配律分配律f1(n)*f2(n)+f3(n)=f1(n)*f2(n)+f1(n)*f3(n)(5-25)式(5-25)可直接由卷积的定义证明(略)。卷积和的分配律说明,图5-22(a)所示的并联系统,可以用图5-22(b)所示的单个系统来等效,图5-22(b)的单位样值响应h(n),是图5-22(a)中并联的各子系统单位样值响应h1(n)与h2(n)之和。即h(n)=h1(n)+h2(n)图 5-22卷积和的分配律3.结合律结合律f1(n)*f2(n)*f3(n)=f1(n)*f2(n)*f3(n)=f2(n)*f1(n)*f3(n)(5-26)结合律说明,
32、一个级联的LTI离散系统,一般也可以随意交换级联的次序而不影响结果。图5-23正说明了这一点。因为f1(n)*h1(n)*h2(n)*h3(n)=f1(n)*h2(n)*h3(n)*h1(n)图 5-23卷积和的结合律4.序列与序列与(n)的卷积的卷积f(n)*(n)=f(n)(5-27)同样f(n)*(n-m)=f(n-m)(5-28)5.移不变性移不变性若f1(n)*f2(n)=y(n)则 f1(n-m)*f2(n+k)=y(n-m+k)(5-29)6.序列与单位阶跃序列的卷积序列与单位阶跃序列的卷积(5-30)证明:根据卷积和的定义有 特别,若f(n)为因果序列时5.6.3卷积和的计算卷
33、积和的计算1.定义法定义法例5-20】求序列f(n)与(n)的卷积和。解根据卷积和的定义有【例5-21】求序列与单位阶跃序列的卷积和。解根据卷积和的定义有 特别,若f(n)为因果序列时,有2.图解法图解法利用式(5-14)计算卷积时,参变量n的不同取值往往会使实际的求和上、下限发生变化。因此,正确划分n的不同区间并确定相应的求和上、下限是十分关键的步骤。这可以借助作图的方法解决,故称为图解法。图解法计算f1(n)与f2(n)卷积的过程如下。(1)以m为自变量作出f1(m)和f2(n-m)的信号波形。其中f2(n-m)是先将f2(m)反折得到f2(-m),然后将f2(-m)平移n得到(n0时,f
34、2(-m)向右移n个单位;n0时,f2(-m)向左移|n|个单位)。(2)从负无穷处(即n=-)将f2(n-m)逐渐向右移动,根据f2(n-m)与f1(m)波形重叠的情形划分n的不同区间,确定各区间上Wn(m)的表达式以及相应的求和上、下限。(3)对每个区间,将相应的Wn(m)对m求和,得到该区间的卷积和f(n)。【例5-22】已知f(n)=U(n-1)-U(n-8),求y(n)=f(n)*h(n)。解用图解法求解。(1)作出f(m)和h(n-m)的波形如图5-24(a)所示。(2)当n1,Wn(m)=0,故y(n)=0,如图5-24(b)所示。(3)当1n3时,Wn(m)表示式为)3()(2
35、1)(nUnUnh所以波形如图5-24(c)所示。(4)当3n9时,Wn(m)=0,故y(n)=0。将上述结果综合起来,得 其波形如图5-24(f)所示。图5-24例5-22图3.竖乘法竖乘法(对位相乘求和对位相乘求和)我们仅以【例5-22】所给定的信号来说明这种方法的求解过程。首先将f(n)和h(n)分别表示为f(n)=1,1,1,1,1,1,1 1 然后将两序列样值以各自n的最高值按右端对齐,如下排列并做乘法 乘积的结果便是序列y(n)的各样值,且y(n)的起始点坐标为两序列起始点坐标之和。即 结果与【例5-22】完全相同。与作图法相比,当两序列是有限长序列时,竖乘法更为便捷。但值得注意的
36、是,在用竖乘法过程中,不能进位。4.利用性质利用性质将两信号分别用(n)的移位加权和来表示,再利用卷积和的性质来计算。仍以【例5-22】所给定的信号说明这种方法的计算过程。f(n)可以表示为f(n)=(n-1)+(n-2)+(n-7)h(n)可以表示为 于是5.6.4卷积和及系统零状态响应的卷积和及系统零状态响应的MATLAB实现实现1.离散系统零状态响应的离散系统零状态响应的MATLAB求解求解MATLAB中的函数filter可以用来计算离散系统的零状态响应,其一般调用方式为y=filter(b,a,x)其中,x是输入序列,y是与x等长的输出序列,a,b分别是差分方程左、右两端的系数向量。【
37、例5-23】已知系统差分方程为y(n)-0.9y(n-1)=f(n),求系统的零状态响应并绘图表示。解求解的MATLAB代码如下:%program ch5-23b=1;a=1-0.9;n=0:30;f=cos(pi*n/3);y=filter(b,a,f);stem(n,y);运行结果如图5-25所示。)(3cos)(nUnnf图 5-25【例5-23】图 2.卷积和的计算卷积和的计算离散系统的零状态响应也可用卷积和来求得,MATLAB中提供了conv函数用于计算卷积和,它也可以用来计算多项式相乘。其调用方式为y=conv(x,h)其中,x,h是做卷积的序列,y是卷积的结果。【例5-24】用卷
38、积和的方法求上例的零状态响应,并与上面结果比较。解实现代码如下:%program ch5-24b=1;a=1-0.9;n=0:30;h=impz(b,a,n);f=cos(pi*n/3);y1=conv(f,h);%k=0:(length(h)+length(f)-1)-1);subplot(2,1,1);stem(n,y1(1:length(n);title(zero state response computed by conv);y2=filter(b,a,f);subplot(2,1,2);stem(n,y2);title(zero state response computed by
39、 filter);运行结果如图5-26所示。图 5-26【例5-24】图【例5-25】用MATLAB实现【例5-22】。解实现代码如下:%program ch5-25n1=1:7;f=ones(1,7);n2=0:2;h=1/2 1/2 1/2;y=conv(f,h);%n=1:length(y)-1;n=n1(1)+n2(1):n1(end)+n2(end)stem(n,y);运行结果如图5-27所示。图 5-27【例5-25】运行结果5.7离散系统响应的时域分析离散系统响应的时域分析 5.7.1离散系统的时域分析离散系统的时域分析LTI离散系统的时域分析是将响应分解为零输入响应yx(n)和
40、零状态响应yf(n)之和,分别求出系统的yx(n)和yf(n),两者相加即为系统的全响应y(n)=yx(n)+yf(n)(5-31)其中下面举例说明时域分析的过程。【例5-26】已知因果系统的差分方程为y(n)-2.5y(n-1)+y(n-2)=f(n),且y(-1)=2,y(-2)=-1。求f(n)=U(n)时系统的全响应。解(1)求yx(n)。易知特征方程为2-2.5+1=0,解得特征根1=0.5,2=2,所以yx(n)=C1(0.5)n+C22n,n0因为yx(n)的表达式只适用于n0,而题设初始条件为y(-1),y(-2),故先由齐次差分方程用迭代求出yx(0)和yx(1),再代入上式
41、求C1和C2。因为n0时,f(n)=0,所以yx(-1)=y(-1)=2,yx(-2)=y(-2)=-1,由齐次差分方程可得yx(0)=2.5yx(-1)-yx(-2)=6yx(1)=2.5yx(0)-yx(-1)=13代入yx(n)表达式中,得 解此方程组,得故(2)求yf(n)。首先求单位样值响应h(n)。由差分方程可知h(n)与yx(n)有相同的函数形式,所以h(n)=C1(0.5)n+C22n,n0因为h(n)是零状态响应,所以h(-1)=h(-2)=0,从而h(0)=2.5h(-1)-h(-2)+(0)=1h(1)=2.5h(0)-h(-1)+(1)=2.5 代入h(n)表达式,有解
42、得 所以于是(利用式(5-23)利用等比数列求和公式可得 所以【例5-27】已知因果系统的差分方程为y(n)+3y(n-1)+2y(n-2)=f(n),y(0)=0,y(1)=2,f(n)=2nU(n),求y(n)。解(1)求yx(n)。易求得特征根为1=-1,2=-2,故yx(n)=C1(-1)n+C2(-2)n,n0 本例中yx(0)y(0),yx(1)y(1),因此不能将y(0)=0,y(1)=2代入yx(n)中求C1和C2。要求C1和C2,必须求出yx(n)的两个初始条件。因为 将y(0)=0,y(1)=2代入可解得因为n0时,f(n)=0,故此时yx(-1)=y(-1)=0,代入yx
43、(n)中,得21)2()2(yyx02121CC214121CC解得 C1=1,C2=-2则 yx(n)=(-1)n+(-2)n+1,n-2 从严格意义上讲,yx(n)应为式,但为了方便,往往将yx(n)限定为n0。故yx(n)=(-1)n+(-2)n+1,n0(2)求yf(n)。先计算单位样值响应h(n)。易知h(n)具有以下形式h(n)=C1(-1)n+C2(-2)nU(n)而初始条件h(-1)=h(-2)=0由差分方程可得h(0)=-3h(-1)-2h(-2)+(0)=1h(1)=-3h(0)-2h(-1)+(1)=-3代入h(n)表达式,得所以h(n)=(-1)n+1+2(-2)nU(
44、n)所以于是【例5-28】已知因果系统的差分方程为y(n)-2y(n-1)=f(n-1),求f(n)=U(n+1)-U(n-2)作用下系统的零状态响应。解设系统y(n)-2y(n-1)=f(n)的单位样值响应为h1(n),则h(n)=h1(n-1)。易知h1(n)=C(2)nU(n),h1(-1)=0,h1(0)=2h1(-1)+(0)=1代入h1(n)得C=1h1(n)=2nU(n)从而h(n)=h1(n-1)=2n-1U(n-1)所以yf(n)=f(n)*h(n)=2n-1U(n-1)*U(n+1)-U(n-2)令y1(n)=2nU(n)*U(n)则由卷积的时不变性质可得5.7.2离散系统
45、时域分析的离散系统时域分析的MATLAB实现实现用MATLAB的filter函数可以求线性时不变离散系统在任意输入作用下的响应。如果系统差分方程如式(5-13)所示,系统ak(k=0,1,N)和bl(l=0,1,M)存在向量a=aa1a2aN和b=bb1b2bM中,区间nxnnx+Nx-1内的输入信号f(n)用向量x表示,一般nx=0,设系统为零状态,那么命令y=filter(b,a,x)就得到系统的输出。用这个命令产生的输出向量y包含的样本区间的范围与向量x定义的区间范围是一样的。如果系统为非零状态的,filter函数在计算出向量y的第1个输出值y(nx)时,需要输入信号x(n)在nx-Mn
46、nx-1范围内的值,以及y(n)在nx-Nnnx-1范围内的值,即系统的初始状态。如果不给出这些值,filter函数假设这些样本值全都为零。因此,在求有初始状态的系统的响应时,用命令y=filter(b,a,x,zi)得到差分方程的输出,其中,向量zi表示系统的初始状态,要用状态方程获得。基于filter函数的这些特征,它不仅可以用于计算离散系统在任意输入作用下的零状态响应,还可以用于计算离散系统在任意输入作用下的非零状态的响应,即全响应。【例5-29】离散系统的差分方程为y(n)-0.8y(n-1)=2x(n)。(1)输入信号x(n)=nU(n),取x(n)的范围是0n5,用filter函数
47、求解系统的零状态响应。(2)输入信号同(1),y(-1)=2,用filter函数求解系统的全响应。解(1)求系统零状态响应的MATLAB程序如下:%program ch5-29-1n=0:5;a=1-0.8;b=2;x=n;yzs=filter(b,a,x)得到yzs的输出结果为yzs=02.00005.600010.480016.384023.1072(2)求系统全响应的MATLAB程序如下:%program ch5-29-2n=0:5;a=1-0.8;b=2;x=n;zi=0.8*2;y=filter(b,a,x,zi)得到y的输出结果为y=1.60003.28006.624011.299
48、217.039423.6315(3)题中给出的是一个非零初始状态的系统,在用filter函数时,需要给出初始状态向量zi。这个系统是一阶的,又因为n0时,x(n)=0,所以zi=-a1*y-1,即zi=0.8*2。【例5-30】用MATLAB求解【例5-26】。解求解的代码如下:%program ch5-30n1=0:15;f=ones(1,length(n1);n2=n1;f0=f(1);f1=f(2);y0=2.5*2-(-1)+f0;y1=2.5*y0-2+f1;y(1)=y0;y(2)=y1;for m=3:length(n2)y(m)=2.5*y(m-1)-y(m-2)+f(m);e
49、ndsubplot(2,1,1);stem(n1,f);title(f(n)subplot(2,1,2);stem(n2,y);title(y(n);运行结果如图5-28所示。图 5-28【例5-30】图【例5-31】用MATLAB求解【例5-27】。解求解的代码如下:%program ch5-31n1=0:15;f=2.n1;subplot(2,1,1);stem(n1,f);title(f(n)n2=n1;f0=0;f1=2;y(1)=y0;y(2)=y1;for m=3:length(n1)y(m)=-3*y(m-1)-2*y(m-2)+f(m);endsubplot(2,1,2);stem(n2,y);title(y(n);运行结果如图5-29所示。图 5-29【例5-31】【例5-32】用MATLAB求解【例5-28】。解求解的代码如下:%program ch5-32n1=-1:10;f=1 1 1 zeros(1,9);subplot(2,1,1);stem(n1,f);title(f(n);a=1-2;b=0 1;y=filter(b,a,f);n2=n1;subplot(2,1,2);stem(n2,y);title(y(n);运行结果如图5-30所示。图 5-30【例5-32】图
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。