- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA高速高阶FIR数字滤波器设计
基于FPGA高速高阶FIR数字滤波器设计
摘 要:在数字滤波器设计与应用当中,相比于以牺牲线性相位频率特性为代价的无限冲击响应(IIR)数字滤波器,有限冲击响应(FIR)数字滤波器不仅保证了精确严格的线性相位特性,并且结构简单稳定。但在实现相同的设计指标时,有限冲击响应需要更高的阶数,为满足高速高阶数字滤波器设计,文章提出一种改进的分布式算法。该算法利用主流现场可编程逻辑门阵列(FPGA)芯片的多相分解结构和流水线技术,采用多路复用加法器对数据进行预相加,减少传统分布式结构的查找表规模。利用Matalb仿真设计,Quartus II编译测试,并下载到现场可编程门阵列(FPGA)中进行运行分析,结果显示文章的方法有效地减少了滤波器对硬件资源的消耗,能够较好地实现高阶的FIR滤波器。
关键词:FIR数字滤波器;分布式算法;现场可编程门阵列;数字信号处理
数字滤波器[ 1 ]在数字信号处理中有着信号分离和信号重建的功能,是数字信号处理的重要组成部分,随着现代信号处理的高速发展,对数字滤波器的要求也越来越高,其中通过卷积实现的滤波器称为有限冲击响应(FIR)滤波器,它是一种结构简单且总是稳定的滤波器,严格意义上也只有FIR滤波器可以实现线性相位,满足了大部分线性系统的需求。
诞生于20世纪80年代的现场可编程逻辑门阵列(Field Programmable Gate Array, FPGA)和数字信号处理技术密切相关,特别是在需要大量乘累加运算的滤波器实现中有着一定的优势,分布式算法[3](Distribute Algorithm,DA)因其充分利用了FPGA内部丰富的组合逻辑资源,能将乘积运算转换为查表操作而得到了广泛的应用。
本文对比传统的DA算法提出一种改进的分布式算法,完成高速高阶FIR数字滤波器设计,并对比给出测试结果。
1 FIR滤波器基本理论
FIR滤波器[4 - 6],其脉冲响应由有限个采样值构成。抽头数为N,阶数为N-1的FIR系统转移函数、差分方程和单位脉冲响应如下:
由表达式可以看出乘累加运算由N次乘法运算和N-1次加法运算构成。因此常规的数字滤波器设计都是将乘累加运算分解为乘法运算和加法运算,数字滤波器的效率由硬件加法器乘法器的性能所决定,实现结构如图1所示,其中:×为硬件乘法器,+为硬件累加器,D为硬件流水线寄存器。
在使用FPGA芯片实现FIR滤波器时直接使用硬件乘法器十分耗费资源,一般是借助分布式算法利用FPGA丰富的存储资源进行查表不直接使用硬件乘法器。
2 分布式算法原理
分布式算[7- 8](Distributed Algorithm,DA)广泛应用在数字滤波器傅里叶变换的乘累加运算之中,它的主要特点是将需要进行乘累加运算的数据进行二进制位分解,构成新的查找表(DALUT),而查找表中按地址索引存储着相应的乘积结果,用此方法完成乘累加中的乘法运算,通过移位、累加等操作得到最终的结果。分布式算法的优势在于充分利用FPGA芯片内部丰富的存储资源,如分布式的查找表内部的嵌入式RAM等,不必直接使用硬件乘法器,这对资源的折中是行之有效的。
对于线性系统乘累加结构可以简单描述为:
其中xb(n)表示二进制数表示的x(n)的第b位,为0或者1,为了进一步计算提取式(9)中的公因子并进行位重组:
对于有输入信号为有符号数,则同理x(n),y(n)可以表示为:
传统分布式算法以速度优先实现全并行分布式FIR数字滤波器[10],可以在一个时钟周期内实现一次滤波,硬件结构原理图如图2所示。
3 基于FPGA特性改进分布式算法
传统分布式算法的实现结构,虽然并行结构不需要通用乘法器,加快了处理速度,但查找表(DALUT)的规模深度会随着阶数的增高而变大,如实现一个32阶的数字滤波器,深度为232(4294967296),对于存储资源有限的FPGA芯片可实现的滤波器最高阶数就受到了限制。
为了提高FPGA芯片的利用率,实现高速高阶的FIR数字滤波器,本文提出如下的改进分布式算法:
将滤波器系数进行分组,利用查找表分别进行部分查表,并将结果相加,同时利用FPGA流水线寄存器,极大的减小了设计规模。
设将线性系统乘累加结构的系数分为C组则公式7可以表示如下:
其中N=C*M。
由此将可以将一个N阶数字滤波器用C个M阶并行的查找表(DALUT)实现。因此如公式10和12可以将与y(n)表示为如下的公式(14):
由公式(14)可知要实现C个M阶分布式乘累加结构,需要C-1个辅助加法器。
相比于传统分布式算法,假设输入信号A(0)的量化位宽为Bqua则传统分布式实现一个N阶数字滤波器
原创力文档


文档评论(0)