微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于FPGA的可配置判决反馈均衡器的设计

基于FPGA的可配置判决反馈均衡器的设计

时间:06-05 来源:互联网 点击:

1. 引言

在移动通信和高速无线数据通信中,多径效应和信道带宽的有限性以及信道特性的不完善性导致数据传输时不可避免的产生码间干扰,成为影响通信质量的主要因素,而信道的均衡技术可以消除码间干扰和噪声,并减少误码率。其中判决反馈均衡器(DFE)是一种非常有效且应用广泛得对付多径干扰得措施。目前DFE大致有以下几种实现方法:1)采用多片通用数字滤波器集成电路级联方式,但同时由与多片带来的体积和功耗的增加,在实际中运用不多。2)采用DSP来实现,如Motorola SC140就是单片的可编程均衡器,采用软件来实现算法,但由于受器件功能限制,在实时性要求极高的场合中受到限制。3)采用可编程逻辑器件实现,随着可编程逻辑器件逻辑门数量和速度的不断增加,在单片上实现系统集成已经成为可能,而且FPGA特别适合实现可配置的判决反馈均衡器。

  2.判决反馈均衡器的基本原理

判决反馈均衡器(DFE)是一种非线性均衡器。如图1所示,由前馈部分(由FIR滤波器组成)和反馈部分(由IIR滤波器组成)组成,前馈部分可以抵消在时间上超前的码间干扰和在时间是滞后的码间干扰(由中心抽头的位置决定),反馈部分可以抵消在时间上滞后的码间干扰。

 

均衡器的输出为:

式中M,N分别为前馈滤波器和反馈滤波器的长度。抽头系数更新采用DD_LMS(direct decision least mean square)和CMA(constant modulus algorithm)算法,CMA是一种盲自适应算法,即不需要训练序列,可以让均衡器收敛到较低的MSE水平,但由于CMA的误差量较大,从而步长较小,CMA的跟踪能力有限,因而,在DFE设计中,CMA常常作为均衡器的初始化算法,即对多径信号的时延和幅度进行粗略估计。而DD_LMS算法相对于CMA有更低的MSE水平,并且DD_LMS具有较低的误差量,从而步长更大,跟踪能力强,因而,在DFE设计中,DD_LMS常常作为均衡器稳定后的自适应算法。

  3.设计思想

由于我们设计的DFE是一个比较复杂的系统,我们在设计中根据功能块自下而上分层次进行,这样可以节省设计时间,减少设计输入的错误,消除重复的电路元件,并能简化校验于进行修改,在实际设计中,按照模块的大小和功能分成三部分:如图二所示,PART I包括接口和DFE均衡器,PART II包括判决器和误差控制函数运算模块,PART III为抽头系数调整部分。

出于灵活性的考虑,系统采用类似于集散控制而非集中控制的方案,也就是系统没有一个中心控制器,这样可以保持三个部分的相对独立,若要改变设计,比如改变算法,只需要改变误差控制函数运算模块即可。各模块的恰当分割大大增加了系统的灵活性。

  4.各模块的FPGA实现

4.1 接口模块

本系统并未涉及具体的A/D器件,仅根据常用的A/D器件的工作信号设计系统接口模块。

在转换完成后,一般A/D器件输出一个低电平信号作为A/D的允许信号。该信号在系统中为输入信号ad_end,接口模块系统时钟始终监控ad_end的电平变化,当检测到ad_end的低电平时,接口模块产生一个“开始”脉冲作为允许信号,允许DFE的延迟环节接收输入数据,并开始移位。其实现如图三所示。


4.2 DFE模块

均衡器分为FFE(Feedforward Equalizer)和FBE(FeedBackward Equalizer)两部分,结构类似,前馈滤波器为32阶的FIR滤波器,反馈滤波器为64阶的IIR滤波器,滤波器系数宽度都为16位,精度为15位,输入数据宽度为12位,精度为10位,判决器输出数据为2位,精度为0位,该模块主要由输入移位寄存器和卷积模块组成。

(1)输入移位寄存器

对于前馈滤波器,由于共有32阶,因此输入寄存器的长度为32。定义一个32×12的二维数组FFF[32][12],复位信号有效时,FFF清零。复位信号无效,而输入使能信号有效时,每来一个时钟上升沿,就从输入端进入一个数据,上一时刻的数据分别前移一位,最前面的数据被第二个数据覆盖。

对于反馈滤波器,由于有64阶,因此输入寄存器的长度为64,定义一个64×12的二维数组FFF[64][12],数据输入方式和前馈滤波器相同。

(2)卷积部分的实现

对于前馈滤波器,输入数据宽度是12位,精度为10位,滤波器系数宽度为16位,精度为15位,输入数据为带符号数,数据的高位为符号位,为实现相乘运算,设计12×16位的乘法器,分别从前馈输入移位寄存器和前馈系数移位寄存器中取出数据和系数作为12×16的输入,这样32个乘法器就分别得到32个乘积,乘积的宽度为11+15,精度为10和15的数据相乘后得到的数据精度为25位,因此结果的小数点在第25位和26位之间。为减少系统的硬件开销,把乘法器的输出结果进行合理的截取,取精度为15位,

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top