1、 I 基于 Matlab 的 FIR 数字滤波器设计 摘要 : 在数字信号处理中 ,由 于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的, 因此数字滤波器占有极其重要的地位。 在数字控制系统中输入信号中所含的干扰对系统的性能会产生很大的影响,因此需要对输入信号进行处理,以提取有用信号。有限长冲激响应( FIR)滤波器在数字信号处理中发挥着重要作用,采用 Matlab 软件对 FIR 数字滤波器进行仿真设计,简化了设计中繁琐的计算。本文采用窗函数法,频率采样法通过调用 Matlab 函数设计 FIR 数字滤波器。绘制对应的幅频特性曲线。最后用基于 Matlab 函数设计的 F
2、IR数字滤波器进行语音滤波 处理,通过滤波前后信号的频谱图和生成的声音文件的对比,分析不同滤波器的滤波效果。 关键词 : FIR数字滤波器,仿真,窗函数法,频率抽样法, Matlab II Design of the MATLAB-based FIR digital filter Abstract: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 fi
3、lter, 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
4、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 Matl
5、ab. 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
6、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 目录 摘要 I Abstract. II 第一章 绪论 .
7、1 1.1 Matlab 简介 . 1 1.1.1 MATLAB 的发展 1 1.1.2 Matlab 的主要功能 2 1.2 Matlab 的优势及特点 . 2 1.2.1 MATLAB 的优势 2 1.2.2 Matlab 语言的特点 . 2 第二章 数字滤波器 . 4 2.1 数字滤波器简介 . 4 2.2 IIR数字滤波器 4 2.3 FIR数字滤波器 5 2.4 IIR与 FIR数字滤波器的比较 7 第三章 FIR数字滤波器的设计 . 8 3.1 窗函数法设计 FIR滤波器 . 8 3.2 频率抽样法设计线性相位 FIR滤波器 11 第四章 利用 Matlab 实现 FIR滤波器设计
8、 . 15 4.1 窗函数法的 Matlab实现 . 15 4.2 频率抽样法的 Matlab实现 . 22 4.3 利用滤波器处理加有噪声的音频波形 26 结 论 . 32 致 谢 33 参考文献 . 34 附 录 . 35 附录一 外文原文及翻译 . 35 附录二 利 用 Matlab实现 FIR 滤波器设计参考程序 541 第一章 绪论 Matlab 是矩阵实验室( Matrix Laboratory)的简称,是美国 MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括 Matlab和 Simulink两大部分。
9、 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 年推出
10、了具有划时代意义的 4.0 版; 1994 年推出了4.2版扩充了 4.0 版的功能,尤其在图形界面 设计方面提供了新方法; 1997年春5.0 版问世, 5.0 版支持了更多的数据结构,使其成为一种更方便、更完善的编程语言; 1999 年初推出的 MATLAB5.3 版在很多方面又进一步改进了 MATLAB语言的功能,随之推出的全新版本的最优化工具箱和 Simulink3.0 达到了很高水平;2000 年 10 月, MATLAB6.0 版问世,在操作页面上有了很大改观,为用户的使用提供了很大方便,在计算机性能方面,速度变的更快,性能也更好,在图形界面设计上更趋合理,与 C语言接口及转换的兼
11、容性更强,与之配套的 Simulink4.0版的新 功能也特别引人注目; 2001 年 6 月推出的 MATLAB6.1 版及 Simulink4.1版,功能已经十分强大; 2002 年 6 月推出的 MATLAB6.5 版及 Simulink5.0 版,在计算方法、图形功能、用户界面设计、编程手段和工具等方面都有了重大改进;2004年, MathWorks公司推出了最新的 MATLAB7.0版,其中集成了最新的 MATLAB7编译器、 Simumlink6.0 仿真软件以及很多工具箱。这一版本增加了很多新的功能和特性,内容相当丰富。 2 Matlab主要面对科学计算、可视化以及交互式程序设计
12、的高科技 计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。 1.1.2 Matlab 的主要功能 1. 数值计算和符号计算功能 2. 绘图功能 3. 语言体系 4. MATLAB 的工具箱 1.2 Matlab 的优势及特点 1.2.1 MATLAB的优势 (1) 工作平台编程环境十分友好 ( 2)编程语言简单易用 ( 3)数据的计算处理能力十分强 大 ( 4)图像处理能力强大 ( 5)模块集合工具
13、箱应用广泛 ( 6)程序的接口和发布平台很实用 ( 7)可以开发用户界面 1.2.2 Matlab 语言的特点 MATLAB 语言被称为第四代计算机语言,其利用丰富的函数资源,使程序员从繁琐的程序代码中解放出来,其最突出的特点就是简洁。 MATLAB 用更直观的、符合人们思维习惯的代码,代替了 C 和 FORTRAN 语言的冗长代码,给用户带来最直观、最简洁的程序开发环境,下面简单介绍一下 MATLAB 的主要3 特点。 语言简洁紧凑,使用方便,库函数十分丰富。 MATLAB 程序书写的形 式自由,利用丰富的库函数避开了繁琐的子程序编程任务,由于库函数都是由本领域的专家编写,所以不必担心函数的
14、可靠性。 高效方便的矩阵和数组运算, MATLAB 语言不需要定义数组的维数,并给出了矩阵函数、特殊矩阵函数、特殊矩阵专门的库函数,使得在求解信号处理、建模、系统识别、优化和控制等领域的问题时,显得大为简洁、方便、高效,这是其他高级语言所不能的。 MATLAB 既具有结构化的控制语句,又具有面向对象编程的特性。 MATLAB 语法限制不严格,程序设计自由度大,通过建立 M 后缀名文件的形式,与用户已经编好的 FORTRAN、 C 语言成语混合编程,方便地调用有关的FORTRAN、 C 语言的子程序。可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上面运行。 MATLAB 的图形功
15、能强大。在 C 和 FORTRAN 语言里,绘图都很不容易,但在 MATLAB 里,数据的可视化非常简单。此外, MATLAB 还具有较强的编辑图形界面的能力。 MATLAB 拥有功能强大的工具箱,主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实施交互功能。 源程序的开放性强。除内部函数以外,所有 MATLAB 的核心文件和工具箱文件都是可读 可改变的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。 MATLAB 软件自 1984 年推向市场以来,历经十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件。它功能强大、界面友好、语言自然、开放性强,很
16、快成为应用学科计算机辅助分析、设计、仿真、教学乃至科技文字吹不可缺少的基础软件。 4 第二章 数字滤波器 2.1 数字滤波器简介 数字滤波器是一个离散的系统。它可以对输入的离散信号进行一系列运算处理,从输入的信号中获得所需要的信息。数字滤波器的系统函数通常表示为 01()1MjjjNiiibzHzaz(1-1) 数字滤波器分为有限冲激响应数字滤波器,即 FIR数字滤波器和无限冲激响应,即 IIR 数字滤波器。从公式的角度来看, FIR 数字滤波器的 ia 始终为零;IIR数字滤波器 ia 至少有一个非零 。 实现数字滤波器的方法一般有两种:一种方法是吧滤波器所要完成的运算编成程序并让计算机执行
17、,也就是采用计算机软件来实现;另一种方法是设计专用的数字 硬件、专用的数字信号处理器或采用通用的数字信号处理器来实现。实现一个数字滤波器一般需要三个基本的运算单元:加法器、单位延时器和常数乘法器。这些基本的单元可以有两种表示方法 方框图法和信号流程图法。 设计一个数字滤波器的一般步骤为: ( 1)按所给要求确定滤波器的性能 ( 2)用一个因果稳定的离散线性时不变的系统函数逼近此性能的要求 ( 3)利用算法来实现这个系统函数 ( 4) 利用计算机仿真或硬件来实现 2.2 IIR 数字滤波器 无限长单位冲激响应滤波器,即 IIR数字滤波器具有下面几个特点: ( 1) 系统的单位冲 激响应 h(n)
18、为无限长的 ; ( 2) 系统函数 H(z)在有限 z 平面上有极点存在; 5 ( 3) 结构上存在着输出到输入的反馈,也就是结构上是递归型的。 IIR滤波器的设计就是在给定的技术指标下去确定滤波器的阶数 N和系数 ia , ib 。在已满足给定的技术指标下,应选用阶数尽可能低的滤波器,因为滤波器的阶数越低,在实现时成本就越低。 在设计 IIR 滤波器时,最常用的方法是利用模拟滤波器来设计数字滤波器。其原因为: ( 1) 模拟滤波器的设计技术相对成熟,可以广泛利 用; ( 2) 模拟滤波器有大量的参考程序和表格; ( 3) 它的解可以为闭合形式的。 2.3 FIR 数字滤波器 有限长单位冲激响
19、应滤波器,即 FIR数字滤波器具有下面几个特点: ( 1) 系统的单位冲激响应 h(n)在有限个 n值处不为零 ; ( 2) 系统函数 H(z)在 |z|0 处收敛,在 |z|0处只有零,即有限 z平面上只有零点,儿全部极点都在 z=0处(因果系统); ( 3) 没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。, FIR 滤波器是指在有限范围内系统的单位脉冲响应 hk仅有非零值的滤波器。 M阶 FIR滤波器的系统函数 H(z)为 0( ) M kkH z h k z (1-2) 其中 H(z)是 kz 的 M阶多项式,在有限的 z平面内 H(z)有 M个零点,在
20、z平面原点 z=0有 M个极点 . FIR滤波器的频率响应 ()jHe 为 0( ) Mj jkkH e h k e (1-3) 它的另外一种表示方法为 6 ()( ) ( )j j jH e H e e (1-4) 其中 ()jHe 和 () 分别为系统的幅度响应和相位响应。 若系统的相位响应 () 满足下面的条件 () (1-5) 即系统的群延迟是一个与 没有关系的常数 ,称为系统 H(z)具有严格线性相位 。 由于严格线性相位条件在数学层面上 处理起来较为困难,因此在 FIR滤波器设计中一般使用广义线性相位。 如果一个离散系统的频率响应 ()jHe 可以表示为 ()( ) ( )jjH
21、e A e (1-6) 其中 和 是与 无关联的常数, ()A 是可正可负的实函数,则称系统是广义线性相位的。 如果 M阶 FIR滤波器的单位脉冲 响应 hk是实数,则可以证明系统是线性相位的充要条件为 h k h M k (1-7) 当 hk满足 hk=hM-k,称 hk偶对称。当 hk满足 hk=-hM-k,称 hk奇对称。按阶数 hk又可分为 M 奇数和 M 偶数,所以线性相位的 FIR 滤波器可以有四种类型。 四种线性相位 FIR滤波器的性质如表 1-1所示 表 1-1 四种线性相位 FIR滤波器的特性 类型 I II III IV 阶数 M 偶数 奇数 偶数 奇数 hk的对称性 偶对
22、称 偶对称 奇对称 奇对称 ()A 关于0 的对性 偶对称 偶对称 奇对称 奇对称 7 ()A 关于 的对性 偶对称 奇对称 奇对称 偶对称 ()A 的周期 2 4 2 4 0 0 0.5 0.5 A(0) 任意 任意 0 0 ()A 任意 0 0 任意 可适用的滤波器类型 LP,HP,BP,SP LP,BP 微分器,变换器, Hilbert 微分器,变换器, Hilbert,HP 2.4 IIR 与 FIR 数字滤波器的比较 ( 1) IIR滤波器 h( n)无限长, FIR 滤波器 h( n)有限长。 (2)在技术指标相同的条件下, IIR 滤波器的输出对输入有反馈,所以可以用比FIR少的
23、阶数来满足要求,存储单元少,运算次数也少,经济实惠。 ( 3) FIR滤波器的相位是严格线性的,而 IIR滤波器做不到这一点, IIR滤波器的选择性越好,其相位的非线性越严重。 ( 4) FIR滤波器主要采用非递归结构, 有限精度的运算误差很小。而 IIR滤波器在运算中会产生寄生振荡。 ( 5) FIR滤波器可以使用快速傅里叶变换算法,而 IIR 滤波器不能这样。 ( 6) IIR滤波器可以利用模拟滤波器的公式、数据和表格,计算量小。 FIR滤波器设计时往往要借助计算机。 ( 7) IIR滤波器极点位于 z平面任意位置,而 FIR滤波器极点固定在原点。 ( 8) IIR滤波器用于设计规范化的选
24、频滤波器, FIR滤波器可设计各种幅度特性和相频特性的 滤波器。 8 第三章 FIR 数字滤波器的设计 在数字信号处理中 ,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的, 因此数字滤波器占有极其重要的地位 。数字滤波器是具有一定传输选择特性的数字信号处理装置 ,其输入与输出均为数字信号 ,实质上是一个由有限精度算法实现的线性时不变离散系统。它的基本工作原理是利用离散系统特性对系统输入信号进行加工和变换 ,改变输入序列的频谱或信号波形 ,让有用频率的信号分量通过 ,抑制无用的信号分量输出。数字滤波器和模拟滤波器有着相同的滤波概念 ,根据其频率响应特性可分 为低通、高通、
25、带通、带阻等类型。与模拟滤波器相比 ,数字滤波器除了具有数字信号处理固有优点外 ,还有滤波精度高、稳定性好、灵活性强等优点。 FIR滤波器可以得到严格的线性相位 ,但它的传递函数的极点固定在原点 ,只能通过改变零点位置来改变性能 ,为了达到高的选择性 ,必须用较高的阶数 ,对于同样的滤波器设计指标 ,FIR 滤波器要求的阶数可能比 IIR滤波器高 5 10倍。 由于 FIR数字滤波器具有严格的相位特性,对于信号处理和数据传输是很重要的。目前 FIR 滤波器的设计方法主要有三种:窗函数法、频率抽样法和优化设计方法。 我们本章 主要介绍窗函数法、频率抽样法。 3.1 窗函数法设计 FIR 滤波器
26、窗函数设计法又称为傅里叶级数法。这种方法首先给出 ()jdHe , ()jdHe 表示要逼近的理想滤波器的频率响应,则由 IDTFT可得出滤波器的单位脉冲响应为 1 ( )2j jkddh k H e e d(3-1) 由于是理想滤波器,故 dhk是无限长序列。但是我们所要设计的 FIR 滤波器,其 hk是有限长的。为了能用 FIR 滤波器近似理想滤波器,需将理想滤波器的无线长单位脉冲响应 dhk分别从左右进行截断。当截断后的单位脉冲响应9 dhk不是因果系统的时候,可将其右移从而获得因果的 FIR滤波器。 另一种设计方案是将线性相位因子 ( 0.5 )jMe 加入到理想滤波器的频率响应中,然
27、后利 用 IDTFT计 算出 dhk后,取 dhk在 0 k M 范围的值为 FIR滤波器单位脉冲响应。 理想滤波器的频率响应 ()jdHe 和设计出的滤波器的频率响应 ()jdHe 的积分平方误差定义为 22 1 ( ) ( )2 jjdH e H e d (3-2) 2 也可以表示为 22 dkh k h k (3-3) 1 2 2 201 Md d dk k k Mh k h k h k h k 上式中 的第一项和第三项与所设计出的滤波器参数是没有关系的,为了使上式中的第二项达到最小,可选择 , 0dh k h k k M (3-4) 所以用上面的方法得出的滤波器是在积分平方误差最小意义
28、下的最佳滤波器。 Gibbs 现象就是理想滤波器的单位脉冲响应 dhk截断获得 的 FIR 滤 波器的幅度函数 ()A 在通带和阻带都呈现出振荡现象。随着滤波器阶数的增加,幅度函数 在通带和阻带振荡的波纹数量也随之增加,波纹的宽度随之减小,然而通带和阻带最大波纹的幅度与滤波器的阶数 M 无 关。窗函数的主瓣宽度决定了()jdHe 过渡带的宽度,窗函数长度 N增大,过渡带减小。 下面介绍一些常用的窗函数,用 N=M+1表示窗函数的长度。 ( 1) 矩形窗 10 100kMko th e r w is e (3-5) 矩形窗的主瓣宽度为 4N 。用矩形窗设计的 FIR滤波器过渡带宽度近似为1.8
29、N 。 ( 2) Hanning 窗 20 . 5 0 . 5 c o s ( ) ( 0 )0 ( )k kMMko th e r w is e (3-6) Hanning 窗的主瓣宽度为 8N 。由 Hanning 窗的定义可知, Hanning 窗在其两个端点的值为零,这就使得在实际的应用中不能利用两个端点的数据。我们可将 N+2点的 Hanning窗除去两个端点来定义长度为 N的 Hanning窗。修改后的长度为 N的 Hanning 窗定义为 2 ( 1 )0 . 5 0 . 5 c o s ( ) ( 0 )0 ( )k kMMko th e r w is e (3-7) 在 Ma
30、tlab 信号处理工具箱中所采用的就是这种修改后的定义方式 。 ( 3) Hamming 窗 对升余弦加以改进,可以得到旁瓣更小的效果,窗形式为 0 . 5 4 0 . 4 6 c o s ( 2 / ) ( 0 )0 ( )k M k Mko th e r w is e (3-8) 与汉宁窗相比,主瓣宽度相同为 8N ,但旁瓣幅度更小,旁瓣峰值小于主瓣峰值的 1%。 ( 4) Blackman 窗 为了更进一步抑制旁瓣,可再加上余弦的二次谐波分量,得到 Blackman窗 11 240 . 4 2 0 . 5 c o s ( ) 0 . 0 8 c o s ( ) ( 0 )0 ( )kk
31、kMMMwko t h e r w i s e (3-9) Blackman 窗 的主瓣宽 度为 12N 。 ( 5) Kaiser 窗 此种窗是一种应用广泛的可调节窗,它可以通过改变窗函数的形状来控制窗函数旁瓣的大小,从而在设计中可用滤波器的衰减指标来确定窗函数的形状。长度为 N的 Kaiser 窗定义为 2002( 1 ( 1 ) ) , 0()kI Mk k MI (3-10) 其中 是一个可调参数,可以通过改变 的值来调整窗函数的形状,从而达到不同的阻带衰减要求。上式中的 0()Ix是零阶第一类修正贝塞尔函数。可用幂级数表示为 201( / 2 )( ) 1 !nnxIxn (3-11
32、) 对于任意的一个实变量 x,函数的值都是正的。在实际计算中,上式的求和一般取 20项就能达到所需精度。随着参数 的增加, Kaiser 窗在两端的衰减是逐渐加大的。 3.2 频率抽样法设计线性相位 FIR 滤波器 频率抽样法是从频域出发,在频域直接设计,把给定的理想频率响应()jdHe 加以等间隔抽样,并以此作为实际 FIR 滤波器的频率响应 。设所需滤波器的频率响应为 ()jdHe 。 现要求设计一个 M阶的 FIR滤波器 hk,使得 ()jdHe 在 M+1个抽样点上,FIR滤波器的频率响应 ()jdHe 与所需的频率响应 ()jHe 相等,即 12 0( ) ( ) , 0 , 1 ,
33、 . . . ,mmMj j kjd kH e H e h k e m M (3-12) ()jdHe 由设计的要求给定, hk需要通过设计来确定。如果 M+1 个方程是线性无关的,则可以通过求解 M+1阶的线性方程来得出 FIR滤波器的 hk。对 m 的一些特殊抽样方法,上述方程的解可以直接由 IDFT 得到。由于要求设计出的滤波器是实系数的线性相位 FIR 滤波器,所以 ()jdHe 的抽样值还需要满足线性相位滤波器的约束条件。 I 型和 II 型线性相位滤波器的 0 , III 型和 IV 型线性相位滤波器的2 。为了使设计出的滤波器具有线性相位, ()jdHe 在 M+1个抽样点上的值
34、dHm应为 2 11 2 ( ) ( )( 1 )mMj j mjMMd d d mH m H e e e A M (3-13) 1 Mjmj Mde e A m 下面分别讨论四种线性相位滤波器在抽样点 dHm上的值: I型( M为偶数, hk偶对称)线性相位 FIR滤波器在 M+1个抽样点值为 1* ( 0 2 ) 1 ( 2 1 )MjmMdddA m e m MHmH M m M m M (3-14) 上式表明 I 型线性相位 FIR 滤波器 dHm在 21M m M 的值可由dHm在 12mM 的值确定。在 dHm的值确定后,对 dHm做 M+1点的 IDFT即可得到 I型线性相位滤波
35、器的 hk。 II型( M 为奇数, hk偶对称)线性相位 FIR滤波器在 M+1个抽样点值为 13 1* ( 0 ( 1 ) 2 ) 0 ( ( 1 ) 2 ) 1 ( ( 3 ) 2 1 )MjmMdddA m e m MH m m MH M m M m M (3-15) 上式表明 II 型线性相位 FIR 滤波器 dHm在 ( 3) 2 1M m M 的值可由 dHm在 1 ( 1) 2mM 的值确定。 III型( M为偶数, hk奇对称)线性相位 FIR滤波器在 M+1个抽样点值为 1*0 ( 0 ) ( 1 2 ) 1 ( 2 1 )MjmMdddmH m jA m e m MH M
36、 m M m M (3-16) 上式表明 III 型滤波器线性相位 FIR 滤波器 dHm在 21M m M 的值可由dHm在 12mM 的值确定。 IV型( M 为奇数, hk奇对称)线性相位 FIR滤波器在 M+1个抽样点值为 1*0 ( 0 ) ( 1 ( 1 ) 2 ) 1 ( ( 3 ) 2 )MjmMdddmH m jA m e m MH M m M m M (3-17) 上式表明 IV 型线性相位 FIR 滤波器 dHm在 ( 3) 2M m M 的值可由 dHm在 1 ( 1) 2mM 的值确定。 对 ()jdHe 进行频率抽样,就是在 z 平面单位圆上的 N 个等 间隔点上抽
37、样出频率响应值。在单位圆上可以有两种抽样方式,第一种是第一个抽样点在 w=0处,第二种是第一个抽样点在 w=pi/M 处,每种方式可分为 M 为偶数与 M 为奇数两种。 为了提高逼近质量,使逼近误差更小,也就是减小在通带边缘由于抽样点的徒然变化而引起的起伏变化(这种起伏振荡使阻带内最小衰减变小,例如从衰减14 30dB变小为衰减 20dB)。和窗口法的平滑截断一样,这里是使理想频率响应的不连续点的边缘加上一些过渡的抽样点(在这些点上抽样的最佳值由计算机算出),从而增加过渡带,减小频带边缘的突变,也就是减小了起伏 振荡,增大了阻带最小衰减。这些抽样点上的取值不同,效果也就不同。如果精心设计过渡带
38、的抽样值,就有可能使它的游泳频带的博文减小,从而设计出较好的滤波器。一般过渡带取一、二、三点抽样值即可得到满意结果。 在理想低通滤波器的设计中,若不增加过渡点,阻带和通带之间的衰减约为 -21dB,如果在通带和阻带之间增加一个采样点,阻带的最小衰减可以提高到-65dB,如果增加两个采样点,阻带的最小衰减可以提高到 -75dB,如果增加 3个采样点,阻带的最小衰减可以提高到 -85dB至 -95dB。 频率抽样法的优点 是可以在频域直接设计,并且适合于最优化设计;缺点是抽样频率只能等于 2pi/M 的整数倍或等于 2pi/M 的整数倍上加上 pi/M,因而不能确保截止频率 Wc 的自由取值。要想
39、实现自由选择频率,则必须增加抽样点数 M,但这种计算量加大。 15 第四章 利用 Matlab 实现 FIR 滤波器设计 在利用 Matlab 设计 FIR 滤波器时,分别采用窗函数法、频率抽样法和优化设计方法去设计所需的滤波器。在设计的过程中,用设计的滤波器对加有噪声的语音信号或不同频率叠加的正弦输入信号进行滤波,对比输入前后的图像,以此验证 滤波器的性能。在程序绘制的图像中,有滤波器的特性图、输入信号的时域频域图和输出信号的时域频域图。 4.1 窗函数法的 Matlab 实现 在窗函数法的 Matlab实现中,程序中经常使用的函数有 fir1和 kaiserord。 程序中 fir1函数的
40、用法: 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窗 程序中 ka
41、iserord函数的用法: n,Wn,beta,ftype=kaiserord(f,a,dev,Fs) f是一个向量,为设计滤波器过渡带的起始点和结束点 a是一个向量,指定频率段的幅度值 dev是一个向量,长度和 a相同,为各个通带和阻带内容许的幅度最大误差 n为能够满足要求的滤波器的最小阶数 Wn为滤波器的截止频率 ftype为根据待设计滤波器的要求得到的滤波器的类型 高通滤波器是容许高频信 号通过、但减弱(或减少)频率低于截止频率信号通过的滤波器。对于不同滤波器而言 ,每个频率的信号的减弱程度不同。它有时被称为低频剪切滤波器;在音频应用中也使用低音消除滤波器或者噪声滤波器。16 低 通滤波
42、器与 高 通滤波器特性恰恰相反。 (1) 利用窗函数法设计低通滤波器 设计要求: 使用 hamming窗,采样频率 2000Hz 通带截频 0.1 ,阻带截频 0.17 通带衰减小于等于 0.1dB,阻带衰减大于等于 50dB 程序参见附录二中的 1-( 1)利用窗函数法设计低通滤波器 0 100 200 300 400 500 600 700 800 900 1000- 1 4 0- 1 2 0- 1 0 0- 8 0- 6 0- 4 0- 2 0020频率 / 赫兹增益/分贝滤波器的增益响应图 4-1 窗函数法设计低通滤波器的增益响应 从参考程序及图 4-1可以得到所设计出滤波器的参数如下
43、: 滤波器的采样频率为 2000Hz,滤波器的阶数为 266 滤波器的通带截频 0.1 ,阻带截频 0.17 ,过渡带宽 0.07 通带衰减为 0.019dB,阻带衰减为 53dB 对比设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标,所设计出的滤波器即为设计所要求的滤波器。 17 0 0 . 0 5 0 . 1 0 . 1 5 0 . 2 0 . 2 5 0 . 3 0 . 3 5 0 . 4 0 . 4 5 0 . 5-2-1012时间 / 秒幅度信号滤波前时域图0 100 200 300 400 500 600 700 800 900 10000100200300频率 / 赫
44、兹幅度信号滤波前频域图图 4-2 信号滤波前的时域图和频域图 0 . 2 0 . 2 5 0 . 3 0 . 3 5 0 . 4 0 . 4 5 0 . 5-2-1012时间 / 秒幅度信号滤波后时域图0 100 200 300 400 500 600 700 800 900 1000020406080频率 / 赫兹幅度信号滤波后频域图图 4-3 信号滤波后的时域图和频域图 从图 4-2和图 4-3的图像中可以看到:输入信号是由两个不同频率的正弦信号叠加而成,信号频域图中位于滤波器通带内的频率分量保留了下来,位于滤波器18 阻带内的频率分量被滤除,滤波器的效果符合设计要求。 ( 2) 利用窗函
45、数法设 计带通滤波器 设计要求: 使用 Kaiser窗, 采样频率 8000Hz 通带截频 0.325 与 0.5525 ,阻带截频 0.25 与 0.6025 阻带衰减大于等于 40dB,通带和阻带波纹 0.01 程序参见附录二中的 1-( 2)利用窗函数法设计带通滤波器 0 500 1000 1500 2000 2500 3000 3500 4000- 1 2 0- 1 0 0- 8 0- 6 0- 4 0- 2 0020频率 / 赫兹增益/分贝滤波器的增益响应图 4-4 窗 函数法设计带通滤波器的增益响应 从参考程序及图 4-4可以得到所设计出滤波器的参数如下: 滤波器的采样频率为 80
46、00Hz,滤波器的阶数为 90 滤波器的通带截频 0.325 与 0.5525 ,阻带截频 0.25 与 0.6025 ,过渡带宽 0.075 与 0.05 阻带衰减为 40dB,通带和阻带的波纹均为 0.01 对比设计要求与所设计出滤波器的参数可知,其各项参数均满足设计指标,所设计出的滤波器即为设计所要求的滤波器。 19 0 0 . 0 0 5 0 . 0 1 0 . 0 1 5 0 . 0 2 0 . 0 2 5-4-2024时间 / 秒幅度信号滤波前时域图0 500 1000 1500 2000 2500 3000 3500 4000050100150频率 / 赫兹幅度信号滤波前频域图图
47、 4-5 信号滤波前的时域图和频域图 0 . 0 0 5 0 . 0 1 0 . 0 1 5 0 . 0 2 0 . 0 2 5-4-2024时间 / 秒幅度信号滤波后时域图0 500 1000 1500 2000 2500 3000 3500 4000020406080频率 / 赫兹幅度信号滤波后频域图图 4-6 信号滤波后的时域图和频域图 从图 4-5和图 4-6的图像中可以看到:输入信号是由四个不同频率的正弦信号20 叠加而成,信号频域图中位于滤波器通带内的频率分量保留了下来,位于滤波器阻带内的频率分量被滤除,滤波器的效果符合设计要求。 (3) 利用窗函数法设计多通带滤波器 设计要求: 使用 Kaiser窗, 采样频率 200H