基于MATLAB设计FIR滤波器精品资料.doc
目 录摘要IAbstractII第一章 引言11.1课题背景11.2 课题研究的现状与前沿11.3 本课题主要研究内容2第二章 基本原理概念32.1 数字滤波器简介32.2 MATLAB简介42.2.1 MATLAB系统的功能及特点42.2.2 MATLAB的发展4第三章 FIR数字滤波器的原理与设计63.1 FIR数字滤波器的结构特点63.2 FIR的线性相位特性73.3 FIR数字滤波器设计的基本步骤73.4 FIR数字滤波器的设计方法83.4.1 频率取样法83.4.2 FIR滤波器的最优化方法93.4.3 窗函数法123.3.4 三种设计方法的比较12第四章 窗函数设计134.1 窗函数设计法的基本原理134.1.1 窗函数的理论根据134.1.2 常用窗函数144.1.3 MATLAB方法164.2 窗函数设计法的步骤17第五章 利用窗函数设计给定参数的FIR滤波器19第六章 结论分析22参 考 文 献24致 谢25附录 程序清单26 基于MATLAB的窗函数法设计FIR滤波器摘要:数字滤波是数字信号处理中一个非常重要且应用普遍的技术。FIR数字滤波器因其严格的线性相位等优点得到了广泛应用。MATLAB是国际控制界的标准计算软件。本文根据FIR数字滤波器设计的基本原理,介绍了窗函数,分析了数字滤波器的设计方法,对基于窗函数设计的FIR滤波器的特性进行了分析。分别采用Hanning窗、Hamming窗、Blackman窗和Kaiser窗,利用MATLAB语言设计数字FIR低通滤波器并给出了实验结果,达到了性能指标要求,引入了MATLAB工具软件进行设计。关键词:FIR滤波器,低通,MATLAB,窗函数WINDOW FUNCTION DESIGN OF DIGITAL FIR FILTER BASED ON MATLABAbstract:Digital filter is a very important technology with general application in digital signal processing,and FIR filter is widely used because of it's strict linear-phase.MATLAB is a standard computational software in the international control field. According to the basic principle of FIR filter,this paper analysed the design methods of digital filter and introduced window function,the characteristics of FIR filter based on the design of window function are also analysed.FIR low pass digital filter is designed by using MATLAB language and Hanning window,Hamming window,Blackman window and Kaiser window respectively,and the experimental results are given in this article, they meet the demands of the filter performance.MATLAB tool software is also introduced in design.Key words:FIR filter,low pass,MATLAB,window function49 第一章 引言1.1课题背景 几乎在所有的工程技术领域中都会涉及到信号的处理问题,其信号表现形式有电、磁、机械以及热、光、声等。数字滤波技术可以在放大信号的同时去除噪声和干扰,而在模拟信号中信号和噪声同时被放大,数字信号还可以不带误差地被存储和恢复、发送和接收、处理和操纵。许多复杂的系统可以用高精度、大信噪比和可重构的数字技术来实现。目前,数字信号处理已经发展成为一项成熟的技术,并且在许多应用领域逐步代替了传统的模拟信号处理系统,如通讯、系统控制、电力系统、故障检测、语音、图像、自动化仪器、航空航天、铁路、生物医学工程、雷达、声纳、遥感遥测等。 数字信号处理中一个非常重要且应用普遍的技术就是数字滤波。所谓数字滤波,是指其输入、输出均为数字信号,通过一定的运算关系改变输入信号所含的频率成分的相对比例或滤除某些频率成分,达到提取和加强信号中的有用成份,消弱无用的干扰成份的目的。数字滤波作为数字信号处理的重要组成部分有着十分广泛的应用前景,可作为应用系统对信号的前置处理。数字滤波器,在数字信号处理中有着广泛的应用,因此,无论是在理论研究上还是在如通讯、HDTV(高清晰度电视)、雷达、图象处理、数字音频等实际应用上都有着美好的技术前景和巨大的实用价值。1.2 课题研究的现状与前沿 在近代电信设备和各类控制系统中,滤波器应用极为广泛。在所有的电子部件中,使用最多,技术最为复杂的即为滤波器。滤波器的优劣直接决定产品的优劣,所以,对滤波器的研究和生产历来为各国所重视。目前常用的滤波技术有以下几种:无源滤波技术、SVC滤波技术、有源滤波技术以及混合有源滤波技术。 目前,国外有许多院校和科研机构在研究基于FPGA的DSP应用,比较突出的有Denmark大学的研究小组正在从事FPGA实现数字滤波器的研究。而我国在DSP技术起步较早,产品的研究开发成绩斐然,基本上与国外同步发展。 2009年12月,清华大学物理系“微波通信用高温超导前端”技术入选2009年“中国高等学校十大科技进展”。高温超导滤波器损耗极小、边带极陡峭、带外抑制极好,具有常规滤波器无可比拟的近于理想的滤波性能,可广泛应用于移动通信、军事通信、卫星通信等领域,大幅度提高了灵敏度和抗干扰能力,市场前景巨大。清华大学经过十几年研究,终于研制成功了第一台适合于我国CDMA移动通信用的超导前端,并实现了高温超导在中国通信领域的首次应用和批量长期应用,使我国继美国之后,成为世界上第二个成功地将高温超导技术应用于移动通信的国家。 随着电子工业的发展,对滤波器的性能要求越来越高。我国电子产品要想实现大规模集成,滤波器集成化仍然是个重要课题。总之,滤波器的发展始终是顺应电子系统的发展趋势的。如何进一步实现滤波器的小型化、集成化、高效化将是今后很长一段时间内不变的研究和发展主题。1.3 本课题主要研究内容 本课题主要研究的是FIR数字滤波器的原理与设计,运用MATLAB软件,通过比较FIR数字滤波器的设计方法,并以具体的FIR低通数字滤波器的设计为例,对多种窗函数的设计方法进行对比,在实现数字滤波功能的同时对几种窗函数进行了性能比较。各章节的具体安排为:(1) 第1章为引言,介绍了课题的背景、数字滤波技术的研究现状以及本文内容。(2) 第2章主要对数字滤波器和MATLAB进行了简单介绍,通过介绍数字滤波器的原理,以及MATLAB相关功能特点及其发展,为完成FIR低通滤波器设计提供了基础。(3) 第3章主要介绍了FIR数字滤波器的原理及设计,对三种设计方法进行了介绍和对比。(4) 第4章详细介绍了窗函数设计的原理及方法。(5) 第5章是核心部分,分别采用Hanning窗、Hamming窗、Blackman窗和Kaiser窗设计数字FIR低通滤波器并进行比较。(6)第6章是结果分析,并对本课题的设计作了小结。第二章 基本原理概念2.1 数字滤波器简介 数字滤波器是指输入、输出均为数字信号,通过一定运算关系改变输入信号所含频率成分的相对比例或者滤除某些频率成分的器件1。与模拟滤波器相比,数字滤波器具有很多突出的优点,例如它可以满足滤波器对幅度和相位特性的严格要求,可以避免模拟滤波器所无法克服的电压漂移和噪声问题。按功能可将其分类为低通、高通、带通、带阻滤波器;根据数字滤波器的单位冲激响应函数的时域特性可分为两类:无限冲激响应(IIR)滤波器和有限冲激响应(FIR)滤波器。数字滤波器是一个线性时不变的因果系统。设x(nT)和y(nT)分别为滤波器的激励和响应,T为采样周期,n为在(0,N)范围内的整数,T<+。它的时域表达式可以写成2: (2-1)任意一个激励 x(nT)可以表示成 (2-2)其中xk(nT)又可以表示成 (2-3)将式(3)代入式(2)中可得在一个线性时不变系统中,其中h(nT)为滤波器的冲激响应。若滤波器是因果的,即h(nT)=0,n<0可以得到 (2-4)若当n<0时,x(nT)=0,式(4)可以进一步简化为 (2-5)这就是用来实现FIR数字滤波器的卷积和的仿真模型。FIR数字滤波器的设计方法主要是建立在对理想滤波器频率特性作某种近似的基础上,这些近似方法较多,本文采用窗函数法来设计FIR滤波器。2.2 MATLAB简介 2.2.1 MATLAB系统的功能及特点MATLAB 的含义是矩阵实验室(matrix laboratory)。该软件是一个交互式系统,其基本元素是无需定义维数的矩阵,初衷主要是为了方便矩阵的存取,但经过几十年的扩充和完善,已成为各类科学研究与工程应用中的标准工具。MATLAB软件包括:数值分析、矩阵计算、数字信号处理、建模和系统控制等应用程序。MATLAB软件是用于数值计算和图形处理的科学计算系统环境矩阵实验室语言,是一套可视化高性能语言与软件环境3。在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文档管理等各项操作。它提供人机交互的教学系统环境,用来解决一些实际课题和数学模型问题。典型的应用包括数值计算、算法设计与验证以及一些特殊的矩阵计算应用,如自动控制理论、统计、数字信号处理及相应的仿真等。MATLAB语言简洁方便,有丰富的运算符号和库函数,还具有结构化的控制语句和面向对象编程的特点随着其版本的不断提高,各种工具箱不断扩充和完善,MATLAB的功能越来越强,从而被广泛应用于仿真技术、自动控制和数字信号处理等领域。与C语言等其他高级编程语言不同,MATLAB提供了一套内容广泛的教学、统计与工程函数。交互式图形能力对用于生成曲线的功能进行了扩展。工具箱是由本领域专家编写的算法集合,可以提供应用程序的专用功能。这些工具箱在信号与图像处理、数据分析与统计、数学建模、控制系统设计等方面增强了MATLAB 的功能。2.2.2 MATLAB的发展1982年,Math Works公司于推出了一套高性能的数值计算和可视化软件MATLAB,它集数值分析、矩阵运算、信号处理和图形显示于一体,是科学研究、工程应用的工具。在MATLAB内部配备了涉及到自动控制、信号处理和计算机仿真等种类繁多的工具箱,所以MATLAB的应用非常广泛,它可涉足于数值分析、控制、信号分析和通信等多种领域。MATLAB不仅可完成基本代数运算操作,而且还可完成矩阵函数运算,提供丰富的实用函数命令。另外,用户还可以根据自己的需要编写函数。MATLAB已成为一个系列产品:MATLAB主包和各种工具箱(Toolbox),其丰富的功能吸引了不同领域的研究者。迄今为止,它的30多个工具箱大致可分为两类:功能型工具箱和领域形工具箱。功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科;而领域型工具箱是专业性比较强的,如控制工具箱和信号处理工具箱等。 目前, MATLAB软件为数字滤波的研究和应用提供了一个直观、高效、便捷的利器。运用MATLAB软件进行仿真不存在设计效率较低,无可视图形,不便于修改参数等缺点。由于其以矩阵运算为基础,把计算、可视化、程序设计融合到了一个交互式的工作环境中。尤其是MATLAB 工具箱使各个领域的研究人员可以直观方便地进行科学研究与工程应用。其中的信号处理工具箱、图像处理工具箱、小波工具箱等更是为数字滤波研究的蓬勃发展提供了可能。第三章 FIR数字滤波器的原理与设计3.1 FIR数字滤波器的结构特点 如果滤波器的输人和输出都是离散时间信号,则该滤波器的冲激响应也必然是离散的,这种滤波器称之为数字滤波器。该滤波器通过对时域中离散的采样数据作差分运算实现滤波。与IIR滤波器相比,FIR的实现是非递归的,总是稳定的。FIR滤波器的特征是冲激响应只能延续一定时间并且很容易实现严格的线性相位,使信号经过处理后不产生相位失真、舍入误差小、稳定等优点,能够设计具有优良特性的多带通滤波器、微分器和希尔伯特变换器。所以在数字系统、多媒体系统、高保真的信号处理,如数字音频、图像处理、数据传输、生物医学等领域中获得极其广泛的应用。有限长单位冲激响应(FIR)滤波器有以下几个特点(1)系统的单位冲激响应h(n)在有限个值处不为零;(2)系统函数H(z)在处收敛,在处只有零点,有限z平面只有零点,而全部极点都在z=0处(因果系统);(3)结构上主要是非递归结构,没有输出到输入的反馈,但有些结构中(例如频率抽样结构)也包含有反馈的递归部分。 FIR滤波器的输出y(n)可以表示为 (3-1)式(1)中,N是FIR滤波器的抽头数;x(i)表示第i时刻的输入样本;h(i)是FIR滤波器的第i级抽头系数。因此系统函数为 (3-2) 图3-1 FIR滤波器结构示意图 由式(2)可得FIR滤波器的横截型结构见上图。3.2 FIR的线性相位特性线性相位FIR滤波器的约束条件为4: (3-3)Hk和(k)分别是对幅度函数H()和相位函数()的第k个抽样点。在0,2内的N个样点,则约束条件为: 0kN-1 (3-4)FIR滤波器的单位冲激响应h(n)是有限长的(0nN-1),其z变换为 (3-5)这是z-1的(N-1)阶多项式,在有限Z平面(0)有(N-1)个零点,而位于z平面原点z=0处,则有(N-1)阶极点。正如语音合成、波形传输等许多系统中所希望的一样,FIR滤波器具有线性相位特性。设h(n)=h(N-1-n),由于N可为奇数或偶数,抽样响应存在有对称与反对称,组合起来为4种类型,经DTFT变换得到的相频特性均为线性相位,分别为:(1)当h(n)=h(N-1-n)时,即偶对称,则经DTFT变换即得其相频特性,且不论N为奇数或偶数,其相位均为:argH()=-(N-1)2 (I型和型)(2)当h(n)=-h(N-1-n)时,即奇对称,同样经DTFT变换得到相频特性,且不论N为奇数或偶数,其相位均为:argH()=-(N-1)2+2 (型和型)3.3 FIR数字滤波器设计的基本步骤5(1)确定性能指标。在设计滤波器之前,必须首先根据工程实际需要确定滤波器的技术指标。实际应用中,数字滤波器常被用来实现选频操作。因此指标的形式一般在频域中给出幅度技术指标要求。(2)性能指标的逼近。用一个因果稳定的离散线性移不变系统函数去逼近性能要求。(3)用有限精度算法来实现系统函数。这里包括选择运算结构,选择合适的字长以及有效数字的处理方法等。(4)滤波器的技术实现。包括采用通用计算机软件或专用数字滤波器的硬件来实现或采用通用的数字信号处理器来实现。3.4 FIR数字滤波器的设计方法3.4.1 频率取样法 一个有限长的序列,如果满足频率采样定理,可以通过频谱的有限个采样点的值被准确地得以恢复。频率取样法是指在脉冲响应h(n)为有限长度的条件下,根据频域取样定理,对所要求的频率响应进行取样,从样点中恢复原来的频率特性,达到设计滤波器的目的。频率取样法先对理想频响抽样,得到样值H(k)6。再利用插值公式直接求出系统函数 H(z)以便实现之,或者求出频响以便与理想频响作比较。在O,2区间上对进行N点采样,等效于时域以N为周期延拓。设理想频响的采样是H(k),k=0,1,N-1,则其IDFT是 (3-6)则FIR滤波器的系统函数可写为: (3-7)所以当采样点数N已知后,便是常数,只要采样值H(k)确定,则系统函数H(z)就可以确定,要求的FIR滤波器就设计出来了。频率取样法设计的关键是正确确定数字频域系统函数H(k)在 0,2内的N个样点,其约束条件为 0kN-1 (3-8)频率取样法的阻带衰耗比较小,可以通过增加过渡带样点的方法增大阻带衰耗。对于一个无限长的序列,用频率采样法必然有一定的逼近误差,误差的大小取决于理想频响曲线的形状, 理想频响特性变换越平缓, 则内插函数值越接近理想值,误差越小。为了提高逼近的质量,可以通过在频率相应的过渡带内插入比较连续的采样点,扩展过渡带使其比较连续,从而使得通带和阻带之间变换比较缓慢,以达到减少逼近误差的目的。3.4.2 FIR滤波器的最优化方法由于频率采样基本设计法的逼近误差一般不能满足工程指标要求,通常采用以下两种改进措施:(1) 设置适当的过渡带,使希望逼近的幅度特性从通带比较平滑地过渡到阻带,消除阶跃突变,从而使逼近误差减小。而实质是对幅度采样增加过渡带采样点,以加宽过渡带为代价换取通带和阻带内波纹幅度的减小。(2) 采用优化设计法,以便根据设计指标选择优化参数(过渡带采样点的个数m好h(n)的长度N)进行优化设计。 尽管窗函数法与频率采样法在FIR数字滤波器的设计中有着广泛的应用, 但两者都不是最优化的设计。FIR滤波器的最优化设计是将所有抽样值皆作为变量,在某一优化准则下,通过计算机进行迭代运算,以得到最优的结果。设计FIR滤波器可以有两种最优化准则,即均方误差最小准则和最大误差最小化准则。一、 均方误差最小准则 若以E(ej)表示逼近误差,则 (3-9)那么均方误差为 (3-10)均方误差最小准则就是选择一组时域采样值使得最小。这一方法注重的是在整个-频率区间内总误差的全局最小,但不能保证局部频率点的性能,有些频点可能会有较大的误差。我们先将(2)式中的和分别用它们的冲激响应表示,即 (3-11) (3-12)由于用FIR滤波器来逼近,故h(n)长度是有限长的。将它们代入式(1)可得 (3-13)按照帕塞瓦公式有 (3-14)由此式看出,等式右边第二个求和式只取决于给定的特性,它和设计值无关,故是一个常数,要使最小,就必须使第一项求和式最小,即希望 (3-15)在这一条件下,就有 (3-16)也就是说要满足 (3-17)此式恰好是矩形窗的结果,所以矩形窗设计结果一定满足均方误差最小准则。二、 最大误差最小化准则最大误差最小化可表示为: (3-18) 其中F是根据要求预先给定的一个频率取值范围,可以是通带,也可以是阻带。其概念是通过改变N个频率采样值(或时域h(n)值),使频响误差在给定频带范围内最大逼近误差达到最小。该准则也称等波纹切比雪夫逼近准则,即通过对通带和阻带使用不同的加权函数,实现在不同频段(通常指的是通带和阻带) 的加权误差最大值相同,从而实现其最大误差在满足性能指标的条件下达到最小值,即使得和H()之间的最大绝对误差最小。为了程序的通用性,使其可用到带通(包括低通、高通、带通及多带通、多带阻等)滤波器及微分器、离散希尔伯特变换器等不同情况的线性相位FIR滤波器的设计中,因此我们首先要将线性相位FIR滤波器的四种情况的频率响应的幅度函数H()的表达式统一到一种公式上,即利用三角恒等式把它们都表示成两项相乘的形式,其中一项是的固定函数,记为Q(),另一项为若干个余弦函数之和,记为P(),这样表达后,再用一种算法来求各种情况的最佳逼近7。FIR滤波器的四种线性相位见下表:表3-1 用H()= Q()P()表示四种线性相位FIR滤波器线性相位FIR滤波器四种情况Q()P().N奇数,h(n)偶对称1.N偶数,h(n)偶对称.N奇数,h(n)奇对称.N偶数,h(n)奇对称由于在滤波器设计中通带与阻带误差性能的要求是不一样的,为了统一使用最大误差最小化准则,因而采用误差函数加权的办法,使得不同频段(例如通带与阻带)的加权误差最大值是相等的。设所要求的(已给定)滤波器的频率响应的幅度函数为,用线性相位四种FIR滤波器之一的幅度函数作逼近函数,设逼近误差的加权函数为,则加权逼近误差函数定义为 (3-19)由于不同频带中误差函数的最大值不一样,故不同频带中值可以不同,在公差要求严的频带上可以采用较大的加权值,而在公差要求低的频带上,加权值可取较小值。这样使得在各频带上的加权误差要求一致(即最大值一样)。将H()= Q()P()代入(3)式,得 (3-20)最后这一等式,除了在=0和=的一处或同时在二处视Q()的情况而定外,对其他任何频率都是正确的。令 , (3-21)则式(4)可化为 (3-22) 这就是加权逼近误差函数的最终表达式。利用这一表达式,线性相位FIR滤波器的加权切贝雪夫等波纹逼近问题可看成是求一组系数可表示或或或,使其在完成逼近的各个频带上(这里只指通带或阻带,不包括过渡带),的最大绝对值达到极小,如果用表示这个极小值,则 (3-23)其中A表示所研究的各通带和阻带。3.4.3 窗函数法 窗函数法是设计FIR滤波器的最简单的方法,通常也称为傅里叶级数法,详见第四章。3.3.4 三种设计方法的比较 综述可得,窗函数法设计的基本思想是把给定的频率响应通过离散时间傅里叶逆变换IDTFT(Inverse Discrete Time Fourier Transform),求得脉冲响应,然后利用加窗函数对它进行截断和平滑,以实现一个物理可实现且具有线性相位的 FIR 数字滤波器的设计目的。其核心是从给定的频率特性,通过加窗确定有限长单位取样响应h(n);频率采样法设计的基本思想是把给出的理想频率响应进行取样,通过 IDFT 从频谱样点直接求得有限脉冲响应;等波纹切比雪夫逼近法则是利用 MATLAB 提供的 remez 函数实现Remez算法,设计滤波器逼近理想频率响应。 比较以上三种滤波器的设计方法,在同样的阶数下,等波纹切比雪夫逼近法可以获得最佳的频率特性和衰耗特性,具有通带和阻带平坦,过渡带窄等优点。频率采样设计法可以设计某些特殊滤波器,且其设计过程简单,但阻带衰减明显,若适当选取过渡带样点值,会取得较窗函数设计法略好的衰耗特性。窗函数设计法在阶数较低时,阻带特性基本满足设计要求,当滤波器阶数较高时,使用汉宁窗、海明窗、布莱克曼窗和凯泽窗即可以达到阻带衰耗要求。第四章 窗函数设计4.1 窗函数设计法的基本原理4.1.1 窗函数的理论根据FIR滤波器设计的主要任务是根据给定的性能指标确定滤波器的系数,即系统单位脉冲序列h(n),它是一个有限长序列。假设是所要求的理想响应序列,则 (4-1)式(1)中hd(n)是对应的单位脉冲响应序列,而滤波器的频率响应和单位脉冲响应序列是傅里叶变换对,则 (4-2) 求得序列hd(n)后,可得到 (4-3)注意到,这里 hd(n)为无限长序列,因此 hd(z)是物理不可实现的。为了使系统变为物理可实现的,且使FIR滤波器实际频率响应尽可能逼近理想的频率响应,采用窗函数将无限脉冲响应hd(n)截取一段h(n)来近似表示hd(n),可得 h(n)=hd(n)W(n) (4-4)由此可得 (4-5)式(5)中,N为窗口宽度,H(z)是物理可实现系统。窗函数设计滤波器的基本思想,是把给定的频率响应通过IDTFT(Inverse Discrete Time Fourier Transform),求得脉冲响应,然后利用加窗函数对它进行截断和平滑,以实现一个物理可实现且具有线性相位的FIR滤波器的设计目的。其核心是从给定的频率特性,通过加窗确定有限长单位脉冲响应序列 h(n)。窗函数法的设计过程如下其中Hd()是理想滤波器的频率响应,H()是设计出的实际滤波器的频响。根据给定的滤波器技术指标,选择滤波器的阶数N和合适的窗函数(n) ,使其具有最窄的主瓣和最小的旁瓣。其核心就是从给定的频率特性确定有限长单位脉冲响应序列h(n),即用一个有限长度的窗口函数序列(n)来截取一个无限长的序列hd(n)获得一个有限长序列h(n),即h(n)=(n)hd(n) (4-6)并且要满足以下条件,也就是窗函数所必须满足的特性:(1)窗谱主瓣尽可能地窄,以获得较陡的过渡带;(2)尽量减少窗谱的最大旁瓣的相对幅度,也就是能量尽量集中于主瓣,使肩峰和纹波减小,就可增多阻带的衰减。 (3)窗函数的频率特性的旁瓣在当趋近于的过程中,其能量迅速趋于零。这就给窗函数序列的形状和长度选择提出了严格的要求。当预期滤波器频率特性的性能指标确定之后,先找出相近的理想滤波器频率特性模型,用表示。再用(6)式求出其脉冲响应序列的表达式: (4-7)这时,定义数据窗为向量=(0),(1), ,(N),拓展为偶函数窗,即(n)=(n)。对h(n)加窗后形成一被截断的脉冲序列:h(n)=h(n)(n),(n=0,±1, ,±N),由此而得一因果FIR滤波器如式(4-2),该滤波器应能达到的要求。4.1.2 常用窗函数常用窗函数有如下几种8:矩形窗(Rectangle Window)、三角窗(Bartlett Window)、汉宁窗(Hanning Window)、海明窗(Hamming Window)、布莱克曼窗(Blackman Window)、凯泽窗(Kaiser Window)( =7865),各种窗函数基本参数比较如下表: 表4-1 常用窗函数基本参数窗函数频谱性能指标加窗后滤波器性能指标旁瓣峰值主瓣宽度过渡带宽阻带最小衰减/dB/(2/N)/(2/N)/ dB矩形窗-13 2 0.9 -21三角形窗 -25 4 2.1 -25汉宁窗 -31 4 3.1 -44海明窗 -41 4 3.3 -53布莱克曼窗 -57 6 5.5 -74凯泽窗(=7.865) -57 5 -80一、矩形窗 矩形窗是基本的窗函数形式 (4-8)主瓣宽度为4/N。二、三角窗函数形式 (4-9)窗谱为 (4-10)“”在时成立。 主瓣宽度为8/N。三、广义余弦窗布莱克曼窗、海明窗、汉宁窗以及矩形窗都是广义余弦窗的特殊情形。这些窗可以看作是频率为0、2/(N-1)和4/(N-1)的余弦序列的线性组合,这里N代表窗的长度11。以下是生成此类窗的方法:Ind=(0:n-1)*2*pi/(n-1);w=A-B*cos(Ind)+C*cos(2*Ind);(其中A、B和C为定义的常数。)汉宁窗和海明窗是两项的广义余弦窗,对于汉宁窗,A=0.5,B=0.5,C=0,函数形式 (4-11)其频率响应的幅度函数为 (4-12)这三部分之和使旁瓣互相抵消,能量更集中在主瓣,但是代价是主瓣宽度比矩形窗的主瓣宽度增加一倍,即为8/N。而对于海明窗,A=0.54,B=0.46,C=0,函数形式 ; (4-13)其频率响应的幅度函数为 ,(当) (4-14)主瓣宽度为8/N,旁瓣峰值小于主瓣峰值的1%。这两类窗分别由函数hamming和hanning来计算。布莱克曼窗是一个三项的广义余弦窗,A=0.42,B=0.5,C=0.08,函数blackman用于计算其系数。函数形式 (4-15)其频率响应的幅度函数为此时主瓣宽度为矩形窗谱主瓣宽度的三倍,即为12/N。 四、凯泽窗凯泽窗定义了一组可调用的窗函数,它由零阶贝塞尔函数构成,其主瓣能量与旁瓣能量的比例是近乎最大的。对于某一长度的凯泽窗,函数kaiser(n,beta)中的参数beta控制旁瓣的高度。给定beta则旁瓣高度是固定的。参数beta选的越大,其频谱的旁瓣越小,但主瓣宽度也相应地增加,因而通过改变beta值就可以在主瓣宽度与旁瓣衰减之间进行选择。对于固定的beta,当窗的长度变化时,旁瓣的高度保持不变。用凯泽窗设计满足要求的FIR滤波器要用到以下两个公式。为得到-dB的旁瓣高度,参数beta定义如下: (4-16)对于过渡带为(rad/s),使用长为 的滤波器就能大致满足要求。4.1.3 MATLAB方法用MATLAB 进行基于窗函数的数字滤波器的设计十分方便:(1)常用的窗函数MATLAB 中提供了很多常用的窗函数,其中的一些窗函数的调用形式为12: 矩形窗: w=boxcar(N) 汉宁窗: w=hanning(N) 海明窗: w=hamming(N) 布莱克曼窗: w=blackman(N) 凯泽窗: w=kaiser(N,beta) 其中N输入参数表示窗口的长度,返回的变量w是一个长度为N的列向量,表示窗函数在这N点的取值。beta是控制Kaiser窗形状的参数10。 MATLAB还提供了函数M,Wn,beta,ftype=kaiserord(f,a,dev),以利用kaiser窗来估计滤波器阶数M、参数Beta、截止频率Wn和需选用的滤波器类型ftype。如果ftype为空,表示滤波器为低通;如果ftype=high,滤波器为高通;ftype=stop,滤波器为带阻;ftype=DC-0,则表示多带滤波器第一个频带为阻带;ftype=DC-1,表示多带滤波器第一个频带为通带。输入参数f表示需设计的FIR滤波器的频带;a表示FIR滤波器在f定义的频带中的幅度值,一般对通带取值为1,阻带取值为0;dev表示FIR滤波器在f定义的频带内的波动值。(2)窗函数法设计FIR数字滤波器MATLAB提供了基于窗函数法的FIR数字滤波器的设计函数b=fir1(N,Wn)13,fir1函数用来设计FIR滤波器,其中N为滤波器的阶数,因此h(n)的长度为N;Wn是截止频率,其取值在0-1之间,这是以抽样频率为基准频率的标称值,故1对应抽样频率;b对应设计好的滤波器的系数h(n)。若Wn是一标量,则用来设计低通滤波器;如果Wn是12的向量,则可以用来设计带通滤波器;如果Wn是1L的向量,则可以用来设计L通带滤波器,注意这时的调用方式为b=fir1(N,Wn,DC-1)或 b=fir1(N,Wn,DC-0) 前者保证第一个带为通带,后者保证第一个带为阻带。4.2 窗函数设计法的步骤14(1) 根据阻带最小衰减选择窗函数的类型,根据过渡带宽度选择窗函数的长度,写出窗函数w(n)的表达式,并构造希望逼近的频率响应函数。 (2) 通过傅里叶逆变换获得理想滤波器的单位脉冲响应hd(n),即利用 式求hd(n)。(3) 根据(2)求得所设计的实际FIR滤波器的单位脉冲响应h(n), h(n)即为所设计FIR滤波器系数