"); //-->
摘 要: 给出了一种V-BLAST检测算法的FPGA实现方案,该算法基于Greville求伪逆的方法。设计主要考虑了流水线操作和并行度处理。算法在Xilinx公司的Vertex Ⅱ Pro系列FPGA中实现,在B3G TDD MIMO OFDM系统硬件平台上进行了验证,性能良好。
关键词: FPGA;V-BLAST;MIMO;流水线操作
MIMO(Multiple Input Multiple Output)技术利用多根天线,在不增加带宽和发送功率的情况下,可以成倍地提高信道容量。文献[1]证明,信道容量会随着天线数目的增加而线性增加。OFDM 技术能高效地利用频谱资源并有效地对抗频率选择性衰落。MIMO和OFDM的结合可以克服频率选择性衰落、增加系统容量、提高频谱利用率,成为4G中的关键技术之一。
V-BLAST(Vertical-Bell Laboratory Layered Space- Time)是Foschini等[2]提出的一种垂直分层空时码,它利用空间维度大大提高了传输速率,被广泛地应用于MIMO系统中。其检测算法也受到了国内外研究学者的关注[3]-[5]。 FPGA具有开发周期短、设计灵活等优点,将V-BLAST检测算法在FPGA中实现验证,成为未来移动通信实验系统采用的一种方式。
1 系统模型
图1给出了V-BLAST OFDM系统的原理框图(M、N分别表示发送和接收天线数,N≥M),包括信道编码、交织、调制、IFFT、FFT、信道估计、V-BLAST检测、解调、解交织、信道解码等功能模块。
假设向量a(k)=(a1(k),a2(k),…,aM(k))T表示OFDM符号第k个子载波的M维向量(k=0,1,…,N-1),则相应的N维接收信号向量可表示为:
其中,H(k)=(hij(k))N×M为第k个子载波上的N×M维的复信道矩阵,其中hij(k)代表第j个发送天线到第i个接收天线间的信道转移特性;n(k)=(n1(k),n2(k),…,nN(k))T为第k个子载波上的N维加性复高斯噪声向量,其均值为零。
V-BLAST检测算法是在接收端对接收信号进行处理以恢复发送信号。对应以上的系统模型,检测模块接收信道估计模块输出的信道信息H和用户信息r,根据公式(1)检测出发送信号a。
V-BLAST OFDM系统在每一个子载波上,都是一个窄带的V-BLAST系统,因此在每个子载波上可以应用标准的V-BLAST检测算法独立进行信号检测。
2 算法分析
算法所涉及的各符号含义如下:
Hj代表H的第j列;Bk=(HM、HM-1,…,HM-k+1)代表H的后k列的逆序排列;
代表将H的第k1,k2,…,ki列置零后得到的矩阵;行,即对应第i根发射天线的迫零向量;
H′代表H经过重新排列后得到的矩阵;(·)T表示矩阵的转置;(·)H表示矩阵的共扼转置;(·)+表示矩阵的Moore-Penrose伪逆;Q=(·)表示判决操作;
表示对矩阵(矩阵的列数为total_num)的列向量按列向量的范数降序排列,其中表示返回的排列结果;
给定的顺序进行排列。
2.1 算法描述
根据运算复杂度和性能的综合考虑,本文所设计实现的V-BLAST检测算法为文献[5]提出的基于Greville递归求伪逆和分层空时相结合的次优算法。算法首先对最强的信号解码,然后在接收到的信号中减去这个最强的信号,再对剩余信号中的最强信号解码,再减去这个信号,这样依次进行,直到所有的信号都被译出。具体步骤如下:
2.2 算法的实现分析
算法的实现主要包含以下三个方面:
(1)排序:通过乘加运算得到矩阵的列范数,然后根据列范数的大小进行排序得到矩阵H′。由于列范数需要与检测算法恢复的发送信息y同时输出给V-BLAST检测之后的软解调模块,因此排序过程中求得的列范数需要存储一定的时间。
(2)获取迫零向量:获取迫零向量是一个循环迭代的过程,且每次循环都具有不同的维数。由于最后一次循环求出的迫零向量需要最先给译码运算,因而为了配合时序,需要存储先计算出的迫零向量。当k等于M时,不需要计算。
(3)译码:译码过程需将计算出的M个y信号转换成排序之前的顺序,然后和列范数一同输出给系统的软解调模块。当k等于M时,
表1给出了算法在实现中的复杂度。
3 算法的实现设计
根据算法的特点,将实现设计分为5个功能模块:输入模块、输出模块、顶层控制模块、排序迫零模块和译码模块。由于算法较为复杂,运算较多,为达到速度的要求,在设计中采用流水线操作进行并行处理,将各功能模块再分为若干子功能模块,具体的功能模块框图如图2所示。
3.1 输入输出模块
输入输出模块是与系统其他功能模块的接口。输入模块接收信道估计给出的信道矩阵H和用户信息r,送入FIFO进行缓存。当接收一定数据量后,向顶层控制模块发出指示信号flag_start,等待FIFO的读使能信号。输出模块接收排序迫零模块输出的M个列范数和译码模块输出的M个y信号,对齐时序后输出给系统中的软解调模块。
3.2 排序迫零模块和译码模块
排序迫零模块和译码模块均包含若干子模块,分别完成公式(1)~公式(11)和公式(12)~公式(17)的运算。各子模块间的数据传递较多,将每个子模块设计成一个流水单元以便时序的控制与调整。图3为排序迫零模块中流水线操作的示意图。
系统一帧发送符号数据的数量及一个H矩阵对应的用户信息量r是根据系统帧结构设计的不同而不同。设H与r的数量对应关系为1: n,则译码模块的处理速度应为排序迫零模块的n倍,从而使得译码模块成为整个算法实现的瓶颈。为了达到处理速度的要求,排序迫零模块和译码模块分别采用不同长度的流水线单元和时钟频率,并根据流水线长度选择不同大小的计数器,用以标记流水线单元。
排序迫零模块和译码模块是检测算法的核心,集中了大量的运算。其中除法运算采用查表的方式可以提高运算速度,对加法器和乘法器的复用可以减少资源的利用。
3.3 顶层控制模块
检测算法较复杂,设计顶层控制模块便于控制各模块间的时序关系。输入模块发出指示信号flag_start后,顶层控制模块立即发出en_rd_h使能信号读取FIFO中的信道矩阵H,每次连续读取N×M个时钟周期,同时向排序迫零模块发出start_h信号,用以触发该模块的流水线操作。直到排序迫零模块输出第一组M个迫零向量后,顶层控制模块发出en_rd_r使能信号读取FIFO中的用户信息r,每次连续读取N个时钟周期,同时向译码模块发送start_r信号,用以触发此模块的流水线操作。译码模块将一组M个y信号检测完毕后,控制模块发出指示信号flag_out,通知输出模块一并输出列范数和检测信号y。图4为各控制信号的关系图。
4 仿真与验证
算法的实现首先要考虑每步数据定点运算的Q值(即小数位和整数位的位宽)。COSSAP平台上仿真了算法定点运算的性能,根据仿真结果确定算法实现各部分运算的Q值。图5给出了定点和浮点仿真的性能对比图。仿真结果表明,定点运算带来的性能损失很小。
基于以上部分提出实现设计方案。本文应用软件设计平台ISE 6.3,仿真工具ModelSim 6.0,采用Xilinx公司的Virtex-II Pro系列的XC2VP70 FPGA芯片实现了4发4收的V-BLAST检测算法。该系列的FPGA包含Block SelectRAM,18bit×18bit硬件乘法器等定制模块,对这些模块的利用可以减少片内逻辑资源的占用。
RTL级的仿真波形如图6。从左往右,第一、二个光标分别指示了排序迫零模块和译码模块的流水起始时间,第三个主光标指示了算法输出信号的起始时间。FPGA实现占用了10 136个slices,2个全局时钟,56个18bit×18bit硬件乘法器,39个Block SelectRAM。
该FPGA实现在B3G TDD MIMO OFDM系统中的验证,使该系统的峰值速率达到了122Mb/s,频谱利用率7.1(b/s)/Hz,具有较好的误码性能。
本文给出了基于Greville求伪逆方法的V-BLAST检测算法在FPGA中实现的设计方案,主要考虑了流水线操作和并行度处理。该方案对其他MIMO检测算法的FPGA实现具有一定的参考作用。对算法实现的各步定点运算的Q值进行了仿真确认。FPGA实现最后在B3G TDD MIMO OFDM系统硬件平台上进行验证,性能良好。
参考文献
[1] FOSCHINI G J,GANS M J.On limits of wireless communications in a fading environment using multiple antennas.Wireless Personal Communications,1998,6(3):311-335.
[2] WOLNIANSKY P W,FOSCHINI G J,GOLDEN G D,et al.V-BLAST:An architecture for realizing very high data rates over the rich-scattering wireless channel.Proc.ISSSE98,Pisa,Italy,1998,9.
[3] GOLDEN G D,FOSCHINI G J,VALENZUELA R A,et al.Detection algorithm and initial laboratory results using VBLAST space-time communication architecture.Electronics Letters,1999,35(7):14-16.
[4] LI Dong,CAI Li Yu,YANG Hong Wei.New iterative detection algorithm for V-BLAST,in Proc.VTC2004,Milan,Italy,2004,4(5):2444-2448.
[5] 陶小峰,俞追专,秦海燕,等.V-BLAST的次优译码[J].电子学报,2003,31(5):703-706.
[6] 李亚卓,王勇,张平.B3G/4G TDD试验平台框架及研究现状[J].移动通信,2006,(10):41-45.
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。