基于MATLAB的FIR数字滤波器设计_第1页
基于MATLAB的FIR数字滤波器设计_第2页
基于MATLAB的FIR数字滤波器设计_第3页
基于MATLAB的FIR数字滤波器设计_第4页
基于MATLAB的FIR数字滤波器设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文基于MATLAB的FIR数字滤波器设计摘要:在数字信号处理的基本方法中,滤波是应用非常广泛的一个环节,数字滤波器的理论与相关设计也一直是人们研究的重点之一。其中FIR数字滤波器是数字滤波器系统中常见的滤波器,FIR滤波器具有严格的相位特性,同时系统函数的极点加固定在原点上,因而是稳定的。MATLAB语言具有强大的图形绘制功能,因此本论文在MATLAB环境下,分别通过采用窗函数法、频率抽样设计法来设计FIR数字滤波器。仿真结果表明,在MATLAB环境下,可以根据要求的滤波器的特性,通过调整设计参数,最终达到滤波器的最优设计。关键词:MATLAB;数字滤波器;FIR;窗函数;频率抽样TheDesignandSimulationofFirDigitalFilterBasedOnMATLABAbstract:indigitalsignalprocessinginthebasicmethod,filterisveryextensivealink,digitalfilterstheoryandrelateddesignalsohasalwaysbeenoneofthekeyresearch.IncludingFIRdigitalfiltersisdigitalfiltersystemincommonfilter,FIRfilterhasstrictphasecharacteristic,andthesystemfunctionintheoriginalpointwithfixedpole,isstable.MATLABlanguagehaspowerfulgraphicsdrawingfunction,thereforethispaperrespectivelyinMATLABenvironment,byusingwindowfunctionmethod,frequencysamplingdesignmethodtodesignFIRdigitalfilters.ThesimulationresultsindicatethattheMATLABenvironment,canaccordingtorequirementsofthefilterbyadjustingthecharacteristics,designparameters,andfinallyreachtheoptimaldesignofthefilter.Keywords:MATLAB;digital;filter;FIR;WindowFunction;Frequencysampling

目录TOC\o"1-3"\h\u13173一、引言 111844二、FIR滤波器简介 28212(一)FIR滤波器的种类 2304981.数字集成电路FIR滤波器 2130332.DSP芯片FIR滤波器 2106033.可编程FIR滤波器 216980(二)FIR数字滤波器的特性 321628三、MATLAB简介 420682(一)基本功能 410048(二)MATLAB语言中的几个函数介绍 522188四、FIR滤波器的设计 612590(一)窗函数法 69162(二)用窗函数设计FIR滤波器 620542(三)频率抽样法 824059(四)利用频率抽样法设计FIR滤波器 1123462(五)FIR滤波器的实现 1234411.滤波器结构的选择 12228732.确定系数的字长 1427828(六)FIR数字滤波器的MATLAB设计 15155171.设计原理 1585502.设计步骤 1624116五、FIR数字滤波器的仿真实例 1727711六、结论 208940七、参考文献 224586致谢 2411155附录 25一、引言随着信息和数字技术的发展,数字信号已成为当今极其重要的学科和技术领域之一。它在通信、语音、图像、自动控制等众多领域得到了广泛的应用。在数字信号处理的基本方法中,滤波是应用非常广泛的一个环节,数字滤波器的理论与相关设计也一直是人们研究的重点之一。数字滤波器(digitalfilter)是由数字乘法器、加法器和延时单元组成的一种装置,在通信、图像、语音、雷达等许多领域都有着十分广泛的应用。按所通过信号的频段分为低通、高通、带通和带阻滤波器四种,根据数字滤波器冲激响应的时域特征,可将数字滤波器分为长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器两种。其中FIR滤波器具有严格的相位特性,同时系统函数的极点加固定在原点上,因而是稳定的。MATLAB是第四代计算机语言,是目前公认的国际上最流行的科学与工程计算的软件工具。强大的设计功能是MATLAB在滤波器设计更方便快捷。由于MATLAB具有强大运算功能,所以MATLAB的数字滤波器设计法可以快速有效的设计由软件组成的常规的上述数字滤波器,其特点是设计方便、快捷,极大的减轻了工作量。二、FIR滤波器简介FIR(FiniteImpulseResponse)滤波器:有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。(一)FIR滤波器的种类1.数字集成电路FIR滤波器使用单片通用数字滤波器集成电路,这种电路使用简单,但是由于字长和阶数的规格较少,不易完全满足实际需要。虽然可采用多片扩展来满足要求,但会增加体积和功耗,因而在实际应用中受到限制。2.DSP芯片FIR滤波器使用DSP芯片。DSP芯片有专用的数字信号处理函数可调用,实现FIR滤波器相对简单,但是由于程序顺序执行,速度受到限制。而且,就是同一公司的不同系统的DSP芯片,其编程指令也会有所不同,开发周期较长。3.可编程FIR滤波器使用可编程逻辑器件,FPGA/CPLD。FPGA有着规整的内部逻辑块整列和丰富的连线资源,特别适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性和可扩展性都更好。(二)FIR数字滤波器的特性有限长单位冲激响应(FIR)滤波器的系统函数只有零点,除原点外,没有极点,因而FIR滤波器总是稳定的。如果它的有限长单位冲激响应是非因果的,总能够通过适当地移位得到因果的单位冲激响应,所以FIR滤波器不存在稳定性和是否可实现的问题。它的另一个突出的优点是在满足一定的对称条件下,可以实现严格的线性相位,这一点在IIR数字滤波器中是难做到的。由于线性相位特性在工程实际中具有非常重要的意义,如在数据通信、图像处理等应用领域,往往要求信号在传输和处理过程中不能有明显的相位失真,因而线性相位的FIR滤波器得到了广泛应用。

