实验23线性相位FIR数字滤波器(完美格式版,本人自己完成,所有语句正确,不排除极个别错误,特别适用于山大,勿用冰点等工具下载,否则下载之后的word格式会让很多部分格式错误,谢谢)XXXX学号姓名处XXXX一、实验目的1加深对线性相位FIR数字滤波器特性的理解。2掌握线性相位滤波器符幅特性和零极点分布的研究方法。3了解用MATLAB研究线性相位滤波器特性时程序编写的思路和方法。二、实验内容1线性相位FIR滤波器的特性2第一类线性相位滤波器(类型Ⅰ)3第二类线性相位滤波器(类型Ⅱ)4第三类线性相位滤波器(类型Ⅲ)5第四类线性相位滤波器(类型Ⅳ)6线性相位FIR数字滤波器零点分布特点三、实验环境MATLAB7.0四、实验原理1.线性相位FIR滤波器的特性与IIR滤波器相比,FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数为1N0nnzh(n)H(z)当滤波器的系数N满足一定的对称条件时,就可以获得线性相位。线性相位FIR滤波器共分为四种类型,分别为:(1)类型Ⅰ,系数对称,即h(n)=h(N-1-n),N为奇数。(2)类型Ⅱ,系数对称,即h(n)=h(N-1-n),N为偶数。(3)类型Ⅲ,系数反对称,即h(n)=-h(N-1-n),N为奇数。(4)类型Ⅳ,系数反对称,即h(n)=-h(N-1-n),N为偶数。对于上述四类线性相位FIR滤波器,参考文献[1]中提供了一段通用程序,对考虑正负号的幅度频率特性(简称符幅特性)进行求解,程序名为amplres.m,程序如下:function[A,w,type,tao]=amplres(h)N=length(h);tao=(N-1)/2;L=floor((N-1)/2);n=1:L+1;w=[0:500]*2*pi/500;ifall(abs(h(n)-h(N-n+1))1e-10)A=2*h(n)*cos(((N+1)/2-n)'*w)-mod(N,2)*h(L+1);type=2-mod(N,2);elseifall(abs(h(n)+h(N-n+1))1e-10)&(h(L+1)*mod(N,2)==0)A=2*h(n)*sin(((N+1)/2-n)'*w);type=4-mod(N,2);elseerror('错误:这不是线性相位滤波器!')end另外,FIR滤波器的H(z)是z-1的(N-1)次多项式,它在z平面上有(N-1)个零点,原点z=0是(N-1)阶重极点。由于线性相位FIR滤波器的极点都在原点处,因此不存在稳定性的问题。但有必要研究零点对滤波器特性的影响。下面分别研究和分析上述问题。2.第一类线性相位滤波器(类型Ⅰ)例23-1已知FIR线性相位系统h=[3,-1,-5,4,6,4,-5,-1,3],要求描绘系统的冲激响应和符幅特性。解程序如下:h=[3,-1,-5,4,6,4,-5,-1,3];M=length(h);n=0:M-1;[A,w,type,tao]=amplres(h);typesubplot(2,1,1),stem(n,h);ylabel('h(n)');xlabel('n');subplot(2,1,2),plot(w/pi,A);ylabel('A');xlabel('\pi');MATLAB命令窗显示:type=1由图23-1可见,这是一个第一类线性相位滤波器。滤波器的系数N为奇数(该题N=9),且h(n)=h(N-1-n),幅度特性关于w=p对称,在w=0和w=p处可以取任何值;可以用于实现低通、高通、带通、带阻等各种滤波特性。02468-10010h(n)n00.511.52-2002040A\pi图23-1类型Ⅰ滤波器冲激响应和符幅特性3.第二类线性相位滤波器(类型Ⅱ)例23-2已知FIR线性相位系统h=[3,-1,-5,4,4,-5,-1,3],要求描绘系统的冲激响应和符幅特性。解程序如下:h=[3,-1,-5,4,4,-5,-1,3];M=length(h);n=0:M-1;[A,w,type,tao]=amplres(h);typesubplot(2,1,1),stem(n,h);ylabel('h(n)');xlabel('n');subplot(2,1,2),plot(w/pi,A);ylabel('A');xlabel('\pi');MATLAB命令窗显示:type=2由图23-2可见,这是一个第二类线性相位滤波器。滤波器的系数N为偶数(该题N=8),且h(n)=h(N-1-n),幅度特性关于w=p反对称,在w=0处可以取任何值,在w=p处必定为0;不能用于实现高通和带阻滤波器。01234567-505h(n)n00.511.52-50050A\pi图23-2类型Ⅱ滤波器冲激响应和符幅特性4.第三类线性相位滤波器(类型Ⅲ)例23-3已知FIR线性相位系统h=[3,-1,-5,4,0,-4,5,1,-3],要求描绘系统的冲激响应和符幅特性。解程序如下:h=[3,-1,-5,4,0,-4,5,1,-3];M=length(h);n=0:M-1;[A,w,type,tao]=amplres(h);typesubplot(2,1,1),stem(n,h);ylabel('h(n)');xlabel('n');subplot(2,1,2),plot(w/pi,A);ylabel('A');xlabel('\pi');012345678-505h(n)n00.511.52-50050A\pi图23-3类型Ⅲ滤波器冲激响应和符幅特性MATLAB命令窗显示:type=3由图23-3可见,这是一个第三类线性相位滤波器。滤波器的系数N为奇数(该题N=9),且h(n)=-h(N-1-n),幅度特性关于w=p反对称,在w=0和w=p处都必定为0;只能实现带通滤波器。5.第四类线性相位滤波器(类型Ⅳ)例23-4已知FIR线性相位系统h=[3,-1,-5,4,-4,5,1,-3],要求描绘系统的冲激响应和符幅特性。解程序如下:h=[3,-1,-5,4,-4,5,1,-3];M=length(h);n=0:M-1;[A,w,type,tao]=amplres(h);typesubplot(2,1,1),stem(n,h);ylabel('h(n)');xlabel('n');subplot(2,1,2),plot(w/pi,A);ylabel('A');xlabel('\pi');MATLAB命令窗显示:type=4由图23-4可见,这是一个第四类线性相位滤波器。滤波器的系数N为偶数(该题N=8),且h(n)=-h(N-1-n),幅度特性关于w=p对称,在w=0必定为0,w=p处可以取任何值;不能用于实现低通、带阻滤波器。02468-505h(n)n00.511.52-20020A\pi图23-4类型Ⅳ滤波器冲激响应和符幅特性6.线性相位FIR数字滤波器零点分布特点线性相位FIR滤波器的零点分为三种情况:(1)在zi=1或zi=-1位的零点单独出现;(2)实数零点或在单位圆上的复数零点按z1与1z1成对出现;(3)非单位圆上的复数零点,则按z1、z*1、1z1、*1z1四个点同时出现。例23-5求例23-1线性相位系统的零极点分布图,并证明实数零点和复数零点成组出现的特点。解程序如下:h=[3,-1,-5,4,6,4,-5,-1,3];M=length(h);n=0:M-1;rz=roots(h)fori=1:8r(i)=1/rz(i);endr'zplane(h,1)程序执行结果如下和图23-5所示。可以看出,序号为1、2、6、7的四个复数为一组;在实轴上的3、8两个实数为一组;处于单位圆上的4、5为一组。rz=1.1674+0.7868i1.1674-0.7868i-1.3732-0.5391+0.8423i-0.5391-0.8423i-0.72830.5891+0.3970i0.5891-0.3970ians=0.5891+0.3970i0.5891-0.3970i-0.7283-0.5391+0.8423i-0.5391-0.8423i-1.37321.1674+0.7868i1.1674-0.7868irz=1.1674+0.7868i1.1674-0.7868i-1.3732-0.5391+0.8423i-0.5391-0.8423i-0.72830.5891+0.3970i0.5891-0.3970ians=0.5891+0.3970i0.5891-0.3970i-0.7283-0.5391+0.8423i-0.5391-0.8423i-1.37321.1674+0.7868i1.1674-0.7868i-1.5-1-0.500.51-1-0.500.518RealPartImaginaryPart图23-5第一类线性相位滤波器零极点分布图例23-6求例23-2、例23-3、例23-4的线性相位系统的零极点分布图。解程序如例23-5,只需输入不同的h值,结果如图23-6(a)、(b)、(c)所示。-1-0.500.51-1-0.500.517RealPartImaginaryPart-1-0.500.51-1-0.500.518RealPartImaginaryPart(a)(b)-1.5-1-0.500.51-1-0.500.517RealPartImaginaryPart(c)图23-6线性相位滤波器零极点分布图五、实验过程1由序列h0=[3,-1,2,-3]为基础,构成四种类型的线性相位FIR滤波器,即①h1=[3,-1,2,-3,5,-3,2,-1,3];②h2=[3,-1,2,-3,-3,2,-1,3];③h3=[3,-1,2,-3,0,3,-2,1,-3];④h4=[3,-1,2,-3,3,-2,1,-3]分别求它们的冲激响应和符幅特性,并在同一张图纸上描绘出来,进行比较。解MATLAB程序如下:h1=[3,-1,2,-3,5,-3,2,-1,3];h2=[3,-1,2,-3,-3,2,-1,3];h3=[3,-1,2,-3,0,3,-2,1,-3];h4=[3,-1,2,-3,3,-2,1,-3];M1=length(h1);n1=0:M1-1;M2=length(h2);n2=0:M2-1;M3=length(h3);n3=0:M3-1;M4=length(h4);n4=0:M4-1;[A,w,type,tao]=amplres(h1);type[A,w,type,tao]=amplres(h2);type[A,w,type,tao]=amplres(h3);type[A,w,type,tao]=amplres(h4);typesubplot(4,2,1),stem(n1,h1);ylabel('h1(n)');xlabel('n');subplot(4,2,2),plot(w/pi,A);ylabel('A');xlabel('\pi');subplot(4,2,3),stem(n2,h2);ylabel('h2(n)');xlabel('n');subplot(4,2,4),plot(w/pi,A);ylabel('A');xlabel('\pi');subplot(4,2,5),stem(n3,h3);ylabel('h3(n)');xlabel('n');subplot(4,2,6),plot(w/pi,A);ylabel('A');xlabel('\pi');subplot(4,2,7),stem(n4,h4);ylabel('h4(n)');xlabel('n');subplot(4,2,8),plot(w/pi,A);ylabel('A');xlabel('\pi');运行结果如下,如图1-1所示。type=1type=2type=3type=40510-505h1(n)n012-2