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