三、MATLAB简介MATLAB是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。(一)基本功能MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。(二)MATLAB语言中的几个函数介绍1.buttap函数,利用该函数,在给定阶数N后,可以运算出Butterworth模拟滤波器原型,其传输函数为:(3-1)2.bilinear函数,利用它实现双线性变换,将S域变换为Z域,其映射关系满足:(3-2)3.subplot函数,该函数用来分割图形窗口,可在一个图形窗口中输出多幅图。其格式为subplot(m,n,I),表示图形窗口被分割成m行n列个子窗口,本子窗口是第I个,适合于有多个图的输出。以上函数在MATLAB的实际操作中将起关键作用。四、FIR滤波器的设计(一)窗函数法窗函数的理论根据。窗函数设计滤波器的基本思想,就是根据给定的滤波器技术指标,选择滤波器的阶数N和合适的窗函数。即用一个有限长度的窗口函数序列来截取一个无限长的序列获得一个有限长序列,即,并且要满足以下两个条件:1.窗谱主瓣尽可能地窄,以获得较陡的过渡带;2.尽量减少窗谱的最大旁瓣的相对幅度,也就是能量尽量集中于主瓣,使峰肩和纹波减小,就可增多阻带的衰减。这就给窗函数序列的形状和长度选择提出了严格的要求。(二)用窗函数设计FIR滤波器根据技术要求确定待求滤波器的单位取样响应。如果给出待求滤波器的频响为,那么单位取样响应应用下式求出:(4-1)如果较为复杂,或者不能用封闭公式表示时,则不能用上式求出可以对。从到采样M点,采样值为。k=0,1,2,M-1.并用代替公式(4-1)中的,公式(4-1)近似写成:(4-2)根据频率采样定理,与应满足如下关系:(4-3)因此,如果M选的较大,可以保证在窗口内有效逼近。实际计算公式(4-2),可以用的M点采样值,进行M点的IDFT(FFT)得到。(1)如果给出通带阻代衰减和边界频率要求,可选用理想滤波器作为逼近函数,从而用理想滤波器的特性作傅里叶逆变换,求出。例如,理性低通滤波器如公式(4-3)所示:(4-4)求出单位取样响应如下式:(4-5)为保证线性相位,取(2)根据对过渡带及阻带衰减的要求,选择窗函数的形式,并估计窗口长度N。设待求滤波器的长度用来表示,它近似等于窗函数主瓣宽度。因过渡带近似于窗口长度N成反比,,A决定于窗口形式。例如,矩形窗A=4π哈明窗A=8π等。按照过渡带及阻带衰减情况,选择窗函数形式。原则是在保证阻带衰减满足要求的情况下,尽量选择主瓣窄的窗函数。(3)计算滤波器的单位取样响应,。式中是上面选择好的窗函数。如果要求线性相位,则要求和均对对称。如要求对奇对称,只要保证对奇对称就可以了。(4)验算技术指标是否满足要求。设计出的滤波器频率响应应用下式计算:(4-6)计算上式时可用FFT算法。如果不满足要求,根据具体情况重复第二、三、四步,直到满足要求[1-5]。(三)频率抽样法窗函数法设计是从时域出发的一种设计方法,但一般技术指标是在频域给出的,因此频率抽样法更为直接,尤其对于公式复杂,或不能用封闭公式表示的一些离散值,频率抽样法更为方便、有效。设待设计的滤波器的传输函数用表示,对它在到之间等间隔采样N点,得到,(4-7)再对N点进行IDFT,得到,,(4-8)式中作为所设计的滤波器的单位取样响应,其系统函数为:(4-9)此外,由频域内插公式知道,利用这N个频域采样值同样可求得FIR滤波器的系统函数。(4-10)如果设计的是线性相位的FIR滤波器,则其采样值的幅度和相位一定要满足前面所讨论的四类线性相位滤波器的约束条件。FIR滤波器具有线性相位的条件是是实序列,且满足,在此基础上能推导出其传输函数应满足的条件是:(4-11)(4-12)N为奇数,(4-13)N为偶数,(4-14)在之间等间隔采样N点,k=0,1,2,…,N-1(4-15)将代入(4-13)(4-14)式中,并写成k的函数:(4-16)(4-17)N为奇数,(4-18)N为偶数,(4-19)设用理想低通作为希望设计的滤波器,截止频率为,采样点数N,和用下面公式计算:N为奇数时,,,,(4-20)N为偶数时,,,,(4-21)用频率采样所得对应的单位取样响应为,(4-22)则由频率域采样定理知道,在频域之间等间隔采样N点,利用IDFT得到的h(n)应是以N为周期,周期性延拓乘以,即(4-23)由采样定理表明,频率域等间隔采样,经过IDFT得到,其Z变换和的关系为:(4-24)上式表明,在各频率采样点,上,,因此,采样点上滤波器的实际频率响应是严格地和理想频率响应数值相等的。但是在采样点之间的频响则是由各采样点的加权内插函数的延伸叠加而成的,因而有一定的逼近误差,误差大小取决于理想频率响应曲线形状。理想频率响应特性变化越平缓,则内插值越接近理想值,逼近误差越小。反之,如果采样点之间的理想频率特性变化越陡,则内插值与理想值的误差就越大,因而在理想频率特性的不连续点附近,就会产生肩峰和起伏。下面通过设计分析说明频率抽样法设计FIR滤波器的步骤[4-6]。(四)利用频率抽样法设计FIR滤波器利用频率抽样法设计一个32阶的低通FIR滤波器,要求通带截止频率,阻带截止频率。由线形相位FIR滤波器有四种类型,不同类型的FIR滤波器,其幅频特性和相频特性有少许不同,所以首先要确定滤波器的类型,本题选择偶对称,N为偶数这一类型,其设计过程如下:(1)由性能指标和滤波器的类型确定的模。一方面要满足式(4-20),另一方面要求,因为这种类型滤波器的幅度函数是奇对称的。(2)根据滤波器的类型及频率抽样法的特点确定的相角。要满足式(4-18),这是由这种类型滤波器的相位函数决定的。(3)由和构造出,再经过逆变换便可求出单位冲激响应,而且其虚部必为零。根据以上步骤可得MATLAB程序见附录(一);频率采样法的优点是可以在频域直接设计,并且适合最优化设计;缺点是采样频率只能等于的整数倍,因而不能确保截止频率的自由取值,要想实现自由地选择截止频率,必须增加采样点数N这又使计算量加大[7]。(五)FIR滤波器的实现滤波器的实现主要包括两方面的内容,首先选择一个合理的结构,然后利用有限精度数值实现它。之所以要利用有限精度数值实现滤波器,是因为工程实践中滤波器的系数只能用有限位的二进制数来表示。1.滤波器结构的选择如前所述,FIR滤波器通常有直接型、级联型、格型、频率抽样型等几种结构。当用有限精度数值表示滤波器的系数时,实际系数会偏离理论系数,对FIR滤波器而言,会导致系统函数的零点发生偏移,进而影响滤波器的性能。下面先来分析系数的偏离是如何影响零点的偏移的,假设FIR滤波器系统函数的零点z、都是一阶零点,则有(4-25)若用表示系数的偏差,表示零点的偏差,则第i个零点的偏差可用系数的偏差表示为(4-26)由此式可经看出的大小决定着对的影响程度,故将其定义为z,对系数的灵敏度,对式(4-22)进行求导(4-27)经过变形就可得到(4-28)由此式可得到结论:若零点越密集,则零点对系数量化误差的灵敏度就越高,而且,密集的零点数越多,灵敏度越高。在进行滤波器设计时总是希望灵敏度越低越好,在滤波器的阶数很高的情况下,一般采用级联型或格型结构可以获得低灵敏度。但大多数情况下,采用直接型结构,原因是:对大多数线性相位FIR滤波器来说,零点在Z平面内或多或少是均匀铺开,从而使滤波器对系数量化误差的灵敏度很低;无论系数量化误差多大,采用直按型结构都能获得准确的线性相位;具体实现时用到的乘法器也比级联型少[8-9]。2.确定系数的字长分析零点对系数量化误差的灵敏度并不能直观地反映系数量化误差对滤波器频响特性的影响,而在滤波器的设计中,最关心的还是滤波器的频响特性,下面从频响特性出发对系数的量化误差进行一些分析。令表示量化后的系数,它与量化前的系数h(n)之间的关系为:(4-29)由此式可求得量化后滤波器的频率响应:(4-30)参考文献[10]对式(4-26)中的频响误差△H(w)进行了分析讨论,并给出了它的标准偏差的上限(4-31)由上式可以得出,若己知频响误差△的标准偏差,在算出滤波器的阶数N后便可求出系数所需要的字长b。在工程实践中很少采用这种方法来确定字长b,其原因有以下几个:(1)式(4-31)是在一定的假设条件下得到的;(2)在给定滤波器的性能指标时一般不给出频响误差的标准偏差;(3)为防止滤波运算后数据溢出,滤波器的系数要进行归一化处理,这必然要降低系数的有效位,从而给系数字长的确定带来了一定的麻烦。工程实践中确定系数字长b通常是采用试凑法进行的,首先求出滤波器的无限精度系数(这样得到的系数已经进行了归一化处理),然后对系数进行量化,利用量化后的系数算出其频响特性,若频响特性超过滤波器的性能要求,则可降低量化字长位数,反之,则增加量化字长位数,经过几次试凑后便可得到比较合理的字长b。(六)FIR数字滤波器的MATLAB设计1.设计原理MATLAB是一套用于科学计算的可视化、高性能语言与软件环境,它集数值分析、矩阵运算、信号处理与图像显示于一体,构成了界面友好的用户环境。它的信号处理工具箱包含了各种经典的和现代的数字信号处理技术,汇集了大量的各种算法的函数,使各种研究时间大大节省。在设计数字滤波器时,常采用MATLAB来进行辅助设计。利用MATLAB作为FIR数字滤波器设计的辅助工具,调用其信号处理工具箱的内部函数使FIR数字滤波器的设计变得简单,易实现。利用MATLAB的仿真功能对所设计的滤波器进行仿真可以提高设计的效率。现以理想的数字滤波器为逼近滤波器,理想低通滤波器的幅度响应为,滤波器的截止频率应该由频域指标中的通带截止频率与阻带截止频率按下试确定:(4-32)2.设计步骤(1)构造FIR数字滤波器的幅频函数,也就是对幅频特性曲线进行N点等间隔的抽样得到。然后按照,求得FIR滤波器的频域采样N个样本值,其中的相位特性N点采样值可表示为:(偶对称时)(奇对称时)(2)对计算IDFT,求出FIR的单位冲激响应,这可以利用傅立叶变换的快速算法FFT来计算。(3)根据绘制FIR的频率响应曲线,验证是否满足给定的技术指标,若不满足的话,则需要通过增加若干个过渡采样点的方法进行修正[11-12]。

