基于MATLAB的数字滤波器毕业设计.doc
47 / 57基于MATLAB的数字滤波器的设计摘 要本文分别研究了在MATLAB环境下IIR数字滤波器和FIR数字滤波器的设计方法与实现方法,并进行图形用户界面设计,以显示本文所介绍滤波器的特性。在无限脉冲响应(IIR)数字滤波器设计中,先进行模拟滤波器的设计,然后进行模拟-数字滤波器转换,即采用脉冲响应不变法与双线性Z变化法设计数字滤波器,最后进行滤波器的频带转换。在有限脉冲响应(FIR)数字滤波器设计中,讨论了FIR线性相位滤波器的特点和用窗函数法设计FIR滤波器两个问题。两类滤波器整个设计过程都是按照理论分析、编程设计、具体实现的步骤进行的。为方便分析者直观,形象,方便的分析滤波器的特性,创新的设计出了图形用户界面滤波器分析系统。整个系统分为两个界面,其容主要包含四部分:System(系统)、Analysis(分析)、Tool(工具)、Help(帮助)。关键词:数字滤波器、MATLAB、无限脉冲响应、有限脉冲响应、图形用户界面Matlab-based digital filter designAbstractIn this thesis, designs of the Infinite Impulse Response digital filter (IIR) and Finite Impulse Response digital filter (FIR) under MATLAB are studied. And the Graphical User Interfaces (GUI) to analysis the characteristics of filter is designed. The design of IIR filters can be achieved through three steps: firstly, the design of analog low-pass filter; secondly, it is analog-to-digital filter conversion; lastly, it is the conversion of filter frequency band. In design of FIR filters, two questions are discussed: the characteristics of FIR linear phase filter and reasoning of related formulas; the other is about the design of the FIR filters by means of window functions. The design of FIR and IIR follows the procedures of theoretical analysis, programming design and realization.We design the Graphical User Interfaces (GUI) of the digital filter analysis system makes sure of people can analysis the characteristics of the design directly and easily. The whole system divide into two graphical interfaces, it contains four parts: System, Analysis, Tool and Help. Keywords: Digital Filter, MATLAB, IIR, FIR, Graphical User Interfaces目 录引言 1第1章 绪论21.1 数字滤波技术21.1.1 滤波器原理31.1.2 数字滤波器设计方法概述31.2 MATLAB软件简介4第2章 IIR滤波器概况与其MATLAB实现62.1 模拟滤波器与其MATLAB实现62.1.1 巴特沃斯低通滤波器62.1.2 切比雪夫低通滤波器72.1.3 椭圆低通滤波器82.2 模拟数字滤波器变换与其MATLAB实现82.2.1 脉冲响应不变法92.2.2 双线性Z变换法102.3小结11第3章 FIR滤波器设计与其MATLAB实现123.1 线性相位FIR数字滤波器的条件和特点123.1.1 线性相位条件123.1.2 线性相位FIR滤波器幅度特性的特点133.1.3 线性相位FIR滤波器零点分布特点133.2 常用窗函数与其MATLAB实现133.2.1 常用窗函数介绍133.2.2 各种窗函数的实现与比较153.3 基于窗函数的FIR数字滤波器设计与其MATLAB实现163.3.1 海明窗设计数字低通滤波器173.3.2 汉宁窗设计数字高通滤波器193.3.3 布拉克曼窗与三角窗设计数字带通滤波器213.3.4 汉宁窗设计数字带阻滤波器233.4 小结24第4章 图形用户界面设计-滤波器分析系统254.1 MATLAB中GUI设计技术特点254.1.1 GUIDE简介254.1.2 GUI设计规与设计步骤254.2 滤波器分析系统与其MATLAB实现264.2.1 滤波器分析系统的初始界面274.2.2 滤波器分析系统的主界面284.3 小结34总结与展望35致36参考文献37附录39附录A 外文文献与译文39附录B 主要参考文献44插图清单图 1-1LIS系统 3图 2-1 理想切比雪夫I型滤波器的幅频特性 7图 2-2 理想切比雪夫I型滤波器的幅频特性8图 2-3 双性线Z变换法的映射关系 10图 3-1 常用窗函数时域幅度曲线比较 15图 3-2 常用窗函数频域幅度曲线比较 10图 3-3 FIR数字低通滤波器脉冲响应与幅度响应16图 3-4 FIR数字低通滤波器脉冲响应与幅度响应19图 3-5 FIR数字带通滤波器脉冲响应与幅度响应20图 3-6FIR数字带阻滤波器脉冲响应与幅度响应22图4-1 设计步骤24图4-2属性编辑控制器26图4-3 按下按键CLOSE后出现的问题显示对话框27图4-4滤波器分析系统的主界面的下拉式菜单28图4-5菜单编辑器29图 4-6 IIR模拟带通滤波器参数输入选择29图 4-7切比雪夫I型带阻模拟滤波器(阶次N=2,9)30图 4-8 IIR数字滤波器Analyze32图 4-9 FIR数字滤波器Analyze33图 4-10 错误信息显示对话框33图 4-11信息显示对话框34表格清单表 3-1 各种窗函数的性能比较 16引 言随着信息时代和数字世界的到来,数字信号处理已成为当今一门极其重要的学科和技术领域。目前数字信号处理在通信、语音、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到了广泛的应用。在数字信号处理中起着重要的作用并已获得广泛应用的是数字滤波器(DF,Digital Filter),根据其单位冲激响应函数的时域特性可分为两类:无限冲激响应IIR(Infinite Impulse Response)滤波器和有限冲激响应FIR(Finite Impulse Response)滤波器。与FIR滤波器相比,IIR的实现采用的是递归结构,极点须在单位圆,在一样设计指标下,实现IIR滤波器的阶次较低,即所用的存储单元少,从而经济效率高。MATLAB是英文MATrix LABoratory(矩阵实验室)的缩写。它是美国的MathWork公司推出的一套用于科学计算和图形处理可视化、高性能语言与软件环境。MATLAB的信号处理工具箱是专门应用于信号处理领域的专用工具箱,它的两个基本组成就是滤波器的设计与实现部分以与谱分析部分。工具箱提供了丰富而简便的设计,使原来繁琐的程序设计简化成函数的调用。只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便。第1章 绪论1.1 数字滤波技术数字滤波是数字信号处理的重要基础,数字信号处理主要是研究用数字或符号的序列来表示信号波形,并用数字的方式去处理这些序列,把它们改变成在某种意义上更希望的形式,以便估计信号的特征参量,或削弱信号中的多余分量和增强信号中的有用分量。数字滤波器在对信号的过滤、检测与参数估计等处理过程中,是使用最为广泛的一种线性系统。数字滤波器(Digital Filter,简称为DF)是指完成信号滤波处理功能的、用有限精度算法实现的离散时间线性非时变系统。数字滤波器的数学运算通常有两种实现方式。一种是频域法,即利用FFT快速运算办法对输入信号进行离散傅立叶变换,分析其频谱,然后根据希望的频率特性进行滤波,再利用傅立叶反变换恢复出时域信号。这种方法具有较好的频域选择特性和灵活性,并且由于信号频率与所希望的频谱特性是简单的相乘关系,所以它比计算等价的时域卷积要快得多。另一种方法是时域法,这种方法是通过对离散抽样数据作差分数学运算来达到滤波目的的。数字滤波器的输入是一组(由模拟信号取样和量化的)数字量,其输出是经过数字变换的另一组数字量。数字滤波器具有稳定性高、精度高、灵活性大等突出优点。随着数字技术的发展,用数字技术实现滤波器的功能愈来愈受到人们的重视,并得到了广泛的应用。数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。60年代中期,开始形成关于数字滤波器的一套完整的正规理论。这一时期,提出了各种各样的数字滤波器结构,有的以运算误差最小为特点,有的则以运算速度高见长;出现了数字滤波器的各种逼近方法和实现方法,对递归和非递归两类滤波器作了全面的比较;统一了数字滤波器的基本概念和理论,对无限冲激响应(IIR)和有限冲激响应(FIR)的认识有了完整理论。70年代后,科学技术蓬勃发展,数字信号处理开始与大规模和超大规模集成电路技术、微处理技术等新工艺新技 术结合起来,并引进计算机辅助设计方法,大大丰富了数字滤波器的分析与设计,各种新的数字信号处理系统,也都能用专用数字硬件实时加以实现。相信在未来,随着电子仪器与电子技术应用系统朝着数字化、小型化、自动化以与多功能化等方向发展,包括数字滤波器在的数字信号处理技术会有以惊人的速度进行飞跃式发展。1.1.1 滤波器原理滤波器,顾名思义,其作用是对输入信号起到滤波的作用。对于图1-1所示的LSI系统,其时域输入输出关系为:(1-1)h (n)x(n)y(n)图1-1若y(n),x(n)的傅立叶变换存在,则输入输出的频域关系是:(1-2)当输入信号x(n) 通过滤波器系统h(n) 后,其输出 y(n) 中不再含有|>c的频率成分,仅使|<c的信号成分通过。因此,滤波器的形状不同,其滤波后的信号结果也不一样。若滤波器的输入、输出都是离散时间信号,那么该滤波器的单位冲激响应h(n)也必然是离散的,这种滤波器称为数字滤波器(DF,Digital Filter)。当用硬件实现一个DF时,所需元件是延迟器、乘法器和加法器;而利用MATLAB软件时,它仅需线性卷积程序便可实现。而模拟滤波器(AF,Analog Filter)只能用硬件实现。因此DF比AF容易实现,且更容易获得理想的滤波性能。数字滤波器还具有以下优点:精度和稳定性高;系统函数容易改变;灵活性高;不存在阻抗匹配问题;便于大规模集成;可实现多维滤波。1.1.2 数字滤波器设计方法概述数字滤波器从功能上分类:可以分为低通滤波器(LP,Low Pass)、高通滤波器(HP,High Pass)、带通滤波器(BP,Band Pass)、带阻滤波器(BS,Band Stop)。从滤波器的网络结构或者从单位脉冲响应分类:如同模拟滤波器的性能可由g(t)和G(s)来表征一样,数字滤波器的性能完全取决于h(n)和H(z)。因此,数字滤波器可以按照单位取样响应(或称脉冲响应,冲激响应等)h(n)的性质分为两类:有限脉冲响应(Finite Impulse Response)数字滤波器,简称FIR数字滤波器,它的h(n)序列长度是有限的;无限脉冲响应(Infinite Impulse Response)数字滤波器,简称IIR数字滤波器,它的h(n)序列长度是无限的,即当时,h(n)仍有效。数字滤波器的设计与实现,通常按下述步骤进行:1、根据不同用途提出数字滤波器的技术指标、性能要求。2、设计一个稳定的、因果的数学模型H(z)来逼近所要求的技术指标,并用有限精度的运算实现所设计的系统。本文将重点介绍此步骤。3、设计专用的数字硬件来实现这个数字模型,或者通过电子计算机运行程序软件予以实现。本文将侧重于软件实现。IIR滤波器和FIR滤波器的设计方法很不一样:IIR滤波器设计方法有两类,经常用到的一类设计方法是借助于模拟滤波器的设计方法进行的。其设计思路是:先设计模拟滤波器得到传输函数G(s),然后将G(s)按某种方法转换为数字滤波器的系统函数H(z)。这一类方法是基于模拟滤波器的设计方法相对比较成熟,它不仅有完整的设计公式,也有完整的图标供查阅,更可以直接调用MATLAB中的对应的函数进行设计。另一种是直接在频域或者时域中进行设计,设计时必须使用计算机辅助,直接调用MATLAB中的程序或函数即可设计。FIR滤波器不能采用由模拟滤波器设计进行转换的方法,而经常使用的是窗函数法和频率采样法。也可以借助计算机辅助设计软件采用切比雪夫等波纹逼近法进行设计。1.2 MATLAB软件简介MATLAB是英文Matrix Laboratory(矩阵实验室)的缩写,它是由美国MathWorks公司推出的用于数值计算和图形处理的数学计算环境。在MATLAB环境下,用户可以集成的进行程序设计、数值计算、图形绘制、输入输出、文件管理等各项操作。它优秀的数值计算能力和卓越的数据可视化能力使其在同类软件中脱颖而出。MATLAB系统最初由Cleve Moler用FORTRAN语言设计,现在的MATLAB程序是由MathWorks公司用C语言开发的。它的第一版(DOS版本1.0)发行于1984年,经过多年的改进,版本不断升级,其所包含的工具箱功能也越来越丰富,应用越广泛。MATLAB语言之所以能如此迅速的普与,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,归纳如下:1、简单易学:MATLAB不仅是一个开发软件,也是一门编程语言。其语法规则与结构化高级编程语言(如C语言等)小异,而且使用更为简便。用MATLAB编程写程序犹如在演算纸上排列出公式与求解问题,所以被称为演算纸式科学算法语言。2、计算功能强大:MATLAB拥有庞大的数学、统计与工程函数,可使用户立刻实现所需的强大数学计算功能。由各领域的专家学者们开发的数值计算程序,使用了安全、成熟、可靠的算法,从而保证了最快的运算速度和可靠的结果。此外,MATLAB还有数十个工具箱,可解决应用中的大多数数学、工程问题。3、先进的可视化工具:MATLAB提供功能强大的、交互式的二维和三维绘图功能,可使用户创建富有表现力的彩色图形。可视化工具包括曲面渲染、线框图、伪彩图、光源、图像显示、动画等。4、开放性、可扩展性强:M文件是可见的MATLAB程序,所以用户可以查看源代码。开放的系统设计使用户能够检查算法的正确性,修改已存在的函数,或者加入自己的新部件。5、特殊应用工具箱:MATLAB的工具箱加强了对工程与科学中特殊应用的支持。工具箱也和MATLAB一样是完全用户化的,可扩展性强。将某个或几个工具箱与MATLAB联合使用,可以得到一个功能强大的计算组合包,满足用户的特殊要求。MATLAB数字信号处理工具箱和滤波器设计工具箱专门应用于信号处理领域。工具箱提供了丰富而简便的设计,使原来繁琐的程序设计简化成函数的调用。只要以正确的指标参数调用相应的滤波器设计程序或工具箱函数,便可以得到正确的设计结果,使用非常方便。接下来的两章我们将分别对IIR数字滤波器和FIR数字滤波器的设计实现进行分析讨论。在具体的设计过程中,将充分发挥MATLAB软件在数值计算、图像处理中的优势,并充分利用其强大的滤波器设计工具箱(Filter Design Toolbox)与图像用户界面工具辅助设计分析。第2章 IIR滤波器设计与其MATLAB实现IIR数字滤波器具有无限持续时间脉冲响应,而所有的模拟滤波器一般都具有无限长的脉冲响应,因此它与模拟滤波器相匹配。于是,设计IIR数字滤波器可以先设计模拟低通滤波器G(s),然后按一定规则将G(s)进行滤波器变换而得到数字域的IIR低通滤波器H(z),最后通过频带变换转换成其它频带滤波器。本章按按此思路将IIR数字滤波器设计分为三部分:设计模拟滤波器;进行滤波器转换,得到数字滤波器;最后再简单分析数字滤波器的频带转换问题。下面,将以此进行分别讨论。2.1 模拟滤波器设计与其MATLAB实现IIR数字滤波器技术设计最通用的方法是借助于模拟滤波器的设计方法。模拟滤波器设计已经有了一套相当成熟的方法,它不但有完整的设计公式,而且还有较为完整的图表可供查询,因此充分利用这些已有的资源将会给数字滤波器的设计带来很大方便。滤波器设计最重要的是寻找一个稳定、因果的系统函数去逼近滤波器的技术指标,因此模拟滤波器的设计十分重要。实际中,有三种广泛应用的滤波器,即巴特沃斯低通滤波器、切比雪夫低通滤波器,椭圆低通滤波器,下面,将分别予以介绍。2.1.1 巴特沃斯低通滤波器设计巴特沃斯滤波器拥有最平滑的频率响应,在截止频率以外,频率响应单调下降。在通带中是理想的单位响应,在阻带中响应为0。在截止频率处有3dB的衰减。巴特沃斯滤波器除了具有平滑单调递减的频率响应的优点之外,其过渡带的陡峭程度正比于滤波器的阶数。高阶巴特沃斯滤波器的频率响应近似于理想低通滤波器。巴特沃斯(Butterworth)低通滤波器是将巴特沃斯函数作为滤波器的传递函数,它的平方幅度函数为: (2-1)式中,为滤波器频率,为3dB截止频率,N表示滤波器的阶次。MATLAB信号处理工具箱为低通模拟巴特沃斯滤波器的产生提供了函数buttap,其调用的格式为:z,p,k=buttap(N),其中,z表示零点,p表示极点,k表示增益,N表示阶次。2.1.2 切比雪夫低通滤波器设计巴特沃斯滤波器的频率特性在通带和阻带部都是随频率单调变化的,如果在通带的边缘能够满足指标,那么在通带的部会超过设计的指标要求,造成滤波器的阶次N比较高。因此,有效地设计方法是将指标的精确度均匀的分布在整个通带,或者均匀分布在整个阻带,或者同时分布在两者之,这样就可用阶数较低的系统来满足要求。这可通过选择具有等波纹特性的逼近函数来达到。切比雪夫滤波器的振幅特性就具有这种等波纹特性。它有两种形式:振幅特性在通带是等波纹的、在阻带是单调的切比雪夫I型滤波器;振幅特性在通带是单调的、在阻带是等波纹的切比雪夫II型滤波器。采用何种形式的切比雪夫滤波器取决于实际用途。切比雪夫I型(Chebyshev-I)滤波器平方幅度响应函数为: (2-2)其中是一个小于1的正数,它与通带波纹有关,越大,波纹也越大;是的切比雪夫多项式,它的定义为: (2-3)而切比雪夫II型(Chebyshev-II)滤波器平方幅度响应函数为: (2-4)其中是一个小于1的正数,表示波纹变化情况;为截止频率;N为滤波器的阶次,也是的阶次。N为奇数 N为偶数图2-1 理想切比雪夫I型滤波器的幅频特性 N为奇数N为偶数 图2-2 理想切比雪夫II型滤波器的幅频特性图2-1和图2-2分别画出了理想时的切比雪夫I型与切比雪夫II型滤波器阶次N为奇数与偶数时的幅频特性。而通过MATLAB信号处理工具箱中的函数cheb1ap与cheb2ap,可以实现切比雪夫滤波器设计,其调用格式为:z,p,k=cheb1ap(N,Rp) z,p,k=cheb2ap(N,Rs)其中,z表示零点,p表示极点,k表示增益,N表示阶次,Rp为通带波纹(dB), Rs为阻带波纹(dB)。2.1.3 椭圆低通滤波器设计切比雪夫I型滤波器在通带成等波纹振荡,在阻带却仍是单调下降的,切比雪夫II型在阻带是等波纹的,在通带却是单调下降的。因此过渡带的特性有所提高,但是并不理想。它的主要原因在于两者的系统函数在截止频率附近没有有限个零点,其零点在无限远处。1931年,考尔提出了采样有限零点设计的滤波器,因为这种方法在确定零点位置时与椭圆函数的许多特性有关,所以称之为椭圆低通滤波器。它的平方幅度响应函数为: (2-5)式中是雅可比椭圆函数,是与通带衰减有关的函数。滤波器阶次N等于通带和阻带最大点和最小点的和。MATLAB信号处理工具箱为低通模拟椭圆滤波器的产生提供了函数ellipap,其调用的格式为:z,p,k= ellipap (N,Rp,Rs),其中,z表示零点,p表示极点,k表示增益,N表示阶次,Rp为通带波纹(dB), Rs为阻带波纹(dB)。2.2 模拟-数字滤波器变换与其MATLAB实现在设计了模拟低通滤波器后,就可以把它们变成数字滤波器了。这些变换均是复值映射,许多文献对此都有研究,根据数字滤波器所保持的模拟滤波器的不同特性,研究出不同的变换技术。其中,最重要的有两种:脉冲响应不变法(保持脉冲响应不变,又叫冲激响应不变法)和双线性Z变换法(保持系统函数不变)。2.2.1 脉冲响应不变法脉冲响应不变法的设计原理是使数字滤波器的单位抽样响应序列h(n),模仿模拟滤波器的脉冲响应g(t)。设系统传递函数为G(s)的模拟滤波器的单位脉冲响应为g(t),并将脉冲响应g(t)进行等间隔采样,使得数字滤波器的单位抽样响应h(n)刚好等于g(t)的采样值,即: (2-6)其中的为采样周期。G(s)是模拟滤波器的系统传递函数,又令H(z)是数字滤波器的系统传递函数。采样信号的拉式变换与相应的采样序列Z变换的映射关系为: (2-7)所以系统函数G(s)和H(z)的关系为: (2-8)式(2-8)的物理意义为首先将模拟滤波器的系统函数G(s)作周期的延拓,在经过式(2-7)的映射变换,映射到Z平面上,从而得到数字滤波器的系统函数H(z)。且模拟和数字频率满足下列关系:=T。经过式(2-7)的映射,s平面的左半平面映射为Z平面的单位圆,因此,一个因果的和稳定的模拟滤波器映射成因果的和稳定的数字滤波器。经过以上分析,按照脉冲响应不变法,通过模拟滤波器的系统传递函数G(s),可直接求得数字滤波器系统函数H(Z),其设计具体步骤归纳如下:(1)利用=T(可由关系式推出),将数字滤波器指标,转换为模拟滤波器指标,(2)根据指标,来设计模拟滤波器G(s)(3)利用部分分式展开法,把G(s)展成 (2-9)(4)最后把模拟极点转换为数字极点,得到数字滤波器: (2-10)根据上述理论,将举例在MATLAB环境下用函数实现脉冲响应不变法设计一数字低通滤波器。其函数为b,a=impinvar(c,d,T),其中,b表示数字滤波器自变量为的分子多项式,a表示数字滤波器自变量为的分母多项式,c表示模拟滤波器自变量为s的分子多项式,d表示模拟滤波器自变量为s的分母多项式,T表示采样变换参数。总结以上,脉冲响应不变法的优点是频率坐标变换是线性的,即=T,如不考虑频率混叠现象,用这种方法设计数字滤波器会很好的重现原模拟滤波器的频率响应。另外一个优点是数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,时域逼近好。但其也具有很大的缺点,若抽样频率不高或其它原因将产生混叠失真,不能重现原模拟滤波器频率响应。所以,脉冲响应不变法适合低通、带通滤波器设计,不适合高通、带阻滤波器的设计。2.2.2 双线性Z变换法利用脉冲响应不变法设计数字滤波器时,由于=T的频率关系是根据推导的,所以是轴每隔2/T便映射到单位圆上一周,引起了频域混叠。为克服这一现象,人们找到了另一种映射关系: (2-11)此关系称为双线性Z变换法。双线性Z变换法的基本思路是:首先将整个s平面压缩到s1平面的一条带宽为2/T(丛-/T到/T)的横带里,然后通过标准的变化关系将横带变换成整个Z平面上去,这样就得到s平面与Z平面间的一一对应的单值关系,整个过程如图2-3所示: j j1 jIm(Z)/T 0 0 0 1 -/Ts平面 s1平面 Z平面图2-3 双线性Z变换法的映射关系由式(2-11)得 (2-12)与 (2-13) (2-14)式(2-11)与式(2-12)给出了s和z之间的映射关系,而式(2-13) 和式(2-14)给出了和之间的映射关系,但这是一种非映射关系,双线性Z变换是利用了正切函数的非线性特点,把整个j轴压缩到了单位圆的一周上。在MATLAB中,双线性Z变换可通过bilinear函数实现,其调用格式为:Bz,Az=bilinear(B,A,Fs),其中B,A为模拟滤波器的传递函数G(s)的分子分母多项式系数分量,而Bz,Az为数字滤波器的传递函数H(Z)的分子分母多项式的系数分量。2.3 小结这一章主要是用MATLAB语言进行IIR滤波器的设计和实现。IIR滤波器的设计步骤分为三步,即模拟低通滤波器设计,模拟-数字滤波器变换,滤波器的频带变换。在模拟低通滤波器的设计中,主要讨论了三种设计方法;在模拟-数字滤波器变换中,讨论了两种变换方法,即脉冲响应不变法和双线性Z变换法。整个设计过程都是在理论分析的基础上,用MATLAB语言来进行编程设计,并最终通过具体滤波器指标来加以实现的。第3章 FIR滤波器设计与其MATLAB实现IIR数字滤波器的设计方法是利用模拟滤波器成熟的理论与设计图表进行的,因而保留了一些典型模拟滤波器优良的幅度特性,但设计中只考虑到了幅度特性,没考虑到相位特性,所设计的滤波器相位特性一般是非线性的。为得到线性相位特性,必须增加相位校正网络,使滤波器设计变得复杂。而FIR滤波器在保证幅度特性满足技术要求的同时,很容易做到有严格的线性相位特性。设FIR滤波器单位脉冲响应h(n)长度为N,其系统函数H(z)为H(z)是的(N-1)次多项式,它在z平面上有(N-1)个零点,原点z=0是(N-1)阶重极点。因此,H(z)永远稳定。稳定和线性相位特性是FIR滤波器突出的特点。FIR滤波器的设计方法与IIR数字滤波器的设计方法有很大的不同。FIR滤波器的设计任务是选择有限长度的h(n),使传递函数满足技术要求。3.1 线性相位FIR数字滤波器的条件和特点3.1.1 线性相位条件对于长度为N的h(n),传输函数为 (3-1) (3-2)式中,称为幅度特性,称为相位特性。的线性相位是指是的线性函数,即,为常数 (3-3)如果满足下式:,是起始相位 (3-4)以上两种情况都满足群延迟是一个常数,即一般称满足(3-3)为第一类线性相位;满足(3-4)为第二类线性相位。第一类线性相位特性是h(n)是实序列且对(N-1)/2偶对称,即h(n)=h(N-n-1)。第二类线性相位特性是h(n)是实序列且对(N-1)/2奇对称,即h(n)=-h(N-n-1)。3.1.2 线性相位FIR滤波器幅度特性的特点由于h(n)的长度N取奇数还是偶数,对的特性有影响。因此,对于两类线性相位,下面将分四种情况讨论其幅度特性特点。(1) h(n)=h(N-n-1),N=奇数,其幅度特性的特点是对=0,2是偶对称的。(2) h(n)=h(N-n-1),N=偶数,其幅度特性的特点是对=奇对称的,且在=处有一零点,使,这样,对于高通和带阻不适合采用这种情况。(3) h(n)=-h(N-n-1),N=奇数,其幅度特性的特点在=0,2处为零,即在z=1处是零点,且对=0,2呈奇对称形式。(4) h(n)=-h(N-n-1),N=偶数,其幅度特性在=0,2处为零,即在z=1处有一个零点,且对=0,2奇对称,对=呈偶对称。3.1.3 线性相位FIR滤波器零点分布特点第一类和第二类线性相位的系统函数综合起来表示为: (3-5)上式表明,如是H(z)的零点,其倒数也必然是其零点;又因为h(n)是实序列,H(z)的零点必定共轭成对,因此和也是其零点。这样,线性相位FIR滤波器零点分布特点是零点必须是互为倒数的共轭对,确定其中一个,另外三个零点也就确定了。3.2 常用窗函数与MATLAB实现窗函数在设计FIR数字滤波器中有很重要的作用,正确的选择窗函数可以提高所设计的数字滤波器的性能,或者在满足设计要求的情况下,减小FIR数字滤波器的阶数。因此必须对各种窗函数有相应的了解。3.2.1 常用窗函数介绍1、矩形窗(Rectangular window)这是一种最简单的窗函数,但从阻带衰减的角度来看,其性能最差。它的定义为: (3-6)其频率响应为: (3-7)主瓣宽度为4/N,第一副瓣比主瓣低13dB。在MATLAB中,实现矩形窗的函数为rectwin,其调用格式为w=rectwin (N),其中N是窗函数的长度,返回值w是一个N阶的向量,它由窗函数的值组成。2、三角形窗(Triangular window) (3-8)其频率响应为: (3-9)其主瓣宽度为8/N,第一副瓣比主瓣低26dB。在MATLAB中,实现矩形窗的函数