《信号与系统分析》课件第5章_第1页
《信号与系统分析》课件第5章_第2页
《信号与系统分析》课件第5章_第3页
《信号与系统分析》课件第5章_第4页
《信号与系统分析》课件第5章_第5页
已阅读5页,还剩154页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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可以是常数,也可以随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

2.序列形式序列形式即将f(n)表示成按n逐个递增的顺序排列的一列有顺序的数。例如序列下面的↑标记出n=0的位置。序列形式有时也表示为另一种形式,即在大括号的右下脚处标出第一个样值点对应的序号n的取值。这种表示形式比较适合有始序列。例如

3.图形形式

图形形式即信号的波形。例如上面f1(n)、f3(n)分别如图5-1(a)、(b)所示。图5-1离散信号的波形5.1.2典型的离散信号

1.单位样值(UnitSample)信号δ(n)(5-1)δ(n)的波形如图5-2(a)所示。图

5-2

δ(n)、δ(n-m)和δ(n+m)的波形此序列只在n=0处取单位值1,其余样点上都为零。δ(n)也称为“单位取样”、“单位函数”、“单位脉冲”或“单位冲激”。δ(n)对于离散系统分析的重要性,类似于δ(t)对于连续系统分析的重要性,但δ(t)是一种广义函数,可理解为在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)这样的信号,只在n≥0时才有非零值,称为因果信号或因果序列;而只在n<0时才有非零值的信号,称为反因果序列;只在n1≤n≤n2才有非零值的信号,称为有限长序列。相应地,移位(延时)单位阶跃序列U(n-m)定义为U(n-m)的波形如图5-3(b)所示。(5-5)图

5-3

U(n)和U(n-m)(m<0)的波形3.矩形序列GN(n)(5-6)GN(n)的波形如图5-4所示。图

5-4

GN(n)的波形以上三种序列之间有如下关系:(5-7)(5-8)(5-9)4.单边指数序列anU(n)f(n)=anU(n)

(5-10)anU(n)的波形如图5-5所示。此外,还有因果斜升序列nU(n),正弦(余弦)序列sinω0n或cosω0h等。图5-5

anU(n)的波形5.1.3典型离散信号的MATLAB表示在MATLAB中,离散信号用一个行向量或一个列向量表示。在MATLAB中向量是从1开始编导的,即x(1)是x向量的第1个元素。在表示信号或信号运算时,如果这些编号与所需要的信号标号不能对应,可以创建另外一个标号向量,使信号的标号与实际情况一致。MATLAB软件具有强大的绘图功能,可以用MATLAB中的函数表示离散信号并绘制出离散信号的波形。下面介绍基本的离散信号和它们的MATLAB表示。1.单位阶跃序列单位阶跃序列的函数表达式为用MATLAB中的全0矩阵函数zeros(1,N)和全1矩阵函数ones(1,N)可以表示出单位阶跃序列。MATLAB只能表示有限长的序列,对于单位阶跃序列这样的无限长序列可以取一个有限长的范围,把这个范围内的信号表示出来。【例5-1】绘制单位阶跃序列U(n)的波形。解MATLAB程序如下:

%programch5-1

n=[-2:10];

un=[zeros(1,2)ones(1,11)];

stem(n,un);

xlabel(′n′);ylabel(′u(n)′);

gridon;

axis([-2

10

-0.2

1.2])运行结果如图5-6所示。图5-6单位阶跃序列根据单位阶跃序列的特点,还可以用MATLAB中的关系运算符“>=”来实现这个序列,将【例5-1】程序中的第2行语句换成关系运算语句“un=(n>=0)”即可。语句“un=(n>=0)”的返回值是由“0”和“1”组成的向量,当n≥0时,返回值为“1”;当n<0时,返回值为“0”。程序运行结果与【例5-1】相同。需要注意的是,这种方法得到的“un”是一个由逻辑量组成的向量,在数值计算时需要变换成数值型的向量。2.单位样值信号单位样值信号的函数表达式为

MATLAB中的全0矩阵函数zeros(1,N)可以用来实现单位样值信号。MATLAB中的关系运算符“==”也可以实现这个序列。【例5-2】绘制单位样值信号δ(n)的波形。解MATLAB程序如下:

%programch5-2

n=[-5:5];

