基于查阶跃响应表高效FIR滤波器设计及其FPGA实现.docVIP

基于查阶跃响应表高效FIR滤波器设计及其FPGA实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于查阶跃响应表高效FIR滤波器设计及其FPGA实现

基于查阶跃响应表高效FIR滤波器设计及其FPGA实现   【摘要】 本文提出了一种采用查阶跃响应表方法实现的FIR数字滤波器设计方案,并以一个649阶FIR滤波器的FPGA设计为例,与传统的采用FPGA IPCORE实现方法进行了对比,分析该设计方法在FPGA的资源利用和系统时钟速率上的优势。通过实验数据验证,该方案可以解决现有技术中FIR滤波器需要大量乘法器和加法器的问题,达到了降低FPGA硬件资源使用、提高系统运行效率的效果。   【关键词】 FIR 数字滤波器 阶跃响应 FPGA   一、引言   在数字信号处理系统中,数字滤波器被广泛地应用于干扰的滤除、有用信号的提取、信号的整形等各方面。数字滤波器根据其冲激响应函数的时域特性,可分为两种,即无限长冲激响应(IIR)滤波器和有限长冲激响应(FIR)滤波器。FIR滤波器的单位冲激响应只能持续一段时间,由于它的线性相位特性和容易实现因此在工程上得到广泛应用。   FIR数字滤波器通过乘累加运算来实现,输入信号x(n)经过FIR滤波器过程是一个输入信号与滤波器系数进行线性卷积的过程,即:,其中y(n)为滤波器的输出,h(i)为滤波器的滤波器系数,N为滤波器的阶数。从表达式可以看出,每次输出y(n)需要进行N次乘法和N-1次加法操作实现。乘累加运算结构需要使用N个乘法器和N-1个加法器资源,而且随着滤波器的阶数N越大,需要的乘法器和加法器越多,占用的硬件资源也就越大。   为降低硬件资源的消耗,文献[1]提出了一种分布式算法(Distributed Arithmetic,DA)的滤波器设计结构,它将传统的乘、累加运算转化为加法和移位运算,利用ROM查找表将固定系数的乘累加运算转换成查找表操作,可以较大程度地提高运算速度。文献[2]和文献[3]也提出了改进的分布式算法,采用滤波器的多相分解结构对DA算法进行改进,以降低硬件资源的使用,但是不论是DA算法或者改进的DA算法,ROM查找表的大小会随着滤波器阶数N的增加而成指数增加,消耗更多的硬件资源,难以满足数据处理领域的高速实时性要求。在一些某些的应用场合,例如超高频无源射频识别阅读器的前向波形成形滤波,其输入波形为矩形波或者阶梯波,为了达到较好的滤波效果需要使用高阶的FIR滤波器,如果采用传统的乘累加结构或者分布式算法,会占用大量的硬件资源,增加设备的成本。   本文在FPGA上设计并实现了一种通过查阶跃响应表的方法实现FIR数字滤波器,当输入信号为矩形波或阶梯波时,利用该方法,可以解决现有技术中FIR滤波器需要大量乘法器和加法器的问题,达到了降低FPGA资源使用、提高系统运行速度的效果。   二、查阶跃响应法的方法   因此,我们可以将设计的FIR滤波器的单位阶跃响应存储在一张表中;再对需要进行FIR滤波的输入信号进行沿提取,提取出阶跃信号;再将每个阶跃信号的幅度和查表的数据相乘得到阶跃响应;然后对所有的阶跃响应结果求和,此求和结果等价于原信号直接经过FIR滤波器的滤波结果。   如果输入信号变化的间隔时间大于FIR滤波器的阶跃响应时间长度,只需要一路处理模块,模块根据输入阶跃信号的幅度计算并输出阶跃响应,然后对所有的阶跃响应求和。如果输入信号变化的间隔时间小于FIR滤波器的阶跃响应时间长度,则需要采用多路处理模块,阶跃信号依次分配给多个模块,每个模块输出各自的阶跃响应,最后,再对所有的模块的输出进行求和。   三、FPGA实现   FIR滤波器查阶跃响应表法的FPGA的实现如图1所示,由沿提取、沿分配器、阶跃响应池和加法器四个功能模块组成。其中阶跃响应池中的每个阶跃响应模块都是相同的,其结构如图2所示。   阶跃响应池由N个相同的阶跃响应模块构成,如图2所示,每个阶跃响应模块由沿检测、阶跃响应表(步骤1生成)、乘法器、缓存器和加法器组成。   每个阶跃响应模块的内部处理过程如下:经分配后的阶跃信号送入检测单元进行检测,检测单元输出三组信号:触发信号、启动信号和阶跃信号的幅度。当检测到有阶跃信号时,检测单元输出触发信号对缓存器进行刷新,将当前模块输出结果通过缓存器保存下来作为输出基准;与此同时,启动信号启动指针计数器进行查表,通过指针依次取出阶跃响应表中的数据;取表结果和阶跃信号的幅度输入到乘法器相乘;乘法器的输出和基准信号分别输入到加法器,其相加结果作为该阶跃响应模块的输出。   步骤4:阶跃相应池输出的N路阶跃响应信号S0S1 S2…. SN-1输入给加法器进行相加求和,其求和结果为该FIR滤波器的输出。   在每个阶跃响应模块中,由于有个加法器,可能会遇到加法器输出结果溢出的情况,例如连续两个上升沿的正阶跃信号相加,结果溢出出现负数。出现这种情况时可以通过扩展有效数据位数防止溢出;也可以通

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档