基于Matlab 的FIR 滤波器设计及FPGA 实现.doc_第1页
基于Matlab 的FIR 滤波器设计及FPGA 实现.doc_第2页
基于Matlab 的FIR 滤波器设计及FPGA 实现.doc_第3页
基于Matlab 的FIR 滤波器设计及FPGA 实现.doc_第4页
基于Matlab 的FIR 滤波器设计及FPGA 实现.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

文库下载 免费文档下载/本文档下载自文库下载网,内容可能不完整,您可以点击以下网址继续阅读或下载:/doc/a57ec0c79ec3d5bbfd0a7479.html基于Matlab的FIR滤波器设计及FPGA实现基于Matlab的FIR滤波器设计及FPGA实现第33卷第6期2006年6月应用科技AppliedScienceandTechnologyVol.33,.6Jun.2006文章编号:1009-671X(2006)06-0083-04基于Matlab的FIR滤波器设计及FPGA实现张驰,郭黎利(哈尔滨工程大学信息与通信工程学院,黑龙江哈尔滨150001)摘要:FIR滤波器是一种被广泛应用的基本的数字信号处理部件.针对常用的软、硬件方法设计实现FIR滤波器存在的问题,提出采用Matlab的窗函数方法设计并在FPGA上高速并行实现严格线性相位FIR滤波器的方案.其可以方便地调整滤波器的阶数和系数,适合不同场合的应用.通过编程调试结果表明,该设计是可靠的,可作为高速数字滤波器设计的较好方案.关键词:滤波器;Matlab;实时;现场可编程门阵列器件中图分类号:TP302.1文献标识码:ADesignofrunningonFPGAZHANGChi,GUOLi2li(SchoolofonandCommunicationEngineering,HarbinEngineeringUniversity,Harbin150001,China)Abstract:FIRfilterisabasicprocessunitwhichiswidelyusedindigitalsignal.Aimingattheproblemsindesig2ningtheFIRfilterusingsoftwareandhardware,aschemeisproposedwhichdesignsaFIRfilterofstrictlylinearphasewithwindowfunctionsinMatlabandrunsitonFPGAparallellywithhighspeed.Theordersandcoefficientsofthefiltermayflexiblybeadjustedtoapp/doc/a57ec0c79ec3d5bbfd0a7479.htmllyitinvariousapplications.Itisshownthattheschemeiseffectivefordesigninghighspeeddigitalfilterthroughprogramminganddebugging.Keywords:filter;Matlab;realtime;FPGAFIR数字滤波器1被广泛地应用于数字信号处要求编程设计出最合适的滤波器.文中采用Matlab计算机辅助设计在FPGA上实现FIR滤波器.理(DSP)系统,它可以满足滤波器对幅度和相位特性的严格要求,避免模拟滤波器温漂和噪声等问题,具有精确的线性相位,容易用硬件实现,并且系统稳定.在非实时或低速系统中,FIR算法可以在DSP或CPU上用软件实现,但是在一些实时性要求较高的1FIR滤波器设计基础FIR滤波器的直接型结构2如图1所示,它是一个分节的延时线,每一节的输出加权累加,得到滤波器的输出.数学上可表示为N-1如雷达控制或无线通讯等系统中,由于程序的顺序执行,软件方式的实时性往往不能满足要求,此时要求直接用硬件高速实现.在这种情况下,利用现场可编程门阵列器件(FPGA)实现FIR滤波器,由于实现的硬件并行算法,因此特别适合那些实时性要求较高或计算量很大的场合,而且解决方案便宜,灵活,集成度高,稳定性好,可以根据具体情况,按系统y(n)=h(i)x(n-i=0i).(1)图1普通的直接型FIR滤波器的结构收稿日期:2005-10-12.作者简介:张驰(1978-),男,讲师,硕士研究生,主要研究方向:超宽带通信、通信信号处理.郭黎利(1955-),男,教授,博士生导师,E2mail:.?84?应用/doc/a57ec0c79ec3d5bbfd0a7479.html科技第33卷其结构如图1所示.从图1中FIR滤波器的传递函数为()H(z)=X(z)N-1主要工具.Matlab提供了丰富的函数,其中fir1函数实现了加窗线性相位FIR滤波器设计的经典方法,h(i)zi=0-i.(2)fir1主要用于常用的标准通带滤波器设计,包括低通、带通、高通和带阻数字滤波器.除此之外,Matlab还提供了多带FIR滤波器的设计函数fir2、Hilbert变换器及其它具有奇对称系数的滤波器设计函数firl和remez等.从滤波器的传递函数可以知道,它是恒稳定的,不需要反馈.而且只要加权系数h(i)=h(N-1-i)(0iN-1),FIR滤波器就具有严格的线性相位.一般而言,常用的FIR滤波器是线性相位的,即滤波器的系数满足某种对称性.于是线性相位FIR滤波器3数字滤波器的设计要经过3步:确定指标、逼近和实现.通常在设计滤波器之前,应该先根据具体的应用确定一些技术指标.然后就可以根据数学知识的输出为N/2-1y(n)=y(n)=h(i)x(n-i=0i) x(n-N 1 i).(3).最后,可以根据这个描述用硬.至此完成一个滤波器设计的全过程.文中结合具体例子,用MATALB的信号处理工具箱进行参数的设计,然后用FPGA器件实现.(N-1)/2-1i=0h(i)x(n-i) x(n-N 1 i)-(22公式(3)N为偶数,4).这样,只需要做N/2(当N为奇数时为(N 1)://doc/a57ec0c79ec3d5bbfd0a7479.html/2)次而不是N次乘法就可以实现滤波器的功能,可以大大地节约硬件资源的消耗,还可以提高速度.简化结构如图2所示.3FIR滤波器的FPGA设计与实现3.1参数提取设计指标如下:通带类型:低通通带衰减:3dB采样频率:20MHz阻带截止频率:3.5MHz图2线性相位FIR滤波器的优化型结构截止频率:3MHz阻带衰减:30dB位数:8位4阶数:32在一般的工程实际应用中,感兴趣的是线性相位选频FIR滤波器.其优越性在于:1)在没计中只有实数的运算,也利于用FPGA实现;2)不会产生延迟失真;3)长度为N的滤波器(阶数为N-1),它的计算量只有N/2数量级.因此本文只讨论用窗函数法实现严格线性相位的FIR滤波器.根据以上指标,利用Matlab函数很容易得到滤波器的系数h(n).文中选用汉明窗作为窗函数5,计算出线性相位32阶FIR低通数字滤波器的特性参数如表1所示.表1滤波器特性参数系数系数值0.0222630.015422-0.033998-0.056797-0.053203-0.0208380.019023系数h(8),h(23)h(9),h(22)系数值0.0343350.0080853-0.042512-0.069989-0.0335840.0740020.209870.305562用Matlab进行滤波器的设计Matlab是一个交互式的以矩阵为基础的软件,h(0),h(31)h(1),h(30)h(2),h(29)h(3),h(28)h(4),h(27)h(5),h(26)h(6),h(25)h(7),h(24)://doc/a57ec0c79ec3d5bbfd0a7479.html-0.0040165h(10),h(21)h(11),h(20)h(12),h(19)h(13),h(18)h(14),h(17)h(15),h(16)它广泛应用于教学、科研和工程设计等各个领域.随着Matlab的不断完善,尤其是Matlab的信号处理工具箱的推出,如今Matlab已经成为数字信号处理(digitalsignalprocessing)应用中分析和仿真设计的第6期张驰,等:基于MATLAB的FIR滤波器设计及FPGA实现?85?3.2系数量化3.4VHDL描述目前的FPGA器件只能进行定点值计算,从Matlab计算所得的h(n)是浮点值,需要转换成定点用VHDL7-8(硬件描述语言)设计时,采用模块化设计方法,乘累加单元为一个模块,延时单元为一个模块.设计软件调用Ipm2mult生成的乘累加模块,其常数(即量化系数)是在生成过程中输入的,这不利于系数和阶数的调整.文中将由设计软件生成的乘累加模块经过修改,使系数由类属参数带进模块内部,主模块中只有乘累加模块和延时模块的例化语句.考虑图2的规则结构,在主模块中利用生成语句来例化单元电路的个模块,FIR滤波器的,不需要I主模块内部,使其它的设计可以FIR主模块.通过设计软件对FIR主模块进行编译和时序分析,文中设计的17阶值,即进行系数量化,可以用DSP技术中的Q值法进行这种转换.量化系数用二进制的补码表示.为了满足精度要求,滤波器的量化系数的位数不能少于20位,因此文中将h(n)量化为20位.量化系数所反映的数字滤波器的特性与从Matlab计算出的浮点系数h(n)所反映的特性之间存在一定差异,这种差异是由量化误差引起的.在使用这组量化系数之前,必须先确定由量化误差引起的幅频和相频特性的变化是否在可以忽略范围之内.用Matlab函数计算了系数量化前后的幅频和相频特性,路设计了.3.3单元电路线性相位FIR/doc/a57ec0c79ec3d5bbfd0a7479.html滤波器在系数量化数据宽度为20位时运行速率可达44.91MHz,能满足高精度实时处理系统的处理需求.从图2可以看出,FIR滤波器的实现主要包括3个单元:乘法单元、累加单元和延时单元.FIR滤波器的核心是乘法器累加(MCA)的功能.在基于程序编程实现的数字信号处理器(如TMS320CXX系列)中,MCA指令在提供的硬件中执行.当滤波器的每阶均需要乘法和累加指令时,频繁使用MCA指令将会限制FIR滤波器的速度.本文设计的并行结构FIR滤波器,每阶都有自己的乘法器.乘法器接收输4设计验证为了验证文中设计的可靠性,用TEKTRONIX公司的数字示波器TDS3032B从X2Ray谱仪的探头采集一信号波形,采样率为5MHz,每个信号有500个采样点,其波形图如图3(a)所示.从图中看出,原始信号中有许多高频噪声成分(毛刺).将500个采样点的数据输入波形矢量文件中,作为仿真的输入波形矢量,通过设计软件进行仿真.仿真结果见图3(b).由图看出,原始数据中的高频成分(毛刺)已经基本去除,实现了抑制高频噪声的目的.我们也用Matlab软件对采集到的500个波形数据进行了仿真,输入的系数为量化前的浮点系数.Matlab仿真结果见图3(c).比较图3(b)和图3(c),入的数据,并使之与常数相乘,称之为常系数乘法器.使用并行结构和常系数乘法器极大地提高了FIR滤波器的处理速度.文中设计选用美国ALTERA公司的ACEX20K系列FPGA,此FPGA器件进行专门优6化的可调参数元件库,包含了许多功能元件,即宏单元.其中Ipm2mult就是专门针对于数字信号处理中的乘累加功能而设计,它可以实现2个矢量相乘,或一个矢量和一个常数相乘,还可以在相乘的同时实现累加功能.文中所选用的实现结构(图2)每一阶的乘法单元和累加单元用一个lpm2mult就可实现,简洁明了,而且便于扩展阶数.延时单元选用可调参数元件lpm2ff.会发现VHDL硬件描述语言仿真结果与Matlab软件仿真结果很好地一致.://doc/a57ec0c79ec3d5bbfd0a7479.html这一结果说明文中基于APEX20KE系列FPGA设计的高精度、高速度FIR数字滤波器是可靠的,可应用于高精度实时处理系统.?86?应用科技第33卷精度、高速度FIR数字滤波器.在设计上采用模块化结构,滤波器的系数和阶数可由类属参数带入模块内部,调整方便,便于调用;在实现上采用了具有并行特性的转型结构,每一阶都有一个常系数乘法器实现乘累加功能,大大地提高了运行速度.仿真表明,在系数量化数据宽度为20位时,本设计在高达40MHz时钟频率下能够稳定可靠地工作,可以满足一些高精度实时处理系统对精度和速度的要求.(a)TDS3032B中的初始信号参考文献:1程佩青.北京:清华大学出版,.2OASHIH.A10ns5454bpar2sCMOStech2fullarraymultiplierwith0.5nologyJ.IEEEJSolidStateCiruit,1991(4):5660.3GERACIA,PULLIAA,RIPAMONTIG.AutomaticPole2Zero/Zero2Poledigital

温馨提示

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

评论

0/150

提交评论