欢迎来到天天文库
浏览记录
ID:34514364
大小:312.96 KB
页数:5页
时间:2019-03-07
《fpga_asic-基于fpga的高精度浮点iir滤波器设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于FPGA的高精度浮点IIR滤波器设计阎威刘凤新(北京化工大学,北京100029)摘要:本文详细讨论了利用新版本FPGA辅助设计软件QuartusII6.0中提供的浮点运算功能模块实现IIR滤波器的方法,与采用FPGA的乘法模块的同类设计相比,此滤波器设计结构简单,容易扩展,特别是最终滤波结果与Matlab软件仿真结果比较,精度很高。关键字:FPGA;浮点运算;IIR;数字滤波器中图法分类号:TP271+.5文献标识码:ADesignofHighAccuracyIIRFloatingDigitalWaveFilterBasedonFPGAYanWei,LiuFengxin(Beijing
2、UniversityofChemicalTechnology,Beijing100029)Abstract:ThisarticleofferdadesignmethodofFour_stepellipticalIIRdigitalwavefilterusingtheFloating-pointmultipliablemoduleontheFPGA.ComparedwiththesimilarkindofdesignwhichisusingtheLPMmultipliablemodule,thisdesign’sstructureissimpleandtoexpandthestructure
3、ismoreeasily.TheoperationresultofthisdesignhaveahighaccuracycompareingwiththeresultofMatlboperation.key-word:FPGA;Floating-pointoperation;IIR;Digitalwavefilter引言在数字信号处理领域,速度与精度永远是一个对立的问题,随着近年来技术的发展,FPGA逐渐被运用到解决这一问题中来。在数字信号处理中,常用的数字滤波器有FIR和IIR两种类型,这两种类型的滤波器都有着广泛的应用领域。相对来说IIR的设计更加容易,采用FPGA实现的IIR滤波器具
4、有多种优越性。[1][2]在文献中提出了一种基于FPGA的LPM库中乘法单元的椭圆滤波器结构,由于数据的量化等问题,使得这种实现方法无法实现很高的精度,而且还要考虑正负号和补码问题,实现过程比较复杂。目前FPGA已经可以在内部包含浮点乘法器和浮点加法器,利用新的乘加单元可以使得同类的设计精度得以大幅度提高,这对于某些对精度要求十分高的项目十[2]分重要。为了有所比较,本文中所有滤波器指标系数均按照文献中的参数进行计算。1.原理分析数字滤波器是一个采用有限精度算法实现的线性非时变离散系统,首先要根据实际情况确定其性能指标,然后求得系统函数H(z),最后采用有限精度算法实现。本系统所参考的数字
5、域指标为:W=0.1π,W=0.2π,R=0.1dB,Ad=32B。psps利用Matlab函数ellipord(wp/pi,ws/pi,Rp,As)来计算数字椭圆滤波器的阶数N和3dB截止频率ωn,然后利用ellip(N,Rp,As,ωn)函数求得IIR滤波器的各个系数:−−−−12340.02710.724−+−+zzzz0.09840.7240.0271Hz()=........................(1)−−−−123413.3553−+−+zzzz4.34392.55780.5771系统实现将系统函数表示为差分方程:yn()=0.0271x−0.724(xn−+1)0.
6、0984(xn−−2)0.724(xn−+3)0.0271(xn−+4)3.3553(yn−−1)4.3439(yn−+2)2.5578(yn−−3)0.5771(yn−4)................(2)由此可以看出,一次椭圆滤波器的运算需要9次乘法运算8次加法运算。本文将使用FPGA内部的浮点乘法器和浮点加法器来实现全部运算。2.1系统原理框图浮点转换模块输寄存模块乘加模块出A/D寄存器MCU采样数据控制模块图1滤波器系统框图系统原理框图如图1所示,系统主要由AD,浮点转换模块,寄存模块,乘加模块,控制模块,输出寄存器,MCU组成。2.2浮点转换模块浮点转换模块是以查找表rom的
7、形式实现的。此模块由一个长度为256,数据宽度为32位的rom构成。8位AD采样所得到的数据直接作为rom的输入地址,rom根据输入地址直接查找并输出事先建立好的对应的32位浮点数据。2.3乘加模块mul_data[31..0]滤波器系数rom浮点乘法器clkdata_out[31..0]data_a[31..0]mul_out[31..0]address[4..data_b[31..0]clkaddr[4..0]浮点加
此文档下载收益归作者所有