您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 数字信号处理-实验-Matlab实验FIR滤波器实现
1实验四用窗函数法设计FIR滤波器一、实验目的1、熟悉FIR滤波器设计的基本方法。2、掌握用户窗函数设计FIR数字滤波器的原理及方法,熟悉相应的计算机高级语言编程。3、熟悉线性相位FIR滤波器的幅频特性和相位特性。4、了解各种不同窗函数对滤波器性能的响应。二、实验原理和方法(一)FIR滤波器的设计FIR滤波器具有严格的相位特性,这对于语音信号处理和数据传输是很重要的。目前FIR滤波器的设计方法主要有三种:窗函数法、频率取样法和切比雪夫等波纹逼近的最优化设计方法。本实验中的窗函数法比较简单,可应用现成的窗函数公式,在技术指标要求不高的时候是比较灵活方便的。它是从时域出发,用一个窗函数截取一个理想的)(nhd得到h(n),以有限长序列h(n)近似理想的)(nhd:如果从频域出发,用理想的)(jwdeh在单位圆上等角度取样得到H(k),根据h(k)得到H(z)将逼近理想的)(zHd这就是频率取样法。(二)窗函数设计法同其它的的数字滤波器设计的方法一样,用窗函数设计滤波器也是首先要对滤波器提出性能指标。一般是给定一个理想的频率响应)(jwdeh,使所设计的FIR滤波器的频率响应)(jweh去逼近所要求的理想的滤波器的响应)(jwdeh窗函数设计的任务在于寻找一个可实现(有限长单位脉冲响应)的传递函数。10)()(NnjwjwnenheH去逼近)(jwdeh。我们知道,一个理想的频率响应)(jwdeh的傅里叶变换20)(21)(dweeHnhjwnjwdd所得到的理想的单位脉冲响应)(nhd往往是一个无限长序列,对)(nhd经过适当的加权、截取处理才得到一个所需要的有限长脉冲响应序列。对应不同的加权、截断,就有不同的窗函数。所要寻找的滤波器脉冲响应就等于理想脉冲响应和窗函数的乘积。即)()()(nwnhnhd由此可见,窗函数的性质就决定了滤波器的品质。例如:窗函数的主瓣宽度决定了滤波器的过渡带宽;窗函数的旁瓣代销决定了滤波器的阻带衰减。以下是几种常见的窗函数:1、矩形窗)()(nRnwN2、Hanning窗)()]12cos(1[5.0)(nRNnnwN3、Hamming窗)()]12cos(46.054.0[)(nRNnnwN4、Blackman窗)()]14cos(08.0)12cos(5.042.0[)(nRNnNnnwN5、Kaiser窗)(]1))1(2[(1()(020INnInw其中)(0I是零阶贝塞尔函数。Kaiser窗可以通过改变参数,改变其主瓣宽度和旁瓣大小。在2实际设计过程中,上述几种窗函数可以根据对滤波器的过渡带宽度和阻带衰减的要求i,适当选取窗函数的类型和长度N,以得到比较满意的设计效果。如何根据滤波器长度N的奇偶性,选择h(n)的奇偶对称性则是另外一个需要考虑的问题。线性相位实系数FIR滤波器按其N值奇偶和h(n)的奇偶对称性,可以分为四种,它们具有不同的幅频和相位特性:1.h(n)为偶对称,N为奇数:H(ej)=[h(21N)+2/)1(121]cos)21(2NnNjennNh它的幅度是关于2,,0点成偶对称。2.h(n)偶对称,N为偶数:H(ej)=[h(21N)+2/)1(121]cos)21(2NnNjennNh它的幅度是关于成奇对称,处有零点,所以它不适合于作高通滤波器。3.h(n)为奇对称,N为奇数H(ej)={2/)1(121)]}2/1cos[)12(2NnNjennNh(它的幅度是关于2,,0点成奇对称,H(ej)在2,,0处都有零点。因此它不适合于低通和高通。4.h(n)为奇对称,N为偶对称H(ej)={2/)1(121)]}2/1cos[)12(2NnNjennNh(+2它的幅度是关于2,,0点成奇对称。h(ej)在2,,0处有零点。因此它不适于低通。在滤波器设计过程中,只有根据上述四种线性相位滤波器传递函数的性质,合理地选择应采用的种类,构造出hd(ej)的幅频特性和相位特性,才能求得所需要的,具有单位脉冲响应的线性相位FIR滤波器传递函数。窗函数法设计线性相位FIR滤波器可以按如下步骤:1.确定数字滤波器的性质要求,确定各临界频率{K}和滤波器单位脉冲响应长度N。2.根据性能要求和N值,合理地选择单位脉冲响应h(n)有奇偶对称性,从而确定理想频率响应hd(ej)的幅频特性和相位特性。3.用傅里叶反变换公式,求得理想单位脉冲响应Hd(n)。4.选择适当的窗函数W(n)根据式(4—3),求得所设计的FIR滤波器单位脉冲响应。5.用傅里叶变换求得其频率响应H(ej),分析他的频率特性,若不满足要求,可适当改变窗函数形式或长度N,重复上述过程,直至得到满意的结果。注意:上述步骤(3)中,从Hd(ej)到hd(n)的反变换要用的式(4--2)。这里积分运算在计算机上可取数值解:hd(n)1-M022)(1kknMjkMjdeeHM其中01Nn,而MN8,这样,数值解才能较好地逼近解析解。三、实验内容及步骤上机实验内容在计算机上调试自己设计好的窗函数设计FIR线性相伴滤波器设计程序31.用Hanning窗设计线性带通滤波器(N=15,N=45)Window=Hanning(16);h=fir1(15,[0.3,0.5],Window)h=Columns1through11-0.0028-0.00480.03500.0701-0.0436-0.1972-0.07530.21840.2184-0.0753-0.1972Columns12through16-0.04360.07010.0350-0.0048-0.0028freqz(h,1)Window=Hanning(46);h=fir1(45,[0.3,0.5],Window)h=Columns1through11-0.0001-0.00010.0002-0.00030.00050.00390.0021-0.0085-0.01120.00500.0161Columns12through220.0040-0.00440.0055-0.0074-0.0459-0.02200.08000.1025-0.0471-0.1740-0.0586Columns23through330.15990.1599-0.0586-0.1740-0.04710.10250.0800-0.0220-0.0459-0.00740.0055Columns34through44-0.00440.00400.01610.0050-0.0112-0.00850.00210.00390.0005-0.00030.0002Columns45through46-0.0001-0.0001freqz(h,1)42.用Rectangle窗设计线性带通滤波器(N=15,N=45)Window=boxcar(16);b=fir1(15,[0.3,0.5],Window)b=Columns1through11-0.0518-0.02330.07990.0976-0.0433-0.1555-0.05140.13920.1392-0.0514-0.1555Columns12through16-0.04330.09760.0799-0.0233-0.0518freqz(b,1)Window=boxcar(46);b=fir1(45,[0.3,0.5],Window)b=Columns1through115-0.0210-0.00440.0041-0.00430.00510.02700.0112-0.0345-0.03680.01360.0378Columns12through220.0082-0.00810.0089-0.0110-0.0630-0.02830.09710.1187-0.0526-0.1891-0.0625Columns23through330.16920.1692-0.0625-0.1891-0.05260.11870.0971-0.0283-0.0630-0.01100.0089Columns34through44-0.00810.00820.03780.0136-0.0368-0.03450.01120.02700.0051-0.00430.0041Columns45through46-0.0044-0.0210freqz(b,1)3.用Rectangle窗设计线性带通滤波器(N=15,N=45)Window=blackman(16);b=fir1(15,[0.3,0.5],Window)b=Columns1through110.0000-0.00080.01240.0395-0.0343-0.1973-0.08790.27530.2753-0.0879-0.1973Columns12through16-0.03430.03950.0124-0.00080.0000freqz(b,1)6Window=blackman(46);b=fir1(45,[0.3,0.5],Window)b=Columns1through110.0000-0.00000.0000-0.00010.00020.00130.0008-0.0037-0.00540.00260.0094Columns12through220.0025-0.00300.0040-0.0058-0.0381-0.01930.07290.0967-0.0457-0.1726-0.0589Columns23through330.16200.1620-0.0589-0.1726-0.04570.09670.0729-0.0193-0.0381-0.00580.0040Columns34through44-0.00300.00250.00940.0026-0.0054-0.00370.00080.00130.0002-0.00010.0000Columns45through46-0.00000.0000freqz(b,1)74.用Kaiser窗设计线性相位滤波器(参数N=40,Beta=4)N=40;beta=4Window=kaiser(41,4);Wn=[0.20.40.60.8];B=FIR1(N,Wn,Window)B=Columns1through11-0.00000.00000.00220.00000.0165-0.0000-0.02690.0000-0.0098-0.0000-0.0000Columns12through220.00000.02170.00000.1392-0.0000-0.22820.0000-0.11350.00000.39960.0000Columns23through33-0.11350.0000-0.2282-0.00000.13920.00000.02170.0000-0.0000-0.0000-0.0098Columns34through410.0000-0.0269-0.00000.01650.00000.00220.0000-0.0000freqz(B,1)(参数N=40,Beta=6)N=40;beta=6Window=kaiser(41,6);Wn=[0.20.40.60.8];B=FIR1(N,Wn,Window)B=Columns1through11-0.00000.00000.00070.00000.0073-0.0000-0.01510.0000-0.0065-0.0000-0.0000Columns12through220.00000.01830.00000.1269-0.0000-0.21920.0000-0.112
本文标题:数字信号处理-实验-Matlab实验FIR滤波器实现
链接地址:https://www.777doc.com/doc-1792228 .html