基于matlab的FIR数字滤波器设计.pdf
《基于matlab的FIR数字滤波器设计.pdf》由会员分享,可在线阅读,更多相关《基于matlab的FIR数字滤波器设计.pdf(69页珍藏版)》请在冰点文库上搜索。
I基于基于MatlabMatlab的的FIRFIR数字滤波器设计数字滤波器设计摘要:
在数字信号处理中,由于信号中经常混有各种复杂成分,所以很多信号分析都是基于滤波器而进行的,因此数字滤波器占有极其重要的地位。
在数字控制系统中输入信号中所含的干扰对系统的性能会产生很大的影响,因此需要对输入信号进行处理,以提取有用信号。
有限长冲激响应(FIR)滤波器在数字信号处理中发挥着重要作用,采用Matlab软件对FIR数字滤波器进行仿真设计,简化了设计中繁琐的计算。
本文采用窗函数法,频率采样法通过调用Matlab函数设计FIR数字滤波器。
绘制对应的幅频特性曲线。
最后用基于Matlab函数设计的FIR数字滤波器进行语音滤波处理,通过滤波前后信号的频谱图和生成的声音文件的对比,分析不同滤波器的滤波效果。
关键词:
FIR数字滤波器,仿真,窗函数法,频率抽样法,MatlabIIDesignoftheMATLAB-basedFIRdigitalfilterAbstract:
Indigitalsignalprocessing,becausethesignalisoftenmixedwithavarietyofcomplexcomposition,soalotofsignalanalysisarebasedonthefilter,digitalfilteroccupiesanextremelyimportantposition.Indigitalcontrolsystem,interference,whichismixedintheinputsignal,hasagreateffectonperformanceofthesystem.Therefore,processingofinputsignalhastobedonetogetusefulsignal.Finiteimpulseresponse(FIR)filterplaysanimportantroleintheprocessingofdigitalsignal.DesigningtheFIRfilterbyMatlabcansimplifythecomplicatedcomputationinsimulationandimprovetheperformance.Byusingthemethodsofwindowfunction,frequencysampling,thedesignofFIRdigitalfilterhasbeenprocessedinMatlab.IntheviewofthedesignedprogramofMatlabandthefigureoftheamplitude-frequencycharacterization.Atlast,byusingtheFIRdigitalfilterswhichhavebeendesignedtoprocessthesoundsignalbasedontheMatlabfunction,thefilteringeffectofdifferentdigitalfiltersisanalyzedbycomparingthesignalsspectrumviewersandthesoundfileswhichhavebeengenerated.TheexperimentalresultsshowthattheFIRfiltersdesignedinthispaperareeffective.Keywords:
FIRdigitalfilter,simulation,windowingmethod,frequencysamplingmethod,Matlab目录摘要.IAbstract.II第一章绪论.11.1Matlab简介.11.1.1MATLAB的发展.11.1.2Matlab的主要功能.21.2Matlab的优势及特点.21.2.1MATLAB的优势.21.2.2Matlab语言的特点.2第二章数字滤波器.42.1数字滤波器简介.42.2IIR数字滤波器.42.3FIR数字滤波器.52.4IIR与FIR数字滤波器的比较.7第三章FIR数字滤波器的设计.83.1窗函数法设计FIR滤波器.83.2频率抽样法设计线性相位FIR滤波器.11第四章利用Matlab实现FIR滤波器设计.154.1窗函数法的Matlab实现.154.2频率抽样法的Matlab实现.224.3利用滤波器处理加有噪声的音频波形.26结论.32致谢.33参考文献.34附录.35附录一外文原文及翻译.35附录二利用Matlab实现FIR滤波器设计参考程序.541第一章绪论Matlab是矩阵实验室(MatrixLaboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和Simulink两大部分。
1.1Matlab简介1.1.1MATLAB的发展MATLAB是英文MATrixLABoratory(矩阵实验室)的缩写。
早期的MATLAB是用FORTRAN语言编写的,尽管功能十分简单,但作为免费软件,还是吸引了大批使用者。
经过几年的校际流传,在JohnLittle。
CleveMoler和SteveBanger合作,于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仿真软件以及很多工具箱。
这一版本增加了很多新的功能和特性,内容相当丰富。
2Matlab主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,代表了当今国际科学计算软件的先进水平。
1.1.2Matlab的主要功能1.数值计算和符号计算功能2.绘图功能3.语言体系4.MATLAB的工具箱1.2Matlab的优势及特点1.2.1MATLAB的优势
(1)工作平台编程环境十分友好
(2)编程语言简单易用(3)数据的计算处理能力十分强大(4)图像处理能力强大(5)模块集合工具箱应用广泛(6)程序的接口和发布平台很实用(7)可以开发用户界面1.2.2Matlab语言的特点MATLAB语言被称为第四代计算机语言,其利用丰富的函数资源,使程序员从繁琐的程序代码中解放出来,其最突出的特点就是简洁。
MATLAB用更直观的、符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码,给用户带来最直观、最简洁的程序开发环境,下面简单介绍一下MATLAB的主要3特点。
语言简洁紧凑,使用方便,库函数十分丰富。
MATLAB程序书写的形式自由,利用丰富的库函数避开了繁琐的子程序编程任务,由于库函数都是由本领域的专家编写,所以不必担心函数的可靠性。
高效方便的矩阵和数组运算,MATLAB语言不需要定义数组的维数,并给出了矩阵函数、特殊矩阵函数、特殊矩阵专门的库函数,使得在求解信号处理、建模、系统识别、优化和控制等领域的问题时,显得大为简洁、方便、高效,这是其他高级语言所不能的。
MATLAB既具有结构化的控制语句,又具有面向对象编程的特性。
MATLAB语法限制不严格,程序设计自由度大,通过建立M后缀名文件的形式,与用户已经编好的FORTRAN、C语言成语混合编程,方便地调用有关的FORTRAN、C语言的子程序。
可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上面运行。
MATLAB的图形功能强大。
在C和FORTRAN语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。
此外,MATLAB还具有较强的编辑图形界面的能力。
MATLAB拥有功能强大的工具箱,主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实施交互功能。
源程序的开放性强。
除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改变的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
MATLAB软件自1984年推向市场以来,历经十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件。
它功能强大、界面友好、语言自然、开放性强,很快成为应用学科计算机辅助分析、设计、仿真、教学乃至科技文字吹不可缺少的基础软件。
4第二章数字滤波器2.1数字滤波器简介数字滤波器是一个离散的系统。
它可以对输入的离散信号进行一系列运算处理,从输入的信号中获得所需要的信息。
数字滤波器的系统函数通常表示为01()1MjjjNiiibzHzaz(1-1)数字滤波器分为有限冲激响应数字滤波器,即FIR数字滤波器和无限冲激响应,即IIR数字滤波器。
从公式的角度来看,FIR数字滤波器的ia始终为零;IIR数字滤波器ia至少有一个非零。
实现数字滤波器的方法一般有两种:
一种方法是吧滤波器所要完成的运算编成程序并让计算机执行,也就是采用计算机软件来实现;另一种方法是设计专用的数字硬件、专用的数字信号处理器或采用通用的数字信号处理器来实现。
实现一个数字滤波器一般需要三个基本的运算单元:
加法器、单位延时器和常数乘法器。
这些基本的单元可以有两种表示方法方框图法和信号流程图法。
设计一个数字滤波器的一般步骤为:
(1)按所给要求确定滤波器的性能
(2)用一个因果稳定的离散线性时不变的系统函数逼近此性能的要求(3)利用算法来实现这个系统函数(4)利用计算机仿真或硬件来实现2.2IIR数字滤波器无限长单位冲激响应滤波器,即IIR数字滤波器具有下面几个特点:
(1)系统的单位冲激响应h(n)为无限长的;
(2)系统函数H(z)在有限z平面上有极点存在;5(3)结构上存在着输出到输入的反馈,也就是结构上是递归型的。
IIR滤波器的设计就是在给定的技术指标下去确定滤波器的阶数N和系数ia,ib。
在已满足给定的技术指标下,应选用阶数尽可能低的滤波器,因为滤波器的阶数越低,在实现时成本就越低。
在设计IIR滤波器时,最常用的方法是利用模拟滤波器来设计数字滤波器。
其原因为:
(1)模拟滤波器的设计技术相对成熟,可以广泛利用;
(2)模拟滤波器有大量的参考程序和表格;(3)它的解可以为闭合形式的。
2.3FIR数字滤波器有限长单位冲激响应滤波器,即FIR数字滤波器具有下面几个特点:
(1)系统的单位冲激响应h(n)在有限个n值处不为零;
(2)系统函数H(z)在|z|0处收敛,在|z|N(lengthoftheimpulseresponseoffiltertobedesigned)(ii)Thenusingthefollowingformula(14)theL-pointfilterimpulseresponseiscalculated.(iii)ThentheobtainedfilterimpulseresponseissymmetricallytruncatedtodesiredlengthN.(iv)Thenthefrequencyresponseiscalculatedusingthefollowingrelation(15)(v)Themagnitudeofthefrequencyresponseatthesefrequencypointsforwk=(2k)/Lwillnotbeequaltothedesiredones,buttheoverallleastsquareerrorwillbereducedeffectivelythiswillreducetherippleinthefilterresponse.Tofurtherreducetherippleandovershootnearthebandedges,atransitionregion43willbedefinedwithalineartransferfunction.ThentheLfrequencysamplesaretakenatwk=(2*pi*k)/LusingwhichthefirstNsamplesofthefilterarecalculatedusingtheabovemethod.Usingthismethod,reducestherippleintheinterpolatedfrequencyresponse.NonlinearEquationsolutionformaximalrippleFIRfiltersTherealpartofthefrequencyresponseofthedesignedFIRfiltercanbewrittenasa(n)cos(wn)Rab75wherelimitsofsummationanda(n)varyaccordingtothetypeofthefilter.ThenumberoffrequenciesatwhichH(w)couldattainanextremumisstrictlyafunctionofthetypeofthelinearphasefilteri.e.whetherlengthNoffilterisoddorevenorfilterissymmetricoranti-symmetric.Ateachextremum,thevalueofH(w)ispredeterminedbyacombinationoftheweightingfunctionW(w),thedesiredfrequencyresponse,andaquantitythatrepresentsthepeakerrorofapproximationdistributingthefrequenciesatwhichH(w)attainsanextremalvalueamongthedifferentfrequencybandsoverwhichadesiredresponsewasbeingapproximated.Sincethesefiltershavethemaximumnumberofripples,theyarecalledmaximalripplefilters.Thismethodisasfollows:
AteachoftheNeunknownexternalfrequencies,E(w)attainsthemaximumvalueofeitherandE(w)orequivalentlyH(w)haszeroderivative.ThustwoNeequationsoftheformH(wi)=/W(w)+D(wi)(16)d/dwH(wi)atw=wi=0(17)areobtained.Theseequationsrepresentasetof2NenonlinearequationsintwoNeunknowns,NeimpulseresponsecoefficientsandNefrequenciesatwhichH(w)obtainstheextremalvalue.ThesetoftwoNeequationsmaybesolvediterativelyusingnonlinearoptimiationprocedure.Animportantthingtonoteisthatherethepeakerror()isafixedquantityandisnotminimizedbytheoptimizationscheme.ThustheshapeofH(w)ispostulatedaprioriandonlythefrequenciesatwhichH(w)attainstheextremalvaluesare44unknown.Thedisadvantageofthismethodisthatthedesignprocedurehasnowayofspecifyingbandedgesforthedifferentfrequencybandsofthefilter.Thustheoptimizationalgorithmisfreetoselectexactlywherethebandswilllie.PolynomialInterpolationSolutionforMaximalRippleFIRfiltersThisalgorithmRab75isbasicallyaniterativetechniqueforproducingapolynomialH(w)thathasextremaofdesiredvalues.ThealgorithmbeginsbymakinganinitialestimateofthefrequenciesatwhichtheextremainH(w)willoccurandthenusesthewell-knownLagrangeinterpolationformulatoobtainapolynomialthatalternativelygoesthroughthemaximumallowableripplevaluesatthesefrequencies.Ithasbeenexperimentallyfoundthattheinitialguessofextremalfrequenciesdoesnotaffecttheultimateconvergenceofthealgorithmbutinsteadaffectsthenumberofiterationsrequiredtoachievethedesiredresult.Letusconsiderthecaseofdesignofalowpassfilterusingtheabovemethod.45Fig.1.IterativesolutionforamaximumripplelowpassfilterfromRab75TheFig.1showstheresponseofalowpassfilterwithN=11.Thenumberofextremalfrequenciesi.e.thefrequencieswhereripplesoccurare6inthiscase.Theyaredividedinto3passbandextremaand3stopbandextrema.ThefilleddotsindicatetheinitialguessastotheextremalfrequenciesofH(w).ThesolidlineistheinitialLagrangepolynomialobtainedbychoosingpolynomialcoefficientssothatthevaluesofthepolynomialattheguessedsetoffrequenciesareidenticaltotheassignedextremevalues.Butthispolynomialhasextremathatexceedsthespecifiedmaximavalues.ThenextstageofthealgorithmistolocatethefrequenciesatwhichtheextremaofthefirstLagrangeinterpolationoccur.Thesefrequenciesarenowusedasthenewfrequenciesforwhichtheextremaofthefilterresponseoccur.ThissecondsetoffrequenciesareindicatedbyopendotsinFig.1.Nowsimilarlythenewsetoffrequenciesaretakenasthosefrequencieswherethemaximumexceedsthespecifiedmaxima.Thus