首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文电子通信
   基于FPGA实现FIR滤波器的研究      ★★★ 【字体: 】  
基于FPGA实现FIR滤波器的研究
收集整理:佚名    来源:本站整理  时间:2009-01-10 22:44:22   点击数:[]    

[本篇论文由上帝论文网为您收集整理,上帝论文网http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]
摘要:针对在FPGA中实现FIR滤波器的关键--乘法运算的高效实现进行了研究,给了了将乘法化为查表的DA算法,并采用这一算法设计了FIR滤波器。通过FPGA仿零点验证,证明了这一方法是可行和高效的,其实现的滤波器的性能优于用DSP和传统方法实现FIR滤波器。最后介绍整数的CSD表示和还处于研究阶段的根据FPGA实现的要求改进的最优表示。

    关键词:FPGA DA FIR滤波器 CSD

数字滤波器是语音与图像处理、模式识别、雷达信号处理、频谱分析等应用中的一种基本的处理部件,它能满足波器对幅度和相位特性的严格要求,避免模拟乙波器所无法克服的电压漂移、温度漂移和噪声等问题。有限冲激响应(FIR)滤波器能在设计任意幅频特性的同时保证严格的线性相位特性。

目前FIR滤波器的实现方法有三种:利用单片通用数字滤波器集成电路、DSP器件和可编程逻辑器件实现。单片通用数字滤波器使用方便,但由于字长和阶数的规格较少,不能完全满足实际需要。使用DSP器件实现虽然简单,但由于程序顺序执行,执行速度必然不快。FPGA有着规整的内部逻辑阵列和丰富的连线资源,特别适合于数字信号处理任务,相对于串行运算为主导的通用DSP芯片来说,其并行性和可扩展性更好。但长期以来,FPGA一直被用于系统逻辑或时序控制上,很少有信号处理方面的应用,其原因主要是因为在FPGA中缺乏实现乘法运算的有效结构。现在这个问题得到了解决,使FPGA在数字信号处理方面有了长足的发展

图1

1 分布式运算原理

分布式算法(DA)早在1973年就已经被Croisier提出来了,但是直到FPGA出现以后,才被广泛地应用在FPGA中计算乘积和。

一个线性时不变网络的输出可以用下式表示:

=c[0]x[0]+c[1]x[1]+…+c[N-1]x[N-1]

假设系数c[n]是已知常数,x[n]是变量,在有符号DA系统中假设变量x[n]的表达式如下:

式中,xb[n]表示z[叫的第b位,而x[n]也就是x的第n次采样。于是,内积y可以表示为:

重新分别求和(也就是分布式算法的由来),其结果如下:

从(1)式可以发现,分布式算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现乘加运算的不同在于执行部分积运算的先后顺序不同。分布式算法在实现乘加功能时,是通过将各输入数据的每一对应位产生的部分积预先进行相加形成相应的部分积,然后再对各个部分积累加形成最终结果的,而传统算法是等到所有乘积已经产生之后再来相加完成乘加运算的。与传统串行算法相比,分布式算法可极大地减少硬件电路的规模,提高电路的执行速度。它的实现框图如图1(虚线为流水线寄存器)所示。

图2

2 用分布式原理实现FIR滤波器

2.1 串行方式

当系统对速度的要求不高时,可以采用串行的设计方法,即采用一个DA表、一个并行累加器和少量的寄存器就可以了。

在用LUT实现串行分布式算法的时候,假设系数为8位,则DA表的规模为2N×8位。可以看到如果抽头系数N过多,则DA表的规模将十分庞大。这是因为LUT的规模随着地址空间的变化(也就是N的增加)而呈指数增加。例如EPFl0K20包含1152个LC,而一个27×7位的表就需要394个LC。当N过大时,一个FPGA器件就不够用了。

为了减小规模,可以利用部分表计算,然后将结果相加。假定长度为LN的内积为:

将和分配到L个独立的N阶并行DA的LUT之中结果如下:

如图2所示,实现一个4N的DA设计需要3个次辅助加法器。表格的规模从一个2 N×B位的LUT降到4个2 N×B的位表。

如果再加上流水线寄存器,由于EPFl0K20每个LC后面都跟有一个寄存器,所以并没有增加电路规模,而速度却得到了提高。

2.2 并行方式

采用并行方式的好处是处理速度得到了提高。由于数据是并行输入,所以计算速度要比串行方式快,但它的代价是硬件规模更大了。下面举出全并行的例子。

设 sum[0]=c[0]x0+[0]+c[1]x0[1]+…+c[N-1]x0[N-1]

sum[B-1]=c[B-1]xB-1[0]+c[1]xB-1[1]+…c[N-1]+xB-1[N-1]

可将(1)式改写成如下形式

y=sum[0]+sum[1]2 1+sum[2] 2+…+sum[B-1]2 B-1  (2)

利用式(2)可得一种直观的加法器树,如图3所示。

虽然硬件规模加大了,但是如果把系数的个数限制在4个或8个,再加上流水线寄存器,这个代价还是值得的。而且每张表都是相同的,不用为每个采样都设计一张表,减小了设计量。

DA算法的主要特点,是巧妙地利用ROM查找表将固定系数的MAC运算转化为查表操作,其运算速度不随系数和输入数据位数的增加而降低,而且相对直接实现乘法器而言在硬件规模上得到了极大的改善。利用ALTERA的FLEXl0K实现的16阶8位系数的并行FIR滤波器,其时钟频率可以达到101MHz,而实现的16阶8位系数的串行FIR滤波器,其时钟频率可以达到63MHz,每9个时钟周期可完成一次计算。但是其系数是传统二进制的,造成了很大的冗余(对于用逐位相加法实现的乘法器,当系数有一位为零时不用相加,零位越多,冗余越大),而且查找表的大小随着滤波器阶数的增加成指数增加,虽然可以采用将大查找表分解为小查找表,但是无法从根本上解决这一问题,这些都是DA方法的缺点。后面将对FIR滤波器实现给出新的设计方法,进一步降低逻辑资源的消耗。

3 CSD码及最优化方法

一个整数X与另一整数

[1] [2]  下一页


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:基于FPGA流水线分布式算法的FIR滤波器的实现

  • 下一篇文章:基于FPGA的新型谐波分析仪设计
  • 返回上一页】【打 印】【关闭窗口
    中查找“基于FPGA实现FIR滤波器的研究”更多相关内容 5VAR论文频道
    中查找“基于FPGA实现FIR滤波器的研究”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››嵌入式系统的通信规约管理平台设计...
  • ››一种基于七号信令的局间话单采集系...
  • ››对于变频器的制动技术分析
  • ››电子文件管理元数据宏观结构多维分...
  • ››浅论卫星电视接收机的常见故障的检...
  • ››信息时代网络用户信息检索焦虑的心...
  • ››论GIS在高校房产管理中的实际应用
  • ››关于电力通信发展战略的思考 金李莎...
  • ››2G、3G切换精细化优化分析思路探讨...
  • ››光纤自动化生产的需求与时机
  • ››基于FPGA的直接数字频率合成器的设...
  • ››基于FPGA的LCD&VGA控制器设计
  • ››基于FPGA的直接数字频率合成技术设...
  • ››基于FPGA的智能误码测试仪
  • ››基于FPGA的总线型LVDS通信系统设计...
  • ››基于FPGA的核物理实验定标器的设计...
  • ››基于FPGA的电子稳像平台的研究
  • ››基于FPGA的高频时钟的分频和分配设...
  • ››基于FPGA/CPLD和USB技术的无损图像...
  • ››基于FPGA的USB2.0控制器设计
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .