基于SIMULINK的数字滤波器IP核设计【开题报告+文献综述+毕业论文】

基于SIMULINK的数字滤波器IP核设计【开题报告+文献综述+毕业论文】

ID:463649

大小:1.98 MB

页数:40页

时间:2017-08-05

上传者:U-944
基于SIMULINK的数字滤波器IP核设计【开题报告+文献综述+毕业论文】_第1页
基于SIMULINK的数字滤波器IP核设计【开题报告+文献综述+毕业论文】_第2页
基于SIMULINK的数字滤波器IP核设计【开题报告+文献综述+毕业论文】_第3页
基于SIMULINK的数字滤波器IP核设计【开题报告+文献综述+毕业论文】_第4页
基于SIMULINK的数字滤波器IP核设计【开题报告+文献综述+毕业论文】_第5页
资源描述:

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

40本科毕业论文系列开题报告电子信息工程基于SIMULINK的数字滤波器IP核设计一、课题研究意义及现状随着数字信息与技术的发展,数字信号处理已经成为数字处理领域中的重要环节。而在数字信号处理中,滤波器占有极其重要的地位,数字滤波器有非常广泛的用途,例如语音和图像处理,HDTV,模式识别,频谱分析等。IP核是具有知识产权(IntellectualProperty)的集成电路芯核的简称,其作用是把一组拥有知识产权的电路设计集合在一起,构成芯片的基本单位,以供设计时搭积木之用。目前,高速FIR滤波器的实现方法,通常采用设计优化好的FIR滤波器的IP核,用户使用这种IP核,根据实际需要进行简单的开发即可。当今数字滤波器的设计方法有许多种:程序法主要是通过编写程序代码,进行数字滤波器是设计,此法具有功能强大,使用灵活的优点,但是由于编程语言学习存在一定的难度,所以不适合与大多数的初学者;FDATool工具法主要使用MATLAB自带的数字滤波器开发工具FDATool对数字滤波器进行开发,FDATool工具能实现大多数的FIR滤波器和IIR滤波器的开发,是要输入滤波器的各个参数就能自动生成,所以简便易学,适合大众;SPTool工具法主要是使用SPTool工具对数字滤波器进行设计,其也是一款面向大多数初学者使用的工具,但是功能没有FDATool强大;窗函数法设计滤波器,其主要是调用MATLAB中的各个窗函数,例如矩形窗,汉宁窗,三角窗等,需要熟悉的了解各个窗函数的数学意义,不适合初学者。本次设计主要是利用MATLAB/Simulink设计数字滤波器IP核,通过使用MATLAB中的FDATool工具对滤波器进行设计,在DSPBuilder平台上建立实现模型,最后生成IP核。二、课题研究的主要内容和预期目标 40主要内容设计一个基于MATLAB/Simulink数字滤波器IP核,通过使用MATLAB中的FDATool工具对滤波器进行设计,在DSPBuilder平台上建立实现模型,最后生成IP核。预期目标1、实现整个系统的设计;2、实现基于DSPBulider的数字滤波器的仿真验证;3、实现基于QUARTUSII的数字滤波器IP核的转换;4、完成论文的撰写。三、课题研究的方法及措施图1k阶滤波器模型图1所示为典型的FIR滤波器实现结构,由于高阶滤波器阶数比较多,通过设计8阶FIR滤波器并将其作为子模块,从而构造成高阶的FIR滤波器。首先第一步是在MATLAB/Simulink下的DSPBuilder中进行模块化设计。调用DSPBuiler和其他Simulink库中的相关模块,构建系统,建立FIR滤波器模型,进行仿真,由示波器观察仿真结果。将正确的模块进行编译、综合和转换,生成QUARTUSII下的源文件,在QUARTUSII中进行开发。并由ALTERA公司的网站下载相关软件工具,生成16阶低通FIR滤波器的IP核,完成设计。四、课题研究进度计划毕业设计期限:自2010年10月20至2010年4月20日。第1周—第2周:分析任务,查阅相关文献资料,分析课题的关键技术。第3周—第4周:熟悉MATLAB、DSP  40BUILDER和QUARTUSII集成环境。设计系统总体方案,完成开题报告、文献综述、外文翻译。第5周—第6周:系统总体方案设计,软件程序设计。第7周—第8周:撰写设计论文。第9周—第10周:系统调试并完善。第11周—第12周:完善设计作品,完成论文修改。五、参考文献教师指定:[1]胡广书.数字信号处理——理论、算法与实现[M].北京:清华大学出版社,2003,8.[2]郭海丽,王紫婷.基于MATLAB/Simulink的FIR数字滤波器设计与实现[J].电子应用,2008,6,27(1):73~75.[3]褚振勇,翁木云.FPGA设计及应用[M].西安:西安电子科技大学出版社,2002,7.[4]潘松,黄继业.SOPC技术实用教程[M].北京:清华大学出版社,2005.[5]丁美玉,高西全.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008,8.自己选择:[6]李祖贺,陈庆南.基于MATLAB-FDATool的数字滤波器FPGA实现[J].河南科技,2010,5,9(5):54~55.[7]张明,孟庆民.数字滤波器设计与MATLAB实现[J].周口师范学院学报,2007,6,29(3):27~30.[8]楼顺天,李博菡.基于MATLAB的系统分析与设计[M].西安:西安电子科技大学出版社,2001,5.[9]张葛祥,李娜.MATLAB仿真技术与应用[M].北京:清华大学出版社.2003,6.[10]KanmenEW,HeckBS.FundamentalsofSignals&SystemsUsingthewebandMATLAB[M].NewYork:Prentice-HallPublishingcompany,2005,7.[11]Mitra.DigitalSignalProcessing:AComputer-Based 40Approach[M].London:McGRAW-HillPublishingcompay,1997,5.[12]李茂,任学恒等.基于MATLAB/Simulink的数字滤波器设计与仿真[J].磁性材料及器件,2007,2,01(5):59~61. 40毕业论文文献综述电子信息工程数字滤波器设计方案综述摘要:文章首先简单介绍数字滤波器的应用背景和分类,然后对基于matlab的数字滤波器设计进行阐述,并介绍了现在数字滤波器设计的3中方法:程序设计法;FDAtool设计法;SPtool设计法。在文中介绍了各种方法,并且其比较优劣。关键字:FIR数字滤波器;matlab;FDAtool;SPtool;程序1.引言随着数字信息与技术的发展,数字信号处理已经成为数字处理领域中的重要环节。而在数字信号处理中,滤波器占有极其重要的地位,数字滤波器有非常广泛的用途,例如语音和图像处理,HDTV,模式识别,频谱分析等。数字滤波器实际上是一个采用有限精度算法实现的线性非时变离散系统[1]。根据其冲击脉冲响应函数的时域特性可分为两类[2]:无限冲击响应IIR滤波器和有限冲击响应FIR滤波器。FIR滤波器与IIR滤波器相比有更好的稳定性,精度更高而且FIR滤波器满足幅频响应要求,能得到严格的线性相位特性,所以在许多领域中被使用。2FIR滤波器的原理和设计方案2.1FIR滤波器原理对于一个FIR滤波器系统,冲击响应总是有限长的,其系统函数为[3]:(式2-1)FIR滤波器的输出方程可用差分方程表示为:(式2-2)其中,为输入信号采样序列;表示输出序列;是滤波器的系数;k是滤波器的阶数。根据方程(2-2)可以知:数字滤波器设计的主要任务就是找寻一个函数,使该函数在频率域得到所希望的频率指标,图1列出了K阶的FIR滤波器框图。 40图1FIR滤波器的结构示意图2.2滤波器设计方法FIR滤波器的设计方法有许多种,如程序法,窗函数法,频率采样法等等,在以下要介绍3种比较常用的设计方法:程序法,FDATool法和SPTool法。2.2.1程序法设计在滤波器传统设计中,要得到其幅频和相频响应特性,需要根据这些方法进行大量的计算,着使得滤波器的设计慢,周期变长,不利于设计的优化。MATLAB信号处理箱中提供了基于滤波器设计的工具函数[4],以下图表1中给出了MATLAB自带的函数[5]:下面将以remez函数为例,设计滤波器。程序如下:Fs=8000;%采样频率f=[12001600];a=[10];dev=[0.010.1];[n,fo,ao,w]=temezord(f,a,dev,Fs);%估计滤波器是参数b=remez(n,fo,ao,w);%用remez函数设计滤波器freqz(b,1,1024,Fs);%滤波器的频率响应,如图2t=(0:100)/Fs;x=sin(2*pi*t*1000)+sin(2*pi*t*2000);%设置输入信号xx1=filter(b,1,x);%对信号X进行滤波,等输出信号x1figure 40Subplot(211);Plot(t,x);grid;Subplot(212);Plot(t,x1);grid;运行该程序得到运行结果如图3,4图3滤波器输入信号的幅频和相频曲线图4滤波器输出信号的幅频和相频曲线在运行界面里输入n,能确定该滤波器的阶数n=27。22.2FDATool法设计FDAtool(FilterDesign&AnalysisTool)是MATLAB软件信号处理工具箱里的滤波器设计分析工具,它几乎可以设计所有常规滤波器,包含FIR和IIR 40的各种设计方法,操作简单方便。使用的FDATool可以分为2个部分:第一部分是designfilter,其位于MATLAB界面的下部,用来设置所需要滤波器是各项参数;第二部分是特性区,位于该界面的上部,用于显示滤波器的各项性能,例如幅频、相频等等特许,并且在设计过程中实时显示各项参数,方便使用者的选择。利用它可以方便地设计出各种性能指标的滤波器,并且可查看该滤波器的各种分析图形。在设计满意后可以直接导出为Matlab变量,文本文件或C语言头文件等。在Matlab命令窗口中输入FDATool命令,并按回车确认,调出FDATool界面,如图5。图5FDATool滤波器设计界面在该界面中,有滤波器类型选择,响应类型,阶数,采样频率,输入频率和截止频率。为了对比程序法设计滤波器,在这里同样设计一个FIR滤波器。在ResponseType选择lowpass,在DesignMethod选择FIR,filterorder选择阶数27阶,Fs为8000,Fpass为1200,Fstop为1600,点击Designfilter就能得到我们所需要设计的滤波器,点击Analysis分析该滤波器的相频特性,幅频特性等等如图6。 40图6滤波器的幅频和相频曲线2.2.3SPTool法设计SPTool(SignalProcessingTool)是MATLAB信号处理工具箱中的一个具有交互式图形界面的信号处理工具[7][8]。该工具包含了信号处理工具箱的大部分函数,可以方便快捷地完成常规的数字信号处理。由于采用图形界面,适合初学者学习[9]。SPTool界面有3部分组成:1.signalBrowser(信号浏览器)模块:主要用于信号显示和分析。2.Filter(滤波器分析)模块:主要是FIR和IIR数字滤波器的幅频及相位响应、阶跃及脉冲响应等的查看,各滤波器的分析与设计。3.Spectra(功率谱分析)模块:主要用于各种数字信号的功率谱分析。为了对比上述方法,我们设计一个与上述数字滤波器相同的滤波器。步骤如下:1.在MATLAB命令界面输入采样频率Fs=8000;t=(0:100)/Fs;x=sin(2*pi*t*1000)+sin(2*pi*t*2000);2.在MATLAB命令界面中输入SPTool命令,调出SPTool界面,界面如图7。单击Filter栏下面的NEW按钮,调出Filter界面,如图8。并且设置参数:采样频率=8000HZ;在Algorithm中选择滤波器的类型为LeastSquaresFir;阶数设置为27阶;在Specification中选择滤波器类型为Lowpass;Fp为1200,Fs为1600。设置完毕后点击Apply进行设计,并在窗口中显示滤波器设计结果,如图9。 40图7SPTool界面图8FilterDesigner界面 40图9滤波器幅频曲线单击sptool界面filter选项的Improt按钮,将x导入到,并且命名为x。将信号导入到filt1中,点击APPLY,命名输出信号为x2,点击确定。这样就设置好了输入信号和输出信号。分析输入信号x和输出信号x2的频谱图:选择signal选项中的x,点击specra选项中的create得到信号x的频谱图,同样可以得到x2的频谱图。将得到的频谱图与信号的波形图做比较如图10。图10输入信号与输出信号波形比较和频谱比较曲线2.3设计方案综述数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的[10] 40。所以设计滤波器主要是设计加法器,乘法器和延时单元。对于程序来说主要是通过编写代码,实现这几个功能,优点是功能强大,使用灵活。缺点是编程语言难度高,不容易被大多数使用者掌握。较程序法相比,FDATOOL法和SPtool法更多的是面向大众,而FDATOOL工具是专门用来设计滤波器的,它能实现大多数的FIR滤波器,IIR滤波器,低通滤波器等,使用面广,操作简单,更适合新手使用。3结论数字滤波器的应用非常广泛。借助于MATLAB环境,可以非常便捷地设计出各种类型的滤波器[11]。随着开发软件的不断开发,滤波器的设计必将越来越简便,越来越面向大众,不需要学语言,更多的是面向普通学习者,从上述三中方法来看,程序法主要是面向那些学过语言的,具有较高编程能力的技术人员,而FDATool工具箱和SPTool工具箱更多的是给广大普通用户使用,是一个人机交互的平台,它将图形、文字在后台变成机器代码,省下了用户的时间,并且MATLAB具有嵌入的接口功能,仿真后结果可以很方便地移植到DSP,CPLD或FPGA中等[12],进行其他领域的开发。参考文献:[1]蒋垒,王昌林.基于FPGA的FIR数字滤波器算法实现[J].船舶电子工程.2006(1):151~155.[2]胡广书.数字信号处理——理论、算法与实现[M].北京:清华大学出版社,2003,8.[3]陈桂明,张明照,戚红雨.应用MATLAB语言处理数字信号与数字图像[M].北京:科学出版社,2000,1.[4]丁美玉,高西全.数字信号处理(第三版)[M].西安:西安电子科技大学出版社,2008,8.[5]丁吉,姜涛.基于MATLAB的FIR数字滤波器的设计[J].长春工业大学学报(自然科学版),2006,9,27(3):254~257.[6]李祖贺,陈庆南.基于MATLAB-FDATool的数字滤波器FPGA实现[J].河南科技,2010,5,9(5):54~55.[7]张明,孟庆民.数字滤波器设计与MATLAB实现[J].周口师范学院学报,2007,6,29(3):27~30.[8]楼顺天,李博菡.基于MATLAB的系统分析与设计[M].西安:西安电子科技大学出版社,2001,5.[9]张葛祥,李娜.MATLAB仿真技术与应用[M].北京:清华大学出版社.2003,6.[10]KanmenEW,HeckBS.FundamentalsofSignals&SystemsUsingtheweband 40MATLAB[M].NewYork:Prentice-HallPublishingcompany,2005,7.[11]Mitra.DigitalSignalProcessing:AComputer-BasedApproach[M].London:McGRAW-HillPublishingcompay,1997,5.[12]李茂,任学恒等.基于MATLAB/Simulink的数字滤波器设计与仿真[J].磁性材料及器件,2007,2,01(5):59~61. 40本科毕业设计(20届)基于SIMULINK的数字滤波器IP核设计摘要 40随着信息与数字技术的发展,数字信号处理已成为当今极其重要的科学与技术领域之一,它在通信、语言、图像、自动控制、雷达、军事、航空航天、医疗和家用电器等众多领域得到广泛地应用。IP核是具有知识产权的集成电路芯片的简称,其作用是把一组具有知识产权的电路设计集合在一起,构成芯片的基本单元,以便供于设计时调用。通过将数字滤波器电路集合在一起,构成数字滤波器IP核,使其得到更广泛应用。本设计采用模块化设计技术实现数字滤波器的IP核设计。在MATLAB/SIMULINK的DSPBuilder设计平台下,通过建模方式设计一个16阶低通数字滤波器,其截止频率为10.8KHZ,采样频率为48KHZ,输入序列位宽为9位(最高位为符号位)。根据设计流程,首先在SIMULINK搭建模块,调用DSPBuilder库元件,构成模型,通过SIMULINK自带的仿真功能,得到正确的波形;然后在Altera公司主页上下载FIRCompiler软件,并成功安装,通过该软件实现电路模型到IP核的转换过程。本设计根据FIR数字滤波器的原理,成功搭建了数字滤波器的模型,通过仿真验证了设计的正确性。应用FIR滤波器IP核来设计FIR滤波器具设计有周期短,占用FPGA逻辑资源少,其运算速度快的特点,能提高FPGA的集成度。但前提是必须有ALTERA公司授权的LICENSE,因此对工程应用来说是个限制。论文还记录和整理了在设计中出现的问题,并给出笔者的分析。关键词:数字滤波器;IP核;DSPBuilder;SIMULINKAbstractWiththedevelopmentofinformationanddigitaltechnologies,digitalsignalprocessinghasbecomeextremelyimportantareasofscienceandtechnology,ithasbeenwidelyusedincommunication,language,image,automaticcontrol,radar,military,aerospace,medicalandhouseholdappliances,andotherfields.IPcoreistheintegratedcircuitchipwhichhasashortintellectualproperty,itsroleistoputagroupofintellectualpropertycircuitdesigntogether,constitutethebasicunitofthechip,socalledforinthedesign.BybringingtogetherthedigitalfiltercircuittoformdigitalfilterIPcore,itswiderapplication.ThedesignismodularindesigntechnologytorealizethedigitalfilterIPcoredesign.InDSPBuilderofMATLAB/SIMULINKdesignplatform,throughthemodelingapproachtodesigna16-orderlowpassdigitalfilter,thecutofffrequencyof10.8KHZ,samplingfrequency48KHZ,forthe9-bitwideinputsequence(thehighestbitisthesignbit.)Accordingtothedesignprocess,thefirstmoduleinSIMULINKDajian,calledDSPBuilderlibrarycomponents,constitutesamodel,builtbySIMULINKsimulationfunction,getthecorrectwaveform;thenthedesignofFIRdigitalfiltersbasedontheprincipleofthedigitalfiltersuccessfullybuiltthemodel,thesimulationshowsthecorrectnessofthedesign.ApplicationofFIRfilterIPcoretodesignaFIRfilterdesigncycleisshort,takinglessFPGAlogicresources,thecharacteristicsofitsoperationspeed,canimprovetheFPGAintegration.ButonlyifauthorizedbythecompanymusthaveALTERALICENSE,andthereforeisalimitforengineering 40applications.Thepaperalsorecordsandsortedouttheproblemsinthedesign,andpresentstheauthortoanalysis.Keywords:FIRfilter;IPcore;DSPBuilder;SIMULINK目录1引言11.1课题背景和意义11.2论文的内容与组织结构12滤波器的基本概念32.1滤波器的原理32.2滤波器的技术指标32.3滤波器的分类42.4数字滤波器设计的基本步骤52.5FIR滤波器的特点52.6FIR网络结构62.6.1直接型62.6.2级联型与线性相位结构62..6.3频率采样结构73FIR滤波器设计93.1FIR滤波器设计原理93.2FIR滤波器实现方法93.2.1FIR滤波器实现的方法93.2.2各种设计方案特点154基于DSPBuilder的FIR数字滤波器设计174.1基于DSPBuilder的FIR建模174.2利用FDAtool工具计算h0-h16参数184.3基于DSPBuilder的系统仿真205FIR滤波器IP核转换22 405.1DSPBuilder模型转化成VHDL文件225.2VHDL文件转换成IP核236设计总结25致谢26参考文献27 401引言1.1课题背景和意义模拟滤波器和数字滤波器的设计对工程,应用数学及计算机科学都是非常重要的。对设计人员来说,滤波器是控制,信号处理和通信领域重要的组成部分。在数字信号处理中,数字滤波器是其基本处理方法之一,占有极其重要的地位。数字滤波器是指输入﹑输出均为数字信号,通过数值运算处理改变输入信号所含频率成分的相对比例,或者滤除某些频率成分的数字器件或程序[1]。数字滤波器按单位脉冲响应的长度分类可分有限脉冲响应滤波器和无限脉冲响应滤波器。两者各有优缺点:IIR滤波器能以相对比较低的阶数获得相同幅度的滤波性能,但是其非线性;FIR滤波器脉冲为有限长,系统稳定,呈且严格的线性相位,故在图像处理,数据传输中得到广泛的应用。IP核(intelltualPropertycore)是一段具有特定电路功能的硬件描述语言程序,该程序与集成电路工艺无关,可以移植到不同的半导体工艺中去生产集成电路芯片[2]。目前,高速FIR滤波器的实现方法通常采用设计优化好的FIR滤波器的IP核。用户使用这种IP核。根据实际需要进行简单的开发即可。虽然这种方法比较简单,但是需要得到IP核才能进行,因此本文给出了基于MATLAB的数字滤波器IP核的实现流程。1.2论文的内容与组织结构本次论文主要做了以下工作:1.熟悉DSPBuilder平台,熟悉基于DSPBuilder的一般设计操作流程;2.了解与熟悉FIR数字滤波器原理,查阅相关的基于MATLAB实现的FIR数字滤波器的原理,掌握基于MATLAB/SIMULINK的数字滤波器设计过程;3.利用MATLAB/SIMULINK的FDATool工具,计算满足技术指标的FIR滤波器相关参数,对所有的抽头系数进行512倍的放大并量化;4.完成基于DSPBuilder的FIR数字滤波器设计,并将建立好的图形模块进行仿真编译,观察波形,分析验证器正确性;5.查阅IP核转换原理和流程,在ATLER公司官方主页下载所需工具FIRCompiler,对已经通过仿真编译的FIR滤波器模型进行转换生成可用于工业用途的数字滤波器IP核;6.对设计与调试过程中出现的问题进行整理和分析。本文一共有六章,第一章为引言,简述了本课题的相关背景和论文的组织结构;第二章介绍了FIR数字滤波器原理;第三章为FIR数字滤波器的设计;第四章为论文的重点,详细阐述基于DSPBuilder的FIR滤波器建模的系统设计和仿真调试;第五章介绍FIR滤波器模型转换为IP核;第六章简述了设计过程中遇到的困难和解决过程。 401滤波器的基本概念2.1滤波器的原理滤波器用于以给定的要求对信号频谱进行修改或整形。通常情况下,大多数滤波器的功能是对需要的信号与不需要的噪音进行分离。信号或噪声一般根据其在频段内的频率成分或信号的能量进行描述。滤波器的技术指标一般是指频域内的幅频响应,增益或衰减。滤波器指的是用来对输入信号进行滤波的硬件或软件[1]。一个输入和输出都为离散信号的滤波器其冲击响应必然为离散,该滤波器定义为数字滤波器。数字滤波器的系统函数表示为:(2-1)由函数可得,数字滤波器的功能是把输入信号通过一定的运算得到输出信号。根据设计要求,就可以确定滤波器的技术指标。滤波器的设计一般是冲技术指标开始的,滤波器的实现过程包括四个步骤[2]:(1)函数逼近(2)电路实现(3)缺陷研究(4)产品实现 40函数逼近:产生满足理想技术指标的转移函数。电路实现:将滤波器的转移函数转换为数字滤波器网络。缺陷研究:对于各种非理想因素队滤波器设计的影响。产品实现:通过使用硬件或软件构件滤波器的原型。2.2滤波器的技术指标滤波器的技术指标可以用以下几个方式来表示[2]:1.幅度范围:通带的最小幅度和阻带的最大幅度。2.幅度容限值:指定通带幅度减小的最大值和阻带幅度的最大值。3.幅度纹波容限:描述通带内幅度变化最大量和阻带内幅度变化最大量。4.衰减范围:其用db表示,指定通带内幅度变化最大衰减和阻带被的最小衰减。5.增益范围:其用db表示,指定通带内最小增益和阻带内最大增益。低通滤波器的技术指标:,;,。2.3滤波器的分类滤波器的种类有很多种,分类方法也不同。例如按照功能分类,按照实现方法分类,或从设计方法上来分类等等。滤波器功能上大致可分为四大类,即高通,低通,带通,带阻滤波器,而且每一种滤波器又分为模拟滤波器和数字滤波器两种形式。从数字滤波器单位冲击信号来分,可分为有限冲击响应(FIR)滤波器和无限冲击响应(IIR)滤波器[3]。IIR滤波器系统的极点可以在单位圆内的任何地方,因此可以用较低的阶数获得更高的选择性,所用的存储单元少,经济而效率高。但是由于极点位于单位圆中的任何地方,其稳定性就相对要差,同时IIR滤波器是非线性的。与IIR滤波器相反的FIR滤波器符合严格的线性相位,但是由于其极点是固定的,所以必须使用较高的阶数来实现其高选择性。对于同样性能的FIR滤波器和IIR滤波器来说,FIR滤波器的阶数要比IIR滤波器多出5至10倍,因此其成本较高[1] 40。由于阶数较多,延时也比IIR滤波器大。但是如果要求相同的线性相位,则IIR滤波器必须加个全通网络进行相位校正,因此要增加滤波器的网络节数和复杂性。2.4数字滤波器设计的基本步骤(1)确定指标在设计一个滤波器之前,必须根据要求确定滤波器的技术指标。在本设计中已经给出了其指标为:设计一个16阶低通FIR滤波器,其采样频率为48khz,信号的截止频率Fc为10.8kHz,信号的位宽为9位,其中最高位为符号位。(2)模型逼近确定了技术指标后,就可以建立一个目标的数字滤波器模型,本设计中利用DSPBUILDER平台建立数学模型,设计出来的滤波器必须无限逼近与给定的目标。(3)性能分析和计算机仿真根据上述两步的结果得到滤波器,并且对这个滤波器分析其频谱特性和相位特性,验证该设计结果是否满足指标要求。由于该滤波器本设计中是用软件来实现的,则它只是一段线性卷积程序。软件实现的优点是:系统函数具有可变性,仅信赖与算法机构,并且易于获得较理想的滤波性能。2.5FIR滤波器的特点FIR滤波器是具有有限单位冲击响应的滤波器,在结构上是线性,非递归的,其有以下几个优点[4]:(1)可以在随意设计幅度的前提下保证精确和严格的线性。(2)由于其脉冲序列有限长,所以FIR滤波器没有不稳定的情况。(3)由于其是非递归机构,所以在有限精度下,不会出现递归结构中的不稳定问题。FIR滤波器的缺点在于:对于同样性能的FIR滤波器和IIR滤波器来说,FIR滤波器的阶数要比IIR滤波器多出5至10倍,因此其成本较高,同时信号延时较大[2]。2.6FIR网络结构2.6.1直接型FIR滤波器有直接型、级联型和频率抽样型三种基本结构,其中直接型是最常见的结构。由于本次设计的是直接型滤波器,所以只对直接型结构做讨论。 40图2-1直联型结构沿着这条链路每一个抽头的信号被适当的脉冲响应加权,然后将所得乘积相加得到输出。2.6.2级联型与线性相位结构图2-2级联型结构框图上图显示,将进行因式分解,并将共轭成对的零点放在一起,形成一个系数为实数的二阶形式,这样级联型网络就是由一阶或二阶因子构成的,其中诶一个因式都用直接型实现。线性相位结构是FIR系统的直接型结构的简化网络结构,其特点是网络具有线性相位特性,比直接型结构节约了近半的乘法器。结构如下:图2-3线性相位FIR滤波器结构频率域等间隔采样,相应的时域信号会以采样点数为周期进行周期性延拓,如果在频率域采样点数N大于等于原序列的长度M,则不会引起信号的失真,此时原序列Z变换为H(z)与频率采样值H(k)满足下列关系式[7]:(2-2)2..6.3频率采样结构 40在频域等间隔采样中,相应的时域信号会以采样点数为周期进行周期性严拓。如果频域采样点数N大于等于原序列的长度M,则不会引起信号失真,此时原序列Z变换与频域采样满足关系式[8]:(2-3)设FIR滤波器的单位脉冲长度为M,系统函数为H(z)=ZT[h(n)],则(2-3)式中H(k)用下式表示:,k=0,1,2…,N-1(2-4)要求频率采样点数。图(2-4)提供了一种称为频率采样的FIR网络结构。将(2-3)式写成下式:(2-5)式中这样H(z)是由梳状滤波器和N个一阶网络的并联结构进行级联而成的,其网络结构如图2-4所示。我们看到该网络结构中有反馈支路它是由产生的,其极点为:k=0,1,2…N-1(2-6)刚好和极点一样,等间隔的分布在单位圆上[9]。理论上极点和零点相互抵消,保证了网络的稳定性,是频率域采样结构仍属FIR网络结构。X(n)H(0)H(N-1)Y(n)图2-4FIR滤波器频率采样结构频率采样的优点[10]: 40(1)可以实现任意形状的曲线。由于频率采样点处,只要调整就可以调整频响特性,就可以实现任意形状的频响曲线。(2)只要h(n)长度N相同,对于任何频响形状,其梳状滤波器部分和N个一阶网络部分结构完全相同,只是各支路增益H(k)不同。这样,相同部分便于标准化,模块化。频率采样的缺点:(1)系统稳定性无法保证。(2)由于结构中和一般为负数,要求乘法器完成复数乘法运算,使得硬件实现起来不方便。3FIR滤波器设计3.1FIR滤波器设计原理对于一个FIR滤波器系统,它的冲击响应总是有限长的[13],其系统函数可以记为(3-1)FIR滤波器的数学表达式可以用差分方程表示:(3-2)其中,为输入信号采样序列;表示输出序列;是滤波器的系数;k是滤波器的阶数。根据方程(2-2)可以知:数字滤波器设计的主要任务就是找寻一个函数,使该函数在频率域得到所希望的频率指标,图(3-1)列出了K阶的FIR滤波器框图。 40图3-1FIR滤波器结构是示意图3.2FIR滤波器实现方法3.2.1FIR滤波器实现的方法FIR滤波器的设计方法有许多种,如程序法,窗函数法,频率采样法,DSPBuilder模块搭建法等等,在以下要介绍3种比较常用的设计方法:程序法,FDATool法和SPTOOL法。1程序法设计在滤波器传统设计中,要得到其幅频和相频响应特性,需要根据这些方法进行大量的计算,着使得滤波器的设计慢,周期变长,不利于设计的优化。MATLAB信号处理箱中提供了基于滤波器设计的工具函数,以下图表1中给出了MATLAB自带的函数[13]:下面将以remez函数为例,设计滤波器。程序如下:Fs=8000;%采样频率f=[12001600];a=[10];dev=[0.010.1];[n,fo,ao,w]=temezord(f,a,dev,Fs);%估计滤波器是参数b=remez(n,fo,ao,w);%用remez函数设计滤波器Freqz(b,1,1024,Fs);%滤波器的频率响应t=(0:100)/Fs;x=sin(2*pi*t*1000)+sin(2*pi*t*2000);%设置输入信号xx1=filter(b,1,x);%对信号X进行滤波,等输出信号x1figureSubplot(211);Plot(t,x);grid;Subplot(212);Plot(t,x1);grid;运行该程序得到运行结果如图3-2,3-3 40图3-2滤波器输入信号的幅频和相频曲线图3-3滤波器输出信号的幅频和相频曲线在运行界面里输入n,能确定该滤波器的阶数n=27。2FDATool法设计FDAtool(FilterDesign&AnalysisTool)是MATLAB软件信号处理工具箱里的滤波器设计分析工具,它几乎可以设计所有常规滤波器,包含FIR和IIR的各种设计方法,操作简单方便[11]。使用的FDATOOL可以分为2个部分:第一部分是designfilter,其位于MATLAB界面的下部,用来设置所需要滤波器是各项参数;第二部分是特性区,位于该界面的上部,用于显示滤波器的各项性能,例如幅频、相频等等特许,并且在设计过程中实时显示各项参数,方便使用者的选择。利用它可以方便地设计出各种性能指标的滤波器,并且可查看该滤波器的各种分析图形。在设计满意后可以直接导出为Matlab变量,文本文件或C语言头文件等。在Matlab命令窗口中输入FDATool命令,并按回车确认,调出FDATool界面,如图3-4。 40图3-4FDATool滤波器设计界面在该界面中,有滤波器类型选择,响应类型,阶数,采样频率,输入频率和截止频率。为了对比程序法设计滤波器,在这里同样设计一个FIR滤波器。在ResponseType选择lowpass,在DesignMethod选择FIR,filterorder选择阶数27阶,Fs为8000,Fpass为1200,Fstop为1600,点击Designfilter就能得到所需要设计的滤波器,点击Analysis分析该滤波器的相频特性,幅频特性等等如图3-5。图3-5滤波器的幅频和相频曲线3SPTool法设计SPTool(SignalProcessingTool)是MATLAB信号处理工具箱中的一个具有交互式图形界面的信号处理工具[12]。该工具包含了信号处理工具箱的大部分函数,可以方便快捷地完成常规的数字信号处理。由于采用图形界面,适合初学者学习。SPTool界面有3部分组成: 401).signalBrowser(信号浏览器)模块:主要用于信号显示和分析。2).Filter(滤波器分析)模块:主要是FIR和IIR数字滤波器的幅频及相位响应、阶跃及脉冲响应等的查看,各滤波器的分析与设计。3).Spectra(功率谱分析)模块:主要用于各种数字信号的功率谱分析。为了对比上述方法,我们设计一个与上述数字滤波器相同的滤波器。步骤如下:1).在MATLAB命令界面输入采样频率Fs=8000;t=(0:100)/Fs;x=sin(2*pi*t*1000)+sin(2*pi*t*2000);2).在MATLAB命令界面中输入SPTool命令,调出SPTool界面,界面如图3-6。单击Filter栏下面的NEW按钮,调出Filter界面,如图3-7。并且设置参数:采样频率=8000HZ;在Algorithm中选择滤波器的类型为LeastSquaresFir;阶数设置为27阶;在Specification中选择滤波器类型为Lowpass;Fp为1200,Fs为1600。设置完毕后点击Apply进行设计,并在窗口中显示滤波器设计结果,如图3-8。图3-6SPTool界面 40图3-7FilterDesigner界面图3-8滤波器幅频曲线单击sptool界面filter选项的Import按钮,将x导入到,并且命名为x。将信号导入到filt1中,点击APPLY,命名输出信号为x2,点击确定。这样就设置好了输入信号和输出信号。分析输入信号x和输出信号x2的频谱图:选择signal选项中的x,点击specra选项中的create得到信号x的频谱图,同样可以得到x2的频谱图。将得到的频谱图与信号的波形图做比较如图3-9。 40图3-9输入信号与输出信号波形比较和频谱比较曲线3.2.2各种设计方案特点数字滤波器由数字乘法器、加法器和延时单元组成的一种算法或装置[13]。数字滤波器的功能是对输入离散信号的数字代码进行运算处理,以达到改变信号频谱的目的[14]。所以设计滤波器主要是设计加法器,乘法器和延时单元。对于程序来说主要是通过编写代码,实现这几个功能,优点是功能强大,使用灵活。缺点是编程语言难度高,不容易被大多数使用者掌握。较程序法相比,FDATOOL法和SPtool法更多的是面向大众,而FDATOOL工具是专门用来设计滤波器的,它能实现大多数的FIR滤波器,IIR滤波器,低通滤波器等,使用面广,操作简单,更适合新手使用[15]。 404基于DSPBuilder的FIR数字滤波器设计4.1基于DSPBuilder的FIR建模FIR滤波器原理如第二章所述,根据图3-1的FIR基本原理框架图,在Matlab下的SIMULINK中进行设计,即在Matlab中的SIMULINK环境中建立一个.mdl模型文件“FIR”,调用DSPBuilder和SIMULINK库中的相关模块,设计构成如图4-1所示。图4-116阶直接型FIR滤波器模型16阶直接型FIR滤波器模型中,模块设置如下:Input模块:(Altbus)库:AlterDSPBuilder中BUSManipulation库参数"BusType"设为"Signedinteger"参数"NodeType"设为"inputport"参数"numberofbit"设为"9"Output模块:(Altbus)库:AlterDSPBuilder中BUSManipulation库参数"BusType"设为"Signedinteger"参数"NodeType"设为"outputport"参数"numberofbit"设为"10" 404.2利用FDAtool工具计算h0-h16参数在滤波器设计中,可以利用Matlab提供的滤波器设计工具获得滤波器的各种参数。本次设计指标参数如下:(1)16阶FIR滤波器;(2)低通滤波器;(3)采样频率Fs为48khz,滤波器Fc为10.8khz;(4)输入序列位宽为9位(最高位为符号位);在此利用matlab来完成FIR滤波器系数的确定,步骤如下:(1)在Matlab界面中打入FDAtool,打开FDAtool界面,如图3-4:(2)在FDAtool界面中选择滤波器类型(FilterType)为低通滤波器(Lowpass);设计方法(DesignMethod)为FIR,采用窗口法(Window);滤波器阶数(FilterOrder)为15(在该处设置为15阶,而不是16阶是由于在前面设置了h(0)=0,可以将一个信号做15个单位延时);窗口类型为kaiser,Beta为0.5;为48kHz,为10.8。.设置结果如图4-2。.图4-216阶FIR滤波器设计界面(3)滤波器分析。1.幅频响应分析:选择FDAtool的菜单Analysis→MagnitudeResponse,分析结果如图4-3,X轴为频率,Y轴为幅度值(单位dB)。 40图4-3FIR滤波器幅频响应2.相频响应分析:选择FDAtool的菜单Analysis→PhaseResponse,分析结果如图4-4,由图可以看出设计的该FIR滤波器是一个线性相位的滤波器。图4-4FIR滤波器相频特性3FIR滤波器系数观察:选择Analysis→FilterCoefficient,结果如图4-5,其列出了FDAtool计算出来的15阶直接型FIR滤波器参数。图4-5FIR滤波器系数(3)系数量化。在图4-5中可以看出FDAtool计算出来的都是有符号的小数,而在图4-1FIR滤波器模型中需要输入的是整数,所以必须对计算出来的小数进行量化,并对得到的整数进行归一化[13]。量化公式: 40在上述公式中,Num是FDAtool的导出系数,n用具体数字代替,例如h(1)模块用。以下给出了h1到h15的量化后系数:-196293-45-259221221292-25-453296-19将上述系数填入到FIR滤波器的模型中,如图4-6。图4-6抽头系数确定后的16阶FIR滤波器模型4.3基于DSPBuilder的系统仿真在输入端(input)输入信号源,在输出端(output)接入示波器,进行信号的仿真。信号源采用采样频率分别为12KHZ和100HZ的正弦信号叠加,如图4-7。图4-7FIR滤波器仿真信号源设置系统参数,进行仿真,仿真图如4-8。. 40图4-8FIR滤波器仿真波形图4-8的上图为输入信号波形,即12KHz叠加100Hz的信号,下图为滤波器的输出信号,因为截止频率为10.8KHz,因此高频成份被滤除,留下100Hz的信号。图中波形有锯齿状,是因为在计算抽头系数时进行了四舍五入,为舍入误差。因此模型仿真成功,下一步进行IP核的转换。5FIR滤波器IP核转换5.1DSPBuilder模型转化成VHDL文件在上述步骤中已经对于FIR滤波器模型进行了仿真,结果显示设计成功,接着就要对该FIR滤波器模型进行转换,转化成能够被quartusII识别的由VHDL语言编写的程序代码。转换步骤如下:1点击signalcompiler,弹出如图5-1转化模块界面; 40图5-1signalcompiler界面2点击Analyze,打开转化界面,点击signalcompiler按钮,使DSPBuilder软件自动转化,转化结果如图5-2;图5-2转换界面3打开quartusII软件,点击open,打开该工程,点击工程中的FIR16.VHD文件,显示转换完成的VHDL语言文件,如图5-3; 40图5-3fir滤波器模型转换结果界面5.2VHDL文件转换成IP核利用“MegaWizardPlug2InManager”工具,选择FIRCompiler,其界面如图5-4,选择本设计的输出文件类型。本设计采样的是VHDL文件,选中添加的用户库,就可以对FIRCompiler的IPtoolbench对滤波的参数进行设置。图5-4FIRCompiler界面系统自动生成IP核,结果如图5-6。 40图5-6IPcore生成结果 406设计总结本设计方案按照设计要求是对FIR滤波器进行设计并转换成IP核。通过DSPBuilder进行模块设计,并在SIMULINK下完成进行仿真,得出波形正确。完成了基于quartusII的转换,成功将FIR滤波器建模转换成了用VHDL语言编写的能够被quartusII识别的文件。最后利用FIRCompiler成功的生成了IP核。在设计过程中遇到了许多难题,特别是对于IP核的转换。由于ATLER公司不免费提供FIRCompiler导致在最后(IP核转换无法进行),所以在上述第五章IP核转换中只能用简单的描述了IP核转换的过程。在设计过程中同样也遇到了其他方面的问题,比如在FIR滤波器波形仿真时,总是无法达到理想的滤波效果,滤除的波形带有干扰信号。分析其原因得出,由于在计算FIR滤波器抽头系数时进行了四舍五入,导致算出结果与真实值之间存在较大的误差,使得波形不理想。通过本次设计我更加深入的了解了FIR滤波器是设计原理和机构,同时学习到了如何对VHDL语言文件进行IP核的转换,同时加强了在设计开发产品中的动手能力。虽然在滤波器设计中仿真的波形不是很理想,有误差,但在设计中收获颇丰,提高了动手能力和自主学习能力并且提高了获取新的知识的能力。在本次设计中虽然有美中不足的地方,但总体来说还是成功的,中对我雨后从事该方面的工作有了很大的帮助。参考文献[1]高西全,丁玉美.数字信号处理[M].西安:西安电子科技大学出版社,2008,8.[2]潘松.SOPC技术实用教程[M].北京;清华出版社,2005,6.[3]沈保锁,候春萍.现代通信原理[M].2.北京:国防工业出版社,2008,6.[4]胡广书.数字信号处理——理论、算法与实现[M].北京:清华大学出版社,2003,8. 40[5]百度百科,IP核[EB/OL],[2011-3-15].http://baike.baidu.com/view/677617.htm[6]郭海丽,王紫婷.基于MATLAB/Simulink的FIR数字滤波器设计与实现[J].电力电子,2008,2,27(1):73-75.[7]陈桂明,张明照,戚红雨.应用MATLAB语言处理数字信号与数字图像[M].北京:科学出版社,2000,1.[8]王华.MATLAB电子仿真与应用[M]。北京:国防工业出版社,2001[9]程卫国,冯蜂等.MATLAB5.3精要编程及高级应用[M].北京:机械工业出版社,2000.[10]王世一.数字信号处理(修订版)[M].北京:理工大学出版社,2000[11]刘凌,胡永生,译.数字信号处理的FPGA实现[M].北京:清华大学出版社,2003.[12]任爱锋,初秀琴,常存等.基于FPGA的嵌入式系统设计[M].西安:西安电子科技大学出版社,2004,10.[13]李祖贺,陈庆南.基于MATLAB-FDATool的数字滤波器FPGA实现[J].河南科技,2010,5,9(5):54~55.[14]JUNJIM,MASATON,MASASHIH.A10ns54×54bpar2allelstructuredfullarraymultiplierwith0.5μsCMOStech2nology[J].IEEEJSolidStateCiruit,1991(4):56~60.[15]Monterey.TestPatternGenerationForSignalIntegrityFaultsonLongInterconnects[EB/OL],[2009-10-25].http://www.computer.org/portal/web/csdl/doi?doc=abs/proceedings/vts/2002/1570/00/15700336abs.htm.

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

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

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