2.1 均衡器结构设计及功能描述
多模盲均衡器结构见图2。
(1)信源模块:利用线性反馈移位寄存器产生伪随机序列,序列的特征多项式采用f(x)=1+x3+x7。经过串/并变换后,将每一路的4个比特映射为对应的电平序列,形成16QAM的同相和正交信号。
(2)滤波器模块:滤波器模块包括信道滤波器和均衡器,信道冲激响应和均衡器权系数均采用FIR滤波器结构。为了节省硬件资源,FIR滤波器采用串行结构实现。信道滤波器采用系数固定的FIR滤波器,均衡器采用系数可调的FIR滤波器。
(3)判决模块:判决装置对均衡器的输出进行决策,利用最小距离准则,在16QAM星座图的字符集中找到与均衡器输出最接近的点作为当前信号点的判决值。
(4)误差计算及系数更新模块:迭代误差的计算依据式(12)进行,系数的更新则采用式(2)的最陡下降法。
2.2 数据格式及截位
在FPGA中,信号和数字用二进制定点有符号数表示,定点值采用补码表示法[5]。算法中涉及的信号和变量的数据格式如表1所示。
算法执行过程中,信源信号s(k)、信道系数h(k)、信道输出x(k)、均衡器输出y(k)、判决输出d(k)均用8 bit字长表示;误差信号e(k)、均衡器系数w(k)、步长因子则用16 bit字长表示;均方误差mse(k)用32 bit字长表示。
在有限字长的情况下,加法运算和乘法运算会增加操作数的位宽,为了节约硬件资源,对乘法运算后的数据进行有效截断。由于信号能量、信道系数均进行了归一化,运算过程中没有出现溢出现象,保证了运算结果的准确性。
3 MATLAB仿真及FPGA实现
针对16QAM系统对算法进行性能仿真和分析。均衡器的抽头数为7,中心抽头权值初始化为1,其余抽头权值初始化为零。卫星信道的信道参数为:幅频响应满足奈奎斯特升余弦特性,群时延失真为2.25个码元宽度,信道长度为6,FIR系数为:
图3示出三种算法收敛速度比较,信道信噪比为25 dB,曲线通过100次独立的蒙特卡洛夫仿真获得。从图中可见,CMA的稳态误差为-6 dB左右,MCMA的稳态误差为-12 dB左右,而多模算法的稳态误差达到了-21 dB,相对于前两种算法,其优势非常明显。三种算法的迭代速度均为4 000个码元左右。
图4(a)和4(b)分别由Matlab仿真和modelsim仿真得到,FPGA的时钟周期为50 MHz。图中显示的是多模盲均衡算法前100个码元均方误差的迭代情况。从图中可见,二者的结果一致,表明了FPGA设计的正确性。
图5中是均衡器收敛后的一段波形图。四条波形曲线由上到下依次是发送码元、信道输出、均衡器输出和判决装置输出的同相分量。信号经过信道后,产生了严重的畸变,即码间干扰;经过均衡器后,码元之间的干扰被消除,与发送码元波形非常接近;判决装置依据最小距离准则对均衡器输出进行判决,得到了正确的码元输出。
本文提出一种基于点域判决的多模盲均衡算法,并给出了该均衡器的FPGA设计和实现方案。多模盲均衡器和CMA均衡器相比,稳态误差提高了约15 dB,与MCMA均衡器相比,稳态误差提高了约9 dB。均衡器收敛后,能够克服信号的幅度失真和相位失真,正确恢复发送端的信息。