基于FPGA的高速自适应滤波器的实现

时间:2011-09-02来源:网络

现代通信信号处理发展到3G、4G时代后,每秒上百兆比特处理速度的要求对于自适应处理技术是一个极大的挑战。使用具有高度并行结构的FPGA实现自适应算法以及完成相应的调整和优化,相比于在DSP芯片上的算法实现可以达到更高的运行速度。本文分析了自适应LMS算法及其在FPGA上的实现,并进行算法结构的改进优化,利用DSP Builder在Altera DE2-70平台的FPGA芯片上实现相应自适应算法并下载到目标板上进行板级测试。
1 自适应LMS算法[1-2]
自适应滤波器的特点在于滤波器参数可以自动地根据某种准则调整到相应的最优滤波情况。其基本框图如图1所示。

 图中,X(n)为输入信号,y(n)为滤波信号,d(n)为期望信号,e(n)为误差信号,用来调整自适应滤波权系数。自适应滤波函数H(z)的滤波参系数是通过一定的自适应算法,根据误差信号e(n)进行自动调整,目的是使得误差e(n)的模值越来越小。
自适应LMS算法表述如下:

2 算法的仿真和FPGA实现
本设计使用的工具DSP Builder是Altera公司推出的基于Altera FPGA芯片的系统级(算法级)设计工具,它架构在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势[3]。它依赖于Matlab/Simulink进行建模和仿真,可以把建模设计文件转换为硬件描述语言文件。
考虑横向LMS算法的FPGA实现时,有两种拓扑结构可以选择。一种是直接型FIR结构,另一种是转置型FIR结构。从算法效果上来说,这两种结构是一致的,但是转置型结构的滤波部分的关键路径会更短,能够综合出更高主频的电路[4]。故在Simulink中利用DSP Builder采用转置型LMS结构(Transpose Form-LMS)进行建模,模型参数为8阶16位定点格式。
对于收敛步长因子的选取采用二进制移位的方式,只改变数据的连线,不会增加系统资源消耗和计算时间消耗。这里将迭代处理部分左移动10位,即收敛步长因子为2-10,约为0.001。Simulink中,仿真信号为模值等于1的正弦波叠加方差为0.01的高斯白噪声,建立自适应噪声对消模型,滤波情况如图2所示。

利用Signal Compiler工具将模型转换成硬件描述语言。用Quartus对转换后的HDL进行综合、布线布局,得到52.02 MHz(19.223 ns)的系统频率表现。对EP2C70-F896C6芯片上单个乘法器进行测试,得到一个乘法运算需要的时间滞后为13.8 ns。考虑上面的LMS算法,一次迭代过程至少消耗28 ns以上的时间。这说明,该LMS系统只能运行在35.7 MHz(28 ns)以下。如果频率超过35.7 MHz,虽不会造成器件时序违规,但在运行时序上就不会满足标准LMS算法。
3 算法的改进和FPGA实现
3.1 驰豫超前流水线优化

通过驰豫超前流水线技术改进的TFLMS算法称为TFDLMS(TF-Delay-LMS)算法,改进的算法结构如下[4]:

改进结构的特点是,在式(6)权系数更新中,误差与输入都不使用当前时刻的数据,而是采用过去的数据来驰豫近似计算。式(5)和式(6)在这种情况下可以同时进行流水计算,斩断了原先串行的关键路径,提高了效率。对驰豫寄存器m的个数需要合理的选取,若m太大,则对原系统影响较大;若太小则不易后续时序重构的优化,这里取m=4进行Matlab仿真。仿真结果如图3所示。

如图3所示,TFDLMS算法在收敛初期由于误差e随着滤波的进行改变一般比较大,所以在收敛过程中的性能会稍次于TFLMS算法。在稳态的时候,由于误差e在此刻一般比较小,所以近似手段对稳态的影响会比较小。考虑到改进后TFDLMS的高度并行的处理结构,在收敛以及稳态表现上的微小影响的代价是值得的。
在Simulink中建模,将TFDLMS模型转换为HDL,在Quartus中综合布线布局,得到122.79 MHz的频率表现。由于TFDLMS采用驰豫流水计算,已经是近似计算,因此无需考虑标准LMS算法的严格串行计算时间问题,此时的系统工作频率可以认为是采样吞吐频率。显然,改进后的算法结构系统吞吐频率有很大的提高。
3.2 时序重构优化
时序重构又称重定时(Retiming),是一种在保持系统功能不变的前提下改变系统延迟数目和分布的方法[5]。时序重构的映射等式定义为:

1 2

关键词: FPGA 自适应滤波器

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版