APP下载

基于FPGA的TD-LTE系统上行同步的实现*

2012-07-03李校林李小文

电子技术应用 2012年3期
关键词:乘法器虚部实部

李 杨,李校林,李小文

(重庆邮电大学 通信与信息工程学院,重庆400065)

在LTE系统中,当进行随机接入eNB(网络端)和 UE端建立上行同步之后,由于无线信道环境的改变需要进行时域和频率的同步调整,所以需要一种算法来完成定时同步的功能。OFDM符号定时同步的目的是找到CP和FFT的起始位置。因符号定时同步发生错误会导致符号间干扰,将影响到UE上行信道性能与容量。因此,性能良好的同步方法对于 OFDM系统非常重要[1,2]。符号定时算法有很多,主要有数据辅助算法、非数据辅助盲算法和基于循环前缀的算法[3,4]。前两种算法相对于基于循环前缀的算法,实现难度大,而基于循环前缀算法的计算量比较大。本文为了能更好地完成定时同步,用FPGA的思想来简化最大似然 (ML)估计算法,并在此基础上进行一些算法的改进,利用Xilinx的Virtex-5芯片[5]作为硬件平台实现其算法,完成上行同步定时的功能,并应用到项目中。

1 最大似然估计算法(ML算法)

如图1[6]所示,这些样值包含了一个完整的N+L个样值的OFDM符号。定义了两个集合[6]:

θ和 ε的对数似然函数∧(θ,ε)是给定符号定时同步点θ和载波频率偏移 ε,在中,2N+L样值点概率密度函数|(θ,ε)的对数,表示为[6]:

因为 r(k)是复高斯随机变量,f(r(k),r(k+N))为复高斯分布概率密度函数,可以简化为[5]:

∧(θ,ε)=|γ(θ)|cos(2πε+∠γ(θ)-ρΦ(θ))式中,∠γ(θ)表示复数的相位(幅角)。

式(1)中,γ(m)表示连续 L个相距为 N的样值对之间相关值之和;式(1)的第二项是频率偏差ε的能量项,这一项要取决于相关系数ρ。

就频率偏差 ε 而言,要实现式∧(θ,ε)最大化,应使余弦项为 1,得到频率偏差 ε的最大似然估计(θ)=时偏差 θ的最大似然函数[6]:∧(θ,(θ))=|γ(θ)|-ρΦ(θ),所以,ε 和 θ的联合最大似然估计就变为[6]:

2 FPGA实现方案比较和选择

由于上行同步时的数据来源于第一个子帧的第一个符号,所以循环前缀CP的长度选择为160。因此对应式(1)、式(2)中的 m 为 0~159。

方案1:根据ML算法,相关能量减去绝对能量得到差值,找到差值的最大值及CP的起始位置。

相关能量:

适用情况:适合高斯白噪声多径衰落或多普勒平移偏小的情况。

优缺点:算法简单,相对精确。但同时实现三个公式,对于硬件来说需要很多的乘法器,占用资源比较大,所需时间也比较长。

方案 2:直接采用滑动相关的方法,实现公式(1)。由于绝对能量对相关能量的影响是一定的,而且数据有很好的相关性。因此,通过相关能量的运算,运用开方运算比较大小,能够找到相关能量最大值 γ(θ)。

适用情况:信道环境和数据的相关性都特别好的情况下。

优缺点:算法简单、易实现,精准度和复杂度相对于方案1较小。但乘法器使用较多,完成所需要的时间比较长,占用资源比较大。

方案 3:如果采用方案 2,通过对比数据发现:在滑动次数为0滑动次数为 1即法器的数据相乘部分有 159个数据是重复相乘。每次滑动都有159个数据重复相乘。当做完滑动相关从 r(0)~r(159),共重复的乘法有159×160个,而在FPGA中占有的乘法器越多资源就越大。所以改进的方案2是对360个数据进行无重复的相乘,根据公式,对数据进行求和,然后再开方比较大小。因此方案3主要是实现公式(1),但是不进行滑动相关。数据求和部分:首先是对前160个数据的实部和、虚部和分别加上第2 048个数据的实部(ad+bc)和虚部(bcad),然后再分别减去第 0个数据的实部(ad+bc)和虚部(bc-ad),这样就实现了一次滑动相关求和的过程了。依此类推,后面的数据处理方式都进行相应的操作(共160次)。

优缺点:算法简单、易实现、使用乘法器很少,占用资源相对较小,但精准度低于方案1。

从FPGA的速度和面积的角度考虑,方案3比较合理,既占用很少的资源,也能较快地实现同步。

3 FPGA实现的处理流程

3.1 整体流程

整体设计流程图如图2所示。数据由中频通过接口,经过接收和存储模块,进入乘法模块对360个数据操作,乘法器结果存储之后进入到求和模块,在求和模块中实现160个160点求和,经过开方和比较模块找到最大值 max。

3.2 模块的解析

(1)接收和存放模块

数据从中频分I、Q两路数据输出,接收模块采用2片32 bit寄存器组存放。mem0[31:16]存放 0~159的实部,mem0[15:0]存放 0~159 的虚部。mem1[31:16]存放 2 048~2 207的实部,mem1[15:0]存放2 048~2 207的虚部。

(2)乘法模块

图 2中,a对应的是 0~159的实部,b对应的是 0~159的虚部,c对应的是 2 048~2 207的实部,d对应的是2 048~2 207的虚部。乘法模块实现了一个复数的相乘。一对共轭复数需要4个乘法器 (a+bj)×(c-dj)=(ac+bd)+(bc-ad)j。由于需要320个复数对应相乘,为了更快地完成同步,同时又要考虑资源的情况,一次采用多少乘法器,需要根据后面的测试和评估情况做出选择。在权衡资源与速度后,本设计一次使用20个乘法器。

