重新分别求和(也就是分布">   重新分别求和(也就是分布" />
基于fpga实现fir滤波器的研究

基于fpga实现fir滤波器的研究

ID:24764445

大小:54.00 KB

页数:6页

时间:2018-11-16

基于fpga实现fir滤波器的研究_第1页
基于fpga实现fir滤波器的研究_第2页
基于fpga实现fir滤波器的研究_第3页
基于fpga实现fir滤波器的研究_第4页
基于fpga实现fir滤波器的研究_第5页
资源描述:

《基于fpga实现fir滤波器的研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于FPGA实现FIR滤波器的研究

2、第1内容加载中...  假设系数c[n]是已知常数,x[n]是变量,在有符号DA系统中假设变量x[n]的表达式如下:  500)this.style.ouseg(this)">  重新分别求和(也就是分布式算法的由来),其结果如下:  500)this.style.ouseg(this)">  从(1)式可以发现,分布式算法是一种以实现乘加运算为目的的运算方法。它与传统算法实现乘加运算的不同在于执行部分积运算的先后顺序不同。分布式算法在实现乘加功能时,是通过将各输入数据的每一对

3、应位产生的部分积预先进行相加形成相应的部分积,然后再对各个部分积累加形成最终结果的,而传统算法是等到所有乘积已经产生之后再来相加完成乘加运算的。与传统串行算法相比,分布式算法可极大地减少硬件电路的规模,提高电路的执行速度。它的实现框图如图1(虚线为流水线寄存器)所示。500)this.style.ouseg(this)">2用分布式原理实现FIR滤波器2.1串行方式  当系统对速度的要求不高时,可以采用串行的设计方法,即采用一个DA表、一个并行累加器和少量的寄存器就可以了。  在用LUT实现串行分布式算法的时候,

4、假设系数为8位,则DA表的规模为2N×8位。可以看到如果抽头系数N过多,则DA表的规模将十分庞大。这是因为LUT的规模随着地址空间的变化(也就是N的增加)而呈指数增加。例如EPF10K20包含1152个LC,而一个27×7位的表就需要394个LC[2]。当N过大时,一个FPGA器件就不够用了。  为了减小规模,可以利用部分表计算,然后将结果相加。假定长度为LN的内积为:  500)this.style.ouseg(this)">  将和分配到L个独立的N阶并行DA的LUT之中,结果如下:  500)this.st

5、yle.ouseg(this)">  如图2所示,实现一个4N的DA设计需要3个次辅助加法器。表格的规模从一个24N×B位的LUT降到4个2N×B的位表。  如果再加上流水线寄存器,由于EPF10K20每个LC后面都跟有一个寄存器,所以并没有增加电路规模,而速度却得到了提高。500)this.style.ouseg(this)">2.2并行方式  采用并行方式的好处是处理速度得到了提高。由于数据是并行输入,所以计算速度要比串行方式快,但它的代价是硬件规模更大了。下面举出全并行的例子。设500)this.style

6、.ouseg(this)">  可将(1)式改写成如下形式:  500)this.style.ouseg(this)">  利用式(2)可得一种直观的加法器树,如图3所示。500)this.style.ouseg(this)">  虽然硬件规模加大了,但是如果把系数的个数限制在4个或8个,再加上流水线寄存器,这个代价还是值得的。而且每张表都是相同的,不用为每个采样都设计一张表,减小了设计量。  DA算法的主要特点是巧妙地利用ROM查找表将固定系数的MAC运算转化为查表操作,其运算速度不随系数和输入数据位数的增加而

7、降低,而且相对直接实现乘法器而言在硬件规模上得到了极大的改善。利用ALTERA的FLEX10K实现的16阶8位系数的并行FIR滤波器,其时钟频率可以达到101MHz,而实现的16阶8位系数的串行FIR滤波器,其时钟频率可以达到63MHz,每9个时钟周期可完成一次计算。但是其系数是传统二进制的,造成了很大的冗余(对于用逐位相加法实现的乘法器,当系数有一位为零时不用相加,零位越多,冗余越大),而且查找表的大小随着滤波器阶数的增加成指数增加,虽然可以采用将大查找表分解为小查找表,但是无法从根本上解决这一问题?熏这些都是

8、DA方法的缺点。后面将对FIR滤波器实现给出新的设计方法,进一步降低逻辑资源的消耗。3CSD码及最优化方法  一个整数X与另一整数Y的乘积的二进制表示可以写成:  500)this.style.ouseg(this)">  对于标准二进制,由于sn=0时的对应项Y2n并不参与累加运算,所以可以用另一种表示方法使非零元素的数量降低,从而使加法器的数目减少,降低硬件规模。有符号数字量(SD)有三重值{0,-1,+1},如果任意两个非零位均不相邻,即为标准有符号数字量(CSD)。例如:  500)this.style.

9、ouseg(this)">  可以证明CSD表示对给定数是唯一的并且是最少非零位的[3]。CSD表示相对于标准二进制表示的改进在于引入了负的符号位,从而降低了非零位个数,大大降低了逻辑资源的占用(大约平均降低33%的逻辑资源)[2]。  当用硬件实现时,常常限制系数位数,即每个系数与N个正(负)2的幂次之和近似。标准二进制数在整数轴上是紧密和均匀分布的,而CSD码是非均匀

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。