xn=[zeros(1,5)

1

zeros(1,5)];

stem(n,xn);

xlabel(′n′);ylabel(′\delta(n)′);

gridon;

axis([-5

5

-0.2

1.2])运行结果如图5-7所示。图5-7单位样值信号3.矩形序列矩形序列的函数表达式为矩形序列从n=0开始,到n=N-1为止,共有N个幅度为1的函数值,其余各点数值为0。矩形序列可以用阶跃序列表示为GN(n)=U(n)-U(n-N)所以,用MATLAB表示矩形序列的方法可以参考阶跃序列的表示方法。【例5-3】绘制矩形序列G6(n)的波形。解MATLAB程序如下:

%programch5-3n=[-2:10];rn=[zeros(1,2)

ones(1,6)

zeros(1,5)];stem(n,rn);xlabel(′n′);ylabel(′G_6(n)′);gridon;axis([-2

10

-0.2

1.2])运行结果如图5-8所示。图5-8矩形序列为了使用方便,可以把单位阶跃序列做成一个函数,存在名为un.m的M文件中,在其他程序中可以调用该函数。函数为

functiony=un(n)

y=(n>=0);要用上述函数表示矩形序列G6(n),可以把【例5-3】程序中的第2行语句写成

rn=un(n)-un(n-6);程序运行结果与【例5-3】相同。4.斜变序列斜变序列的函数表达式为x(n)=nU(n)

【例5-4】绘制0≤n≤5范围内的斜变序列的波形。解设已经创建了M文件un.m,MATLAB程序如下:

%programch5-4n=[-2:5];xn=n.*un(n);stem(n,xn);xlabel(′n′);ylabel(′x(n)′);title(′x(n)=nu(n)′);gridon;运行结果如图5-9所示。图5-9斜变序列5.2离散信号的基本运算及MATLAB实现

像连续信号一样,离散信号也可以进行相应的变换和运算,这里只介绍利用

MATLAB实现对离散信号的基本变换和运算。【例5-5】离散信号的定义如下:定义信号时间变量范围是-3≤n≤7,用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)相当于把信号x(n)左移1个单位再反折,MATLAB程序如下:%programch5-5nx=[-3:7];x=[zeros(1,3)2

0

1

-1

3

zeros(1,3)];subplot(2,2,1);stem(nx,x);title(′x(n)′);xlabel(′n′);ny1=nx+2;%时移[-1:9]ny2=-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′);subplot(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),可以用以下函数来实现:

function[x,n]=delta(n0,n1,n2)%generatedelta(n-n0);n1<=n<=n2;n=n1:n2;x=[n==n0];ifnargout<1

stem(n,x);end可以用如下的函数产生在n1≤n≤n2间的阶跃序列。function[x,n]=stepN(n0,n1,n2)%generateU(n-n0),n1<=n<=n2;n=n1:n2;x=[n>=n0];ifnargout<1

stem(n,x);end序列的相加是对应样本的相加,如果两序列长度不等或者位置向量不同,则不能用算术运算符“+”直接实现。需要对位置向量和序列长度做统一处理后再相加,任意两序列的相加可以用以下函数实现:function[yn]=sigadd(f1,n1,f2,n2);%[yn]=sigadd(f1,n1,f2,n2);%输入:%f1——相加的第一个序列%n1——第一个序列的位置向量%f2——第二个序列%n2——第二个序列的位置向量%输出:%y——输出序列%n——位置向量n=min(n1(1),n2(1)):max(n1(end),n2(end));%positionvectorofy(n)y1=zeros(1,length(n));y2=y1;

%initializationy1(find(n>=n1(1)&n<=n1(end)))=f1;y2(find(n>=n2(1)&n<=n2(end)))=f2;y=y1+y2;

序列移位后,样本向量并没有变化,只是位置向量变了,任意序列的移位可以用以下函数来实现:

function[y,n]=sigshift(x,m,n0)

%y=x(n-n0);

y=x;

n=m+n0;可以用以下函数实现序列的反折运算y(n)=f(-n):

function[y,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实现代码如下:

%programch5-6

%用常规的方法表示f(n)

n=-1:2;

f=[-1,2,2,3];

subplot(2,1,1);

stem(n,f)

title(′f(n)的常规表示法′);%用δ(n)表示f(n)clearf,n;n1=-1;n2=2;f=-1*delta(-1,n1,n2)+2*delta(0,n1,n2)+2*delta(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实现代码如下:%programch5-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)′);

