基于高速幀同步和相位模糊估計(jì)的方法及其FPGA實(shí)現(xiàn)
0 引 言
數(shù)字通信中的消息數(shù)字流總是用若干碼元組成一個(gè)“字”,又用若干“字”組成一“句”。因此,在接收這些數(shù)字流時(shí),同樣也必須知道這些“字”、“句”的起止時(shí)刻,在接收端產(chǎn)生與“字”、“句”起止時(shí)刻相一致的定時(shí)脈沖序列,統(tǒng)稱為群同步或幀同步。幀同步的檢出一般可用相關(guān)檢測(cè)技術(shù)完成。以往數(shù)據(jù)通信中的速率不是很高,相關(guān)檢測(cè)的問題容易解決,但數(shù)字通信的日益高速率化的趨勢(shì),對(duì)實(shí)時(shí)狀態(tài)下的相關(guān)檢測(cè)提出了新的難度挑戰(zhàn)。實(shí)際上,很多高速數(shù)傳系統(tǒng)比如中繼衛(wèi)星通信系統(tǒng),要求用戶星和地面站下行鏈路間的傳輸數(shù)據(jù)率越來越高,達(dá)到了數(shù)百兆甚至上千兆的水平。在這樣的高速環(huán)境下對(duì)數(shù)據(jù)進(jìn)行實(shí)時(shí)的處理,就更加困難。
PSK調(diào)制在通信領(lǐng)域得到了廣泛的應(yīng)用,但存在相位模糊的問題,其一般可通過差分編碼來解決。此法雖然簡(jiǎn)單,但需要在發(fā)送端加入獨(dú)立的差分編碼電路,并在接收端加入差分檢測(cè)電路。也有一些方法不用單獨(dú)加入差分編碼電路,比如在接收端結(jié)合Viterbi譯碼過程來完成相位模糊值的估計(jì),進(jìn)而進(jìn)行相位恢復(fù)。但這一過程算法復(fù)雜,比較耗時(shí)。
本文既研究了高速條件下8PSK信號(hào)的幀同步問題,同時(shí)又對(duì)其相位模糊值進(jìn)行估計(jì)。主要依靠并行結(jié)構(gòu),對(duì)傳統(tǒng)幀同步方法進(jìn)行了簡(jiǎn)化和改進(jìn),從而同時(shí)完成上述兩個(gè)任務(wù)。并且將該算法付諸FPGA實(shí)現(xiàn),驗(yàn)證了算法的有效性。
1 傳統(tǒng)幀同步器結(jié)構(gòu)和同步檢測(cè)算法
過去已經(jīng)有很多幀同步技術(shù)的研究,其中最普遍的幀同步方法就是周期性地在一幀的起始處集中插入定長(zhǎng)的幀同步碼。這種結(jié)構(gòu)通常是用計(jì)算接收符號(hào)序列與本地同步碼序列相關(guān)的方法來檢測(cè)幀同步。
對(duì)于一維信號(hào),如BPSK調(diào)制信號(hào),其相關(guān)運(yùn)算通常可用簡(jiǎn)單的同或門來實(shí)現(xiàn)。將待檢測(cè)比特流與本地同步碼序列對(duì)應(yīng)位進(jìn)行同或,然后逐位相加。根據(jù)和的大小以及符號(hào)即可對(duì)幀同步以及相位模糊值進(jìn)行檢測(cè)。這種方法雖然簡(jiǎn)單,但無法適應(yīng)如MPSK這樣的二維信號(hào)的幀同步檢測(cè)以及相位模糊值的估計(jì),因此應(yīng)用范圍較窄。
2 實(shí)現(xiàn)相位模糊估計(jì)的幀同步檢測(cè)算法
能夠?qū)崿F(xiàn)相位模糊估計(jì)的幀同步檢測(cè)算法包含兩部分:
(1)待檢測(cè)數(shù)據(jù)與本地同步碼進(jìn)行相關(guān)運(yùn)算;
(2)相關(guān)值與門限比較,根據(jù)比較結(jié)構(gòu)給出相應(yīng)的峰值脈沖及相位模糊值。
下面以8PSK信號(hào)為例對(duì)能夠同時(shí)實(shí)現(xiàn)二維信號(hào)幀同步以及相位模糊估計(jì)的相關(guān)算法和判決方式進(jìn)行詳細(xì)介紹。
2.1 相關(guān)算法
由于8PSK信號(hào)是二維信號(hào),所以待檢測(cè)符號(hào)序列可用aiejφi-Ii+jQi,i=0,1,2,…,N-1表示。其中ai為第i個(gè)數(shù)據(jù)的幅度;φi為其相位;N為幀頭碼元長(zhǎng)度;Ii,Qi分別表示其實(shí)部和虛部??梢杂胢iejθi=i0i+jQ0i,i=0,1,2,…,N-1表示本地同步碼序列,其中:mi為第i個(gè)同步碼的幅度;θi為其相位;I0i,Q0i分別表示其實(shí)部和虛部。本文選取M序列作為同步碼,并將0,1分別映射為8PSK中相對(duì)的0相位和4相位;然后進(jìn)行8PSK調(diào)制。如果幀頭部分碼元發(fā)生錯(cuò)誤(由0變?yōu)?,或者相反),其相位就會(huì)發(fā)生180°偏轉(zhuǎn),即由aiejφi變成了aiej(φi+π)。
待檢測(cè)符號(hào)序列與本地同步碼序列的相關(guān)值應(yīng)該為:
得到式(1)的相關(guān)值后,一種比較直接的方法就是首先計(jì)算相關(guān)值的模,然后與門限進(jìn)行比較來檢測(cè)峰值存在與否,若檢測(cè)出峰值,再由相關(guān)值的實(shí)虛部關(guān)系(arctan(*))估計(jì)相位模糊值。
但是上述方法計(jì)算相當(dāng)復(fù)雜,F(xiàn)PGA資源消耗較大,并且不易并發(fā)地進(jìn)行峰值檢測(cè)和相位模糊值的估計(jì)。所以下面提出一種易于FPGA實(shí)現(xiàn)的簡(jiǎn)化的算法。
由于需要估計(jì)相位模糊值,式(1)中的相位信息不能省略。又因?yàn)?PSK信號(hào)是恒包絡(luò)的,故mi為常量;在噪聲影響下是近似恒包絡(luò)的,故可近似認(rèn)為ai為常量。所以式(1)可以簡(jiǎn)化為:
將式(2)中等號(hào)兩邊同除am可得本文簡(jiǎn)化后的相關(guān)算法如下:
對(duì)比式(1)和式(3)可知,后者相關(guān)值的計(jì)算僅與接收符號(hào)的相位以及本地同步碼的相位有關(guān),與前者相比,減少了一半的計(jì)算量,這給算法的FPGA實(shí)現(xiàn)帶來了極大的方便。
假設(shè)接收數(shù)據(jù)的幀頭部分與本地同步碼完全對(duì)齊,但接收的幀頭序列中有k個(gè)碼元發(fā)生誤碼。此時(shí)有N-k個(gè)i所對(duì)應(yīng)的φi-θi為常數(shù),設(shè)為△θ,發(fā)生誤碼的k個(gè)i所對(duì)應(yīng)的φi-θi則為△θ+π。此時(shí),相關(guān)值可用式(4)表示:
式中:△θ為相位模糊值;k為0時(shí)表示幀頭部分沒有發(fā)生誤碼。由于在8PSK調(diào)制中,相位模糊值為π/4
2.2 門限判決方法
得出相關(guān)值之后,下面提出設(shè)置兩個(gè)門限的方法,既可避免計(jì)算的復(fù)雜性,還可以并發(fā)地進(jìn)行峰值脈沖的檢測(cè)和相位模糊值的估計(jì)。
當(dāng)接收數(shù)據(jù)的幀頭部分與本地同步碼完全對(duì)齊時(shí),可對(duì)式(5)做如下討論:
(1)若l=0,2,4,6,即相位模糊值為π/4的偶數(shù)倍,觀察式(5)可知,此時(shí)相關(guān)值僅包含實(shí)部或虛部。故實(shí)部或虛部的絕對(duì)值(相關(guān)值的模)應(yīng)該大于判決門限,設(shè)為threshold_0。
(2)若l=1,3,5,7,即相位模糊值為π/4的奇數(shù)倍,觀察式(5)可知,此時(shí)相關(guān)值包含實(shí)部和虛部。實(shí)部和虛部的絕對(duì)值均約為相關(guān)值的模,所以它們的倍約為相關(guān)值的模,且都應(yīng)該大于門限threshold_0。因此它們本身都應(yīng)該大于
通過上述分析可知,相關(guān)檢測(cè)問題實(shí)際上可以轉(zhuǎn)化為相關(guān)值的實(shí)部和虛部與兩個(gè)門限進(jìn)行比較的問題。其判斷邏輯如表1所示。
注:第二列為按照逆時(shí)針計(jì)算的相位模糊值。
式(3)表明,僅通過接收符號(hào)的相位以及本地同步碼的相位即可計(jì)算出相關(guān)值的實(shí)部和虛部。
之后將實(shí)部和虛部分別與兩個(gè)門限值做比較,然后根據(jù)表1的判決邏輯,即可直接檢測(cè)出峰值脈沖與相位模糊值。
3 算法性能分析
幀同步系統(tǒng)應(yīng)有較強(qiáng)的抗干擾能力,通常用漏同步概率、假同步概率來衡量其系統(tǒng)性能。本文的方法應(yīng)用在320 MHz符號(hào)速率8PSK信號(hào)系統(tǒng)的幀同步和相位模糊值的估計(jì)上。其中,幀同步碼長(zhǎng)為58;幀全長(zhǎng)為2 660個(gè)調(diào)制符號(hào)。并且要求在比特信噪比不低于6 dB的情況下,漏同步概率小于10-12;假同步概率小于10-12;同步概率大于0.95。
設(shè)p為碼元錯(cuò)誤概率,n為同步碼組的碼元數(shù),m為判決器容許碼組中的錯(cuò)誤碼元最大數(shù),則漏同步概率為:
這是滿足系統(tǒng)要求的。
用Matlab仿真測(cè)試結(jié)果如下:在各個(gè)偏移相位下比特信噪比從6~20 dB,在未做前后方保護(hù)的情況下做104次仿真。有假同步概率為0;同步概率為1;失步概率為0。這樣加上系數(shù)為3的前后方保護(hù)后,相當(dāng)于做1012次仿真。有假同步概率為0;同步概率為1;失步概率為0。由上可見,理論分析和仿真實(shí)驗(yàn)得到的性能均滿足系統(tǒng)的要求。
4 實(shí)現(xiàn)相位模糊估計(jì)的高速幀同步器結(jié)構(gòu)與FPGA實(shí)現(xiàn)
實(shí)際應(yīng)用中符號(hào)速率為320 MSPS,8PSK調(diào)制信號(hào)的幀同步碼長(zhǎng)為58,幀長(zhǎng)為2 660個(gè)調(diào)制符號(hào)。整個(gè)結(jié)構(gòu)流程描述如下:
(1)首先將320 MHz的接收數(shù)據(jù)進(jìn)行1:2串/并轉(zhuǎn)換,將數(shù)據(jù)速率降低為160 MHz,得到Q0,Q1兩路并行數(shù)據(jù)。這樣保證了系統(tǒng)的主要功能模塊是較低速實(shí)現(xiàn)的,而只有少量接口模塊需要考慮高速問題。
(2)待檢測(cè)數(shù)據(jù)的準(zhǔn)備
首先緩存串/并轉(zhuǎn)換前的57個(gè)數(shù)據(jù),得到buf57。然后將該緩存數(shù)據(jù)與并行輸出數(shù)據(jù)Q0,Q1進(jìn)行組合來形成58個(gè)待檢測(cè)數(shù)據(jù)。方法如下:
這樣就產(chǎn)生了2組各58個(gè)并行數(shù)據(jù),用于與本地同步碼進(jìn)行相關(guān)運(yùn)算。
(3)將待檢測(cè)數(shù)據(jù)送入相關(guān)檢測(cè)器,使用簡(jiǎn)化的相關(guān)算法和兩個(gè)門限的判決方法,可以得到峰值脈沖并估計(jì)出相位模糊值。
由于相關(guān)值的計(jì)算僅與接收符號(hào)和本地同步碼的相位有關(guān),所以在FPGA實(shí)現(xiàn)時(shí),可以以相位為地址,精心設(shè)計(jì)RAM,直接查表得到三角值。之后用IPcore生成加法器,對(duì)三角值求和得到相關(guān)值的實(shí)部和虛部。將相關(guān)值的實(shí)部和虛部分別與設(shè)定的threshold_0,threshold_1進(jìn)行比較,以比較結(jié)果為地址,根據(jù)表1的判決邏輯設(shè)計(jì)RAM初始值。這樣就可根據(jù)比較結(jié)果直接查RAM得到峰值脈沖和相位模糊值。
(4)前后方保護(hù)
為了減少漏同步和假同步概率,需要進(jìn)行前后方保護(hù)。將幀同步過程分為四種工作狀態(tài),即搜索態(tài)、后方保護(hù)態(tài)、同步態(tài)、前方保護(hù)態(tài)。設(shè)定前后方保護(hù)系數(shù)均為3,即連續(xù)檢測(cè)到3次峰值脈沖時(shí)則判定為同步;連續(xù)3次未檢測(cè)到峰值脈沖時(shí)才判定為失步。前后方保護(hù)的工作過程如圖2所示。
(5)恢復(fù)相位
對(duì)接收符號(hào)相位進(jìn)行適當(dāng)延遲,以保持與檢測(cè)出來的相位模糊值同步,然后用接收符號(hào)相位減去相位模糊值,即可將發(fā)送符號(hào)的相位恢復(fù)出來。
5 高速幀同步器的FPGA實(shí)現(xiàn)結(jié)果
選用Xilinx公司的ISE 9.2作為硬件開發(fā)平臺(tái),并采用VHDL編程語言實(shí)現(xiàn)本文所描述的高速幀同步器。其中,參數(shù)設(shè)定如下:同步碼長(zhǎng)為58;幀長(zhǎng)為2 660;threshold_0為43.500 0;threshold_1為30.763 8。將生成的比特文件下載到Xilinx公司的Virtex-4芯片上,通過Chipscope得到的結(jié)果如圖3所示。圖中前兩行表示串/并轉(zhuǎn)換后的兩組相位數(shù)據(jù);第3行則為最后給出的同步脈沖信號(hào);第4,5行表示恢復(fù)后的相位。
從圖3可以看出,兩個(gè)幀同步脈沖信號(hào)的距離約為1 330個(gè)碼元符號(hào),由于是兩路并行結(jié)構(gòu),這恰好就是由串行數(shù)據(jù)一幀長(zhǎng)度2 660得到的。
6 結(jié) 語
現(xiàn)以符號(hào)速率高達(dá)320 MSPS的8PSK調(diào)制信號(hào)為例,研究了能估計(jì)相位模糊值的高速幀同步問題。首先提出僅依靠接收符號(hào)和本地同步碼來快速確定二維調(diào)制符號(hào)的幀同步,并同時(shí)估計(jì)相位模糊值的計(jì)算方法。這種方法僅利用符號(hào)的相位信息,相對(duì)于一般方法減少了一半計(jì)算量。給出能夠適應(yīng)高速數(shù)傳系統(tǒng)的并行結(jié)構(gòu),并且通過FPGA實(shí)現(xiàn)驗(yàn)證了算法的有效性。通過對(duì)并行結(jié)構(gòu)以及算法相關(guān)參數(shù)適當(dāng)修改,即可對(duì)不同速率、不同信噪比的系統(tǒng)有一定的適應(yīng)性,還可方便地推廣應(yīng)用于其他MPSK調(diào)制信號(hào)。
參考文獻(xiàn):
[1].N-1datasheethttp://www.dzsc.com/datasheet/N-1_1997158.html.
[2].Virtex-4datasheethttp://www.dzsc.com/datasheet/Virtex-4_1602352.html.
來源:2008前進(jìn)0次