毕业设计——基于matlab的FIR数字滤波器设计(共75页).doc
精选优质文档-倾情为你奉上毕 业 设 计 任 务 书 设计题目:基于MATLAB的IIR数字滤波器设计专 业:通信工程 班级学号: 姓 名: 指导教师:设计期限:2012年3月 5日开始2012年5月20日结束院、系:信息工程学院 2012年3月7日 一、毕业设计的目的 1、通过毕业设计把自己在大学中所学的知识应用到实践当中。 2、深入了解利用Matlab设计FIR数字滤波器的基本方法。3、在毕业设计的过程中基本掌握了Matlab编译程序的基本方法。4、提高自己的自学能力和动手能力。5、锻炼自己通过网络及各种资料解决实际问题的能力。二、主要设计内容 利用窗函数法、频率抽样法设计FIR滤波器,绘制出滤波器的特性图。利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。最后找一段语音信号,并对此信号进行采样和加噪,绘制出采样后语音信号的时域波形和频谱图,然后用所设计的滤波器对加噪后的信号进行滤波,绘制出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。三、重点研究问题基于Matlab的FIR数字滤波器的基本设计方法,能够根据性能指标要求独立灵活地进行滤波器的设计。四、主要技术指标或主要设计参数(1)滤波器类型(2)滤波器阶数和采样频率(3)通带和阻带截止频率(4)通带和阻带衰减五、设计成果要求1、完成毕业设计书文档2、完成程序的编译和调试3、对程序主要语句做出注释本科生毕业设计(论文)开题报告 2012年3月20日学生姓名学号专业通信工程题目名称基于Matlab的FIR数字滤波器设计课题来源导师提供主要内容数字滤波技术是数字信号处理的一个重要组成部分,滤波器的设计是信号处理的核心问题之一。数字滤波器是一个离散的系统,它可以对输入的离散信号进行一系列运算处理,从输入的信号中获得所需要的信息。数字滤波器的系统函数通常表示为数字滤波器分为有限冲激响应数字滤波器,即FIR数字滤波器和无限冲激响应,即IIR数字滤波器。从公式的角度来看,FIR数字滤波器的 始终为零;IIR数字滤波器至少有一个非零。实现数字滤波器的方法一般有两种:一种方法是吧滤波器所要完成的运算编成程序并让计算机执行,也就是采用计算机软件来实现;另一种方法是设计专用的数字硬件、专用的数字信号处理器或采用通用的数字信号处理器来实现。本设计根据 FIR滤波器的设计原理,提出了Matlab环境下FIR滤波器的窗函数法、频率抽样法, Matlab环境为设计FIR滤波器提供了一个可靠而有效的工作平台。Matlab软件以矩阵运算为基础,把计算、可视化及程序设计有机融合到交互式工作环境中,并且为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。工程人员可以直观方便地进行科学研究与工程应用。Matlab是美国MathWorks 公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 Matlab和Simlink两大部分。在数字信号处理中 ,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的, 因此数字滤波器占有极其重要的地位 。数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入与输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型。与模拟滤波器相比,数字滤波器除了具有数字信号处理固有优点外,还有滤波精度高、稳定性好、灵活性强等优点。FIR滤波器可以得到严格的线性相位,但它的传递函数的极点固定在原点,只能通过改变零点位置来改变性能,为了达到高的选择性,必须用较高的阶数,对于同样的滤波器设计指标,FIR滤波器要求的阶数可能比IIR滤波器高510倍。在设计中,我将利用窗函数法、频率抽样法设计FIR滤波器,绘制出滤波器的特性图。利用所设计的滤波器对多个频带叠加的正弦信号进行处理,对比滤波前后的信号时域和频域图,验证滤波器的效果。最后找一段语音信号,并对找到的信号进行采样和加噪,绘制出采样后语音信号的时域波形和频谱图,然后用所设计的滤波器对加噪后的信号进行滤波,绘制出滤波后信号的时域波形和频谱,并对滤波前后的信号进行对比,分析信号的变化。采取的主要技术路线或方法由于FIR数字滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。目前FIR滤波器的设计方法主要有三种:窗函数法、频率抽样法和优化设计方法。我们本文主要介绍窗函数法和频率抽样设计法。其中利用窗函数法设计FIR滤波器的基本思路是:先给定频率响应函数,利用IDFT求出理想滤波器的单位响应在时域表达,从时域出发设计 h(n)逼近理想 。我们要设计的是FIR滤波器,其h(n)必然是有限长的,所以要用有限长的h(n)来逼近无限长的。最有效的方法是将进行截断,或者说,是用一个有限长度的窗函数序列w(n)来截取,即利用截取为有限长因果序列。按照线性相位滤波器的要求,线性相位FIR数字低通滤波器的单位抽样响应h(n)必须是偶对称的。矩形窗设计的FIR低通滤波器,最大相对肩峰值为8.95%,N增加钾时,2pi/N减小,故起伏振荡变密,最大肩峰则总是8.95%,这种现象称为吉布斯(Gibbs)现象。为了消除吉布斯效应,一般采用其他类型的窗函数,Matlab设计FIR滤波器有多种方法和对应的函数。窗函数设计法不仅在数字滤波器的设计中占有重要的地位,同时可以用于功率谱的估计,从根本上讲,使用窗函数的目的就是消除由无限序列的截短而引起的Gibbs现象所带来的影响。利用频率抽样法的基本思路是:设所需滤波器的频率响应为。现要求设计一个M阶的FIR滤波器hk,使得在M+1个抽样点上,FIR滤波器的频率响应与所需的频率响应相等,即 由设计要求给定,hk需要通过设计来确定。如果M+1个方程是线性无关的,则可以通过求解M+1阶的线性方程得出FIR滤波器的hk。对的一些特殊抽样法,上式方程的解可以直接由IDFT得到。由于要求设计出的滤波器是实系数的线性相位FIR滤波器,所以的抽样值还需要满足线性相位滤波器的约束条件。预期的成果及形式1、毕业设计书文档2、程序的编译和调试3、程序主要语句注释时间安排第3周 根据任务书,查阅相关资料第4周 完成开题报告第5周 复习数字信号处理中关于FIR数字滤波器的内容第6周 复习matlab课程中的笔记,熟悉matlab的使用第7周 开始利用matlab进行程序的编译第8周 继续利用matlab进行程序的编译,并修改程序中所出现的错误第9周 完成外文翻译第10周 继续利用matlab进行程序的编译和修改第11周 继续利用matlab进行程序的编译和修改,并完善程序注释第12周 完成毕业论文第13周 制作PPT,准备答辩第14周 答辩指导教师意见签 名:年 月 日备注专心-专注-专业基于Matlab的FIR数字滤波器设计摘要:在数字信号处理中 ,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的, 因此数字滤波器占有极其重要的地位。在数字控制系统中输入信号中所含的干扰对系统的性能会产生很大的影响,因此需要对输入信号进行处理,以提取有用信号。有限长冲激响应(FIR)滤波器在数字信号处理中发挥着重要作用,采用Matlab软件对FIR数字滤波器进行仿真设计,简化了设计中繁琐的计算。本文采用窗函数法,频率采样法通过调用Matlab函数设计FIR数字滤波器。绘制对应的幅频特性曲线。最后用基于Matlab函数设计的FIR数字滤波器进行语音滤波处理,通过滤波前后信号的频谱图和生成的声音文件的对比,分析不同滤波器的滤波效果。关键词:FIR数字滤波器,仿真,窗函数法,频率抽样法,MatlabDesign of the MATLAB-based FIR digital filterAbstract:In digital signal processing, because the signal is often mixed with a variety of complex composition, so a lot of signal analysis are based on the filter, digital filter occupies an extremely important position.In digital control system, interference, which is mixed in the input signal, has a great effect on performance of the system. Therefore, processing of input signal has to be done to get useful signal. Finite impulse response (FIR) filter plays an important role in the processing of digital signal. Designing the FIR filter by Matlab can simplify the complicated computation in simulation and improve the performance. By using the methods of window function, frequency sampling ,the design of FIR digital filter has been processed in Matlab. In the view of the designed program of Matlab and the figure of the amplitude-frequency characterization. At last, by using the FIR digital filters which have been designed to process the sound signal based on the Matlab function, the filtering effect of different digital filters is analyzed by comparing the signals spectrum viewers and the sound files which have been generated. The experimental results show that the FIR filters designed in this paper are effective.Key words: FIR digital filter, simulation, windowing method, frequency sampling method, Matlab目录第一章 绪论Matlab是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两大部分。1.1 Matlab简介1.1.1 MATLAB的发展MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。早期的MATLAB是用FORTRAN语言编写的,尽管功能十分简单,但作为免费软件,还是吸引了大批使用者。经过几年的校际流传,在John Little。Cleve Moler和Steve Banger合作,于1984年成立MathWorks公司,并正式推出MATLAB第一版版。从这时起,MATLAB的核心采用C语言编写,功能越来越强大,除原有的数值计算功能外,还新增了图形处理功能。MathWorks公司于1992年推出了具有划时代意义的4.0版;1994年推出了4.2版扩充了4.0版的功能,尤其在图形界面设计方面提供了新方法;1997年春5.0版问世,5.0版支持了更多的数据结构,使其成为一种更方便、更完善的编程语言;1999年初推出的MATLAB5.3版在很多方面又进一步改进了MATLAB语言的功能,随之推出的全新版本的最优化工具箱和Simulink3.0达到了很高水平;2000年10月,MATLAB6.0版问世,在操作页面上有了很大改观,为用户的使用提供了很大方便,在计算机性能方面,速度变的更快,性能也更好,在图形界面设计上更趋合理,与C语言接口及转换的兼容性更强,与之配套的Simulink4.0版的新功能也特别引人注目;2001年6月推出的MATLAB6.1版及Simulink4.1版,功能已经十分强大;2002年6月推出的MATLAB6.5版及Simulink5.0版,在计算方法、图形功能、用户界面设计、编程手段和工具等方面都有了重大改进;2004年,MathWorks公司推出了最新的MATLAB7.0版,其中集成了最新的MATLAB7编译器、Simumlink6.0仿真软件以及很多工具箱。这一版本增加了很多新的功能和特性,内容相当丰富。Matlab主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。1.1.2 Matlab的主要功能1. 数值计算和符号计算功能2. 绘图功能3. 语言体系4. MATLAB的工具箱1.2 Matlab的优势及特点1.2.1 Matlab的优势(1) 工作平台编程环境十分友好(2)编程语言简单易用(3)数据的计算处理能力十分强大(4)图像处理能力强大(5)模块集合工具箱应用广泛(6)程序的接口和发布平台很实用(7)可以开发用户界面1.2.2 Matlab 语言的特点MATLAB语言被称为第四代计算机语言,其利用丰富的函数资源,使程序员从繁琐的程序代码中解放出来,其最突出的特点就是简洁。MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码,给用户带来最直观、最简洁的程序开发环境,下面简单介绍一下MATLAB的主要特点。语言简洁紧凑,使用方便,库函数十分丰富。MATLAB程序书写的形式自由,利用丰富的库函数避开了繁琐的子程序编程任务,由于库函数都是由本领域的专家编写,所以不必担心函数的可靠性。高效方便的矩阵和数组运算,MATLAB语言不需要定义数组的维数,并给出了矩阵函数、特殊矩阵函数、特殊矩阵专门的库函数,使得在求解信号处理、建模、系统识别、优化和控制等领域的问题时,显得大为简洁、方便、高效,这是其他高级语言所不能的。MATLAB既具有结构化的控制语句,又具有面向对象编程的特性。MATLAB语法限制不严格,程序设计自由度大,通过建立M后缀名文件的形式,与用户已经编好的FORTRAN、C语言成语混合编程,方便地调用有关的FORTRAN、C语言的子程序。可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上面运行。MATLAB的图形功能强大。在C和FORTRAN语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。此外,MATLAB还具有较强的编辑图形界面的能力。MATLAB拥有功能强大的工具箱,主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实施交互功能。源程序的开放性强。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改变的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。MATLAB软件自1984年推向市场以来,历经十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件。它功能强大、界面友好、语言自然、开放性强,很快成为应用学科计算机辅助分析、设计、仿真、教学乃至科技文字吹不可缺少的基础软件。第二章 数字滤波器2.1 数字滤波器简介 数字滤波器是一个离散的系统。它可以对输入的离散信号进行一系列运算处理,从输入的信号中获得所需要的信息。数字滤波器的系统函数通常表示为 (1-1) 数字滤波器分为有限冲激响应数字滤波器,即FIR数字滤波器和无限冲激响应,即IIR数字滤波器。从公式的角度来看,FIR数字滤波器的 始终为零;IIR数字滤波器至少有一个非零。实现数字滤波器的方法一般有两种:一种方法是吧滤波器所要完成的运算编成程序并让计算机执行,也就是采用计算机软件来实现;另一种方法是设计专用的数字硬件、专用的数字信号处理器或采用通用的数字信号处理器来实现。实现一个数字滤波器一般需要三个基本的运算单元:加法器、单位延时器和常数乘法器。这些基本的单元可以有两种表示方法方框图法和信号流程图法。设计一个数字滤波器的一般步骤为:(1)按所给要求确定滤波器的性能(2)用一个因果稳定的离散线性时不变的系统函数逼近此性能的要求(3)利用算法来实现这个系统函数(4)利用计算机仿真或硬件来实现2.2 IIR数字滤波器 无限长单位冲激响应滤波器,即IIR数字滤波器具有下面几个特点:(1) 系统的单位冲激响应h(n)为无限长的;(2) 系统函数H(z)在有限z平面上有极点存在;(3) 结构上存在着输出到输入的反馈,也就是结构上是递归型的。IIR滤波器的设计就是在给定的技术指标下去确定滤波器的阶数N和系数,。在已满足给定的技术指标下,应选用阶数尽可能低的滤波器,因为滤波器的阶数越低,在实现时成本就越低。 在设计IIR滤波器时,最常用的方法是利用模拟滤波器来设计数字滤波器。其原因为:(1) 模拟滤波器的设计技术相对成熟,可以广泛利用;(2) 模拟滤波器有大量的参考程序和表格;(3) 它的解可以为闭合形式的。2.3 FIR数字滤波器有限长单位冲激响应滤波器,即FIR数字滤波器具有下面几个特点:(1) 系统的单位冲激响应h(n)在有限个n值处不为零;(2) 系统函数H(z)在|z|>0处收敛,在|z|<0处只有零,即有限z平面上只有零点,儿全部极点都在z=0处(因果系统);(3) 没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。,FIR滤波器是指在有限范围内系统的单位脉冲响应hk仅有非零值的滤波器。M阶FIR滤波器的系统函数H(z)为 (1-2) 其中H(z)是的M阶多项式,在有限的z平面内H(z)有M个零点,在z平面原点z=0有M个极点. FIR滤波器的频率响应为 (1-3)它的另外一种表示方法为 (1-4)其中和分别为系统的幅度响应和相位响应。若系统的相位响应满足下面的条件 (1-5)即系统的群延迟是一个与没有关系的常数,称为系统H(z)具有严格线性相位。由于严格线性相位条件在数学层面上处理起来较为困难,因此在FIR滤波器设计中一般使用广义线性相位。 如果一个离散系统的频率响应可以表示为 (1-6)其中和是与无关联的常数,是可正可负的实函数,则称系统是广义线性相位的。 如果M阶FIR滤波器的单位脉冲响应hk是实数,则可以证明系统是线性相位的充要条件为 (1-7)当hk满足hk=hM-k,称hk偶对称。当hk满足hk=-hM-k,称hk奇对称。按阶数hk又可分为M奇数和M偶数,所以线性相位的FIR滤波器可以有四种类型。四种线性相位FIR滤波器的性质如表1-1所示表1-1 四种线性相位FIR滤波器的特性类型IIIIIIIV阶数M偶数奇数偶数奇数hk的对称性偶对称偶对称奇对称奇对称关于的对性 偶对称 偶对称 奇对称 奇对称关于的对性 偶对称 奇对称 奇对称 偶对称的周期00A(0)任意任意00任意00任意可适用的滤波器类型 LP,HP,BP,SP LP,BP微分器,变换器,Hilbert微分器,变换器,Hilbert,HP2.4 IIR与FIR数字滤波器的比较(1) IIR滤波器h(n)无限长,FIR滤波器h(n)有限长。(2)在技术指标相同的条件下,IIR滤波器的输出对输入有反馈,所以可以用比FIR少的阶数来满足要求,存储单元少,运算次数也少,经济实惠。(3)FIR滤波器的相位是严格线性的,而IIR滤波器做不到这一点,IIR滤波器的选择性越好,其相位的非线性越严重。(4)FIR滤波器主要采用非递归结构, 有限精度的运算误差很小。而IIR滤波器在运算中会产生寄生振荡。(5)FIR滤波器可以使用快速傅里叶变换算法,而IIR滤波器不能这样。(6)IIR滤波器可以利用模拟滤波器的公式、数据和表格,计算量小。FIR滤波器设计时往往要借助计算机。(7)IIR滤波器极点位于z平面任意位置,而FIR滤波器极点固定在原点。(8)IIR滤波器用于设计规范化的选频滤波器,FIR滤波器可设计各种幅度特性和相频特性的滤波器。第三章 FIR数字滤波器的设计在数字信号处理中 ,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的, 因此数字滤波器占有极其重要的地位 。数字滤波器是具有一定传输选择特性的数字信号处理装置,其输入与输出均为数字信号,实质上是一个由有限精度算法实现的线性时不变离散系统。它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换,改变输入序列的频谱或信号波形,让有用频率的信号分量通过,抑制无用的信号分量输出。数字滤波器和模拟滤波器有着相同的滤波概念,根据其频率响应特性可分为低通、高通、带通、带阻等类型。与模拟滤波器相比,数字滤波器除了具有数字信号处理固有优点外,还有滤波精度高、稳定性好、灵活性强等优点。FIR滤波器可以得到严格的线性相位,但它的传递函数的极点固定在原点,只能通过改变零点位置来改变性能,为了达到高的选择性,必须用较高的阶数,对于同样的滤波器设计指标,FIR滤波器要求的阶数可能比IIR滤波器高510倍。由于FIR数字滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。目前FIR滤波器的设计方法主要有三种:窗函数法、频率抽样法和优化设计方法。我们本章主要介绍窗函数法、频率抽样法。3.1 窗函数法设计FIR滤波器窗函数设计法又称为傅里叶级数法。这种方法首先给出,表示要逼近的理想滤波器的频率响应,则由IDTFT可得出滤波器的单位脉冲响应为 (3-1) 由于是理想滤波器,故是无限长序列。但是我们所要设计的FIR滤波器,其hk是有限长的。为了能用FIR滤波器近似理想滤波器,需将理想滤波器的无线长单位脉冲响应分别从左右进行截断。当截断后的单位脉冲响应不是因果系统的时候,可将其右移从而获得因果的FIR滤波器。 另一种设计方案是将线性相位因子加入到理想滤波器的频率响应中,然后利用IDTFT计算出后,取在0kM范围的值为FIR滤波器单位脉冲响应。 理想滤波器的频率响应和设计出的滤波器的频率响应的积分平方误差定义为 (3-2)也可以表示为 (3-3) 上式中的第一项和第三项与所设计出的滤波器参数是没有关系的,为了使上式中的第二项达到最小,可选择 (3-4)所以用上面的方法得出的滤波器是在积分平方误差最小意义下的最佳滤波器。 Gibbs现象就是理想滤波器的单位脉冲响应截断获得的FIR滤波器的幅度函数在通带和阻带都呈现出振荡现象。随着滤波器阶数的增加,幅度函数在通带和阻带振荡的波纹数量也随之增加,波纹的宽度随之减小,然而通带和阻带最大波纹的幅度与滤波器的阶数M无关。窗函数的主瓣宽度决定了过渡带的宽度,窗函数长度N增大,过渡带减小。 下面介绍一些常用的窗函数,用N=M+1表示窗函数的长度。(1) 矩形窗 (3-5) 矩形窗的主瓣宽度为。用矩形窗设计的FIR滤波器过渡带宽度近似为。(2) Hanning窗 (3-6) Hanning窗的主瓣宽度为。由Hanning窗的定义可知,Hanning窗在其两个端点的值为零,这就使得在实际的应用中不能利用两个端点的数据。我们可将N+2点的Hanning窗除去两个端点来定义长度为N的Hanning窗。修改后的长度为N的Hanning窗定义为 (3-7) 在Matlab信号处理工具箱中所采用的就是这种修改后的定义方式。(3) Hamming窗对升余弦加以改进,可以得到旁瓣更小的效果,窗形式为 (3-8)与汉宁窗相比,主瓣宽度相同为,但旁瓣幅度更小,旁瓣峰值小于主瓣峰值的1%。(4) Blackman窗为了更进一步抑制旁瓣,可再加上余弦的二次谐波分量,得到Blackman窗(3-9) Blackman窗的主瓣宽度为。(5) Kaiser窗此种窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来控制窗函数旁瓣的大小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状。长度为N的Kaiser窗定义为 (3-10) 其中是一个可调参数,可以通过改变的值来调整窗函数的形状,从而达到不同的阻带衰减要求。上式中的是零阶第一类修正贝塞尔函数。可用幂级数表示为 (3-11)对于任意的一个实变量x,函数的值都是正的。在实际计算中,上式的求和一般取20项就能达到所需精度。随着参数的增加,Kaiser窗在两端的衰减是逐渐加大的。3.2 频率抽样法设计线性相位FIR滤波器频率抽样法是从频域出发,在频域直接设计,把给定的理想频率响应加以等间隔抽样,并以此作为实际FIR滤波器的频率响应。设所需滤波器的频率响应为。现要求设计一个M阶的FIR滤波器hk,使得在M+1个抽样点上,FIR滤波器的频率响应与所需的频率响应相等,即 (3-12)由设计的要求给定,hk需要通过设计来确定。如果M+1个方程是线性无关的,则可以通过求解M+1阶的线性方程来得出FIR滤波器的hk。对的一些特殊抽样方法,上述方程的解可以直接由IDFT得到。由于要求设计出的滤波器是实系数的线性相位FIR滤波器,所以的抽样值还需要满足线性相位滤波器的约束条件。 I型和II型线性相位滤波器的,III型和IV型线性相位滤波器的。为了使设计出的滤波器具有线性相位,在M+1个抽样点上的值应为 (3-13) 下面分别讨论四种线性相位滤波器在抽样点上的值:I型(M为偶数,hk偶对称)线性相位FIR滤波器在M+1个抽样点值为 (3-14)上式表明I型线性相位FIR滤波器在的值可由在的值确定。在的值确定后,对做M+1点的IDFT即可得到I型线性相位滤波器的hk。II型(M为奇数,hk偶对称)线性相位FIR滤波器在M+1个抽样点值为 (3-15)上式表明II型线性相位FIR滤波器在的值可由在的值确定。III型(M为偶数,hk奇对称)线性相位FIR滤波器在M+1个抽样点值为 (3-16) 上式表明III型滤波器线性相位FIR滤波器在的值可由在的值确定。 IV型(M为奇数,hk奇对称)线性相位FIR滤波器在M+1个抽样点值为 (3-17) 上式表明IV型线性相位FIR滤波器在的值可由在的值确定。 对进行频率抽样,就是在z平面单位圆上的N个等间隔点上抽样出频率响应值。在单位圆上可以有两种抽样方式,第一种是第一个抽样点在w=0处,第二种是第一个抽样点在w=pi/M处,每种方式可分为M为偶数与M为奇数两种。 为了提高逼近质量,使逼近误差更小,也就是减小在通带边缘由于抽样点的徒然变化而引起的起伏变化(这种起伏振荡使阻带内最小衰减变小,例如从衰减30dB变小为衰减20dB)。和窗口法的平滑截断一样,这里是使理想频率响应的不连续点的边缘加上一些过渡的抽样点(在这些点上抽样的最佳值由计算机算出),从而增加过渡带,减小频带边缘的突变,也就是减小了起伏振荡,增大了阻带最小衰减。这些抽样点上的取值不同,效果也就不同。如果精心设计过渡带的抽样值,就有可能使它的游泳频带的博文减小,从而设计出较好的滤波器。一般过渡带取一、二、三点抽样值即可得到满意结果。 在理想低通滤波器的设计中,若不增加过渡点,阻带和通带之间的衰减约为-21dB,如果在通带和阻带之间增加一个采样点,阻带的最小衰减可以提高到-65dB,如果增加两个采样点,阻带的最小衰减可以提高到-75dB,如果增加3个采样点,阻带的最小衰减可以提高到-85dB至-95dB。 频率抽样法的优点是可以在频域直接设计,并且适合于最优化设计;缺点是抽样频率只能等于2pi/M的整数倍或等于2pi/M的整数倍上加上pi/M,因而不能确保截止频率Wc的自由取值。要想实现自由选择频率,则必须增加抽样点数M,但这种计算量加大。第四章 利用Matlab实现FIR滤波器设计在利用Matlab设计FIR滤波器时,分别采用窗函数法、频率抽样法和优化设计方法去设计所需的滤波器。在设计的过程中,用设计的滤波器对加有噪声的语音信号或不同频率叠加的正弦输入信号进行滤波,对比输入前后的图像,以此验证滤波器的性能。在程序绘制的图像中,有滤波器的特性图、输入信号的时域频域图和输出信号的时域频域图。4.1 窗函数法的Matlab实现在窗函数法的Matlab实现中,程序中经常使用的函数有fir1和kaiserord。 程序中fir1函数的用法:b=fir1(n,Wn,ftype,window)n为滤波器的阶数Wn为滤波器的截止频率,它是一个0到1的数。如果Wn是一个含有两个数的向量,则函数返回一个带通滤波器ftype为滤波器的类型,ftype=high时,设计的是高通滤波器;ftype=stop时,设计的是带阻滤波器;没有此参数时,设计的是低通滤波器window为指定的窗函数,矩形窗为boxcar(n),汉宁窗为hanning(n),海明窗为hamming(n),布莱克曼窗为blackman(n),凯撒窗为kaiser(n,beta),没有此参数时,默认为hamming窗程序中kaiserord函数的用法:n,Wn,beta,ftype=kaiserord(f,a,dev,Fs)f是一个向量,为设计滤波器过渡带的起始点和结束点a是一个向量,指定频率段的幅度值dev是一个向量,长度和a相同,为各个通带和阻带内容许的幅度最大误差n为能够满足要求的滤波器的最小阶数Wn为滤波器的截止频率ftype为根据待设计滤波器的要求得到的滤波器的类型高通滤波器是容许高频信号通过、但减弱(或减少)频率低于截止频率信号通过的滤波器。对于不同滤波器而言,每个频率的信号的减弱程度不同。它有时被称为低频剪切滤波器;在音频应用中也使用低音消除滤波器或者噪声滤波器。低通滤波器与高通滤波器特性恰恰相反。(1) 利用窗函数法设计低通滤波器设计要求:使用hamming窗,采样频率2000Hz通带截频0.1,阻带截频0.17通带衰减小于等于0.1dB,阻带衰减大于等于50dB程序参见附录二中的1-(1)利用窗函数法设计低通滤波器图4-1 窗函数法设计低通滤波器的增益响应从参考程序及图4-1可以得到所设计出滤波器的参数如下:滤波器的采样频率为2000Hz,滤波器的阶数为266滤波器的通带截频0.1 ,阻带截频0.17 ,过渡带宽0.07 通带衰减为0.019dB,阻带衰减为53dB 对比设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标,所设计出的滤波器即为设计所要求的滤波器。图4-2 信号滤波前的时域图和频域图图4-3 信号滤波后的时域图和频域图从图4-2和图4-3的图像中可以看到:输入信号是由两个不同频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保留了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求。(2) 利用窗函数法设计带通滤波器设计要求:使用Kaiser窗,采样频率8000Hz通带截频0.325与0.5525,阻带截频0