全文 2.2 系统验证仿真
本系统采用Xilinx公司Virtex-2实验板进行仿真验证,该实验板采用的是XC2VP30芯片,它有30 816个逻辑单元,136个18位乘法器,2 448 KbRAM,资源丰富。开发软件为该公司的集成开发软件平台ISE 9.2,HDL语言采用Verilog,使用Matlab辅助ISE完成FPGA设计的方法。通过实验板上的RS 232串口与PC机进行通信,用Matlab从计算机中传输数据到FPGA芯片中,运算后再通过串口回传均衡后的信号数据到Matlab中仿真验证星座图,以判断该均衡器的效果。
2.2.1 均衡过程
CIR中使用迭代算法避免了并行大向量和大矩阵的运算,而是分步运算。所以对输入信号进行均衡,首先要进行并串变换,但是不需要变成真正的串行信号。当Q=2时,实际上对需要均衡的输入信号Y(i)每次取出5个数据,用yk表示,暂且将这样的变换叫作分组并串变换(P/GS),然后均衡矩阵ek与yk分组完成乘法运算得到一个zk,zk是一个数据不是向量,最后进行串并变换就得到均衡后的信号向量Z(i)。整个均衡的过程如图5所示。
2.2.2 仿真结果
实现该算法的重要一步是所设计的乘加器可以正常使用,并且实时性好。对其进行仿真如图6所示,可以发现当clk发生上升沿跳变时进行计算,图中信号(a,b)表示输入的数据信号;fcl表示相乘的结果;c表示进行乘加以后的运算结果,其计算准确,基本上没有延迟。
ISE中设计的传输模块实现波特率为19 200 b/s的串口通信控制器,把数据通过RS 232完成FPGA与PC机的双向通信。把均衡后的信号Z(i)传回Matlab中,采用QPSK的星座图进行分析,选择子载波的数目N=128,循环前缀CP的长度为8,并且在认为信噪比被准确估计的情况下均衡的结果,如图7所示。
由此星座图可以看出,在均衡前接收到的信号因为多普勒频移和噪声的影响,偏离星座点向周围发散,使用FPGA中均衡以后传回的数据基本没有发散现象。
3 结语
在ISE软件平台上使用Verilog语言实现了一种基于时变OFDM系统的低复杂度MMSE均衡器算法。在Xilinx公司Virtex-2实验板(XC2V930芯片)上对其进行验证,基本达到该算法在Matlab上仿真的均衡效果。但是由于浮点数计算量太大,选用定点数对其进行截取,还是有一定的局限性,在进行大量数据的运算中还是会有些数据不太准确,造成整体的误码率效果不是太好,故还需要进一步改进算法和FPGA的实现方法,以期达到更好的均衡效果。