五、FIR数字滤波器的仿真实例下面研究一个低通滤波器的设计,通过仿真分析来说明这种方法设计滤波器的可行性和优越性。设计要求:(1)通带截止频率为3400HZ,阻带截止频率为5400HZ;(2)通带最大衰减为2dB,阻带最大衰减为60db;频率响应在0~0.25*pi之间为1,在0.25*pi~pi之间为0,对加窗截断,选择矩形窗和任意一种其他窗口,每种窗口长度分别为M=10、20、40三种情况,对每种情况要进行性能好坏的分析。首先需要理解实际的滤波器是没有办法做到理想状态的。如果要理想状态的话,就直接就是矩形窗序列乘序列就OK,矩形窗只能达到20.9dB的衰减,但是实际的加窗构成的滤波器,必然会存在波纹,和过渡带滤波器的衰减指标主要是由阻带衰减确定的不妨设阻带衰减为50dB那么要达到这个指标,通过查表可以知道必须是hammingwindow(54.5dB)或blackmanwindow(75.3dB)。根据上述指标利用MATLAB进行设计。编写的MATLAB程序的主要代码附录(二)。仿真后图所示图6-1低通滤波器设计图图6-2低通滤波器设计图(M=10)图6-3低通滤波器设计图(M=20)

六、结论FIR滤波器的应用十分广泛,当今的许多信号处理系统,如图象处理等系统要求具有线形相位特性。在这方面FIR滤波器有独特的优点,能很容易设计出具有严格线性相位的FIR系统。此外,FIR滤波器的冲激响应是有限长序列,其系统函数为一个多项式,它所含的极点多为原点,所以FIR滤波器永远是稳定的。FIR滤波器以它优越的性能,在数字信号处理领域中占有很重要的地位,是现代电子技术中必须掌握的设计技术。设计一个FIR数字滤波器,不管是采用窗函数法,还是频率采样法,需要完成大量的计算和图形绘制工作。而且,从上面的设计过程中可以看到,设计中,只用到了两个技术指标,也就是通带截止频率和阻带截止频率。其它指标如:带内允许最大衰减,带外允许最大衰减等指标,无法体现在设计过程中来。所以,设计结果通常不可能通过一次计算而得到,往往需要反复多次的计算,对比才能最终得到符合各项技术指标的设计结果。利用MATLAB编程效率高,计算和图形处理能力非常强大的特点。可以帮助完成设计中的各项计算和图形绘制工作,从而使FIR数字滤波器的设计变得非常简单和快捷。与其它高级语言的程序设计相比,用MATLAB语言可以方便,快捷地设计具有严格线形相位的FIR系统,可节省大量的编程时间,且参数的修改也十分方便。随着版本的不断提高,相信MATLAB在数字滤波器技术中会发挥更大的作用。同时,用MATLAB计算有关数字滤波器的设计参数,如,等,对于数字滤波器的硬件实现提供了一条简单而准确的途径和依据。

七、参考文献[1]程佩青.数字信号处理教程[M].清华大学出版社,2005.8[2]丁玉美.数字信号处理[M].西安电子科技大学出版社,1999[3]胡广书.数字信号处理—理论.算法与实现[M].清华大学出版社,2004[4]KYKhoo.ZYu.ANWillson.Efficienthigh-speedCICdecimationfilter[M],proceedingsofthe11thAnnualIEEEinternational,1998[5]赵红怡.张常年.数字信号处理及其MATLAB实现[M]北京.化学工业出版社.工业装备与信息工程出版中心.200268-69[6]沈永明.卫星电视接收完全DIY[M].北京:人民邮电出版社.2007[7]刘修文.卫星数字电视直播接收技术[M]北京:机械工业出版社.2007[8]宗孔德.多抽样率信号处理[M]清华大学出版社.2004.7[9]刘松强.数字信号处理系统及其应用清华大学出版社.2005[10]王宏.MATLAB6.5及其在信号处理中的应用.清华大学出版社2004[11]楼顺天.基于MATLAB的系统分析与设计—信号处理.西安电子科技大学[12]陈怀深.MATLAB及其在电子信息课程中的应用.电子工业出版社2004[13]HEYT.Quantumcomputing:anintroduction[J].Compu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论