文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)03-0050-04
在LTE系統(tǒng)中,,當(dāng)進(jìn)行隨機(jī)接入eNB(網(wǎng)絡(luò)端)和UE端建立上行同步之后,,由于無(wú)線信道環(huán)境的改變需要進(jìn)行時(shí)域和頻率的同步調(diào)整,所以需要一種算法來(lái)完成定時(shí)同步的功能,。OFDM符號(hào)定時(shí)同步的目的是找到CP和FFT的起始位置,。因符號(hào)定時(shí)同步發(fā)生錯(cuò)誤會(huì)導(dǎo)致符號(hào)間干擾,將影響到UE上行信道性能與容量,。因此,,性能良好的同步方法對(duì)于OFDM系統(tǒng)非常重要[1,2],。符號(hào)定時(shí)算法有很多,,主要有數(shù)據(jù)輔助算法、非數(shù)據(jù)輔助盲算法和基于循環(huán)前綴的算法[3,,4],。前兩種算法相對(duì)于基于循環(huán)前綴的算法,實(shí)現(xiàn)難度大,,而基于循環(huán)前綴算法的計(jì)算量比較大,。本文為了能更好地完成定時(shí)同步,用FPGA的思想來(lái)簡(jiǎn)化最大似然 (ML)估計(jì)算法,,并在此基礎(chǔ)上進(jìn)行一些算法的改進(jìn),,利用Xilinx的Virtex-5芯片[5]作為硬件平臺(tái)實(shí)現(xiàn)其算法,完成上行同步定時(shí)的功能,,并應(yīng)用到項(xiàng)目中,。
適用情況:適合高斯白噪聲多徑衰落或多普勒平移偏小的情況。
優(yōu)缺點(diǎn):算法簡(jiǎn)單,,相對(duì)精確,。但同時(shí)實(shí)現(xiàn)三個(gè)公式,對(duì)于硬件來(lái)說(shuō)需要很多的乘法器,,占用資源比較大,,所需時(shí)間也比較長(zhǎng)。
方案2:直接采用滑動(dòng)相關(guān)的方法,,實(shí)現(xiàn)公式(1),。由于絕對(duì)能量對(duì)相關(guān)能量的影響是一定的,而且數(shù)據(jù)有很好的相關(guān)性,。因此,,通過(guò)相關(guān)能量的運(yùn)算,運(yùn)用開方運(yùn)算比較大小,,能夠找到相關(guān)能量最大值?酌(?茲),。
適用情況:信道環(huán)境和數(shù)據(jù)的相關(guān)性都特別好的情況下。
優(yōu)缺點(diǎn):算法簡(jiǎn)單,、易實(shí)現(xiàn),,精準(zhǔn)度和復(fù)雜度相對(duì)于方案1較小,。但乘法器使用較多,完成所需要的時(shí)間比較長(zhǎng),,占用資源比較大,。
優(yōu)缺點(diǎn):算法簡(jiǎn)單、易實(shí)現(xiàn),、使用乘法器很少,,占用資源相對(duì)較小,但精準(zhǔn)度低于方案1,。
從FPGA的速度和面積的角度考慮,,方案3比較合理,既占用很少的資源,,也能較快地實(shí)現(xiàn)同步,。
3 FPGA實(shí)現(xiàn)的處理流程
3.1 整體流程
整體設(shè)計(jì)流程圖如圖2所示。數(shù)據(jù)由中頻通過(guò)接口,,經(jīng)過(guò)接收和存儲(chǔ)模塊,,進(jìn)入乘法模塊對(duì)360個(gè)數(shù)據(jù)操作,乘法器結(jié)果存儲(chǔ)之后進(jìn)入到求和模塊,,在求和模塊中實(shí)現(xiàn)160個(gè)160點(diǎn)求和,,經(jīng)過(guò)開方和比較模塊找到最大值max。
3.2 模塊的解析
(1)接收和存放模塊
數(shù)據(jù)從中頻分I,、Q兩路數(shù)據(jù)輸出,,接收模塊采用2片32 bit寄存器組存放。mem0[31:16]存放0~159的實(shí)部,,mem0[15:0]存放0~159的虛部,。mem1[31:16]存放2 048~2 207的實(shí)部,mem1[15:0]存放2 048~2 207的虛部,。
(2)乘法模塊
圖2中,,a對(duì)應(yīng)的是0~159的實(shí)部,b對(duì)應(yīng)的是0~159的虛部,,c對(duì)應(yīng)的是2 048~2 207的實(shí)部,,d對(duì)應(yīng)的是2 048~2 207的虛部。乘法模塊實(shí)現(xiàn)了一個(gè)復(fù)數(shù)的相乘,。一對(duì)共軛復(fù)數(shù)需要4個(gè)乘法器(a+bj)×(c-dj)=(ac+bd)+(bc-ad)j,。由于需要320個(gè)復(fù)數(shù)對(duì)應(yīng)相乘,為了更快地完成同步,,同時(shí)又要考慮資源的情況,,一次采用多少乘法器,,需要根據(jù)后面的測(cè)試和評(píng)估情況做出選擇,。在權(quán)衡資源與速度后,,本設(shè)計(jì)一次使用20個(gè)乘法器。
(3)存儲(chǔ)模塊
存儲(chǔ)模塊的作用是把上一個(gè)模塊數(shù)據(jù)相乘后的320數(shù)據(jù)存儲(chǔ)起來(lái),。為了方便后面求和模塊的取值,,此處采用了4個(gè)RAM。圖2中,,Re1存放乘法模塊輸出的0~159的實(shí)部,,Re2存放乘法模塊輸出的160~319的實(shí)部,Im1存放乘法模塊輸出的0~159的虛部,,Im2存放乘法模塊輸出的160~319的虛部,。對(duì)應(yīng)的RAM 的輸入和輸出地址是根據(jù)程序中標(biāo)志位來(lái)控制的,對(duì)應(yīng)的RAM 的輸入值與采用乘法器的個(gè)數(shù)有關(guān),,采用多個(gè)乘法器時(shí)輸入值采用位拼接的方式存入輸入端,。當(dāng)給出輸出端地址時(shí),讀出的數(shù)據(jù)也是很多個(gè)數(shù)據(jù)的位拼接,,對(duì)應(yīng)取出需要的位數(shù)即可,。
(4)求和模塊
由于未采用滑動(dòng)相關(guān)的方案,所以需要對(duì)得出的數(shù)據(jù)進(jìn)行加減,,才能完成滑動(dòng)相關(guān)求和的過(guò)程,。滑動(dòng)次數(shù)為0及滑動(dòng)次數(shù)為1時(shí),,乘法器的數(shù)據(jù)相乘部分有159個(gè)數(shù)據(jù)是重復(fù)相乘,。所以可以采用sre<=sum_re+re2[0]-re1[0]求和。其中,,sre相對(duì)于滑動(dòng)一次的實(shí)部數(shù)據(jù)和,,sum_re是未滑動(dòng)數(shù)據(jù)的實(shí)部和,re2[0]是第160個(gè)實(shí)部(已完成了ad+bc即是一個(gè)復(fù)數(shù)和對(duì)應(yīng)的復(fù)數(shù)相乘后的實(shí)部), re1[0]是第0個(gè)實(shí)部(已完成了ad+bc是一個(gè)復(fù)數(shù)和對(duì)應(yīng)的復(fù)數(shù)相乘后的虛部),。對(duì)應(yīng)的虛部也是這樣操作,。實(shí)部和虛部分別需要完成160次,即:
(6)比較模塊
比較由開方模塊出來(lái)的max和temp出來(lái)的數(shù)據(jù)大小,找出對(duì)應(yīng)的位置max_position輸出delete_cp信號(hào),,為后面數(shù)據(jù)送到CP,、FFT模塊做指示。
4 FPGA實(shí)現(xiàn)結(jié)果及分析
圖3是FPGA設(shè)計(jì)的仿真圖,,max_position是用ML算法找到的最大值,,即為CP的起始位置值。delete_cp為標(biāo)志位,,是為了給后面數(shù)據(jù)輸送到CP模塊,、FFT模塊的開始標(biāo)志。仿真程序中設(shè)置了同步的噪聲為33個(gè),max_position的值是33,。仿真中,,噪聲設(shè)為任意一個(gè)小于160的數(shù)X,max_position的值是X,。說(shuō)明ML算法在數(shù)據(jù)相關(guān)性很好的情況下,,能準(zhǔn)確地實(shí)現(xiàn)同步。圖4是連接項(xiàng)目板子后,,用Xilinx ISE10.1中的ChipScope Pro采集到的圖樣,。ChipScope Pro主要是在板級(jí)調(diào)試過(guò)程中,觀察FPGA芯片內(nèi)部的信號(hào),??梢钥闯鰉ax_position的值是50,之所以和仿真圖的值不一樣,,因?yàn)檫@個(gè)數(shù)據(jù)是真實(shí)的數(shù)據(jù),。基于ML算法,,可以通過(guò)板級(jí)調(diào)試,,成功地實(shí)現(xiàn)定時(shí)同步。圖5是聯(lián)機(jī)調(diào)試(FPGA,、DSP與協(xié)議棧一起調(diào)試)中用Agilent的示波器采集到的波形,。B1總線值為50(即max_position的值)。數(shù)字線14中的信號(hào)代表delete_cp信號(hào),??梢钥闯觯瑘D5采集到的信號(hào)和圖4的一樣,,證明在聯(lián)機(jī)調(diào)試中,,能夠成功實(shí)現(xiàn)同步。從圖3,、4,、5中觀察到的現(xiàn)象看,方案3的設(shè)計(jì)能正確實(shí)現(xiàn)ML算法,,能夠準(zhǔn)確地實(shí)現(xiàn)上行同步,。
ML算法的程序已通過(guò)Xilinx ISE10.1[6]的編譯、仿真驗(yàn)證,、板級(jí)驗(yàn)證和聯(lián)機(jī)驗(yàn)證,。其結(jié)果和理論值一致,可以精確到LTE系統(tǒng)要求,。該算法滿足了硬件對(duì)算法的模塊化,、規(guī)則化的要求,,因此,它可以充分發(fā)揮硬件的優(yōu)勢(shì),,利用硬件的資源和速度,,從而實(shí)現(xiàn)硬件與算法相結(jié)合的一種優(yōu)化方案。在FPGA設(shè)計(jì)中,,使速度與面積達(dá)到了很好的平衡,主要體現(xiàn)在乘法模塊,。此外,,在實(shí)現(xiàn)過(guò)程中采取了一次做20次乘法的方案,使整個(gè)同步的過(guò)程完成只需要1 000多個(gè)周期,,時(shí)間比較短,,且占用資源很小(Slice LUT=7%),。由于該算法的FPGA實(shí)現(xiàn)在這個(gè)項(xiàng)目的聯(lián)機(jī)調(diào)試中,,性能穩(wěn)定,所以該算法的FPGA實(shí)現(xiàn)已經(jīng)應(yīng)用到國(guó)家科技重大專項(xiàng)項(xiàng)目“TD-LTE無(wú)線終端綜合測(cè)試儀表”開發(fā)中,。
參考文獻(xiàn)
[1] 馬磊,,陳發(fā)堂.TD-LTE系統(tǒng)時(shí)頻同步算法仿真及DSP實(shí)現(xiàn)[J].光通信技術(shù),2011(10).
[2] 沈嘉,,索士強(qiáng).3GPP長(zhǎng)期演進(jìn)(LTE)技術(shù)原理與系統(tǒng)設(shè)計(jì)[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.