文獻標識碼: A
文章編號: 0258-7998(2012)03-0050-04
在LTE系統中,當進行隨機接入eNB(網絡端)和UE端建立上行同步之后,由于無線信道環境的改變需要進行時域和頻率的同步調整,所以需要一種算法來完成定時同步的功能。OFDM符號定時同步的目的是找到CP和FFT的起始位置。因符號定時同步發生錯誤會導致符號間干擾,將影響到UE上行信道性能與容量。因此,性能良好的同步方法對于OFDM系統非常重要[1,2]。符號定時算法有很多,主要有數據輔助算法、非數據輔助盲算法和基于循環前綴的算法[3,4]。前兩種算法相對于基于循環前綴的算法,實現難度大,而基于循環前綴算法的計算量比較大。本文為了能更好地完成定時同步,用FPGA的思想來簡化最大似然 (ML)估計算法,并在此基礎上進行一些算法的改進,利用Xilinx的Virtex-5芯片[5]作為硬件平臺實現其算法,完成上行同步定時的功能,并應用到項目中。
適用情況:適合高斯白噪聲多徑衰落或多普勒平移偏小的情況。
優缺點:算法簡單,相對精確。但同時實現三個公式,對于硬件來說需要很多的乘法器,占用資源比較大,所需時間也比較長。
方案2:直接采用滑動相關的方法,實現公式(1)。由于絕對能量對相關能量的影響是一定的,而且數據有很好的相關性。因此,通過相關能量的運算,運用開方運算比較大小,能夠找到相關能量最大值?酌(?茲)。
適用情況:信道環境和數據的相關性都特別好的情況下。
優缺點:算法簡單、易實現,精準度和復雜度相對于方案1較小。但乘法器使用較多,完成所需要的時間比較長,占用資源比較大。
優缺點:算法簡單、易實現、使用乘法器很少,占用資源相對較小,但精準度低于方案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次,即:
(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.