理论课第7章yyxMATLAB在数字信号处理中的应用精讲课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《理论课第7章yyxMATLAB在数字信号处理中的应用精讲课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 理论 yyxMATLAB 数字信号 处理 中的 应用 讲课
- 资源描述:
-
1、1第第 7章章 MATLAB在数字信号处理中的在数字信号处理中的应用应用2书山有路勤为径,书山有路勤为径,学海无涯苦作舟。学海无涯苦作舟。好好学习,天天向上好好学习,天天向上3引言n数字信号处理中包含离散时间信号与系统的一部分知识。n本章主要研究内容分为两部分:离散时间信号与系统时域分析离散时间信号与系统频域分析n在数字信号处理中还有一个非常大的知识点:数字滤波器设计,留待下学期开设本课程时,可以学习。4一、离散时间信号与系统时域分析5包含内容n信号分析典型信号表示impseq(),stepseq()7.1 序列相加,相乘7.2 序列合成和截取7.3 序列移位和周期延拓7.6离散序列卷积n系统
2、分析7.4系统响应7.5系统线性判定67.1 离散信号的产生及时域处理n时域离散信号用x(n)表示(离散序列)。x x和n同时使用才能完整地表示一个序列:时间变量n(表示采样位置)只能取整数;向量x(表示采样点的幅度)与n一一对应。n由于n序列是按整数递增的,可简单地用其初值ns决定,因为它的终值nf取决于ns 和x的长度length(x),故可写成:n=ns:nf 或n=ns:nslength(x)17n典型信号表示典型信号表示impseq(),stepseq()8例7.1 序列的相加和相乘n给出两个序列x1(n)和x2(n)。x1=0,1,2,3,4,3,2,1,0;n1=-2:6;x2=
3、2,2,0,0,0,-2,-2;n2=2:8;要求它们的和ya及乘积yp。解:编程的思路是把序列长度延拓到覆盖n1和n2的范围,这样才能把两序列的时间变量对应起来,然后进行对应元素的运算。9例程nx1=0,1,2,3,4,3,2,1,0;ns1=-2;%给定x1及ns1nx2=2,2,0,0,0,-2,-2;ns2=2;%给定x2及ns2nnf1=ns1+length(x1)-1;nf2=ns2+length(x2)-1;nny=min(ns1,ns2):max(nf1,nf2);%y(n)的时间变量nxa1=zeros(1,length(ny);xa2=xa1;%延拓序列初始化nxa1(fi
4、nd(ny=ns1)&(ny=ns2)&(ny=0;%产生单位阶跃序列(u(n-n1))nx1=(n-n1)=0-(n-n1-N)=0%用阶跃序列之差产生矩形序列nx2=(n=n1)&(n=0)&(n=0;%产生输入信号x3(n)ny3=filter(B,A,x3);%对x3(n)的响应nx4=(n=0)&(n=0)&(nx=sym(an*cos(pi*n);Z=ztrans(x);simplify(Z)ans=z/(z+a)()cos()(nunanxn35【例例2 2】试用试用iztransiztrans函数求下列函数的函数求下列函数的z z反变换。反变换。Z=sym(8*z-19)/(z
5、2-5*z+6);x=iztrans(Z);simplify(x)ans=-19/6*charfcn0(n)+5*3(n-1)+3*2(n-1)-19/6*charfcn0(n)+5*3(n-1)+3*2(n-1)charfcn0(n)charfcn0(n)是函数在是函数在MATLABMATLAB符号工具箱中的表示,符号工具箱中的表示,反变换后的函数形式为:反变换后的函数形式为:3|65198)(2zzzzzX)()2335()(619)(11nunnxnn36例7.14 用符号运算工具箱解z变换n解:无限长度时间序列的z变换和逆z变换都属于符号运算的范围。MATLAB的symbolic(符号
6、运算)工具箱已提供了这种函数。如果读者已在计算机上安装了这个工具箱,可以键入以下程序。n MATLAB程序q714.m n其特点是程序的开始要指定符号自变量nsyms z n a N w0%规定z,n,a为符号变量37程序分析:nsyms z n aN w0%规定z,n,a为符号变量ny1=an;%给出y的表示式nY1=ztrans(y1)%求y的z变换nX1=-3*z-1/(2-5*z-1+2*z-2);%给出X的表示式nx1=iztrans(X1)%求X的逆Z变换nsimplify(x);%可显示变换后表达式的形式38n如果信号的如果信号的z z域表示式是有理函数,进行域表示式是有理函数,
7、进行z z反变换的反变换的另一个方法是对进行部分分式展开,然后求各简单另一个方法是对进行部分分式展开,然后求各简单分式的分式的z z反变换反变换.如果如果X(z)X(z)的有理分式表示为:的有理分式表示为:)()(1)(221122110zAzBzazazazbzbzbbzXnnmmrkkikrMkkknNMnnzzCzzAzBzX111101 1)(nMATLABMATLAB实现实现-方法方法2 2(residuezresiduez函数实函数实现反变换)现反变换)39 nMATLABMATLAB信号处理工具箱提供了一个对进行部分分式展开信号处理工具箱提供了一个对进行部分分式展开的函数的函数r
8、esiduezresiduez,其语句格式为:,其语句格式为:nR,P,K=residuez(B,A)R,P,K=residuez(B,A)n其中,其中,B B,A A分别表示分别表示X(z)X(z)的分子与分母多项式的系数向的分子与分母多项式的系数向量,分子与分母多项式按照量,分子与分母多项式按照z-1z-1升幂排列。升幂排列。nR R为部分分式的系数向量;为部分分式的系数向量;nP P为极点向量;为极点向量;nK K为多项式的系数。为多项式的系数。n若若X(z)X(z)为有理真分式,则为有理真分式,则K K为零。为零。40【例【例1 1】试用试用MATLABMATLAB命令进行部分分式展开
9、,并求出其命令进行部分分式展开,并求出其z z反变换。反变换。n解:解:MATLAB源程序为源程序为nB=18;nA=18,3,-4,-1;nR,P,K=residuez(B,A)nR=n 0.3600n 0.2400n 0.40005.0|431818)(321zzzzzX41 nP=n 0.5000n -0.3333n -0.3333nK=n 从运行结果可知,32pp 表示系统有一个二重极点。所以,X(z)的部分分式展开为2111)3330.314.03333.0124.05.0136.0)(zzzzX()()3333.0)(1(4.0)3333.0(24.0)5.0(36.0)(nunn
10、xnnn42教材中求z的逆变换的方法n对于z变换分式n可以用部分分式法或长除法求其反变换。n用函数residuez可以求出它的极点留数分解其中r,p,k=residuez(B,A)n其反变换为:)1()()2()1()1()()2()1()()()()1(1)1(1NNMMzNAzNAzAAzMBzMBzBBzAzBzY1111)2()1()(1)()2(1)2()1(1)1()()(zkkzNpNrzprzprzAzB()(1)(1)()(2)(2)()(1)()nny nrpu nrpu nkn43注意几点:nr,p,k=residuez(B,A),A首项不能为零,即分母z最高次项不能为0
11、nk只有当分式为假分式时会有值,即对应冲激序列部分(FIR);真分式,值为零n还有一些细节需要处理:44例7.7 有限序列的z和逆z变换两序列x1=1,2,3,n1=-1:1 及x2=2,4,3,5,n2=-2:1,求出x1与x2及其卷积x的z变换。n解:其z变换可写成n两个多项式乘积可用conv函数来求得。n数组要自己判别。n的起点ns=ns1+ns2=3,终点nf=nf1+nf2=2。n=ns:nf。由x和n即可得出X(z)。12112()23,()2435XzzzXzzzz)()()(21zXzXzX45程序分析nx1=1,2,3;ns1=-1;%设定x1和ns1nnf1=ns1+len
12、gth(x1)-1;%nf1可以算出nx2=2,4,3,5;ns2=-2;%设定x2和ns2nnf2=ns1+length(x1)-1;%nf2可以算出nx=conv(x1,x2)%求出xnn=(ns1+ns2):(nf1+nf2)%求出n4647例7.8 求z多项式分式的逆变换 n设系统函数为,输入例7.7中的x2信号,用z变换计算输出y(n)解:由例7.7可知,故Y(z)=X(z)W(z)=其中nsy=分母分子中z的最高幂次之差。调用 r,p,k=residuez(B,A),可由B,A求出r,p,k,进而求逆z变换,得 2115.02.223)(zzzzW1225342)(zzzzX()(
13、)nsyzB zA z()(1)(1)()(1)()n nsyy nrpu nnsyknnsy48例7.8 z多项式分式逆变换(续)由程序算出nsy=-1,留数、极点分别为r=-57.7581 和 204.7581p=0.7791 和 0.3209k=-150 -30代入得111)2()1()2(1)2()1(1)1()(zkkzprzprzzY11()57.7 0.779(1)204.7 0.321(1)150(n+1)-30 (n)nny nu nu n 49Z反变换法求解系统输出(编程实现)nY(z)=X(z)W(z)nx=2,4,3,5;nsx=-2;%输入序列及初始时间nnfx=ns
14、x+length(x)-1;%计算序列终止时间nBw=-3;nsbw=-1;%系统函数的分子系数,及z的最高次数nAw=2,-2.2,0.5;nsaw=0;%系统函数的分母系数,及z的最高次数nB=conv(-3,x);%输入与分子z变换的多项式乘积nA=Aw;%分母不变ny(n)=IZTY(Z)nr,p,k=residuez(B,A)%求留数r,极点p及直接项knnf=input(终点时间nf=);%要求键入终点时间nn=min(nsx,nsy):nf;%生成总时间数组n%求无限序列yi和直接序列ydnyi=(r(1)*p(1).(n-nsy)+r(2)*p(2).(n-nsy).*step
15、seq(nsy,n(1),nf);nyd=k(1)*impseq(nsy,n(1),nf)+k(2)*impseq(-1-nsy,n(1),nf);ny=yi+yd;50另外一种方法(filter函数):nfilter(B,A,x)51例7.9 离散时间傅里叶变换n取周期的正弦信号,作8点采样,求它的连续频谱。然后对该信号进行N个周期延拓,再求它的连续频谱。把N无限增大,比较分析其结果。n解:先求离散傅立叶变换的MATLAB子程序n最后得到X=x*exp(-j*w*n)。n有了子程序,本例就没有什么难度了。NKNNKKnjnjnjnjnjnjnjnjnjNKeeeeeeeeenxnxXXX21
16、2222111211)(,),()(,),(),(12152DTFT程序:nfunction X=dtft(x,w)n%计算离散时间傅立叶变换n%X=dtft(x,n,w),%X=在w频率点上的DTFT数组,%x=沿n的有限长度序列,%n=样本位置向量%w=频率点位置向量nn=1:length(x);ewn=exp(-n*w*i);X=x*ewn;53正弦信号x0的DTFT变换nx0=sin(2*pi*1:8/8)*5;%x0是8点行向量ndt=2*pi/8;nw=linspace(-2*pi,2*pi,1000)/dt;%w是1000点行向量nX0=dtft(x0,w)*dt;%求得频率响应
17、X054正弦信号延拓N个周期后,DTFTnN=4;%延拓周期数nx1=reshape(x0*ones(1,N),1,N*length(x0);%延拓后的时域信号x1nX1=dtft(x1,w)*dt;%求x1的频率响应X1n%延拓100次后n%x1=reshape(x0*ones(1,100),1,100*length(x0);%延拓后的时域信号x1n%X1=dtft(x1,w)/100*dt;%求x1的频率响应X155重复无穷次ndisp(重复无穷次的八点信号的离散时间傅立叶变换-傅立叶级数)npause,X2=fft(x0*dt);%离散傅立叶变换nw1=2*pi*0:length(x0)
18、-1/length(x0);%离散频点向量nsubplot(3,1,3),stem(-w1,w1,abs(X2),abs(X2),grid,naxis(min(w),max(w),0,max(abs(X2),grid56例7.9 离散时间傅里叶变换2n 程序运行结果执行程序q709并按提示键入N=4,所得图形如图7.10所示。N取得愈大,其峰值愈大,宽度愈窄。当N取得很大时,会出现内存不足的问题,这是用矩阵乘法做傅里叶变换的缺点。另外,因为那时峰值点处的宽度很窄,也会出现所选频点对不上峰值点的问题。所以对于N无限增大的情况,必须用fft函数来求。这时用连续频谱也没有意义了。这里用同样的横坐标把
19、几种频谱进行对比,使读者更好地理解其关系。57程序显示结果:58例7.10 时域采样频率与频谱混叠n分别以采样频率fs=1000Hz,400Hz和200Hz对xa(t)进行等间隔采样,计算并图示三种采样频率下的采样信号及其幅频特性n解:程序分别设定4种采样频率fs=10kHz,1kHz,400Hz和200Hz,对xa(t)进行采样,得到采样序列xa(t),xa1(n),xa2(n),xa3(n),画出其幅度频谱。采样时间区间均为0.1秒。为了便于比较,画出了幅度归一化的幅频曲线,如图7.11所示。59例7.10 采样频率与频谱混叠(续)由于由以上关系式可见,采样信号的频谱函数是原模拟信号频谱函
20、数的周期延拓,延拓周期为2/T。如果以频率f为自变量(=2f),则以采样频率fs=1/T为延拓周期。对频带限于fc的模拟信号xa(t),只有当fs2fc时,采样后 才不会发生频谱混叠失真。这就是著名的采样定理 knTTTkXTnxnxXn2j1e)()(FT)e(ajj)e(j TX程序要点:nt=0:1/fs:0.1;%fs代不同的取样频率 nxa=exp(-a*t).*sin(b*t);nk=0:511;f=fs*k/512;n%由wk=2k/512=2fT求得模拟频率fnXa=dtft(xa,2*pi*k/512);%近似模拟信号频谱60结果161结果26263例7.12 梳状滤波器零极
21、点和幅特性n梳状滤波器系统函数有如下两种类型。n FIR型:n IIR型:n freqz 数字滤波器频率特性计算和绘制函数n zplane H(z)的零-极点图绘制。n解:调用函数freqz和zplane 很容易写出程序q712.m。NzzH1)(1NNNzazzH11)(264程序分析nfreqzfreqz(b,a,w)nzplane65频率响应nb=1,0,0,0,0,0,0,0,-1;na0=1;na1=1,0,0,0,0,0,0,0,-(0.8)8;na2=1,0,0,0,0,0,0,0,-(0.9)8;na3=1,0,0,0,0,0,0,0,-(0.98)8;nH,w=freqz(b
22、,a0);nH1,w1=freqz(b,a1);nH2,w2=freqz(b,a2);nH3,w3=freqz(b,a3);66零极点及绘图nsubplot(2,2,1);zplane(b,a0);title(FIR梳状滤波器零点图);nsubplot(2,2,2);zplane(b,a1);title(IIR梳状滤波器零、极点图,a=0.8);nsubplot(2,2,3);plot(w/pi,abs(H);title(FIR梳状滤波器幅频响应曲线);nylabel(幅度);xlabel(/);nsubplot(2,2,4);plot(w1/pi,abs(H1);title(IIR梳状滤波器
23、幅频响应曲线,a=0.8);nylabel(幅度);xlabel(/);nfigure(2);nsubplot(2,2,1);zplane(b,a2);title(IIR梳状滤波器零、极点图,a=0.9);nsubplot(2,2,2);zplane(b,a3);title(IIR梳状滤波器零、极点图,a=0.98);nsubplot(2,2,3);plot(w2/pi,abs(H2);title(IIR梳状滤波器幅频响应曲线,a=0.9);nylabel(幅度);xlabel(/);nsubplot(2,2,4);plot(w3/pi,abs(H3);title(IIR梳状滤波器幅频响应曲线
24、,a=0.98);nylabel(幅度);xlabel(/)67结果显示68结果显示69例7.13 低通滤波及时域卷积定理 n输入信号 x(n)=cos(0.04n)+cos(0.08n)+cos(0.4n)+0.3(n),0n63 通过低通滤波器,计算滤波器对x(n)的响应输出y(n),并图示x(n)和y(n),观察滤波效果。n解:如前所述,只要求出H(z)=B(z)/A(z)的分子和分母多项式系数向量B和A,则可调用滤波器直接型实现函数filter对输入信号x(n)进行滤波。y=filter(B,A,x)70程序要点n输入信号构造%产生输入信号产生输入信号x(n)x(n)nn=0:255;
25、N=4096;n=0:255;N=4096;nx=cos(0.04x=cos(0.04*pipi*n)+cos(0.08n)+cos(0.08*pipi*n)+cos(0.n)+cos(0.4 4*pipi*n);n);nw=randn(size(x);%w=randn(size(x);%产生正态零均值噪声产生正态零均值噪声nx=x+0.3x=x+0.3*w;w;71程序要点n%求H(z)分子分母多项式系数向量B和Anb=1,2,1;%(1+z-1)2 的展开系数nB=0.0003738*conv(conv(b,b),b);%嵌套调用卷积函数convna1=1,-1.2686,0.7051;n
展开阅读全文