一種應用于OFDM系統(tǒng)中的符號精確定時算法的FPGA實現(xiàn)
摘要:OFDM技術是下一代移動通信的主流技術,在信息量大,功率受限的多媒體傳感網(wǎng)的OFDM系統(tǒng)中,以突發(fā)模式傳輸數(shù)據(jù),要求快速精確地完成定時同步。這里分析了一種應用于OFDM系統(tǒng)中基于長訓練序列與本地序列互相關的精同步算法原理,同時給出了算法的FPGA設計方案,并在ISE中和FPGA測試板上進行驗證。在實現(xiàn)的過程中,對傳統(tǒng)實現(xiàn)方法進行了改進,對本地序列的位數(shù)進行截取符號位處理,并且對判決函數(shù)進行了近似處理。實現(xiàn)結果表明,該方法在不降低性能的前提下優(yōu)化了系統(tǒng)資源損耗和運算速度,具有較好的工程實踐價值。
關鍵詞:OFDM;精確定時;同步算法;FPGA
0 引言
目前,正交頻分復用(OFDM)技術成為多媒體傳感器網(wǎng)絡信息傳輸?shù)闹髁餮芯糠较?,并越來越受到人們的關注。OFDM對于符號定時非常敏感,定時誤差會造成符號間干擾(ICI),所以符號定時算法的研究在OFDM技術中是至關重要的。
定時同步算法通常分為基于非輔助數(shù)據(jù)的同步算法和基于輔助數(shù)據(jù)的同步算法。目前應用最廣泛的基于導頻的定時和頻偏估計算法是由Schmidl提出的。這種算法采用相同的兩段訓練序列進行定時,該方法采用遞推公式進行計算,實現(xiàn)復雜度很低,在OFDM系統(tǒng)中被廣泛采用,然而這種方法的定時判決函數(shù)存在一個誤差平臺,會引起很大的定時偏差。為了減小定時判決函數(shù)的誤差平臺造成的影響,Minn對Schmidl的方法做出了一定的改進。Minn的定時判決函數(shù)是一個尖峰,在一定程度上消除了誤差平臺的影響;Park提出了一種定時判決函數(shù)更加尖銳的波形。但是由于循環(huán)前綴的存在,這種方法的判決函數(shù)有很大的旁瓣,在循環(huán)前綴較長時,幾乎與主瓣的高度相同,在信噪比較低的情況下,很難得到正確的定時結果。采用訓練序列與本地PN碼互相關有明顯的單峰值,但在頻偏較大的情況下,定時判決函數(shù)會嚴重變形,引起較大的定時誤差。
本文針對一種長短序列相結合的符號定時算法,給出了精確定時的FPGA設汁方案,并對該方法進行了FPGA實現(xiàn)。在實現(xiàn)的過程中,采用狀態(tài)機、流水線等設計方法,優(yōu)化了系統(tǒng)的資源和運算速度,增強了本設計的應用價值。
本文首先介紹了OFDM系統(tǒng)的幀結構,然后介紹了精同步的FPGA實現(xiàn)結構,并對實現(xiàn)結構進行了分析,最后對相關Matlab仿真結果進行了分析,并給出精同步FPGA的實現(xiàn)資源損耗報表。
1 OFDM數(shù)據(jù)幀結構
本文中OFDM系統(tǒng)參照目前廣泛應用于無線局域網(wǎng)中的IEEE 802.11a標準,以突發(fā)模式傳輸數(shù)據(jù),其數(shù)據(jù)幀前端的前導碼用作同步,AGC,頻偏估計。它的前導碼結構如圖1所示。前導碼包括長訓練序列和短訓練序列兩個部分。短訓練序列分為10段,每段長度為32個抽樣點;長訓練序列分為2段,每段長度為128個抽樣點,加上保護前綴,總長度為640個抽樣點。前導碼之后是數(shù)據(jù)部分。
2 精同步FPGA設計及分析
2.1 精同步FPGA設計
精同步用于信號的精確定時。本文假設系統(tǒng)已經(jīng)完成粗頻偏估計,系統(tǒng)的頻偏在精同步能夠容忍的范圍內(nèi)。該設計采用本地序列地與長訓練序列相關的方法,由于本地序列不受噪聲的影響,相關運算后,判決函數(shù)存在明顯的單峰值,可進行精確定時。系統(tǒng)后續(xù)數(shù)據(jù)幀還有循環(huán)保護前綴和信道估計的處理,精同步的已經(jīng)可以達到系統(tǒng)性能的要求。
本文從資源消耗角度出發(fā),對傳統(tǒng)方法進行了改進,在不降低系統(tǒng)性能的前提下優(yōu)化了系統(tǒng)資源消耗。
精同步主要由本地相關器、累加器和閾值判決器三個模塊組成,設計采用流水線的方式,實現(xiàn)結構如圖2所示。
式中:r(n)表示輸入數(shù)據(jù);C(n)是與本地序列相關的相關值;P(n)表示信號的功率,用作信號能量的歸一化。
本地相關器的實現(xiàn)是精同步的關鍵部分,本地相關器的實現(xiàn)中需要用到復數(shù)乘法器,本文采用的復數(shù)乘法算法如式(5)所示:
由于精同步是與本地序列相關,不存在遞推公式,為了降低資源損耗,在選取本地序列時,僅截取實部和虛部的符號位,即每個本地序列的實部和虛部僅用-1,0,1表示,這樣每個復數(shù)乘法可以轉換成加法。
本文對判決函數(shù)的計算方法進行了改進,式(3)是對|C(n)|進行一階泰勒展開,只取0次項與1次項作為|C(n)|的近似結果。
在峰值檢測時,本文采用乘法代替除法進行門限判定,門限判決函數(shù)如式(6)所示:
|C(n)|>gate*P(n) (6)
達到門限判定條件時,精捕獲成功,并通過計數(shù)的方式找到FFT窗的位置,完成定時同步。
2.2 FPGA設計方案資源消耗分析
與傳統(tǒng)方法相比,本文提出的方案在資源消耗上大大降低,主要體現(xiàn)在以下幾個方面:
(1)在本地相關器的實現(xiàn)上。式(5)表明,每次復數(shù)乘法運算只需要進行3個乘法運算,節(jié)省了1個乘法資源。在進行相關運算時,傳統(tǒng)方法在計算每個相關值時需進行384個乘法運算,在本文中,由于實部和虛部都只用符號位表示,乘法器可以用數(shù)據(jù)選擇器與加法器實現(xiàn),大大節(jié)省了乘法器資源。
(2)在判決函數(shù)的計算上。傳統(tǒng)方法每計算一個判決函數(shù)的值,需要進行4個乘法,2個加法計算。本文提出的近似方法中,每次判決函數(shù)的計算只需要2次乘法,2次加法,1次比較與1次移位操作,節(jié)省了乘法器資源。
(3)在硬件實現(xiàn)時。除法器對資源消耗非常大,本文用比較容易實現(xiàn)的乘法代替?zhèn)鹘y(tǒng)方法中的除法運算,節(jié)省了系統(tǒng)資源。
當然,本文對資源的優(yōu)化是因為采取了一定的近似處理和截位處理,會帶來一定的量化誤差,在一定程度上會降低系統(tǒng)的性能,但仿真結果表明,這種性能的損失在可接受范圍內(nèi)。
3 仿真及實現(xiàn)
3.1 仿真結果
利用本地序列截取符號和判決函數(shù)的近似對改進方案進行了仿真。該系統(tǒng)中,給定子載波數(shù)為N=128,碼速率定為Rb=5 Mb/s,子載波間隔為19.2 kHz,數(shù)字調(diào)制采用QPSK,信道模型選用AWGN模型,設定信噪比為5 dB。
圖3是采用本地序列截取2 b的判決函數(shù)M(n)的Matlah仿真圖;圖4是采用本地序列截取4 b的Matlab仿真圖。檢測峰值時,第一個峰值是由于循環(huán)前綴存在的影響,峰值檢測時檢測第二個峰值。
從圖3,圖4中可以看出,截位雖然會損耗算法的性能,但是判決函數(shù)存在明顯峰值,選擇適當?shù)拈撝禃r,仍然可以精確定時同步,可見減少本地序列的精度對性能并未造成很大的影響。
圖5是采用判決函數(shù)取近似值的Matlab仿真圖,圖6是判決函數(shù)取確定值的Matlab仿真圖。檢測峰值時,第一個峰值是由于循環(huán)前綴存在的影響,峰值檢測時檢測第二個峰值。從圖5,圖6中可以看出,在判決函數(shù)近似處理雖然會損耗算法的性能,但是判決函數(shù)仍然存在明顯峰值,選擇適當?shù)拈撝禃r,仍然可以精確定時同步,可見減少對判決函數(shù)的近似對性能并未造成很大的影響。
表1是在AWGN環(huán)境下精同步位置的仿真結果,每個信噪比下經(jīng)過5 000幀的仿真。符號同步偏差表示每個信噪比下的精同步平均錯誤長度,可見在系統(tǒng)的性能并未明顯降低。
3.2 精同步模塊實際實現(xiàn)
硬件設計是基于XLINX公司的SPRTAN6系列中的XC6SLX150-2FGG484芯片,采用Verilog HDL語言,仿真軟件是ISE自帶的ISIM,開發(fā)環(huán)境是ISE。
整個OFDM系統(tǒng)同步的ISIM仿真波形如圖7所示。其中:clk_i表示時鐘信號;reset_i表示同步復位信號;clk5M_en_i表示5 MHz時鐘使能信號;nrst_j表示異步復位信號;acq_val_o表示粗捕獲指示信號;dataI_o,dataQ_o表示經(jīng)過粗捕獲和粗頻偏估計的輸出信號;
sync_val_o表示精同步指示信號。
經(jīng)過ISE綜合后,改進前和改進后精同步占用資源分布如表2所示。
由表2可見本文對系統(tǒng)資源優(yōu)化的效果十分明顯。
4 結語
本文分析了一種OFDM系統(tǒng)精同步算法的原理,給出了FPGA硬件實現(xiàn)方案和結果分析,該方案在采用經(jīng)典算法的同時,對算法進行了改進,在不降低精同步性能的前提下大大降低了計算復雜度,并且設計結構簡單,易于實現(xiàn),具有較好的工程實用價值。a