(3)存储模块

存储模块的作用是把上一个模块数据相乘后的320数据存储起来。为了方便后面求和模块的取值,此处采用了4个RAM。图2中,Re1存放乘法模块输出的 0~159的实部,Re2存放乘法模块输出的 160~319的实部,Im1存放乘法模块输出的0~159的虚部,Im2存放乘法模块输出的160~319的虚部。对应的RAM的输入和输出地址是根据程序中标志位来控制的,对应的RAM的输入值与采用乘法器的个数有关,采用多个乘法器时输入值采用位拼接的方式存入输入端。当给出输出端地址时,读出的数据也是很多个数据的位拼接,对应取出需要的位数即可。

(4)求和模块

由于未采用滑动相关的方案,所以需要对得出的数据进行加减,才能完成滑动相关求和的过程。滑动次数为0及滑动次数为1时,乘法器的数据相乘部分有159个数据是重复相乘。所以可以采用sre<=sum_re+re2[0]-re1[0]求和。其中,sre相对于滑动一次的实部数据和,sum_re是未滑动数据的实部和,re2[0]是第160个实部(已完成了ad+bc即是一个复数和对应的复数相乘后的实部),re1[0]是第 0个实部(已完成了 ad+bc是一个复数和对应的复数相乘后的虚部)。对应的虚部也是这样操作。实部和虚部分别需要完成160次,即:

sre<=sre+re2[159]-re1[159]

sim<=sim+im2[159]-im1[159]

(5)开方模块

采用开方模块避免了33位数乘以33位数的乘法,也避免了乘法器的使用,节省了资源。开方思想是:对近似规定为:

根据上面的公式,计算 A时不需要计算 I×I、Q×Q,仅需要根据I、Q的值进行近似的逼近即可得到A。应用到本设计中,此处的 I=sre、Q=sim、A=temp。

(6)比较模块

比较由开方模块出来的max和temp出来的数据大小,找出对应的位置max_position输出delete_cp信号,为后面数据送到CP、FFT模块做指示。

4 FPGA实现结果及分析

图3是FPGA设计的仿真图,max_position是用ML算法找到的最大值,即为CP的起始位置值。delete_cp为标志位,是为了给后面数据输送到CP模块、FFT模块的开始标志。仿真程序中设置了同步的噪声为33个,max_position的值是33。仿真中,噪声设为任意一个小于160的数X,max_position的值是X。说明ML算法在数据相关性很好的情况下,能准确地实现同步。图4是连接项目板子后,用Xilinx ISE10.1中的ChipScope Pro采集到的图样。ChipScope Pro主要是在板级调试过程中,观察FPGA芯片内部的信号。可以看出max_position的值是50,之所以和仿真图的值不一样,因为这个数据是真实的数据。基于ML算法,可以通过板级调试,成功地实现定时同步。图5是联机调试(FPGA、DSP与协议栈一起调试)中用Agilent的示波器采集到的波形。B1总线值为50(即max_position的值)。数字线14中的信号代表delete_cp信号。可以看出,图5采集到的信号和图4的一样,证明在联机调试中,能够成功实现同步。从图3、4、5中观察到的现象看,方案3的设计能正确实现ML算法,能够准确地实现上行同步。

ML算法的程序已通过Xilinx ISE10.1[6]的编译、仿真验证、板级验证和联机验证。其结果和理论值一致,可以精确到LTE系统要求。该算法满足了硬件对算法的模块化、规则化的要求,因此,它可以充分发挥硬件的优势,利用硬件的资源和速度,从而实现硬件与算法相结合的一种优化方案。在FPGA设计中,使速度与面积达到了很好的平衡,主要体现在乘法模块。此外,在实现过程中采取了一次做20次乘法的方案,使整个同步的过程完成只需要1 000多个周期,时间比较短,且占用资源很小(Slice LUT=7%)。由于该算法的FPGA实现在这个项目的联机调试中,性能稳定,所以该算法的FPGA实现已经应用到国家科技重大专项项目 “TD-LTE无线终端综合测试仪表”开发中。

[1]马磊,陈发堂.TD-LTE系统时频同步算法仿真及DSP实现[J].光通信技术,2011(10).

[2]沈嘉,索士强.3GPP长期演进(LTE)技术原理与系统设计[M].北京:人民邮电出版社,2008.

[3]COULSON A J.Maximum likelihood synchronization for OFDM using a pilot symbol:analysis[J].IEEE Journal on Selected Areas in Common,2001,19(12):2495-2503.

[4]LEE J,LOU H,TOUMPAKARIS D.Maximum likelihood estimation of time and frequency offset for OFDM systems[J].Electronics Letters,2004,40(10).

[5]XilinxInc.Foundation series user guide[DB/OL].http://china.xilinx.com/support/documentation/user_guides/ug071.pdf.2010-01-03.

[6]Jan-Jaap van de Beck,Magnus Sandell.ML estimation of time and frequency offset in OFDM systems[J].IEEE Transaction.on Signal Processing,1997,45(7):1800-1805.

猜你喜欢

乘法器虚部实部
复数知识核心考点综合演练
一种低开销的近似乘法器设计
两类特殊多项式的复根虚部估计
例谈复数应用中的计算两次方法
基于FPGA的流水线单精度浮点数乘法器设计*
浅谈正Γ型匹配网络的设计
一种基于电涡流和实部互阻抗检测的金属温度监测方法
乘法器模块在FPGA中的实现
20×18位符号定点乘法器的FPGA实现