数字带通滤波器的Matlab设计及DSP实现【开题报告+文献综述+毕业论文】

数字带通滤波器的Matlab设计及DSP实现【开题报告+文献综述+毕业论文】

ID:463689

大小:1.10 MB

页数:47页

时间:2017-08-05

上传者:U-944
数字带通滤波器的Matlab设计及DSP实现【开题报告+文献综述+毕业论文】_第1页
数字带通滤波器的Matlab设计及DSP实现【开题报告+文献综述+毕业论文】_第2页
数字带通滤波器的Matlab设计及DSP实现【开题报告+文献综述+毕业论文】_第3页
数字带通滤波器的Matlab设计及DSP实现【开题报告+文献综述+毕业论文】_第4页
数字带通滤波器的Matlab设计及DSP实现【开题报告+文献综述+毕业论文】_第5页
资源描述:

《数字带通滤波器的Matlab设计及DSP实现【开题报告+文献综述+毕业论文】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

本科毕业论文系列开题报告电子信息工程数字带通滤波器的MATLAB设计及DSP实现一、课题研究意义及现状21世纪是信息科学与技术的世纪,而数字化又是信息技术发展的方向,其中数字信号处理技术的飞速发展,正影响或改变着我们的生产、生活方式。受到人们普遍的关注数字信号处理他在语音处理、图像处理、电视、通信、雷达、声纳、生物医学信号处理、音乐以及在军事上被大量应用,同时在电力系统中被应用于能源分布规划和自动检测;在环境保护中被应用于对空气污染和噪声干扰的自动监测,在经济领域中被应用于股票市场预测和经济效益分析等等。数字信号处理学科的一项重大进展是关于数字滤波器设计方法的研究。关于数字滤波器,早在40年代末期,就有人讨论过它的可能性问题,但直到60年代中期,才开始形成关于数字滤波器的一整套完整的正规理论。在这一时期,提出了各种各样的数字滤波器结构,出现了数字滤波器的各种逼近方法和实现方法。一般说来,通过对模拟滤波器函数的变换来设计数字滤波器,很难达到逼近任意频率响应或冲激响应,而采用计算机辅助设计则有可能实现频域或时域的最佳逼近,或频域时域联合最佳逼近,从模拟原型直接变换成满足原定频域指标要求的数字滤波器。这样,数字滤波器的分析与设计的内容也更加丰富起来,各种新的数字信号处理系统,也都能用专用数字硬件实时加以实现。利用Matlab设计数字滤波器在数字通信系统和计算机领域信号处理中,有着广泛的应用前景。自20世纪70年代末80年代初DSP芯片诞生以来,DSP芯片得到了飞速的发展,因为Matlab只能验证数字信号处理的理论及解决部分工程技术问题,在实际数字信号处理过程中常用的工具是数字信号处理器(DigitalSignalProcessor,DSP器件)。现在包括数字滤波在内的数字信号处理技术正以惊人的速度向纵深和高级的方向发展,未来的发展可能会比过去的进程更为激动人心,必将引起某些领域的飞跃性转析。二、课题研究的主要内容和预期目标主要研究数字带通滤波器的滤波原理;熟悉Matlab软件,借助Matlab工具设计 数字带通滤波器滤波;掌握DSP程序设计方法,实现基于DSP的数字带通滤波器。1.研究数字带通滤波器的设计原理和设计方法。2.在Matlab环境下,利用Matlab语言编写程序对滤波器进行仿真并得到滤波器的系数。3.通过CCS环境掌握DSP程序开发方法、调试工具的使用及优化级别的选择等,编写基于DSP的滤波算法并在CCS上进行了调试仿真。结合上述内容,设计开发,完成利用Matlab软件设计数字带通滤波器并进行仿真优化,然后在CCS环境下,基于DSP硬件平台实现数字滤波。三、课题研究的方法及措施本课题主要研究的是一个数字带通滤波器的Matlab程序设计及DSP硬件实现,所以主要采用理论分析并且结合实验的方法进行。总的研究方法是要在课题研究之前,掌握一定的理论基础,在理论中寻找适合本课题的设计方案;然后,利用Matlab软件设计数字带通滤波器并进行仿真优化,最后在CCS环境下,基于DSP硬件平台实现数字带通滤波器的滤波。具体措施如下:1、确定论文方向,了解论文实际应用领域,进行可行性分析。2、针对数字滤波器的滤波基本原理的研究,查阅相关论文资料,书籍,以及该方向国内外发表的优秀论文,对数字滤波器滤波概念有个很好理解,了解国内外对于该课题的研究现状和方向,探索新的优化技术。明确研究的重点是滤波器的滤波通频带和他的采样频率,确定研究方法和内容。3、通过资料的学习整理,然后阅读一定数量的关于DSP技术的相关资料,查找Matlab软件程序设计和DSP的滤波算法的基本原理,熟悉Matlab和CCS这个实验环境,根据系统总体指标及功能要求着手编写仿真程序。提出设计的可行性方案,用软件仿真的手段对数字带通滤波器进行测试。4、记录设计的过程,发现问题后仔细记录分析,并根据所得的数据,撰写论文。5、查漏补缺,进行论文的改进。四、课题研究进度计划2010/2011(第一学期):明确任务,收集资料,确定系统总体设计方案,完成外文翻译、文献综述及开题报告,并做好开题答辩。2010/2011(第二学期):第1周至第3周:掌握同时学习并掌握Matlab程序设计; 在Matlab环境下,利用Matlab语言编写程序对滤波器进行仿真并得到滤波器的系数。第3周至第4周:通过CCS环境掌握DSP程序开发方法、调试工具的使用及优化级别的选择等,编写基于DSP的滤波算法并在CCS上进行了调试仿真,并进行反复论证;第5周至第6周:进行方案的补充,修改的相关信息;撰写毕业论文,完善与修改毕业论文。第7周至第8周:做好论文答辩的PPT资料,准备答辩,并提交所有电子文档材料。五、参考文献[1]俞一彪,孙兵.数字信号处理—理论与应用[M].南京:东南大学出版社,2005,8.[2]刘本源,何传易,卢再奇.基于FPGA的极窄带滤波器的分析与设计[J].雷达科学与技术,2009,8,7(4):296-300.[3]石青春,陈侠,杨琳.窄带滤波器的设计与DSP实现[J].电子器件,2009,8,32(4):774-777.[4]赵红怡.DSP技术与应用实例[M].北京:电子工业出版社,2004,6.[5]刘波.MATLAB信号处理[M].北京:电子工业出版社,2006,7.[7]范寿康,尹磊,曲丽荣,李进.DSP技术与DSP芯片[M].北京:电子工业出版社,2007,4.[8]周辉,董正宏.数字信号处理基础及MATLAB实现[M].北京:北京希望电子出版社,2006,2.[9]陈怀琛.数字信号处理教程MATLAB释义与实现[M].北京:电子工业出版社,2008,10.[10]丁玉美,高西全.数字信号处理[M].第三版.西安:西安电子科技大学出版社,2008,6.[11]CharlesSchuler,MaheshChugani.DigitalSignalProcessing[M].N.Y.:McGraw-HillCompanies,Inc.,2005,8.[12]王超,安建伟,数字信号处理[M].北京:国防工业出版社,2010,4.[13]张雄伟,陈亮,徐光辉.DSP芯片的原理与开发应用[M].北京:电子工业出版社,2003,10.[14]丛玉良,王宏志.数字信号处理原理及其MATLAB实现[M].北京:电子工业出版社,2009,7.[15]清源科技.TM320C54xDSP应用程序设计教程[M].北京:机械工业出版社,2004,1. 毕业论文文献综述电子信息工程数字滤波器研究综述摘要:文章对数字滤波器做了较为全面的介绍。概括了滤波器的背景知识、应用以及较为详细的分类情况。比较了几种有代表性的经典的数字滤波器。然后对数字滤波器以及发展的走势进行了展望。关键词:数字滤波器;IIR滤波器;FIR滤波器1.引言随着信息科学与计算技术的迅速发展,数字信号处理的理论与应用得到飞跃式发展,形成了一门极为重要的学科[1]。不仅如此,它还以不同的形式影响及渗透到其他的学科中去。不论是国民经济或者是国防建设都与之息息相关,紧密相连。我们现实生活中会遇到多种多样的信号,例如广播信号、电视信号、雷达信号、通信信号、导航信号、射电天文信号、生物医学信号、控制信号、气象信号、地震勘探信号、机械振动信号、遥感遥测信号等等。上述这些信号大部分是模拟信号,也有小部分是数字信号。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号。因此,数字信号实际上是用数字序列表示的信号,语音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号经采样和量化后,得到的数字信号是一个二维离散空间序列[2]。滤波技术是信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的[3]。数字信号的滤波是通过数字滤波器来实现的。数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到频域滤波的目的[4-5]。例如,对数字信号进行滤波以限制其他的频带或滤除噪音和干扰,或将他们与其他信号进行分离;对信号进行频谱分析或功率谱分析以了解信号的频谱组成,进而对信号进行识别;对信号进行某种变换,使之更适合于传输、存储和应用;对信号进行编码以达到数据压缩的目的等等。因此滤波器的优劣直接决定着产品的优劣。所以,滤波技术是极为敏感与热门的课题,对滤波器的研制也历来为各国所重视[3]。 2.数字滤波器分类按照不同的分类方法,数字滤波器有许多种类,但是总起来可以分为两大类:经典滤波器和现代滤波器。而经典滤波器从滤波特性上来分,则可以分为低通、高通、带通和带阻等滤波器。以上这些理想滤波器是不可能实现的,因为它们的单位脉冲响应均是非因果且无限长的,我们只能按照某些标准设计滤波器,使之接近理想滤波器[6-7]。数字滤波器从实现的网络结构或从单位脉冲响应长度分类,可以分成无限长单位脉冲响应(IIR)滤波器和有限长单位脉冲响应(FIR)滤波器。它们的系统函数分别为:IIR滤波器:FIR滤波器:根据滤波器对信号的处理作用又可将其分为选频滤波器和其他滤波器。低通、带通、高通和带阻滤波器均属于选频滤波器,其他滤波器有微分器、希尔伯特变换器、频谱校正等滤波器[8-10]。3.FIR和IIR数字滤波器的比较前面已经介绍了各种不同类型的数字滤波器,不管是高通滤波器、带通滤波器和低通滤波器,都可以采用FIR或IIR的结构形式实现。选择FIR滤波器还是IIR滤波器取决于不同类型滤波器的优点在设计中的重要性。为了能在实际工作中恰当地选用合适的滤波器,现将两种滤波器特点比较分析如表1所示。实际中,按照如下6个准则选择FIR或IIR的结构形式实现数字滤波器的设计。(1)选择数字滤波器我们必然会考虑其经济问题,通常将硬件的复杂性、芯片的面积或计算速度等作为衡量经济问题的因素[8]。在相同的技术指标要求下,由于IIR数字滤波器存在输出对输入的反馈,因此可以用较少的阶数来满足要求,所用的存储单元少,运算次数少,较为经济。例如,用频率抽样法设计一个阻带衰减为20dB的FIR数字滤波器,要33阶才能达到要求,而用双线性变换法只需4~5阶的切比雪夫IIR滤波器就可达到同样的技术指标。这就是说FIR滤波器的阶数要高5~10倍左右[11]。(2)FIR滤波器可得到严格的线性相位,而IIR滤波器做不到这一点,IIR滤波器的选择性越好,其相位的非线性越严重。在很多情况下,FIR 数字滤波器的线性相位与它的高阶数带来的额外成本相比是非常值得的。如果要使IIR滤波器获得线性相位,又满足幅度滤波器的技术要求,必须加全通网络进行相位校正,这同样将大大增加滤波器的阶数。就这一点来看,FIR滤波器优于IIR滤波器[11-13]。(3)对于FIR滤波器,由于冲激响应是有限长的,因此可以用快速傅里叶变换算法,这样运算速度可以快得多。IIR滤波器不能进行这样的运算[11]。(4)从结构方面来看:FIR滤波器主要采用非递归结构,因而无论是理论上还是实际的有限精度运算中它都是稳定的,有限精度运算误差也较小。IIR滤波器必须采用递归结构,极点必须在z平面单位圆内才能稳定。对于这种结构,运算中的舍入处理有时会引起寄生振荡[11]。(5)从设计手段上看,IIR滤波器可以利用模拟滤波器设计的成果,一般有大量有理函数的设计公式、曲线、图表等可供计算、查找,设计简单工作量较小。一旦选定了已知的一种逼近方法(如巴特沃斯,切比雪夫等),就可以直接把技术指标带入一组设计方程计算出滤波器的阶次和系统函数的系数(或极点和零点)。不过,受模拟滤波器设计的制约,主要应用于设计具有片断常数特性的选频型滤波器,如低通、高通、带通和带阻等。FIR滤波器则一般没有现成的设计公式。窗函数法只给出了窗函数的计算公式,但计算通带和阻带衰减仍无显式表达式。一般FIR滤波器设计仅有计算机程序可资利用,因而要借助于计算机[13]。(6)IIR滤波器主要是设计规格化、频率特性为分段常数的标准低通、高通、带通和带阻滤波器。FIR滤波器则灵活很多,例如频率抽样法可适应各种幅度特性和相位特性的要求。因此FIR滤波器可设计出理想正交变换器、理想微分器、线性调频器等各种网络,适应性很广。而且,目前已经有很多FIR滤波器的计算机程序可供使用[11]。实际应用要从工程实现、经济成本、硬件和复杂程度、计算的速度等多个方面考虑[13]。表1FIR和IIR数字滤波器特点分析比较FIR滤波器IIR滤波器设计方法借助计算程序来设计借助成熟模拟滤波器设计成果来设计设计结果可得到幅频特性(可以多带)和线性相位(最大优点)只能得到幅频特性,相频特性未知,如需要线性相位,须用全通网络校准,但增加滤波器阶数和复杂性稳定性极点全部在原点(永远稳定)有稳定性问题阶数高低 结构非递归系统递归系统运算误差一般无反馈,运算误差小,噪声功率小,运算速度快有反馈,由于运算中的四舍五入会产生极限环性能可得到严格的线性相位,可是成本高,信号延时较大可用较低阶数获得较高选择性,所用存储单元少,计算量小,经济高效。4.结论在近代电信设备和各类控制系统中,数字滤波器在语音处理、图像处理、通信、电视、、雷达、声纳、生物医学信号处理、音乐及其他领域得到极为广泛的应用[5]。而滤波是信号处理的基础,滤波运算是信号处理中的基本运算,滤波器的设计也就相应成为数字信号处理的最基本问题之一。信号带有噪声或无用信号,滤波器的作用是将这些干扰成分滤除,也就是让特定频段的信号通过达到对信号筛选的效果[10]。在上面的介绍中我们知道,IIR滤波器虽然设计简单,但它主要应用于设计具有片断常数特性的选频型滤波器,如低通、高通、带通和带阻等,往往脱离不了几种典型模拟滤波器的频响特性约束。而FIR滤波器则要灵活的多,易于适应某些特殊的应用,如构成微分器或积分器,或用于巴特沃斯、切比雪夫等逼近不可能达到预定指标的情况,例如由于某些原因要求三角形幅频响应或一些更复杂的幅频响应形状,因而FIR滤波器有更大的适应性和更广阔的应用场合。由此,在相对要求不敏感的场合,如语音通讯等,选择用IIR滤波器较为合适,这样可以充分发挥其经济高效的特点;而对于图像信号处理,数据传输等以波形携带信号的系统,采用FIR滤波器较好[1]。在今天电子工业的发展,对滤波器的性能与功能要求越来越高,要求它们向集成化、智能化与微型化方向发展。随着微电子技术、计算机技术以及生产工艺水平的提高,滤波技术与器件的发展将会出现突飞猛进之势[3]。参考文献[1]丁玉美,高西全.数字信号处理[M].第三版.西安:西安电子科技大学出版社,2008,6.[2]刘令普.数字信号处理[M].哈尔滨:哈尔滨工业大学出版社,2002,4.[3]邓重一.滤波技术的发展现状[J].中国仪器仪表.2004,2,2:1~4.[4]王世一.数字信号处理[M].北京:北京理工大学出版社,2005,6.[5]郑南宁,程洪.数字信号处理[M].北京:清华大学出版社,2007,9. [6]CharlesSchuler.MaheshChugani.DigitalSignalProcessing[M].N.Y.:McGraw-HillCompanies,Inc.,2005,8.[7]刘正士,王勇,陈恩伟等.一种数字滤波器的设计方法及其应用[J].中国机械工程.2006,1,17(1):88~91.[8]方勇,数字信号处理:原理与实践[M].北京:清华大学出版社,2006,12.[9]R.Mahesh,A.P.Vinod,EdmundM-K.Lai,etal.FilterBankChannelizersforMulti-StandardSoftwareDefinedRadioReceivers[J].JournalofSignalProcessingSystems,2010,10,61(3):251~387.[10]张延华.数字信号处理:基础与应用[M].北京:机械工业出版社,2005,1.[11]王超,安建伟,数字信号处理[M].北京:国防工业出版社,2010,4.[12]郭永彩,廉飞宇.数字信号处理[M].重庆:重庆大学出版社,2009,8.[13]张小虹.数字信号处理[M].北京:机械工业出版社,2008,8. 本科毕业设计(20届)数字带通滤波器的Matlab设计及DSP实现 摘要数字带通滤波器通常采用频率变换法设计:先根据所要求的指标设计出模拟低通滤波器,然后在模拟域内进行频率变换,转换成模拟带通滤波器,最后再转换成相应类型的数字滤波器。Matlab工具箱提供了丰富的数字滤波器设计子函数,以减轻滤波器设计过程中的繁杂的数学计算。基于Matlab的数字滤波器设计方法有两种:一种是直接调用Matlab函数设计数字带通滤波器,而另一种是利用模拟滤波器来设计数字带通滤波器。需要设计的数字带通滤波器的指标如下:衰减特性24dB/oct;中心频率在20Hz-20kHz范围内可调;采样频率48kHz。Matlab设计结果表明两种方法都可以正确设计数字带通滤波器。运用Matlab软件设计得到数字带通滤波器的系数,同时对最大值归一化处理后转化为Q15格式所得到的数据,然后编写基于DSP的滤波算法,并在CCS上进行了调试仿真。仿真结果表明,利用DSP芯片,可以方便地实现的数字滤波器。关键词:数字带通滤波器;Matlab软件;DSP实现 AbstractWeusedtodesigndigitalband-passfilterwiththemethodoffrequencytransformation:firstly,wedesignedtheanalogfilterwiththequalificationswhichweregivenbefore.Thenconvertthefrequencyinthesimulationdomain,andconverttheanalogfilterintoanalogband-passfilter.Intheendconverttheanalogband-passfilterintothedigitalfilterwiththecorrespondingtypes.There’salotofsubfunctionsofdigitalfilterdesignintheMatlabtoolbox,becauseofthatwecanrelievesomecomplicatedmathematicalcomputationsintheprocessoffilterdesign.There’stwowaystodesigndigitalfilterbasedonMatlab:foronethingisusethefunctionoftheMatlabtodirectlydesignthedigitalband-passfilter.Theotherisdesigntheanalogfilterandthenconvertsittodigitalfilter.Wehavesuchqulificationstodesignthedigitalband-passfilter:thedecaycharacteristicis24dB/oct,thecenterfrequencyisadjustablefrom20Hzto20kHz,thesimplefrequencyis48kHz.Thedesignconsequenceshowsthatthetwowayscoulddesignthecorrectdigitalband-passfilter.Wecouldgetthefactorsofthedigitalband-passfilterwiththeMatlabsoftware.ThennormalizationthemaximumandconvertittothedatainformofQ15.AfterthatwewritethecodeoffilteringwithDSP.FinallydebugandsimulatetheentiresystemwiththeCCSsoftware.TheconsequenceofthesimulationshowsthatwecoulddesignthedigitalfilterwiththeDSPchipconveniently.KeyWords:digitband-passfilter;Matlabsoftware;DSPrealization 目录1引言12数字IIR带通滤波器设计原理22.1数字IIR带通滤波器设计方法概述22.2模拟频率变换法设计IIR数字带通滤波器原理32.2.1数字带通滤波器到模拟低通滤波器的指标转换32.2.2模拟低通滤波器的设计42.2.3模拟低通滤波器到模拟带通滤波器的转换52.2.4模拟带通滤波器的数字化62.3数字频率变换法设计IIR数字带通滤波器原理92.4两种频率变换法比较103MATLAB滤波器设计结果和分析123.1Matlab软件概述123.2数字IIR带通滤波器的Matlab设计子函数分析133.3编程思路及结果分析144数字带通滤波器的DSP实现与调试184.1数字滤波器系数定义184.2数据缓冲区的DSP实现194.3编程与调试194.4实验结果与分析215结论23致谢24参考文献25附录1数字带通滤波器设计程序26附录2600HZ和7000HZ的正弦信号叠加28附录3DSP调试源程序29 1引言随着信息科学与计算技术的迅速发展,数字信号处理理论与应用得到飞跃式发展,形成了一门极为重要的学科。不仅如此,它还以不同的形式影响及渗透到其他的学科中去。不论是国民经济或者是国防建设都与之息息相关,紧密相连[1]。我们现实生活中会遇到多种多样的信号,例如广播信号、电视信号、雷达信号、通信信号、导航信号、射电天文信号、生物医学信号、控制信号、气象信号、地震勘探信号、机械振动信号、遥感遥测信号等等。上述这些信号大部分是模拟信号,也有小部分是数字信号[2]。模拟信号是自变量的连续函数,自变量可以是一维的,也可以是二维或多维的。大多数情况下一维模拟信号的自变量是时间,经过时间上的离散化(采样)和幅度上的离散化(量化),这类模拟信号便成为一维数字信号[1]。因此,数字信号实际上是用数字序列表示的信号,语音信号经采样和量化后,得到的数字信号是一个一维离散时间序列;而图像信号经采样和量化后,得到的数字信号是一个二维离散空间序列[3]。滤波技术是信号分析、处理技术的重要分支。无论是信号的获取、传输,还是信号的处理和交换都离不开滤波技术,它对信号安全可靠和有效灵活地传递是至关重要的[4]。数字信号的滤波是通过数字滤波器来实现的。数字滤波器是一种用来过滤时间离散信号的数字系统,它是通过对抽样数据进行数学处理来达到频域滤波的目的。例如,对数字信号进行滤波以限制其他的频带或滤除噪音和干扰,或将他们与其他信号进行分离;对信号进行频谱分析或功率谱分析以了解信号的频谱组成,进而对信号进行识别;对信号进行某种变换,使之更适合于传输、存储和应用;对信号进行编码以达到数据压缩的目的等等[5]。因此滤波器的优劣直接决定着产品的优劣。所以,滤波技术是极为敏感与热门的课题,对滤波器的研制也历来为各国所重视[2]。 2数字IIR带通滤波器设计原理2.1数字IIR带通滤波器设计方法概述设计数字IIR带通滤波器的方法有两种:频率变换法和零极点累试法[6]。所谓频率变换法是根据要设计的数字带通滤波器的指标,先设计出合理的模拟低通滤波器的原型,然后在模拟域内进行频率变换,转换成模拟带通滤波器,最后再转换成相应类型的数字滤波器。低通到带通的频率变换可以在模拟域进行,也可以在数字域进行,所以有模拟频率变换法和数字频率变换法两种方法[5]。所谓的零极点累试法就是按照滤波器的性能要求直接选择零点与极点的位置[3]。运用这个方法可用来设计数字带通滤波器。其零、极点安排的基本原则如下:极点靠近单位圆:输出大,衰耗小;零点靠近单位圆:输出小,衰耗大;极点的位置主要影响频响的峰值位置及尖锐程度,零点位置主要影响频响的谷点位置及形状;所有复数极点和零点分别构成各自的共轭对[2]。Re[z]Im[z]lxlx图2-1零极点分布图设IIR滤波器的传递函数可表达为且 可由其零极点唯一确定。因而,根据系统的零极点位置,即可得到系统的频率响应。如图2-1所示,设置系统的零极点,在处设置一对共轭极点,那么在处将有一峰值,且当越接近1,即极点越靠近单位圆,此峰值越高越尖锐;再在单位圆上处位置一对共轭零点,就会在处出现零点,此时的幅频特性示意图如图2-2所示:图2-2零极点对应的幅频特性根据上述零极点位置与滤波器幅频率响应的关系,可以从要求的频率响应出发,在Z平面上安排合适的零极点,并写出对应的系统函数,进而得到。如不满足要求,即与相差太大,则可移动零极点位置或增加新的零极点,使改变,经过这样的几次调整,即可使逼近。零极点累试法直接设计IIR数字带通滤波器是运用清晰的物理概念的设计方法,它是用其零点和极点的思想来设计IIR数字带通滤波器,但是采用这种设计方法设计滤波器,需要多次试验,还要借助计算机辅助设计,在实际使用中非常复杂。所以,我们在设计数字带通滤波器时便选择频率变换法。首先分析模拟频率变换法设计IIR数字带通滤波器原理[6]。2.2模拟频率变换法设计IIR数字带通滤波器原理用模拟频率变换法来设计IIR数字带通滤波器的基本步骤是[7]:n首先将数字带通滤波器的技术指标,转换成模拟低通滤波器的指标。n设计模拟低通滤波器。 n然后在模拟域中进行频率变换使其转换成模拟带通滤波器。n最后把模拟带通滤波器转换成相应数字带通滤波器[2]。下面详细介绍模拟频率变换法设计IIR数字带通滤波器的具体步骤与方法。1.1.12.2.1数字带通滤波器到模拟低通滤波器的指标转换利用模拟低通滤波器来设计数字带通滤波器时,首先是要把数字带通滤波器的技术指标转换为其相对应的模拟低通滤波器的技术指标[5]。(1)数字带通滤波器的技术指标为:通带上截止频率,通带下截止频率,阻带上截止频率,阻带下截止频率。通带内最大衰减为,阻带内最小衰减为。(2)模拟带通滤波器的技术指标为:如果采用脉冲响应响应不变法实现模拟滤波器的数字化,则边界频率的转换关系为,;如果采用双线性变换法,则边界频率的转换关系为,。,。将以上边界频率对宽带B归一化得:,,,,[6]。(3)模拟归一化低通滤波器技术指标:归一化阻带截止频率,归一化通带截止频率,通带及阻带衰减与数字带通滤波器相同。然后根据技术指标来设计模拟低通滤波器[2]。2.2.2模拟低通滤波器的设计模拟滤波器原型有许多不同的类型,例如巴特沃兹(Butterworth)、切比雪夫(Chebyshev)滤波器和椭圆滤波器等[1]。巴特沃兹滤波器的幅度响应在通带内具有最平坦的特性,在通带和阻带内幅度的特性,是单调变化的。其幅度平方函数可以表示为: 。由此可知当时,,即在处无衰减;当时,,,,所以又称为3dB截止频率;当从零增加到时,单调递减,越大,减小的越慢,即在通带内越平;当时,也是随着的增加而单调递减,但因大于1,所以这时通带内衰减速度加快,越大,衰减速度越大。阶数的大小主要影响幅度特性下降速度,它应该由技术指标确定[2]。切比雪夫滤波器在通带内的幅频响应是波动的[2],在阻带则单调变化。在同样的通带衰减中,其阶数较巴特沃兹滤波器要小。可根据需要对通带内允许的衰减量(波动范围)提出要求,如要求归一化的波动范围(0<<1),振幅平方函数为:。一般地说,在相同设计指标下,椭圆滤波器过度带最为陡峭,其阶数最低,切比雪夫滤波器则次之,巴特沃兹滤波器阶数最高。但从设计的复杂性和参数变化对滤波器特性的影响,即参数灵敏度的角度看,情况恰好相反。在数字带通滤波器的设计中,我们则采用巴特沃兹滤波器。巴特沃兹模拟低通滤波器的设计步骤如下[2]:(1)由计算,由计算,根据式求出滤波器的阶数。(2)按照求出归一化极点,得到归一化传输函数。也可以根据阶数,查表得到极点和归一化传输函数。 (3)去归一化。将代入,得到实际的滤波器传输函数。利用这个方法我们可以设计巴特沃兹模拟低通滤波器。1.1.12.2.3模拟低通滤波器到模拟带通滤波器的转换2.2.2节得到的模拟低通滤波器传递函数,截止角频率为;带通的通带中心频率为,带通滤波器的传递函数为,通带上截止频率,通带下截止频率,通带宽度。低通到带通的频率变换:,平面中的虚轴正好映射到平面的虚轴上[7],频率映射频率为,频率映射频率为和。也就是说,将低通滤波器的通带映射为带通滤波器的通带和。同样的当频率映射频率为和。低通系统函数,转换为带通滤波器的系统函数[3]。1.1.22.2.4模拟带通滤波器的数字化设计IIR数字带通滤波器最后一步就是将模拟带通滤波器数字化,可以通过双线性变换法和脉冲响应不变法两种方法实现从模拟带通滤波器到数字带通滤波器的转换[7]。1.脉冲响应不变法脉冲响应不变法的出发点是使数字滤波器的单位脉冲响应模仿模拟滤波器的脉冲响应[4],即 ,其中T为取样周期,通常模拟滤波器的传输函数表示为(一般),因此上式可以分解为部分分式形式,对两边进行拉普拉斯反变换,可得式中,为单位阶跃函数。实际就是由模拟滤波器转换成为数字滤波器,这需要建立模拟系统函数与数字系统函数之间的关系。对以间隔T进行取样,有,按脉冲响应不变准则,可得,对上式两边进行Z变换,便得数字滤波器的传输函数,有,在上式中,幂级数收敛应满足条件即,由可以看到,也可展成为部分分式形式,且有的各系数分别与部分分式系数相同;的各极点分别对应于的各极点。因此,只要将模拟滤波器的分解为部分分式之和的形式,计算出模拟滤波器的各极点,利用关系式把模拟极点转换成数字极点,得到数字滤波器的传输函数为[7]。脉冲响应不变法S平面和Z平面的映射关系[2]:即,令由上式得,故有。是数字角频率,也是复变量的幅角;是模拟角频率,也是复变量双线性变换法的虚部。由可知,当时,,即平面上的虚轴映射为 平面上的单位圆;当时,,即平面的左半平面映射到平面的单位圆外[2]。脉冲响应不变法的优缺点[2]:频率坐标变换是线性的,即,如果不考虑频率混叠现象,用这种方法设计的数字滤波器会很好的重现原模拟滤波器的频率特性。另外一个优点是数字滤波器的单位脉冲响应完全模仿模拟滤波器的单位冲激响应,时域特性逼近。缺点是会产生频率混叠现象,适合低通、带通滤波器的设计,不适合高通、带阻滤波器的设计。在不合适滤波器设计的时候可以考虑另一种模拟到数字转换的方法—双线性变换法。2.双线性变换法用冲激响应不变法把模拟滤波器的传输函数转换成数字滤波器的传输函数时,因为的映射关系不是单值对应,所以,从平面直接映射到平面时可能会产生混叠现象。针对这个问题,人们提出了双线性变换法,其基本思想就是利用数值积分将模拟滤波器变换为数字滤波器。双线性变换法[1]是使数字滤波器的频率响应模仿模拟滤波器的频率响应的一种变换方法,双线性变换法把整个S平面变换到Z平面,也使S的左半平面映射到Z平面的单位圆内。这样消除了多值变换性。双线性变换中数字频率和模拟频率之间的非线性关系限制了它的应用范围,只有当非线性失真允许时,才能采用双线性变换法。通常低通、高通、带通和带阻等滤波器等具有分段恒定的频率特性,可以采用预畸变的方法来补偿频率畸变,因此可以采用双线性变换设计方法[1]。双线性变换法是把模拟带通转换为数字带通的一种最常用的方法[2],此方法不会出现周期延拓造成的频谱混叠现象即在窄带内能近似保持原幅频特性,即使频带拖尾,也能克服频率混叠现象。它比冲激响应不变法简单且更为常用。它的关系导出如下:我们从入手,模拟滤波器的通常表示为 ,为了简化分析,令,并且分子分母除以,则有,再令,则,由此可以看出一般模拟滤波器的基本单元是积分器,设法用某种数字网络代替此单元,就可把模拟滤波器变换成相应的数字滤波器。设模拟滤波器基本单元的传输函数为,对其求拉普拉斯反变换,得出冲激响应。设有一个信号输入到该系统,则最后计算可以得到数字积分器的传输函数为,用此数字网络来代替模拟滤波器的基本单元即积分器,就可得与其基本性能相近的数字滤波器[2]。所以,对于一般的模拟滤波器来说,将其所有的基本单元—积分器,用积分器传输函数所表示的数字网络所代替,即可得到与其性能相近的数字滤波器。从积分器传递函数也可以写出与之间的关系为:,即或。对于一个给定的模拟滤波器传输函数,可得到数字滤波器的传输函数,即。S平面和Z平面的映射关系:设,并且令,则可得,, 由此可得S平面和Z平面的映射关系和模拟频率Ω和数字频率ω之间的关系如表2-1和图2-3所示。表2-1S平面和Z平面的映射关系S平面Z平面,右半平面,不稳定,单位圆外,不稳定,虚轴,临界,单位圆上,临界,左半平面,稳定,单位圆内,稳定图2-3双线性变换法的映射关系S平面平面Z平面因此模拟域频率变换法即模拟低通先经过频率变换得到模拟带通,再数字化到数字带通,而频率变换是在模拟域中进行[2]。2.3数字频率变换法设计IIR数字带通滤波器原理数字频率变换法设计原理[2]跟模拟频率变换法差不多,只是一个在数字域中进行频率变换,一个在模拟域中进行频率变换。数字频率变换法设计的具体步骤是[7]:n将数字带通滤波器的指标转换成模拟低通滤波器的指标。n设计相应的模拟低通滤波器。n利用脉冲响应不变法或双线性变换将模拟低通滤波器转换成数字低通滤波器。n在数字域将数字低通滤波器转换成数字带通滤波器。前面三个步骤与2.2节模拟频率变换法设计数字带通滤波器相同,这里就不再重复了。这一节主要讲述步骤4数字低通滤波器到数字带通滤波器的转换。 滤波器传递函数,通过数字频率变换得到另一数字滤波器传递函数,此转移函数即为我们所希望的传递函数,即,由的关系可以看出,数字频率变换实际上就是从Z平面到Z平面的映射[3],设和分别为Z平面与Z平面的数字频率变量。这一映射必须满足的条件:单位圆变换到单位圆。即,此式表明,Z平面与Z平面角频率存在一定的关系,另外由上式得,也即变换函数在单位圆上的幅度必须恒等于1,这种函数称为全通函数;如果传递函数是稳定的并且具有最小相位,那么要求也是稳定的,并且也具有最小相位;由于IIR滤波器的传递函数是有理函数,因而经过变换后的也必然是有理函数,即应是有理函数[2]。低通到带通的变换要求由于在0-范围内形成两个通带,也就是变换函数需要映射其单位圆本身两次,因而频率变换函数中的N=2,同时带通变换可看成为低通变换与高通变换的组合。低通到带通变换把带通的中心频率全通函数取负号由以上分析得变换关系:或2.4两种频率变换法比较模拟频率变换法和数字频率变换法的原理如图2-4和2-5所示模拟归一化原型数字低通数字带通模拟归一化原型模拟带通数字带通 图2-4模拟频率变换法框图图2-5数字频率变换法框图由图2-4和2-5我们可以知道:采用模拟频率变换法来设计IIR数字滤波器和采用数字频率变换法来设计IIR数字滤波器,这两种方法各有相似。第一种方法是设计出模拟低通滤波器后,用模拟域的频率变换将它转换成所需类型的模拟滤波器,在模拟域实现低通滤波器到其带通滤波器的转换,再将其从S平面转换Z平面,得到数字带通滤波器。第二种方法是设计出模拟低通滤波器后,首先将其从S平面转换Z平面,得到数字滤波器,然后用数字域的频率变换将它变换成数字带通滤波器。从之前的介绍中可看出,模拟频率变换法在模拟域内把低通转换成带通滤波器已经有比较成熟的公式了,而在数字域中的转换却没有这么成熟。同时在Matlab设计中Matlab为我们提供了丰富的设计子函数。另一方面从S平面转换到Z平面可用冲激响应不变法或双线性变换法,由于冲激响应不变法可能会产生频谱混叠,不适合于高通和带阻滤波器的设计,因此模拟频率变换法有相对的限制,但数字频率变换法则无此限制。3Matlab滤波器设计结果和分析3.1Matlab软件概述Matlab具有强大的运算功能,基于Matlab信号处理工具箱[8](Signal ProcessingToolbox)的数字滤波器设计法可以快速有效的设计由软件组成的常规数字滤波器,设计方便、快捷,极大的减轻了工作量。在设计过程中可以对比滤波器特性,随时更改参数,以达到滤波器设计的最优化[8]。Matlab语法规则简单,语言思维特点更符合人们在实际应用中的习惯;先进的技术界面支持:Matlab提供给用户的是一种最简洁、最直观的程序开发环境;开放式的体系结构:Matlab除了内部函数外,所有的Matlab主包文件和个工具包文件都是对用户开放的源文件,用户可以通过修改源文件来构成新的适合自己使用的专用工具包[9]。Matlab中的核心是一个基于矩阵运算的快速解释程序,它以交互式操作接收用户输入的各项指令,输出计算结果。它提供了一个开放式的集成环境,用户可以运行系统所提供的各种命令,来实现自己所要达到的目标操作。具体的说来,Matlab的主要功能有:强大的数值运算功能;数据可视化功能;动态系统仿真;数据处理;数学计算;数字信号处理及与外部应用程序进行动态链接等。Matlab在数字运算上有其独到之处,不仅如此,它还提供了非常丰富的图形图象处理功能,对数值计算的结果进行图形化的处理,进一步方便了用户的操作,深化了用户的数值处理。更重要的是,Matlab提供了图形用户界面设计功能,用户可以自行设计别具风格的人机交互界面[9]。此外,Matlab提供了与C语言或FORTRAN语言的交互操作,使用户能通过程序接口很方便地进行程序间的调用和转换。Matlab有着功能强大、丰富的函数工具箱,这是整个Matlab语言得意如此快速发展的重要因数之一[9]。Matlab软件以矩阵运算为基础,把计算、可视化、程序设计有机的融合到了一个简单易学的交互式工作环境中,其出色的数值技术能力和强大图形处理功能得到了广大科研人员和工程技术人员的垂青。Matlab拥有功能全面的函数库,把不大量的函数封装起来,让用户脱离了繁琐复杂程序设计过程,只需要将精力集中到模型建立的工作上,大大提高了工作效率。Matlab系统由Matlab内核和其辅助工具箱组成。Matlab内核是由大量的内部函数及用户自定义的函数构成。通过对这些函数的调用,可以简便处理具体的技术问题。利用Matlab可以实现科学计算、符号运算、算法研究、数学建模和仿真、数据分析和可视化、科学工程绘图及其图形用户界面设计等强大功能[10]。 3.2数字IIR带通滤波器的Matlab设计子函数分析Matlab中提供了丰富的设计函数,下面我们从模拟滤波器设计和数字滤波器设计两方面对数字信号处理工具箱中的相关主要子函数做详细的介绍[11]:1.buttap函数调用方式[z,p,k]=buttap(n),buttap函数用来设计以零点、极点和增益表示的归一化的n阶的巴特沃斯模拟低通滤波器,n为滤波器的阶数。此方法设计出的滤波器在左半平面的单位圆上有n个极点,而不存在零点。2.buttord函数调用方式[n,wn]=buttord(wp,ws,rp,rs)。buttord函数用来计算符合参数要求的数字巴特沃斯滤波器的最小阶数,还可以计算巴特沃斯滤波器的截止频率wn(即3dB截止频率)。参数wp,ws,rp,rs分别是通带和阻带的截止频率以及最大衰减量和最小衰减量。其中wp,ws都是归一化频率。[n,wn]=buttord(wp,ws,rp,rs,’s’):返回符合要求性能指标的模拟滤波器的最小阶数n和巴特沃斯滤波器的截止频率wn(即3dB频率)。这里的wp和ws的单位是rad/s,当rp=3dB时,则有wn=wp。3.lp2bp函数调用方式[numt,dent]=lp2bp(num,den,wo,bw)。将用传递函数表示的归一化的模拟低通滤波器变换为中心频率为wo、带宽为bw的模拟带通滤波器。[at,bt,ct,dt]=lp2bp(a,b,c,d,wo,bw),将用状态方程表示的归一化的模拟低通滤波器变换为中心频率为wo、带宽为bw的模拟带通滤波器。4.impinvar函数调用方式[bz,az]=impinvar(b,a,fs)。采用脉冲响应不变法将模拟滤波器变换成数字滤波器,滤波器用传递函数表示,b表示模拟滤波器传递函数分子向量系数,a表示模拟滤波器传递函数分母向量系数,bz表示数字滤波器传递函数分子向量系数,az表示数字滤波器传递函数分母向量系数,输入参数fs是对模拟滤波器频率响应的采样,其默认值为1[8]。5.bilinear函数调用方式 [zd,pd,kd]=bilinear(z,p,k,fs)。采用双线性变换法将采用零极点模型表达的模拟滤波器转换为数字滤波器。输入参数是模拟滤波器的零点z、极点p和采样频率fs,其单位为Hz.。输出参数为相应的数字滤波器零点向量zd,极点向量pd和系统增益kd。[numd,dend]=bilinear(num,den,fs):采用双线性变换法将采用传递函数模型表达的模拟滤波器转换为数字滤波器,返回数字滤波器的分子、分母系数向量。[ad,bd,cd,dd]=bilinear(a,b,c,d,fs):采用双线性变换法将采用状态空间模型表达的模拟滤波器转换为数字滤波器。6.butter函数Matlab信号处理工具箱还提供了可用于直接设计数字带通滤波器的butter函数。这种方法把数字滤波器设计过程中所有复杂的步骤合为一个整体,为设计滤波器提供了很大的方便。调用方式[b,a]=butter(n,wn)。返回新设计的截止频率为wn(wn必须为整数)的n阶巴特沃斯滤波器的分子系数向量b和分母系数向量(按照降幂排列)[8]。3.3编程思路及结果分析Matlab工具箱为滤波器的设计应用提供了丰富而简便的方法,使原来非常繁琐复杂的程序设计变成简单的函数调用[10]。一般设计数字IIR带通滤波器时会用到6个指标,为通带上、下截止频率和阻带上、下限截止频率,通带最大衰减和阻带最小衰减。转换好这些指标是完成一个滤波器的关键。下面我们利用Matlab仿真软件对根据模拟滤波器设计数字带通滤波器和利用Matlab直接设计带通滤波器两种设计方法分别进行了大量的研究和仿真工作[10]。1.根据模拟滤波器设计数字带通滤波器模拟滤波器的数字化设计有双线性变换法和冲激响应不变法两种方法,在此设计带通滤波器中,由于冲激响应不变法响应容易产生频率混叠现象,所以选用双线性变换法。在用此方法设计前需要注意两个问题:首先要确定所要设计的数字滤波器的工程指标和采样频率。然后将工程指标转换成Matlab子函数所需要的数字滤波器的技术指标[11]。处理好前面的问题后,编程过程中第一步是按照任务书的要求确定数字带通滤波器的指标,基本要求是数字滤波器的采样频率fs=48kHz,品质因数Q=3.5,带通滤波器中心频率f0的范围20Hz〈f0<10kHz, 。取=7kHz,由计算得B=2kHz,=6kHz,=8kHz。,;计算满足技术指标的滤波器的最小阶数N,第二步设计满足技术指标的巴特沃兹模拟滤波器。最后一步是把设计出的模拟滤波器用双线性变换法转化为数字滤波器。具体设计流程图如图3-1所示,具体程序见附录1,仿真结果如图3-2所示。脉冲响应不变法转换成数字带通滤波器转换成模拟带通滤波器观察分析仿真结果输入数字滤波器的指标f0、Q及衰减特性转换为工程指标计算归一化模化带通滤波器的指标设计归一化模拟低通滤波器去归一化结束开始图3-1Matlab设计流程图编程思路: (1)计算满足技术指标的滤波器的最小阶数。在Matlab里有两种实现方法。第一种是按照模拟滤波器设计理论中的计算公式编程实现,计算公式如下:由计算,由计算,根据式求出滤波器的阶数。也可直接调用Matlab中的buttord子函数实现,两种方法得到的最小阶数N是相同的。(2)设计满足技术指标的巴特沃兹模拟滤波器。知道滤波器阶数N,按照buttap(N)格式直接调用,就可得到零、极点表示的巴特沃兹模拟低通滤波器。(3)用脉冲响应不变法实现模拟到数字滤波器转换,Matlab工具箱提供了相应的impinvar子函数[11]。2.利用Matlab工具箱函数直接设计带通滤波器[10]通过上面的介绍,可以知道利用模拟滤波器来设计数字带通滤波器的步骤如下:(1)把给出的数字滤波器的性能指标转换为模拟低通的性能指标。(2)根据转换后的性能指标,通过滤波器的阶数来选择函数,来确定滤波器的最小阶数N。(3)由最小阶数N得到低通滤波器的原型。(4)把模拟低通滤波器原型转换为模拟带通滤波器。(5)运用冲激响应不变法或双线性变换法把模拟滤波器转换为数字带通滤波器。以上这些滤波器的设计过程称为典型滤波器的设计方法。除了根据模拟滤波器设计数字带通滤波器这种方法外,我们也可以利用Matlab直接设计带通滤波器。Matlab信号处理工具箱提供了用于直接设计IIR数字滤波器的函数。这个函数把上面的这些复杂步骤融合为一个整体,为设计滤波器带来了极大的方便。这个函数与数字滤波器的阶数选择函数配合使用。我们这里选择采样频率为48KHz,衰减特性为24dB/oct和品质因数Q=3.5时的不同指标的带通滤波器进行仿真分析,仿真结果如图3-2所示。 图3-2不同指标带通滤波器的仿真结果图3-2给出了三组不同指标的数字带通滤波器的仿真结果。图中的每组图形中的曲线表示带通滤波器的幅频特性。最左边的曲线是中心频率f0=400Hz的数字带通滤波器的幅频特性曲线,中间的曲线是f0=2000Hz的数字带通滤波器的幅频特性曲线,第三条曲线中取f0=7000Hz的数字带通滤波器的幅频特性曲线,图中每组曲线中的虚线是根据模拟滤波器法设计的数字带通滤波器,实线是利用Matlab工具箱函数直接法设计的数字带通滤波器,实线和虚线基本重合,也就是说两种方法都可以简单、正确的完成数字带通滤波器的设计。 4数字带通滤波器的DSP实现与调试4.1数字滤波器系数定义设直接型IIR滤波器系统传递函数为,直接型IIR滤波器的结构如图4-1所示[12]。+++++++4-1直接型IIR滤波器的结构DSP实现滤波算法时,首先要定义滤波器的前向系数B和后向系数A。一般情况下,这些滤波器的系数都为实数,系数值可能为整数,也可能为小数,其绝对值可能大于1,也可能小于1。在定点DSP实现时,如何实现系数的定义是首先需要解决的问题。TMS320VC5402DSP的数据采用Qn定点数的格式,n表示小数位数,,所以n越大,能够表示的数据精度越高,但数据范围越小;反之n越小,能够表示的数据精度越低,但数据范围越大。这里选用Q15数据格式,数据范围为[-1,1)。因此,在定义数据前,必须把Matlab设计得到的系数对最大值做归一化处理,使所有的系数都在Q15数据格式的数值范围内。十进制小数转换为Q15格式的数据方法是十进制小数乘以的值加上取整转换成十六进制数取低四位即可[13]。数字带通滤波器的指标为,品质因数, ,采样频率48000时,Matlab设计得到滤波器的系数为=[0.0000,0.0413,-0.0868,0.0426],=[1.0000,-2.2397,2.8958,-1.8570,0.6906],对最大值归一化后得到=[0,0.0143,-0.0300,0.0147],=[0.3453,-0.7734,1.0000,-0.6413,0.2385],转换得到Q15格式的系数=[0000H,01D3H,FC29H,01E2H],=[D3CCH,62FFH,8000H,5215H,E179H]。4.2数据缓冲区的DSP实现直接型数字滤波器的输出可以用差分方程表示为:。因此在DSP实现时,需要开辟4个缓冲区用来用来存放数据和滤波器系数。滤波器系数缓冲区中的内容始终不变,数据缓冲区的内容要实时更新的,采用循环缓冲区法来实现数据缓冲[14]。在编程时,将变量和系数都存放在DARAM中,并采用循环缓冲区方式寻址,开辟4个循环缓冲区。这四个循环缓冲区结构如图4-2:4-24个循环缓冲区的结构4.3编程与调试CCS是TI开发的一个完整的DSP集成开发环境。也是目前使用最广泛的DSP开发软件之一。在CCS项目窗口中显示的项目文件如图4-3所示,一个最小DSP应用程序项目至少包含以下2个文件:①源程序(.asm文件)。源程序可以只有1个文件,也可以有多个文件,是用户自己编写的。②连接命令文件(.cmd文件),这个文件包含了DSP和目标板的存储空间定义,以及代码段数据段如何分配到这些存储空间中的,由用户自己编辑产生的[13]。 4-3CCS工程窗口中显示的项目文件本设计中需要两个源文件,一个是用来实现数字滤波的iir2.asm源文件,另一个是用来预存输入采样数据的input.asm源文件,以便观察所设计的滤波器是否正确。如果输入冲激序列,则滤波器输出信号即为其冲激响应,利用CCS自带的图形工具观察输出信号的频谱,便可判断所设计的数字滤波器是否正确。如果输入信号包含滤波器带外和带内频率的正弦信号,观察滤波器输出信号是否滤除带外信号,也可以初步判断滤波器设计是否正确。因此,input.asm源文件包含冲激序列和混合频率正弦信号两部分。混合频率正弦信号利用Matlab软件生成,具体程序见附录2。DSP实现IIR滤波器的流程图如图4-4所示,具体程序见附录3。 NY定义滤波器系数定义数据结构Frct=1定义循环缓冲区首地址接收数据计算反向通路计算前向通路保存结果结束开始滤波结构图4-4基于DSP的IIR滤波器的设计流程图根据差分方程,基于DSP的数字IIR滤波器采用循环缓冲区法设计,在编程当中最容易出现问题的是循环缓冲区的地址无法对应我们想要的正确地址。因此在调试时,必须观察寄存器地址的变化,如4-5所示,如果实线箭头表示为初始状态下第一次的指针指向的地址,那么在第一次运算后地址指针停留虚线箭头的位置,那么循环寻址是正确的[15]。 4-5第一次滤波运算后地址指针位置循环寻址调试完后,再观察数字滤波器的频谱曲线是否满足设计要求,如果观察结果不正确,修改程序,直至正确。4.4实验结果与分析实验时,利用Matlab软件生成输入冲激信号和混合频率正弦信号,输入信号经过IIR滤波后的输出信号保存在缓冲区out中,利用CCS自带的图形工具观察输入输出信号。当输入冲激信号时,如图4-6所示设置CCS图形对话框,得到如图4-7所示的输入信号和输出信号波形;如图4-8所示设置CCS图形对话框,得到如图4-9所示的输出信号的频谱图。在图4-9中,横坐标表示归一化的数字频率,0.5位置对应fs/2频率,由此可看出带通滤波器的中心频率约为0.148*fs=7000Hz,与给定滤波器的指标一致,表明DSP实现了所要求的数字带通滤波器。图4-6图形窗口设置图4-7输入输出信号波形 图4-8图形窗口设置图4-9输出信号频谱当输入600Hz和7000Hz混合频率的正弦信号时,如图4-6所示设置CCS图形对话框,得到如图4-10所示的输入信号和输出信号波形;如图4-8所示设置CCS图形对话框,得到如图4-11的输入信号频谱和图4-12所示的输出信号的频谱图,由图4-12可知,数字滤波器滤除了输入信号中频率为600Hz的正弦信号。图4-10输入输出信号波形图4-11输入信号频谱图4-12输出信号频谱 5结论数字带通滤波器是去除信号噪声的基本手段,在信号处理等领域中都起着非常重要的作用。本论文所研究的中心频率可调数字带通滤波器这个课题也是数字信号处理中的一个基本内容。完成这一课题,主要鉴于理论的学习及其大量的仿真工作。首先,查阅了大量的相关滤波器设计及其如何设计数字带通滤波器方面的书籍,对如何设计数字带通滤波器有了详细的了解:设计数字带通滤波器方法有很多种,例如可以根据指标先设计一个模拟滤波器,再把它数字化,最后转换为数字带通滤波器。或者是直接用Matlab软件中的函数来直接进行仿真,也可以运用零极点累试法来设计等等。知道用这些方法可以设计数字带通滤波器的基础上,便开始进行数字带通滤波器的仿真工作。仿真工作前,先熟悉对Matlab软件的操作及其书上的一些有关设计数字带通滤波器需要用到的子函数。在仿真过程中,根据任务书要求衰减特性为24dB/oct,采样频率为48kHz,中心频率在20Hz-10kHz范围内可调选取三组不同中心频率的带通滤波器进行仿真。经过仿真发现:借助Matlab软件信号处理工具箱中有关滤波器设计子函数,可以方便、快速、准确得设计出满足指标要求的数字带通滤波器。最后,将运用Matlab软件设计得到的数字带通滤波器,在CCS开发环境下,编写基于TMS320VC5402DSP的程序实现,仿真结果表明,利用DSP芯片,可以方便地实现的数字滤波器。完成整个论文的过程,大概用了几个月的时间,在老师的精心指导和自己的努力下,顺利完成毕业设计的工作。在设计过程中,由于经验的缺乏,遇到了很多困难和问题,但最终都能顺利的解决。 参考文献[1]俞一彪,孙兵.数字信号处理—理论与应用[M].南京:东南大学出版社,2005,8.[2]丁玉美,高西全.数字信号处理[M].第三版.西安:西安电子科技大学出版社,2008,6.[3]王超,安建伟.数字信号处理[M].北京:国防工业出版社,2010,4.[4]CharlesSchuler,MaheshChugani.DigitalSignalProcessing[M].N.Y.:McGraw-HillCompanies,Inc.,2005,8.[5]理想带通滤波器的设计与分析计算[J].株洲工学院学报,1999,13(04):53-55.[6]万旺根,余小清.一种数字式带通滤波器的级联设计法[J].应用科学学报,1998,16(02):133~139.[7]赵伟刚.模拟滤波器的数字化[J].微型电脑应用报,2001,17(12):46-47.[8]丛玉良,王宏志.数字信号处理原理及其MATLAB实现[M].北京:电子工业出版社,2009,7.[9]刘波.MATLAB信号处理[M].北京:电子工业出版社,2006,7.[10]陈怀琛.数字信号处理教程MATLAB释义与实现[M].北京:电子工业出版社,2008,10.[11]张晨燕,申维新.利用MATLAB函数设计IIR数字滤波器[J],中国民航飞行学院学报,2006,1:24-28.[12]张雄伟,陈亮,徐光辉.DSP芯片的原理与开发应用[M].北京:电子工业出版社,2003,10.[13]石青春,陈侠,杨琳.窄带滤波器的设计与DSP实现[J].电子器件,2009,8,32(4):774-777.[14]范寿康,尹磊,曲丽荣等.DSP技术与DSP芯片[M].北京:电子工业出版社,2007,4. [15]清源科技.TM320C54xDSP应用程序设计教程[M].北京:机械工业出版社,2004,1. 附录1数字带通滤波器设计程序%给出两种方法的仿真结果:1、根据模拟滤波器(脉冲响应不变法或双线性变换法)换设计数字带通滤波器。2、利用Matlab工具箱函数直接设计带通滤波器%fl:上限截止频率;fu下限截止频率functionyn=s1(fl,fu,attenu);%滤波器参数attenu=24;fl=1000;fu=10000;ap=3;as=ap+attenu;fs=48000;%**************根据模拟频率变换(脉冲响应不变法)法设计数字滤波器*********%*****************模拟滤波器设计**********************%归一化数字频率wwup=2*fu/fs;wus=2*wup;wlp=2*fl/fs;wls=wlp/2;%模拟带通滤波器的技术指标,西电数字信号处理P184例6.5.2%脉冲响应不变法,边界频率不需转换了w0=sqrt(wup*wlp);B=wup-wlp;%以上边界频率对带宽B归一化Kup=wup/B;Klp=wlp/B;Kus=wus/B;Kls=wls/B;K0=sqrt(Kup*Klp);%模拟归一化低通滤波器指标Ys1=(Kus^2-K0^2)/Kus;%归一化阻带截止频率Ys2=(Kls^2-K0^2)/Kls;Ys=min(Ys1,-Ys2);Yp=1;ap=3;as=ap+attenu; %根据参数计算模拟滤波器的最小阶数Np=sqrt(10^(ap/10)-1);Ns=sqrt(10^(as/10)-1);n=fix(log10(Ns/Np)/log10(Ys/Yp))+1%也可调用子函数直接计算滤波器的最小阶数%设计模拟滤波器传递函数分子系数bt和分母系数at[z,p,k]=buttap(n);[b,a]=zp2tf(z,p,k);%零、极点型转换到传递型[bt,at]=lp2bp(b,a,w0*fs*pi,B*fs*pi);%频率转换%模拟滤波器的频率响应[H,SW2]=freqs(bt,at);SHH2=20*log10(abs(H));%*****************模拟到数字的转换*******************************%***********脉冲响应不变法****************[botterlpfb1,botterlpfa1]=impinvar(bt,at,fs);%%数字带通滤波器频率响应[LH,W]=freqz(botterlpfb1,botterlpfa1,fs/2,fs);%双线性结果——点红色LHH=20*log10(abs(LH));figure(1),holdon,plot(W,LHH,'--r'),gridon,%2*****************直接设计数字带通滤波器**********************************wn=[wlp,wup];[botterlpfb3,botterlpfa3]=butter(n,wn);%wup即3dB的截止频率%频率响应[H1,W1]=freqz(botterlpfb3,botterlpfa3,fs/2,fs);HH1=20*log10(abs(H1));figure(1),plot(W1,HH1)%直接设计结果——实蓝色holdoffylim([-60,0])xlabel('频率/Hz')ylabel('幅值/dB') endyn=HH1;temp=max([botterlpfb1,botterlpfa1]);botterlpfb1=botterlpfb1/temp;botterlpfa1=botterlpfa1/temp;dec2hex(fix(botterlpfb1*2^15+2^16))dec2hex(fix(-botterlpfa1*2^15+2^16))botterlpfb1=[0.00000.0143-0.03000.0147];botterlpfa1=[0.3453-0.77341.0000-0.64130.2385];xn=[0.125,zeros(1,109)];yn=filter(botterlpfb1,botterlpfa1,xn);figure(3),plot(yn) 附录2600Hz和7000Hz的正弦信号叠加f1=600;f2=7000;fs=48000;n=1:110;y=0.5*sin(2*pi*f1/fs*n)+0.5*sin(2*pi*f2/fs*n);figure(2),plot(y)hex='';fori=1:110pp=dec2hex(fix(y(i)*2^15+2^16));iflength(pp)==5hex=[hex,'0x',pp(2:5),','];elsehex=[hex,'0x',pp,','];endend 附录3DSP调试源程序1源程序文件:;filename"iir2.asm";带通滤波器,中心频率为7000Hz,matlab设计出系数,采样频率48kHz.mmregs.refinput1.defstart1X.usect"X",4;自定义输入数据XY.usect"Y",5B.usect"B",4A.usect"A",5.datatable.word0x01E2,0xFC29,0x01D3,0x0,0xE179,0x5215,0x8000,0x62FF;B3,B2,B1,B0,-A4,-A3,-A2,-A1;0D3CC;A0.bssout,110;滤波后的数据.textstart1:SSBXFRCTSTM#X,AR1RPTZA,#3STLA,*AR1+STM#Y,AR1RPT#4STLA,*AR1+;系数搬移STM#B,AR1 RPT#3MVPDtable,*AR1+STM#A,AR1RPT#3MVPDtable+4,*AR1+STM#input1,AR6STM#out,AR7STM#X+3,AR2;循环缓冲区起始地址STM#A+3,AR3STM#Y+3,AR4STM#B+3,AR5STM#-1,AR0STM#109,BRCRPTBnext-1IIR:LD*AR6+,ANOPSTLA,*AR2;仿真接收数据STM#4,BKNOPLD#0,AMAC*AR2+0%,*AR5+0%,A;计算前向通道MAC*AR2+0%,*AR5+0%,AMAC*AR2+0%,*AR5+0%,AMAC*AR2,*AR5+0%,ANOPNOPNOPSTM#5,BKNOPNOPRPTZB,#3MAC*AR4+0%,*AR3+0%,BMAR*AR3+0%ADDB,ANOP;修改A0系数非1输出y的值;A0=0.3453;1/A0=2.8960=2+0.8960 LDA,1,BSTM#0x72B0,T;0.8960MPYAAADDB,ANOPNOPSTHA,*AR4NOPSTHA,*AR7+;仿真输出nextNOPstop:Bstop.end2命令文件/*FileName:exp01.asm*/-miir.map-oiir.out-estart1/*给仿真器制定程序入口地址*/MEMORY{PAGE0:PRAM(RIX):origin=080h,length=01fffh/*externalProgramRAM*/PAGE1:DMARAM:origin=02080h,length=0800h/*InternaldataRAM*/}/*****************************************************************************//*DSPMemoryAllocation*//*****************************************************************************/SECTIONS{.text>PRAMPAGE0.data>PRAMPAGE0input1>DMARAMPAGE1.bss>DMARAMPAGE1Xalign(8)>DMARAMPAGE1Yalign(8)>DMARAMPAGE1Balign(8)>DMARAMPAGE1 Aalign(8)>DMARAMPAGE1}3输入程序.definput1.sect"input1"input1;冲击序列,110个数据;.word0x1000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0;.word0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0;.word0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0;.word0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0;.word0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0;.word0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0;600Hz和7000Hz的正弦信号叠加,110个数据,48kHz采样.word0x37CB,0x47D4,0x276E,0xF3C6,0xD90A,0xEFCC,0x29CB,0x5D0B,0x64B1,0x2000.word0x3DD1,0x09B4,0xF3C6,0x0F9B,0x4996,0x7641,0x744B,0x4695,0x11F5,0x0059.word0x2000,0x584B,0x7D08,0x7101,0x3CDE,0x085A,0xFB34,0x1E13,0x53C6,0x701E.word0x5A82,0x2136,0xEE31,0xE64F,0x0C7D,0x3F73,0x53C6,0x35E6,0xF972,0xC9E4.word0xC893,0xF29F,0x233E,0x3083,0x0C39,0xCF04,0xA520,0xABC9,0xDA61,0x0935.word0x1090,0xE7D3,0xAC39,0x89FA,0x99B8,0xCD39,0xFA8E,0xFCE5,0xD15A,0x993C.word0x8000,0x993C,0xD15A,0xFCE5,0xFA8E,0xCD39,0x99B8,0x89FA,0xAC39,0xE7D3.word0x1090,0x0935,0xDA61,0xABC9,0xA520,0xCF04,0x0C39,0x3083,0x233E,0xF29F.word0xC893,0xC9E4,0xF972,0x35E6,0x53C6,0x3F73,0x0C7D,0xE64F,0xEE31,0x2136.word0x5A82,0x701E,0x53C6,0x1E13,0xFB34,0x085A,0x3CDE,0x7101,0x7D08,0x584B.word0x0059,0x11F5,0x4695,0x744B,0x7641,0x4996,0x0F9B,0xF3C6,0x09B4,0x3DD1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