TD-LTE系统中基于FPGA的解调与解扰的仿真和实现*
2013-12-07何登平江曹勇李小文步清明
何登平,江曹勇,李小文,步清明
(重庆邮电大学 重庆市移动通信技术重点实验室,重庆 400065)
LTE系统将最大系统带宽从5 MHz扩展到20 MHz,能够在20 MHz带宽内实现50 Mb/s上行瞬间峰值速率和100 Mb/s下行瞬间峰值速率[1]。
为了提高数据的传输速率和系统的吞吐量,采用正交振幅调制技术[2],在 LTE系统中主要有 QPSK、16QAM、64QAM三种调制方案。在解调与解扰模块之后要进行解信道交织,从而得到数据信息、ACK信息、RI信息和CQI信息[3]。之后就要对各个信息进行译码。为了保证译码的可靠行,在解调时使用软解调的方式,采用一种低复杂度的max-log-map算法进行解调。最后再进行解扰,从而能够满足LTE系统对译码性能的要求,使译码的数据更加可靠。
FPGA芯片内部有丰富的LUT资源和大量的固核资源,其处理过程是并行的,在使用FPGA进行解调与解扰时能够充分发挥其内在的优势。在Virtex-6芯片进行板级验证,对结果进行分析可知,在FPGA中对解调与解扰的处理速度更快,可靠性更高。
1 解调与解扰算法简介
1.1 解调以及max-lop-map算法
在LTE系统中,为了提高系统的整体性能,在接收端采用软解调的方式,即解调输出的软信息是似然比,软解调算法主要是采用max-log-map算法[4]。
设调制星座图上M=22n个星座点,调制以后的复值符号w=wI+wQj,经过信道后,在接收端输入的复值符号w对应的软信息为λ1,wIλ1,wQ,… ,λn,wIλn,wQ,其中λi,wIλi,wQ为输入 bi,Ibi,Q对应的后验概率比,软信息由以下公式决定:
其中,n与调制方式有关系,n∈(2,4,6)分别对应于 PUSCH信道的QPSK、16QAM、64QAM三种调制。由输入比特和调制符号的对应关系以及高斯信道的特性,从式(1)可以进一步推导出下式:
由于式(2)在工程中实现复杂度太高,因此运用如下近似函数(也就是把对数函数用max函数来代替):
根据式(3)可以把式(2)简化为:
(1)QPSK:
1.2 解扰过程分析
在TD_LET各信道中,解扰过程本质上是再进行一次加扰。解扰过程的主要任务是生成伪随机序列(Gold序列)。各个信道产生的伪随机序列并不相同。输出的伪随机序列为:c(n)=x1(n+Nc)+x2(n+Nc),其中 x1,x2分别为:
其中,Nc=1 600;第一个m序列的初始化为x1(0)=1,x1(n)=0,n=1,2,…,30;第二个m序列的初始化为2i,各个信道主要区别是cinit的初始化不一样,其中上行共享信道是无线网络临时标示,ns是子帧号,NcellID是小区ID号。产生出伪随机序列之后,再对伪随机序列的数据和解调以后的数据进行解扰过程。
2 解调与解扰在FPGA中的实现
由于解调与解扰的数据来自于解传输预编码之后的数据,所以在实现时,解完预编码之后才能进行解调和解扰。在PUSCH信道中一个子帧含有14个OFDM符号,其中本地参考信号要占用2个OFDM符号,由于本地参考信号不参与解调与解扰过程,所以对一个子帧只需要做12次解调与解扰。解预编码模块以后要给解调模块一个标志位,作为解调模块的开始;同样,对于解调模块在做完解调以后也要给解扰模块一个标志位,作为解扰模块的开始。这样,各个模块才能协调统一地完成解调与解扰过程。同时,也能够体现FPGA的并行处理的过程,上面的流程看似是顺序的过程,实际上是并行处理的过程,因为要做12个OFDM符号,在每次处理解扰的过程中,都可以同时处理下一个OFDM符号的解调过程。因此基于FPGA实现时速度能够得到极大的提高,更能够满足TD_LTE系统性能的要求。
本文针对上行共享信道QPSK的解调进行分析,对16QAM以及64QAM的处理过程相类似。使用软解调的方式,采用max-lop-map算法,由于在FPGA中处理的数据都是经过量化的,所以预编码的输出都是32 bit的数据,其中高16位为数据的实部,低16位为数据的虚部。QPSK的max-log-map表达式如式(5)所示。其中在解调模块中d要进行Q15的量化。然后分别对数据的实部和虚部同时乘以4d,在做乘法时使用FPGA内部的固核DSP48乘法器,同时对于进入乘法器的两路数据和输入数据都要缓存一个时钟周期,从而使数据的可靠性和稳定性得到保证。在FPGA中实现乘以-1是把DSP48输出的数据进行取反加一。对每个数据的实部和虚部都是同时进行乘法,这样做处理速度也能够提高。处理完以后把实部和虚部分开存储在一个深度为2 400、位宽为16 bit的双端口RAM中。等到一个OFDM符号处理完成以后就给解扰模块一个标志位,作为解扰模块的开始。
解扰模块也是针对上行共享信道进行分析,其他信道的解扰过程相类似。在解扰模块实现中,首先产生伪随机序列,根据高层配置的子帧号、小区ID等信息,再由上面的递推公式(8)和(9),一直递推到 x1(1 600),x2(1 600),从而可以求得 c(0);再依次递推,求得 c(0),c(1),…,c(28 799)。把这些伪随机序列数据存储在一个深度为28 800、位宽为1 bit的RAM中,在递推算法中每次都能够递推出32个伪随机数。这样随机序列产生的速度也很快,从而保证了解扰的处理速度。每次要做解扰时都可以从这个RAM中取出数据。同时,在收到解调模块的标志位时就开始进行解扰过程,其本质也就是根据伪随机序列再进行一次加扰,在c(i)为1时就对解调模块的数据进行取反加一,在c(i)为0时使解扰的数据保持不变。在整个解调与解扰设计过程中每个OFDM符号都要进行解扰,所以每次做完解调与解扰后的数据都放在一个RAM中,从而使设计更加模块化,且更加灵活,对于代码的维护和不同芯片之间的移植也更加方便。图1为解调解扰模块设计总体框架图。
3 FPGA仿真与实现结果分析
图2、图3分别是解调模块Modelsim仿真图和基于Virtex-6板级实现的Chipscope截图。在实现时,芯片外部提供的时钟是200 MHz的差分时钟,这个时钟连接到FPGA的数字时钟管理模块(DCM)并倍频到300 MHz,以保证时钟的稳定性和可靠性。其中flag_from_idft来自解预编码模块,其为高电平时表明预编码模块处理完成,可以进行计算解调模块了。这时解调模块就通过addr_to_idft地址信号发送给解预编码模块,此时存储在RAM中的预编码数据通过data_to_demodulation数据线传给解调模块。之后解调模块按照上面的分析过程进行计算,在处理完数据时拉高wea_modulate和web_modulate信号存储数据,在做完解调模块时拉高flag_to_scrable,在解扰模块收到这个标志位时就可以进行解扰模块的处理了。
图4、图5分别是解扰模块Modelsim仿真图和基于Virtex-6板级实现的Chipscope截图。在解扰模块中,收到flag_from_demodulate信号为高电平时就进行解扰过程的处理。其中data_from_demodulate是来自以上解调模块处理完的数据,data_from_random是来自伪随机序列产生模块产生的数据。根据产生的随机序列进行解扰处理,最后把处理后的数据dina_scramble也存储在一个双端口的RAM中,这样使得各个模块之间的独立性更强,也便于给需要此数据的不同模块提供数据。从FPGA的仿真图和实现图中可以看出,实现过程和仿真过程完全一致,从而保证了代码的可靠行。
4 结论及分析
解调与解扰算法的Verliog[5,6]程序已通过Xilinx ISE13.4的编译、仿真验证及板级验证。其结果和理论值一致,其精确度可以满足TD_LTE射频一致性测试仪表项目的要求。在FPGA中速度和面积总是相矛盾,在追求速度的同时,也要考虑芯片资源的问题。在资源充足的情况下,可以采用多级流水线的结构和并行运算来提高速度。本文采用此方法极大地提高了处理速度,三种调制与解扰处理的周期数如表1所示。可以看到,在FPGA(Virtex-6芯片)中的处理速度非常快,为后面译码工作节省了更多时间,更能够满足项目上的要求,故该方案已应用于国家重大科技专项“TD-LTE射频一致性测试仪表”的开发中。
表1 FPGA处理的周期数
[1]沈嘉,索士强,全海洋,等.3GPP长期演进(LTE)技术原理与系统设计[M].北京:人民邮电大学出版社,2008.
[2]陈发堂,李小文,王丹,等.移动通信接收机设计理论与实现[M].北京:科学出版社,2011.
[3]3GPP TS 36.211 v10.0.0:Scramble and Modulation(Release 10)[S].2010.
[4]陈发堂,梁涛涛,李小文.LTE-A系统软解调算法仿真及DSP 实现[J].计算机应用研究,2011(12):4095-4096.
[5]夏宇闻.Verilog数字系统设计教程(第二版)[M].北京:北京航空航天大学出版社,2008.
[6]TOSATO F,BISAGLIA P,Simplifed soft-output demapper for binary interleaved COFDM with application to HIPERLAN/2[J].Proc.IEEE ICC’,2002,2(2):664-668.