资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Matlab,与信号与系统的应用,1,提 纲,一、信号系统的,MATLAB,表示,二、线性卷积及,MATALB,实现,三、系统描述与转换,四、时域分析,五、频域分析,2,连续信号的,MATLAB,表示,连续信号的时间取值,t,是连续的,而,MATLAB,中变量的取值都是离散的,因此,MATLAB,对连续信号只能提供近似表示,即采用对连续时间信号进行采样的方式进行,为了保证采样值能尽可能保留信号的细节,应该确保足够小的抽样时间,同时采用,plot,命令画出连续信号的图形。,一、信号系统的,MATLAB,表示,3,对于余弦函数:,设置时间的范围,0 T,在取值范围内的采样点数设置为,N,,这样时间点的取值为:,则采样信号的形式为:,n,的取值范围为:,0 N,则在不同采样点数下,plot,的绘图结果为:,一、信号系统的,MATLAB,表示,4,连续信号的,MATLAB,表示,一、信号系统的,MATLAB,表示,5,由上图可知,在相同的时间范围内,采样点越多,越能保留原连续信号的波形。,一、信号系统的,MATLAB,表示,6,离散信号的,MATLAB,表示,离散信号为时间上离散、幅度取有限值的信号,因此时间取值用,n,代替了连续的,t,,并且用,stem,命令画出离散信号波形。,一、信号系统的,MATLAB,表示,7,同样考虑余弦信号:,n,的取值范围为,0 30,MATLAB,的程序:,n=0:1:30,y=2*cos(2*pi*n/16+pi/4),stem(y),一、信号系统的,MATLAB,表示,8,一、信号系统的,MATLAB,表示,9,一、信号系统的,MATLAB,表示,单脉冲序列,单位阶跃序列,矩形窗信号,x=zeros(1,N);%N,是序列的长度,x(1)=1;,x=ones(1,N);%N,是序列的长度,x(1)=1;,10,信号的卷积运算,离散时间系统的输出是系统的输入信号与系统单位脉冲响应的卷积:,MATLBA,中用函数,conv(),进行卷积运算,二、线性卷积及,MATALB,实现,11,设,x=3,-3,7,0,-1,5,2;nx=-4:2;,h=2,3,0,-5,2,1;nh=-1:4;,求其卷积,y(n),。,解:图,2.3.4,。,x(k),和,h(k),如左上图;,x(k),和,h(-k),如右上图;,设,n=-1,得出的,x(k),和,h(n-k),见左下图,,设,n=2,得出的,x(k),和,h(n-k),见右下图。,由左下图,k=-4:0,五个点上的,x,和,h,乘积之和,得到,y(-1)=3*2+(-3)*(-5)+7*0+0*3+(-1)*2=19,由右下图,k=-2:2,五个点上的,x,和,h,乘积之和,得到,y(2)=7*1+0*2+(-1)*(-5)+5*0+2*3=18,对每一个,n,值,都要这样运算,y(n),,很繁。,序列的卷积手工运算算例,二、线性卷积及,MATALB,实现,12,序列的卷积运算算例,3,-3,7,0,-1,5,2,2,3,-5,2,1,13,序列的卷积运算算例,function,y,ny=conv_improve(x,nx,h,nh),%x,nx,为第一个信号;,h,nh,为第一个信号,ny1=nx(1)+nh(1);,ny2=nx(length(x)+nh(length(h);,ny=ny1+ny2,y=conv(x,h),调用并执行上程序得到,y=6 3 5 6 19 -31 30 18 -27 -1 9 2,ny=-5 -4 -3 -2 -1 0 1 2 3 4 5 6,注:,conv,函数假定两个序列都是从,n=0,开始的,二、线性卷积及,MATALB,实现,14,用,MATALAB,实现信号的卷积运算,例:离散时间系统的单位脉冲响应为:,输入信号为:,则系统的响应为:,y=conv(x,h),二、线性卷积及其,MATALB,实现,15,MATLAB,的程序:,h=0.25*ones(1,4);,x=ones(1,10);,y=conv(x,h);,stem(y),二、线性卷积及其,MATALB,实现,16,卷积运算,conv,除了能根据系统的脉冲响应和输入信号计算系统的输出信号,还可以计算两个多项式的乘积结果。,则,y1*y2,的多项式就可以用,conv,完成,二、线性卷积及其,MATALB,实现,17,多项式乘法,注意:,y1,和,y2,的幂次是按照降幂顺序排列的,这样,a0,对应的幂次为,0,,因此如果多项式没有常数项,则多项式也要写出,a0,的取值为,0,二、线性卷积及其,MATALB,实现,18,例:,y1=3 4 1 0;,y2=1 2;,conv(y1,y2),ans=,3 10 9 2 0,二、线性卷积及其,MATALB,实现,19,二、线性卷积及其,MATALB,实现,互相关函数定义:,相关函数与线性卷积的关系,用,xcorr,(,x,,,y,),计算两个信号的相关性,注意:计算相关性时,两个序列都不翻转,只是将,h(k),移动后对应相乘再相加;卷积时,要将其中一个序列翻转后再移动;,相关表示两个信号之间的关联性,与系统无关,卷积则表示的是时不变系统中输入、单位响应和输出之间的关系,20,三、系统描述与转换,传递函数,零极点增益,状态空间,部分分式展开,21,传递函数模型,1,、连续系统的传递函数模型,num=,b,1,b,2,b,m,b,m+1,den=,a,1,a,2,a,n,a,n+1,注意:它们都是按,s,的降幂进行排列的,并且是多项式的表达方式。,22,传递函数模型,num=12,24,0,20;,den=2 4 6 2 2;,23,传递函数模型,借助多项式乘法函数,conv,来处理:,num=4*conv(1,2,conv(1,6,6,1,6,6);,den=conv(1,0,conv(1,1,conv(1,1,conv(1,1,conv1,3,2,5);,24,零极点增益模型,K,为系统增益,,zi,为零点,,pj,为极点。,零极点增益模型用,z,p,K,矢量组表示,即:,z=z,1,z,2,z,m,p=p,1,p,2,.,p,n,K=k,注意:这里的零点、极点都是列向量表示,25,零极点增益模型,z=0-6 -5,p=-3+4i -3-4i -2 -1,k=0.5,26,状态空间描述,以上两种系统表示模型,关注的是输入输出信号间的关系描述,状态变量同时关心某一时刻系统中某状态变量的变化过程,以及与输入、输出信号的关系。,其中,y,为输出信号,,x,为系统状态变量,,u,为输入信号。,27,状态空间描述,A=1 6 9 10;3 12 6 8;4 7 9 11;5 12 13 14;,B=4 6;2 4;2 2;1 0;,C=0 0 2 1;8 0 2 2;,D=zeros(2,2);,28,三种模型间的相互转换,传递函数模型,(Transfer Function),极零点模型,(Zero Pole),状态空间模型,(State Space),三种模型间的转换:,tf2zp(),、,zp2tf(),zp2ss(),、,ss2zp(),tf2ss(),、,ss2tf(),29,三种模型间的相互转换,num=1,11,30,0;,den=1,9,45,87,50;,z,p,k=tf2zp(num,den),A,B,C,D=tf2ss(num,den),30,三种模型间的相互转换,z=0 -6 -5,p=-3.0000+4.0000i -3.0000-4.0000i -2.0000,-1.0000,k=1,31,三种模型间的相互转换,A=,-9 -45 -87 -50,1 0 0 0,0 1 0 0,0 0 1 0,B=,1,0,0,0,C=1 11 30 0,D=0,32,部分分式展开,模拟系统,:,函数,r,p,k=residue(b,a),b,a=residue(r,p,k),数字系统,函数,r,p,k=residuez(b,a),b,a=residuez(r,p,k),33,部分分式展开,分式展开将原有的传递函数表达为各个分式相加形式,类似于分解为并联形式,34,部分分式展开,Num=2 0 9 1;,Dec=1 1 4 4;,r p k=residue(num,dec);,35,部分分式展开,结果,:,p=,0.0000+2.0000i,0.0000-2.0000i,-1.0000,k=,2,r=,0.0000-0.2500i,0.0000+0.2500i,-2.0000,36,注意点,以上模型结构都是针对连续时间系统的,对于离散时间系统而言,描述方式类似,不同的是离散时间系统的传递函数中,z,的幂次都是负值,若要使用连续时间系统的函数描述,必须注意,z,的阶次(多项式的表达方式)。,37,注意点,计算上述系统的零、极点时,系统的描述不是如下所示,num=1-1,den=1 0-1,而是首先将其转换为正数幂次形式,再列出传递函数模型。,这样传递函数模型为:,num=1-1 0;,den=1 0-1;,z p k=tf2zp(num,dec),38,系统,(,连续、离散,),的单位脉冲响应、阶跃响应,系统对任意输入信号的响应,四、时域分析,39,求解系统的单位阶跃响应和脉冲响应,单位阶跃响应:,step(),、,dstep()-,离散信号,冲激,(,脉冲,),响应:,impulse(),、,dimpulse(),、,impz(),这里的调用参数都是系统的描述方式,四、时域分析,40,求系统的阶跃响应曲线,%,传递函数描述,num=20;,den=1 8 36 0 40;,%,绘制系统的阶跃响应曲线,t=0:0.1:10;,step(num,den,t);,四、时域分析,41,四、时域分析,42,2,输入,2,输出系统:,求系统的冲激响应,四、时域分析,43,%,系统状态空间描述,a=-2.5-1.22 0 0;1.22 0 0 0;1-1.14-3.2-2.56;0 0 2.56 0;,b=4 1;2 0;2 0;0 0;,c=0 1 0 3;0 0 0 1;,d=0-2;-2 0;,%,绘制闭环系统的冲激响应,impulse(a,b,c,d),title(,impulse response),xlabel(time-sec),ylabel(amplitude),四、时域分析,44,45,%,求解系统的脉冲响应,num=1;,den=1-0.6 -0.16;,n=0:1:20;,y=dimpulse(num,den,n);,figure(1),stem(n,y),Title(The impulse response),四、时域分析,46,四、时域分析,47,对于,impz(),与,dimpulse(),不同:该函数是针对数字信号系统的,描述系统结构时采用,impz(b,a,n),的形式,其中,b,、,a,都是按照,z,的负值幂次形式,并且从,z,的,零次幂开始,,因此对于以上离散系统,H(z)b,、,a,分别为:,b=0 0 1;,a=1-0.6 -0.16;,四、时域分析,48,注意:,这里的,b,不能写成,b=1,,否则就成为如下的系统:,b=0 0 1;,a=1-0.6 -0.16;,n=0:1:20;,y=impz(b,a,n);,figure(2),stem(n,y),Title(The impulse response),四、时域分析,49,四、时域分析,50,对任何输入信号,系统响应的求解。,已知系统脉冲响应的,利用输入信号与冲激信号的卷积得到系统的输出,基于,MATLAB,的,conv(),命令,已知系统的传递函数,利用滤波原理得到系统的输出,基于,MATLAB,的,lsim(),、,filter(),命令,四、时域分析,51,差分方程的递推在,MATLAB,中用,filter,子程序来实现。调用的最简单形式为,:,y=filter(b,a,x),其中,b=b0,b1,.,bM;a=a0,a1,.,aN,为差分方程的系数数组,x,是输入序列。,用信号处理工具箱专门函数,impz,h,t=impz(b,a,L),四、时域分析,52,例:,设系统用差分方程,y(n)-y(n-1)+0.9y(n-2)=x(n),描述,输入序列,为,x=n,(,1,),设初始条件,为,y(-2)=0,y(-1)=0,求输出序列,y(n),。,b1=1;a=1,-1,0.9;x=1,zeros(1,200);,y1=filter(b1,a,x),b2=1;,h,t=impz(b2,a),subplot(1,2,1),plot(y1,r),subplot(1,2,2),plot(h,g),四、时域分析,53,四、时域分析,已知系统的冲激响应为 当输入信号为 时,求系统的输出信号,n=0:1:19;,h=exp(-n*0.1);,n=0:1:9;,x=n;,y=conv(h,x);,stem(y);,54,四、时域分析,55,四、时域分析,当输入信号,x(t)=10cos(5t),时,系统的输出,num=5;,den=1 1 10 5;,t=0:0.08:25;,x=10*cos(5*t);,y=lsim(num,den,x,t);,plot(y),56,四、时域分析,57,五、频域分析,离散傅里叶级数,DFS,注:离散时间序列,x(n),中的一个周期的,N,个样本,就能确定频谱序列 。同样,用 一个周期中的,N,根谱线就可以确定离散时间序列,x(n),离散傅里叶变换,DFT,58,计算,DFT,的运算次数按,N,2,快速增长。设,N,可以被,2,整除,把,x(n),分成两个子序列,x,1,(n),和,x,2,(n),,,离散傅里叶变换的快速算法,FFT,设它们的傅立叶变换分别为,X1(m),和,X2(m),,其周期为,N1=N/2,:,则,x(n),的傅立叶变换,X(m),可表为:,五、频域分析,59,快速付立叶变换,(FFT),五、频域分析,60,各种傅立叶变换及其相互关系,模拟信号 时域采样 周期延拓 主值区间,时域,x,a,(t),x(n),x(n),R,N,(n),|,|(FFT),频域,X,a,(j,),X(j,),X(k),R,N,(k),CTFT DTFT DFSDFT,ICTFTIDTFT,频域采样,IDFT,61,五、频域分析,对于已知冲激,(,脉冲,),响应的系统,可采用对冲激,(,脉冲,),响应进行,Fourier,变换的方法得到系统的频率特性。,X=,fft(x),N,默认为,x,的长度,FFT,程序求频谱的范围规范化为,0,2,),,对应的频谱下标为,k=0,1,N-1,。设频率分辨率,dw=2,/N,,则频率向量为,w=k*dw,对于已知系统传递函数模型的系统,可利用,freqs(),、,freqz(),函数得到系统频率特性。,H,w=freqz(b,a,N),62,已知系统的脉冲响应为:,求系统的频率特性。,N=64;,n=0:1:N;,x=2*sin(pi*n/32)+5*cos(pi*n/16);,X=fft(x,N);,subplot(2,1,1);stem(x);,subplot(2,1,2);stem(abs(X),五、频域分析,63,64,五、频域分析,其频率特性。,传递函数描述,num=0.2 0.3 1;,den=1 0.4 1;,频率范围,w=logspace(-1,1);,freqs(num,den,w),65,66,五、频域分析,求出并绘出,H,(,z,),的幅频响应与相频响应。,传递函数描述,b=1,-1;%,分子多项式系数,a=1,-sqrt(2),0.9;%,分母多项式系数,freqz(b,a);%,计算频率响应,67,68,五、频域分析,除了,freqs,、,freqz,得到系统的频域特性外,也可以利用,Bode,、,Nyquist,进行频域特征的分析。,69,习题,1,、设,其中,(n),为,0,均值方差为,1,的白噪声,分别用,xcorr(),函数和,conv,函数,计算,x(n),和,y(n),的互相关函数,2,、求系统 频率特性,频率范围为 ,求系统的单位脉冲响应。同时求,H(s),的部分分式展开。,3,、系统函数 ,当系统输入为,时,画出系统的输出。同时求系统的频率响应,画出幅频响应和相位响应图。,70,4,针对差分方程,编写,MATALB,程序计算其脉冲响应(即当输入,输出,y(n),就是系统的脉冲响应,h(n),),.,并画图显示波形图,5,用,matlab,实现由系统的差分方程求出的系统的就冲击响应,并画出其幅度、相位响应,并支出系统的零点和极点。差分方程为:,6,增加数据的长度对谱分析的影响:,模拟信号 ,以,t=0.01*n(),进行采样,求,N,点的信号频谱,,N,分别为,64,、,256,。,比较信号谱结构的不同,并且说明原因。,习题,71,上机内容与要求,熟练掌握线性系统的各种模型描述,熟练掌握模型之间的转换,熟练掌握时域、频域和状态空间分析,熟练掌握连续系统和离散系统的模型分析,72,
展开阅读全文