|
|||
![]() |
您现在的位置: 中国EDA技术网 >> 文章中心 >> 嵌入式系统 >> FPGA/ASIC技术 >> 文章正文 | 用户登录 新用户注册 |
|
|||||
| 基于流水线技术的并行高效FIR滤波器设计 | |||||
| 作者:刘 刚 林… 文章来源:电子技术应用 点击数: 更新时间:2004-11-23 | |||||
|
摘要:基于流水线技术,利用FPGA进行并行可重复配置高精度的FIR滤波器设计。使用VHDL可以很方便地改变滤波器的系数和阶数。在DSP中采用这种FIR滤波器的设计方法可以充分发挥FPGA的优势。 数字滤波器可以滤除多余的噪声,扩展信号频带,完成信号预调,改变信号的特定频谱分量,从而得到预期的结果。数字滤波器在DVB、无线通信等数字信号处理中有着广泛的应用。在数字信号处理中,传统滤波器通过高速乘法累加器实现,这种方法在下一个采样周期到来期间,只能进行有限操作,从而限制了带宽。现实中的信号都是以一定的序列进入处理器的,因此处理器在一个时钟周期内只能处理有限的位数,不能完全并行处理。基于并行流水线结构的FIR滤波器可以使笔者设计的64阶或者128阶滤波器与16阶滤波器的速度一样快,其显著特别是在算法的每一个阶段存取数据。FPGA结构使得以采样速率处理数字信号成为常数乘法器的理想载体,提高了整个系统的性能。由于设计要求的差异,如字长、各级输出的保留精度等不同,在整个设计过程中,各个环节也有所不同,这就需要根据不同的要求对数据进行不同的处理,如截断、扩展等,从而设计出既满足设计需要,又节省FPGA资源的电路。 数字滤波器主要通过乘法器、加法器和移位寄存器实现。串行处理方式在阶数较大时,处理速度较慢。而现代数字信号处理要求能够快速、实时处理数据,并行处理数据能够提高信号处理能力,其结构如图1所示。 在并行滤波器的设计中,每一个乘法器的一端输入数据,另一端为固定常数。对于常数乘法器,可以预先将常数的部分乘积结构存储起来,然后通过查表的方式实现两个数据的乘积。以16位输入、常数为14位的乘法器为例,给出其实现结构如图2所示。 对于无符号数来说,这是一种理想结构。但是在实际使用中,通常使用有符号数且常用补码的形式,因此需要对这种结构进行改进。一种改进方法是将输入的数据分开,即最高的几位作为有符号数处理,其它作为无符号数处理。第二种改进方法是将符号数经过补码/原码变换器变换成原码,然后,将原码作为无符号数处理,通过有符号数的符号位来控制加法器的加减。第三种改进方法是一种优化方法,即要用三个二进制补码变换器,处理输入的有符号数和滤波器的系数,这样可以避免使用有符号数的乘法和加法运算。具体的乘法累加器运算过程及结果如图3所示。其中,对应乘数高位和低位部分积p1(n)和p2(2)可以分别先垂直相加后水平相加,或者先水平相加后垂直相加,最后的结果是一样的。若采用后种方法,由于FIR滤波器的h(n)均为常数,得到部分积的矢量乘法运算就演变成了查表法,其中,S1(n)表示S(n)的最低有效,p1表示最低有效位部分积之和。 采用流水线技术和加法器的资源共享技术可以更好地提高常数乘法器的优越性。16比特输入、14比特常数的这种方法的常数乘法器的结构如图4所示。 3 FIR滤波器的FPGA实现 按照第2节所描述的第三种优化方法实现常数乘法器,乘法器输出以后按照图4所示的滤波器结构,通过流水线技术的加法器可以实现高效的滤波器。值得注意的是:在乘法器输出的时候需要对输出的数据进行一位扩展,可以避免加法器的溢出问题。 为了有效地利用资源,先通过多路复用器将输入的序列复选出来,这样所有常数乘法器可以共用一个多路复用器,然后通过ROM查表方法实现常数乘法器。优化后的原理结构如5所示。 在数字滤波器设计时,首先根据滤波器的频率特性,选定滤波器的长度和每一节的系数。就目前的设计手段而言,对节数和系数的计算可以采用等波动REMEZ逼近算法编程计算。但是,目前最好的方法还是使用使用的EDA软件来完成。在选择了设计方法和设计要求后,计算出各节系数,并以图形的直观形式显示幅频、相频、冲激响应和零极点图。 图6是一个采用等波动设计方法生成的均方根升余弦(RRC)FIR滤波器的频域特性。其中,滚降系数为0.35,输入数据率是2.048MHz。 由于在数字滤波器中,各节系数字长有限,所以还要对计算出来的实系数进行量化处理,即浮点数向定点数转换。系数量化后的频域特性如图7所示,量化字长为12。 笔者采用流水线技术,根据得到的滤波器系数用VHDL语言编写了滤波器程序。为了充分利用FPGA中四输入查找表的电路结构,一般采用每8节为滤波器的一个基本单元。设计中通过采用流水线技术提高速度,对于更多阶数滤波器的设计,可以采用扩展的方法来实现。仿真结果如图8所示。 |
|||||
| 文章录入:方丈 责任编辑:方丈 | |||||
| 【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | |||||
| 最新热点 | 最新推荐 | 相关文章 | ||
| 采用FPGA的低功耗系统设计 用TMS320LF2407和FPGA实现电 改进的基TMS320DM642的疲劳检 基于DSP与双目CMOS摄像头的数 跳频电台中央控制单元及跳频 基于WISHBONE总线的FLASH闪存 MPEG-2编码复用器中的FPGA逻 用FPGA在数字电视系统中进行 用FPGA技术实现模拟雷达信号 采用FPGA协处理器优化汽车信 |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| | 欢迎投稿 | 网站简介 | 网站地图 | 广告服务 |联系我们 | 友情链接 | 版权申明 | | |
| 本站所载文章力求原创,部分文章来源网上,转载本站文章均注明出处,我们鼓励原创,欢迎投稿 假如我们发布的某些文章侵犯了您的权益,请联系我们,我们将在最短的时间内删除相关文章。 同时我们提供了一个电子爱好者自由交流的平台,欢迎大家参与讨论。点击进入 |
|