n1=-2:8;n=2*n1;subplot(3,1,2);stem(n,f);title(′f(1/2*n)′);

clearn;n2=-2:8;n=1/2*n2;k=1;form=1:length(n)

ifrem(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离散时间系统描述离散系统的方法也有两种:数学模型和模拟框图。下面就来讨论这两种描述方法。

【例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-1y(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)其中a0~aN,b0~bM都是常数。后向差分方程和前向差分方程并无本质上的差异,用哪种方程描述离散系统都是可以的,但考虑到通常研究的LTI离散系统的输入、输出信号多为因果信号(f(n)=0,y(n)=0,n<0),故在系统分析中一般采用后向差分方程。差分方程即为描述离散系统的数学模型。除了利用差分方程描述离散系统之外,还可以借助模拟框图描述。与描述连续系统相类似,也是用一些基本运算单元构成描述系统的模拟框图。表5-1给出了描述离散系统的基本运算单元及其输入、输出关系。表5-1描述离散系统常用的基本运算单元

【例5-9】某离散系统的模拟框图如图5-14所示,写出该系统的差分方程。图5-14

【例5-9】的模拟框图解系统模拟框图中有两个延迟单元,所以该系统是二阶系统。由各运算单元的输入输出关系可知,若输出设为y(n),则图中两个延迟单元的输出分别为和。从加法器的输出可得整理得y(n)+5y(n-1)+4y(n-2)=6f(n)5.4离散系统的零输入响应

LTI离散系统用常系数线性差分方程描述,要求出系统响应,便要解此差分方程。一个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)-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,

n≥0【例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-2λ3+2λ2-2λ+1=0解得特征根为λ1=λ2=1(二重根),λ3=j,λ4=-j,所以代入初始值,可以得到

C1+C2+j(C3-C4)=yx(1)=12C1+C2-(C3+C4)=yx(2)=03C1+C2-j(C3-C4)=yx(3)=15C1+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,

n≥0因为n=0时,y(0)=-2y(-1)+f(0)=-2y(-1)+1所以yx(0)≠y(0)。为此,先求出y(-1)。

当n=-1时,f(n)=0,故yx(-1)=y(-1),因此,根据齐次方程即可得到yx(0)=-2yx(-1)=-2y(-1)=-2将此“零输入”下的初始条件代入yx(n),得C=y

x(0)=-2于是yx(n)=-2(-2)n=(-2)n+1,

n≥05.4.2用MATLAB求解离散系统的零输入响应【例5-13】用MATLAB求解【例5-10】。解求解代码如下:

%programch5-13n=0:15;yx(1)=0;yx(2)=1;

%设定初始条件

form=3:length(n)

yx(m)=3*yx(m-1)-2*yx(m-2);

%递推求解endstem(n,yx);运行结果如图5-15所示。图5-15

【例5-13】运行结果【例5-14】用MATLAB实现【例5-12】。解求解代码如下:

%programch5-14[fn1]=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;

%设定初始状态form=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单位样值响应的定义及求解当激励信号为δ(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)=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)n]U(n)(2)根据线性时不变性质,原系统的单位样值响应为

h(n)=2h1(n-1)+h1(n-2)

=2[(-1)n+2(-2)n-1]U(n-1)+[(-1)n-1+2(-2)n-2]U(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),求系统的单位样值响应。解系统的特征方程为λ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章详述。5.5.2用MATLAB求解离散系统的单位样值响应

MATLAB提供了函数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,n≥0用MATLAB求h(n)的代码如下。

%programch5-17

b=2;

a=[1-1.40.48];

n=0:15;

h=impz(b,a,n);hk=8*0.8.^n-6*0.6.^n;subplot(2,1,1);stem(n,hk);title(′h(n)intheory′);subplot(2,1,2);stem(n,h);title(′h(n)computedbyMATLAB′);运行结果如图5-18所示。图5-18

【例5-17】图【例5-18】用MATLAB求解【例5-15】。解求解的代码如下:

%programch5-18

n=0:15;

a=[132];

b=[021];

h=impz(b,a,n);

