韋照川,謝 棟,蔡成林
(桂林電子科技大學(xué)信息與通信學(xué)院,廣西桂林 541004)
基于幀頭信息的載波同步設(shè)計(jì)及FPGA實(shí)現(xiàn)
韋照川,謝 棟,蔡成林
(桂林電子科技大學(xué)信息與通信學(xué)院,廣西桂林 541004)
論述了一種基于幀頭信息的載波同步設(shè)計(jì)及FPGA實(shí)現(xiàn)方法。首先介紹了頻偏相偏估計(jì)原理,然后分別介紹了FPGA設(shè)計(jì)的系統(tǒng)框圖和子模塊的原理,最后進(jìn)行了Modelsim仿真和SignalTap的板級測試驗(yàn)證。
幀頭信息;頻偏估計(jì);相偏估計(jì);載波同步;FPGA
現(xiàn)代數(shù)字通信中,像QPSK,QAM這樣的正交調(diào)制應(yīng)用廣泛。正交調(diào)制是把數(shù)據(jù)信息映射到I、Q兩路,同時(shí)要插入幀頭作為幀同步信號。普通的幀頭信號和某些特定格式的幀頭信號,不僅可以作為幀同步判斷,還可以用來做頻偏和相偏估計(jì)。這種方法已經(jīng)在OFDM上得到了廣泛應(yīng)用,其中頻偏是基于自相關(guān)函數(shù)的估計(jì)算法[1~3],相偏是基于數(shù)據(jù)幅度衰減的估計(jì)算法。
假設(shè)由I,Q兩路發(fā)送的幀頭序列為
由于在傳輸過程中存在初始相位和固定的頻偏,所以接收端接收到的信號為
在間隔為Dist所接收到的信號為
式中:φ是載波相位差,Δf為載波的頻偏,Ts為基帶碼元速率。這里Dist的大小決定了頻偏估計(jì)的范圍和精確度,和幀頭格式有直接關(guān)系[4]。如果幀頭信號采用了通常的非重復(fù)隨機(jī)序列,那么可以用相鄰兩幀的幀頭來計(jì)算頻偏,這時(shí)候Dist的數(shù)值就等于一幀數(shù)據(jù)的長度。如果幀頭信號采用連續(xù)兩個(gè)相同的隨機(jī)序列,那么Dist就等于一個(gè)隨機(jī)序列的長度,本文中的頻偏和相偏估計(jì)設(shè)計(jì)就是基于后面這種假設(shè)。
由式(2)、式(3)可得
式中:*表示取共軛。因此,
式中:arg[·]表示取復(fù)數(shù)的輻角。
相偏估計(jì)是在頻偏估計(jì)并且糾正的基礎(chǔ)上,根據(jù)I,Q兩路的幅度衰減計(jì)算出來的。
由式(2)可知,當(dāng)頻偏Δf的值為0時(shí)候,接收到的序列如式(6)
假設(shè)式(6)中的復(fù)數(shù)序列pni=ai+jbi,ejφ=cosφ+jsinφ,那么可以得到
式中:i=1∶N,大括號里面分別表示接收端序列的實(shí)部和虛部,也就是I,Q兩路的數(shù)據(jù)。因?yàn)橐阎l(fā)送端幀頭序列pni中為設(shè)置ai=bi=1,那么由式(7)可以得到相差角度為
系統(tǒng)采用QPSK調(diào)制方式,基帶數(shù)據(jù)率設(shè)置為50 bit/s。幀頭采用連續(xù)2個(gè)相同的7位數(shù)據(jù),總長度為14,每幀數(shù)據(jù)長度共300個(gè)。頻偏和相偏聯(lián)合的FPGA實(shí)現(xiàn)框圖如圖1所示。
圖1 FPGA硬件框圖
圖1的載波同步模塊分為數(shù)據(jù)緩存、幀頭判斷、頻偏估計(jì)、相偏估計(jì)、控制字轉(zhuǎn)換、糾正控制6個(gè)部分。數(shù)據(jù)在模塊內(nèi)部的處理流程是:當(dāng)?shù)竭_(dá)檢測模塊輸出的有效數(shù)據(jù)到達(dá)時(shí),即daoda_I與daoda_Q,首先被送入數(shù)據(jù)緩存模塊,數(shù)據(jù)緩存模塊的作用是先將數(shù)據(jù)緩存起來,接著把緩存的數(shù)據(jù)送入幀頭確認(rèn)模塊進(jìn)行確認(rèn),若幀頭確認(rèn)正確,則產(chǎn)生一個(gè)使能信號激活頻偏估計(jì)模塊,同時(shí)輸出延遲后數(shù)據(jù);若幀頭確認(rèn)錯(cuò)誤,則不進(jìn)行頻偏計(jì)算,直接輸出。通過頻偏估計(jì)模塊進(jìn)行計(jì)算的數(shù)據(jù),接著被送入控制字轉(zhuǎn)換模塊轉(zhuǎn)換成控制NCO的頻率控制字。幀頭確認(rèn)模塊輸出的數(shù)據(jù)Delay_I與Delay_Q是將延遲的數(shù)據(jù)輸出提供給相位估計(jì)糾正模塊。
數(shù)據(jù)緩存模塊為整個(gè)載波同步模塊的第一個(gè)子模塊,主要完成輸入數(shù)據(jù)的緩存,并送入后續(xù)單元。假設(shè)數(shù)據(jù)幀頭長度是14,緩存的數(shù)據(jù)長度取15個(gè),即幀頭的長度加1,若保存的太多則會消耗FPGA比較多的資源。它的一個(gè)作用是便于幀頭確認(rèn)模塊直接判斷幀頭,另一個(gè)作用則是為了減少乘法器的消耗,因?yàn)轭l偏計(jì)算模塊計(jì)算頻偏的時(shí)候并不是一個(gè)時(shí)鐘周期計(jì)算完成,而是通過移位相乘累加,通過多個(gè)時(shí)鐘來計(jì)算,采用流水線的思想,這樣節(jié)省了乘法器的消耗。移位寄存器的結(jié)構(gòu)圖如圖2所示。
圖2 移位寄存器的結(jié)構(gòu)圖
幀頭判斷模塊主要負(fù)責(zé)判斷到達(dá)檢測輸出的幀頭是否正確,若檢測到幀頭到達(dá),則產(chǎn)生幀使能信號,來激活頻偏計(jì)算模塊和相偏計(jì)算模塊,并且頻偏和相偏的糾正有一定的順序,如果在沒有糾正頻偏的基礎(chǔ)上糾正相偏,那頻率的偏差會疊加到相位的偏差上,所以幀頭確認(rèn)模塊還產(chǎn)生一個(gè)糾正控制信號,來決定頻偏和相偏的糾正順序和次數(shù)。若沒有檢測到則不產(chǎn)生使能信號,即不進(jìn)行計(jì)算,以防止利用錯(cuò)誤的幀頭計(jì)算出錯(cuò)誤的頻偏反饋回系統(tǒng)從而影響系統(tǒng)的正常工作。若找到幀頭,則拉高幀標(biāo)志位Flag,并且驅(qū)動頻偏估計(jì)模塊開始工作。
頻偏估計(jì)模塊主要負(fù)責(zé)利用數(shù)據(jù)緩存模塊輸出的幀頭數(shù)據(jù),運(yùn)用公式進(jìn)行相關(guān)計(jì)算求出載波頻率的偏差。
由于接收到的是復(fù)數(shù)序列A={α1,α2,…,αN},B={β1,β2,…,βN},則A和B的互相關(guān)定義為
依據(jù)式(9)對頻率偏差進(jìn)行估算。硬件實(shí)現(xiàn)上包括延遲相關(guān)、相關(guān)累加和偏差估算3個(gè)部分,如圖3所示。
圖3 頻偏估計(jì)模塊
2.3.1 延遲相關(guān)模塊
當(dāng)用于頻率偏差估算的幀頭到達(dá),并且?guī)^使能信號拉高時(shí),為了便于計(jì)算前后2個(gè)對應(yīng)取樣的相關(guān)值,在數(shù)據(jù)緩存中使用移位寄存器。幀頭信號判斷到達(dá)后,幀頭的第1位與第8位已經(jīng)移到了移位寄存器的第8級與第15級,所以只需計(jì)算第8級與第15級相乘便可得到計(jì)算相關(guān)值的4個(gè)部分。
2.3.2 相關(guān)累加模塊
由于計(jì)算相關(guān)值運(yùn)算的時(shí)候是復(fù)數(shù)運(yùn)算,所以式(9)相關(guān)值的4個(gè)部分需要累加起來,累加的個(gè)數(shù)是2個(gè)重復(fù)序列的個(gè)數(shù)。下面代碼實(shí)現(xiàn)了式(9)的相關(guān)累加
2.3.3 偏差估算模塊
偏差估算主要負(fù)責(zé)在得到相關(guān)累加值后,從中提取相位信息,如圖4所示。
圖4 偏差估算模塊
其中:
由以上可以看出,頻率偏差的估算的關(guān)鍵是從相關(guān)累加值中提取相位信息,即Tan-1的運(yùn)算。采用近似算法實(shí)現(xiàn)此功能。Tan-1的運(yùn)算采用下面的近似公式[5]
采用這種方法的主要原因是避免了查找表的精度不高的問題。
相偏估計(jì)的主要作用是完成頻差糾正后對相差的估計(jì)。相偏估計(jì)包括相關(guān)計(jì)算、求反正切、累加平均三個(gè)部分,如圖5所示。
圖5 相偏估計(jì)模塊
2.4.1 相關(guān)計(jì)算模塊
由于對相位偏差的計(jì)算只需要1組數(shù)據(jù)便可計(jì)算出相位,所以這里不需要緩存,只需要直接計(jì)算數(shù)據(jù)的相關(guān)值。相關(guān)計(jì)算的輸入為幀頭確認(rèn)模塊的輸出Delay_I和Delay_Q,如下面代碼所示:
2.4.2 Tan-1模塊
2.4.3 累加平均模塊
為了彌補(bǔ)之前角度的一些偏差,所以后面進(jìn)行累加求平均來彌補(bǔ)。這里選用累加的個(gè)數(shù)為8,這樣在求平均的時(shí)候只需要左移3位,便可以實(shí)現(xiàn)除以8的功能,而不需要調(diào)用除法器的IP核。
控制字轉(zhuǎn)換模塊的主要功能是將頻偏估計(jì)和相偏估計(jì)模塊算出來的頻偏和相偏轉(zhuǎn)換成控制NCO的頻率控制字和相位控制字。
頻率控制字換算公式為
相位控制字的位數(shù)為12位,因此對應(yīng)將360°分成212=4 096份,得到相位控制字的換算公式為
其中,fclk是系統(tǒng)工作時(shí)鐘,F(xiàn)con位頻率控制字,N為相位累加器的比特?cái)?shù)。算出了Δf后,將Δf代入公式得到
糾正控制模塊主要完成對頻率控制字和相位控制字的糾正,從控制字轉(zhuǎn)換模塊出來的頻率控制字和相位控制字并不能直接使用,要疊加到初始的頻率控制字和相位控制字上,并且頻率和相位的糾正有一定的順序,必須先糾正頻率再糾正相位,因?yàn)轭l率的偏移會以相位的形式表現(xiàn)出來。糾正控制模塊就是完成頻偏和相偏的糾正及糾正的順序和次數(shù)的控制。
糾正的順序和次數(shù)采用計(jì)數(shù)的方法,計(jì)數(shù)器采用2個(gè),一個(gè)是幀內(nèi)數(shù)據(jù)的計(jì)數(shù),另一個(gè)是糾正的次數(shù)。當(dāng)幀確認(rèn)模塊被確認(rèn)后,會輸出一個(gè)糾正信號,并且這個(gè)信號的輸出是在頻偏和相偏算完的情況下,在第一幀的情況下,幀內(nèi)數(shù)據(jù)計(jì)數(shù)器記到一個(gè)值時(shí),便產(chǎn)生一個(gè)糾正信號,使糾正計(jì)數(shù)器加1時(shí),開始進(jìn)行頻偏的糾正,當(dāng)頻偏糾正后,下一幀便進(jìn)行相偏的糾正,這樣實(shí)現(xiàn)頻偏、相偏交替糾正。
預(yù)先設(shè)置某個(gè)頻偏,用Modelsim仿真得到圖6。從圖中可以看出,頻偏引起的數(shù)據(jù)幅度調(diào)制基本得到了糾正。
圖6 頻偏糾正前后對比波形(截圖)
頻偏糾正的基礎(chǔ)上,相偏導(dǎo)致的是數(shù)據(jù)等幅度的衰減,圖7給出了詳細(xì)的相偏仿真過程數(shù)據(jù)圖,從圖中數(shù)據(jù)可以看出計(jì)算過程與預(yù)期一致,相偏也基本得到了糾正。
圖7 相偏糾正的時(shí)序仿真圖(截圖)
將數(shù)據(jù)送入載波同步模塊后,首先按照公式進(jìn)行相關(guān)計(jì)算,得到相關(guān)值的實(shí)部和虛部。通過求反正切和換算轉(zhuǎn)化為要糾正的頻率的控制字data_pinpian,在flag_jiuzhen控制信號的作用下對頻率控制字fcon進(jìn)行糾正,設(shè)置發(fā)射機(jī)載波的頻率控制字為298251617,設(shè)置接收機(jī)載波的頻率控制字為298400747,對應(yīng)收發(fā)兩端頻差是500 Hz。接收機(jī)糾正后頻率控制字為298251922,與發(fā)射端的對比,頻率控制字偏差值為305,換算成頻率后誤差為約0.25 Hz。頻偏基本糾正后,通過計(jì)算delay_I與delay_Q相關(guān)值來計(jì)算相偏。首先將進(jìn)來的數(shù)據(jù)通過相關(guān)計(jì)算算出相關(guān)值delta,通過查找表的方式算出角度theta,接著將角度換算成相位控制字,最后累加8個(gè)求出平均值,在flag_jiuzhen有效時(shí)將phase_right進(jìn)行糾正。從圖8可以看到,頻率差基本得到了糾正,相位差穩(wěn)定在一個(gè)很小的范圍內(nèi)。
圖8 頻偏和相偏糾正Signaltap測試圖(截圖)
由上述可以看出,這種頻偏和相偏聯(lián)合糾正的方法,載波同步速度很快,不會鎖定在模糊相位上,而且可以適用于各種正交調(diào)制方式,適用于不同的數(shù)據(jù)率,應(yīng)用范圍很廣,相比傳統(tǒng)的數(shù)字式鎖相跟蹤環(huán)路的載波同步方法有特定的優(yōu)勢。
:
[1]廖騰達(dá),謝顯中,鄭平蓮.基于循環(huán)前綴的LTE系統(tǒng)多普勒頻偏估計(jì)算法[J].電視技術(shù),2010,34(1):56-58.
[2]李新花,曹葉文.一種改進(jìn)的適用于分組傳輸?shù)腛FDM頻偏估計(jì)方法[J].電路與系統(tǒng)學(xué)報(bào),2011(5):1-7.
[3]許奧林,王軍,彭克武,等.TDS-OFDM系統(tǒng)兩種載波頻偏估計(jì)算法及對比[J].電視技術(shù),2007,31(12):8-10.
[4]王成,吳瑛,韓廣.基于自相關(guān)函數(shù)的前向載波頻偏估計(jì)算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(17):3790-3792.
[5]李永波.基于軟件無線電的OFDM同步系統(tǒng)的研究與實(shí)現(xiàn)[D].重慶:重慶大學(xué),2004.
[6]劉禮剛,曾延安,常大定.基于FPGA的反正切函數(shù)的優(yōu)化算法[J].微計(jì)算機(jī)信息,2007(17):203-205.
Design of Carrier Synchronization by Using Frame Header Imformation Based on FPGA
WEI Zhaochuan,XIE Dong,CAI Chenglin
(Department of Communication and Information System,Guilin University of Electronic Technology,Guangxi Guilin 541004,China)
A design of carrier synchronization by using frame header imformation is expounded based on FPGA.First,the theory of the frequency offset estimation and phase offset estimation are described in this paper,then the design of system block diagram and submodule theory are presented based on FPGA.Finally,it is verified by Modelsim simulation and SignalTap of board-level testing.
frame header imformation;frequency offset estimation;phase offset estimation;carrier synchronization;FPGA
TN919.8
A
【本文獻(xiàn)信息】韋照川,謝棟,蔡成林.基于幀頭信息的載波同步設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].電視技術(shù),2013,37(3).
國家自然科學(xué)基金項(xiàng)目(61162007);廣西區(qū)自然基金重點(diǎn)項(xiàng)目(2012GXNSFDA053027)
韋照川(1973— ),碩士,高級實(shí)驗(yàn)師,主研數(shù)字通信,信號處理;
謝 棟(1986— ),碩士研究生,主研數(shù)字通信;
蔡成林(1969— ),博士,教授,主研衛(wèi)星導(dǎo)航定位,衛(wèi)星通信。
責(zé)任編輯:魏雨博
2012-08-25