基于FPGA的自适应均衡器算法实现
摘要:近年来,自适应均衡技术在通信系统中的应用日益广泛,利用自适应均衡技术在多径环境中可以有效地提高数字接收机的性能。为了适应宽带数字接收机的高速率特点,本文阐述了自适应均衡器的原理并对其进行改进。最后使用FPGA芯片和Verilog HDL设计实现了自适应均衡器并仿真验证了新方法的有效性。
信道均衡技术(Channel equalization)是指为了提高衰落信道中的通信系统的传输性能而采取的一种抗衰落措施。它主要是减小信道的多径时延带来的码间串扰(ISI)问题。其原理是对信道或整个传输系统特性进行补偿,从而达到系统传输的要求。在实际的通信系统中,信道的特性是未知的并且是不理想的,传统的均衡器无法满足系统的要求,自适应均衡器直接从传输的信号中,根据某种算法不断调整系统中滤波器的增益,来适应信道的随机变化,从而有更好的失真补偿性能,使均衡器总是保持最佳的工作状态。FPGA以其处理速度快、开发周期短、可重复修改、开发工具智能、支持并行处理等优点成为现代通信领域硬件设计的首选方式之一。基于FPGA实现的自适应均衡器能够更好地适应当前通信的发展要求,具有更广阔的应用前景。
最小均方误差算法(LMS)是较常用的一种实现自适应均衡器的算法,也是FPGA实现自适应均衡器的最理想的算法,所以本文选择使用LMS算法设计均衡器。本文所设计的自适应均衡器是宽带数字接收机的一部分,为了满足宽带系统的高速率,实时性的特点,在算法设计,对LMS算法进行一定的改进。
1 LMS算法基本原理
LMS算法是基于最小均方差准则的维纳滤波器和最速下降法(method of steepest descent)提出的,其公式如下:
y(n)=uT(n)w(n) (1)
e(n)=d(n)-y(n) (2)
w(n+1)=w(n)+2μe(n)u(n) (3)
d(n)为期望输入信号,e(n)为误差,其中μ为步长因子,用以控制收敛速度与稳定性,LMS算法收敛的条件为:0
LMS算法的基本步骤如下:
步骤1,初始化w(0)=0,n=0;选择μ;
步骤2,根据式(2)(3)计算误差e(n)和w(n+1);
步骤3,若误差不满足要求,更新n=n+1,重复步骤2,若满足要求则停止迭代。
下图为最小均方误差算法的原理框图。
![](../img/eep/emb/emb-45399ivney11c0sy.jpg)
2 LMS算法改进
在宽带系统中,数据量大,速率快,因此对均衡器的处理速度要求高,签于此本文把变步长LMS算法和符号LMS算法结合在一起,以满足上述要求。
步长因子μ控制着算法的收敛速度和稳定性,当μ较大时收敛速度快,稳定性较差,μ较小,稳定性好,收敛速度慢。变步长LMS算法可以兼顾收敛速度和稳定性两个方面。一种变步长算法的公式为:
μ(n)=β[1-exp(-α|e(n)|2)] (4)
α、β为参数。由上式看到随着误差的减小,步长因子也在减小,稳定性增加。
公式(3)中,我们看到,每次迭代都会使用乘法器,运算量较大。符号LMS算法对公式(3)中的误差e(n)进行缩放,每次迭代可减少使用一次乘法器,公式如下:
![](../img/eep/emb/emb-45400xfscsey2k4a.jpg)
由公式(5)可以看出,符号LMS算法会损失一定的精度。变步长LMS算法可以改变步长以获得快的收敛速度,结合符号LMS算法,可以大量减少运算量,提高系统的效率。本文对两种算法的混合算法进行matlab仿真,选取64阶均衡器,数据的训练长度为1 000,跟踪变步长计算的参数选择α=4,β=1/128。下面对两种方法混合算法用matlab仿真,并和传统算法比较,如图2所示。
![](../img/eep/emb/emb-454011lk1hlbpkj1.jpg)
为了便于FPGA实现,按照变步长LMS算法思想,本文不在对变步长LMS算法中步长μ进行跟踪计算,而是指定步长收敛之前为0.02,收敛之后步长0.15,其他参数不变,使用Matlab仿真,如图3所示。
![](../img/eep/emb/emb-454021ru02j0pfgw.jpg)
从图中我们看到混合算法的误差比传统算法有所增大,但是在迭代300次后趋于稳定,比传统算法减少200次,因此混合算法更能满足实时性的要求。
图3中,由于收敛之前步长且不随误差的减小而减小(迭代次数为200),所以收敛速度更快;收敛之后步长较小,平均的稳态误差比混合算法有所减小。
3 基于FPGA自适应均衡器的实现
由仿真可知,我们提出的混合算法可以满足设计自适应均衡器的要求。本章将基于此算法的用FPGA实现自适应均衡器。
采用FPGA设计LMS自适应均衡器的结构图如图4所示。它主要分为FIR滤波器模块、误差计算模块、权值更新模块和状态分配模块4个单元。
![](../img/eep/emb/emb-45403arkmut13jbb.jpg)
文中为了方便实现,FIR滤波器模块实现18阶的FIR滤波。误差计算模块中的基准信号d(k)事先可存在ROM里。权值更新部分实现FIR滤波器系数的计算与调整,设定收敛之前μ=2-4,收敛之后μ=2-6。
状态分配模块功能包括初始化各模块,它产生控制信号、控制实现各个模块完成特定功能;协调各个模块
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)