subplot(2,1,1);

stem(n,h)

title(′h(n)

computedbyMATLAB′);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)intheory′);运行结果如图5-19所示。图5-19

【例5-18】图【例5-19】用MATLAB求解【例5-16】。解求解代码如下:%programch5-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.6离散系统的零状态响应——卷积和

与连续系统类似,当系统初始状态为零,仅由输入f(n)所引起的响应称为零状态响应,用yf(n)表示,如图5-21所示。下面讨论LTI离散系统对任意输入的零状态响应。图5-21离散系统的零状态响应5.6.1卷积和的定义

任何离散信号f(n)都可以看成是δ(n)的移位相加所构成,即(5-14)在LTI连续时间系统中,首先把激励信号分解为一系列冲激函数的叠加,然后求出各个冲激函数单独作用于系统时的响应,最后把这些响应叠加即可得到系统对该信号的零状态响应。这个叠加的过程表现为求卷积积分。在LTI离散系统中,可以采用大致相同的方法进行分析。由式(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-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为自变量,n看做常量,那么(5-20)如果序列f1(m)为因果序列,即有n<0,f1(n)=0,则式(5-19)中求和下限可改写为零,于是(5-21)如果f1(n)不受限制,而f2(n)为因果序列,那么式(5-20)中,当n-m<0,即m>n时,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)而单位样值响应为f1(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)结合律说明,一个级联的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卷积和的计算

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得到(n>0时,f2(-m)向右移n个单位;n<0时,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)当n<1,Wn(m)=0,故y(n)=0,如图5-24(b)所示。(3)当1≤n<3时,Wn(m)表示式为所以波形如图5-24(c)所示。(4)当3≤n<8时,Wn(m)的表示式为所以波形如图5-24(d)所示。(5)当8≤n≤9时,Wn(m)的表示式为所以波形如图5-24(e)所示。(6)当n>9时,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】完全相同。与作图法相比,当两序列是有限长序列时,竖乘法更为便捷。但值得注意的是,在用竖乘法过程中,不能进位。

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分别是差分方程左、右两端的系数向量。【例5-23】已知系统差分方程为y(n)-0.9y(n-1)=f(n),,求系统的零状态响应并绘图表示。解求解的MATLAB代码如下:

%programch5-23

b=1;

a=[1-0.9];

n=0:30;

f=cos(pi*n/3);

y=filter(b,a,f);

stem(n,y);运行结果如图5-25所示。图5-25

【例5-23】图

2.卷积和的计算离散系统的零状态响应也可用卷积和来求得,MATLAB中提供了conv函数用于计算卷积和,它也可以用来计算多项式相乘。其调用方式为

y=conv(x,h)其中,x,h是做卷积的序列,y是卷积的结果。【例5-24】用卷积和的方法求上例的零状态响应,并与上面结果比较。解实现代码如下:

%programch5-24

b=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(′zerostateresponsecomputedbyconv′);y2=filter(b,a,f);subplot(2,1,2);stem(n,y2);title(′zerostateresponsecomputedbyfilter′);运行结果如图5-26所示。图5-26

【例5-24】图【例5-25】用MATLAB实现【例5-22】。解实现代码如下:

%programch5-25

n1=1:7;

f=ones(1,7);

n2=0:2;

h=[1/21/21/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)和零状态响应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,

n≥0因为yx(n)的表达式只适用于n≥0,而题设初始条件为y(-1),y(-2),故先由齐次差分方程用迭代求出yx(0)和yx(1),再代入上式求C1和C2。因为n<0时,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,

n≥0

因为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)表达式,有解得所以于是(利用式(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,

n≥0①本例中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代入可解得因为n<0时,f(n)=0,故此时yx(-1)=y(-1)=0,,代入yx(n)中,得解得C1=1,C2=-2则yx(n)=(-1)n+(-2)n+1,

n≥-2②从严格意义上讲,yx(n)应为式②,但为了方便,往往将yx(n)限定为n≥0。故

yx(n)=(-1)n+(-2)n+1,

n≥0

(2)求yf(n)。先计算单位样值响应h(n)。易知h(n)具有以下形式h(n)=[C1(-1)n+C2(-2)n]U(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)n]U(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离散系统时域分析的MATLAB实现

用MATLAB的f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论