基于FPGA的FIR数字滤波器算法的改进及仿真.docVIP

基于FPGA的FIR数字滤波器算法的改进及仿真.doc

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

基于FPGA的FIR数字滤波器算法的改进及仿真   摘要:   为了减少FPGA综合时FIR滤波器硬件资源的占用,提高运算速度,在分析分布式算法基础上,提出分布式算法的改进算法,以解决分布式算法大量占用存储器空间的问题,提高硬件资源的使用率和运算速率。在QuartusII软件环境下,结合算法进行了仿真。验证了算法的正确性和有效性。   关键词:   FPGA; FIR数字滤波器; 改进算法; 仿真   中图分类号: TN 911.72文献标识码: Adoi: 10.3969/j.issn2013.05.013   引言   基于有限长单位冲激响应滤波器(FIR)的稳定性和线性相位的优点,FIR 滤波器有着更为广泛的应用。目前,实现数字滤波器的方法主要有软件实现和硬件实现。软件实现的方法简单,但是实时性差。硬件实现的方法有数字信号处理器(DSP),专用集成电路和现场可编程门阵列(FPGA)等[1]。DSP实现数字滤波器方法灵活,开发周期短,但其软硬件的结合方式限制了滤波处理速度,不适合用在实现实时性较高要求的系统。ASIC器件可靠性高,实时性好,但灵活性差,不适合科研和开发。FPGA器件结合了上面两种器件的优点,具有很好的实时性,可靠性和灵活性,因此研究基于FPGA的数字滤波器的实现对于工程应用有重大的意义[2]。   本文采用FPGA技术,应用硬件描述语言实现数字滤波器。基于FIR数字滤波器的分布式算法提出改进算法,此算法不但不需使用乘法器而且减小了存储器的使用数量,大幅度节约了硬件资源且可实现高速滤波。   1FIR滤波器的改进算法实现   1.1算法推导   为了实现算法,可以定制一个ROM存储h0,h1,h2,…,hN-1的可能组合的和。对应一个N阶的FIR数字滤波器,该ROM中地址和数据的对应关系如表1所示。   根据式(4)可以知道,要得出FIR滤波器的输出,首先需要一个初始存储全为0且长度为滤波器阶数的队列将输入的数据存入队列[3]。以队列中每个数据对应的位组合为一个地址,在ROM中查出对应的值乘上位权值相加就可以得到输出值。   1.2算法实现   该算法可以用并联和串联来实现。串行结构如图1所示,该结构是将保存在队列中的输入分别送入一组向右移位寄存器,移位寄存器的最右边的一位组合成地址在ROM中查出对应值,送入累加器。当下一个时钟上升沿,移位寄存器组向右移一位,最右边一位组成的新的地址在ROM中查出数据,再进行累加。但是,如果数据是8位的,则要8个时钟周期才能输出一个数据,时钟的频率必须是采样频率的8倍,串行结构难以实现高速FIR滤波器[4]。   当数据为8位,并型结构需要相对串型结构的8倍的硬件资源。并型结构需要8个相同的ROM,所有数据每一对应位组成的地址分别在8个ROM中查询,再乘以权值,最后用流水线加法器相加。流水线加法器的结构如图2所示,并联型分布式算法的硬件实现如图3所示。   1.3分布式算法的改进   分布式算法不需要使用乘法器,降低了硬件资源的使用,但是却对ROM的容量提出了很高的要求[5]。假设要实现一个N阶的FIR滤波器,系数h0,h1,h2,…,hN-1的组合的和可能性有2N中,对于并联型的分布式结构,ROM的容量需8×2N×M bit,其中8为输入数据位宽,M为系数量化位数。运用该算法实现低阶FIR滤波器时,消耗的存储器较少,然而随着阶数不断升高,存储器的消耗呈指数增长,在实现高阶FIR滤波器时,这种算法将消耗过多存储单元,而在实际应用中FIR滤波器的阶数一般都比较高,所以需考虑对分布式算法进行改进。   因为倍数增长比指数增长慢,因此改进算法是:将高阶FIR数字滤波器结构转变成多个低阶FIR数字滤波器分布式算法结构的组合。   本文设计滤波器的阶数是64阶,8的倍数,式(4)可以写成如下形式:   其中8m+7=N-1,这样把N个滤波器系数分成N/8组,每组可利用8阶FIR滤波器的并联型分布式算法结构实现,最后用流水加法器相加得到结果。实现框图如图4所示,整个系统需要(N/8)这样的8阶FIR滤波器分布式算法结构,最后将输出的数据用流水线加法器相加[67]。   这样,采用改进算法需要用到的存储器为M×8×(N/8)×28 bit,相对于采用传统的并联分布式算法需要消耗的存储单元为8×M×2N bit,改进算法大幅减少了存储器的使用。   根据以上分析,本文设计的FIR数字滤波器为64阶,输入数据量化为8位,系数量化为13位。所以采用传统的并联分布式算法需要消耗存储单元8×264×13 bit,而采用改进算法只需要消耗存储单元13×8×8×28 bit,相对于传统算法,存储器使用减少了253倍[8]。   2

文档评论(0)

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

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

1亿VIP精品文档

相关文档