喻盛琪,張天騏,趙健根,張 天
(1.重慶郵電大學 通信與信息工程學院,重慶 400065;2.重慶郵電大學 信號與信息處理重慶市重點實驗室,重慶 400065)
直接序列擴頻(direct sequence spread spectrum,DSSS)作為一種重要的調制技術,因其具有較強的抗干擾能力和保密性能,以及低截獲率等優點而廣泛應用在電子對抗,航空航天,通信監測等通信領域[1]。在非協作通信中,由于發射的是經過PN碼調制后頻譜得到展寬的信號,而在接收端需要知道用于擴頻的PN碼才能實現信號的盲解擴,因此對DSSS信號PN碼的盲估計研究已成為DSSS通信系統參數估計的研究熱點[2]。非周期長碼直擴信號最大特點就是用一周期的PN碼調制非整數個信息碼元,PN碼的周期性遭到嚴重破壞,盲估計難度大。就公開發表的文獻來看,對非周期長碼直擴信號的PN碼盲估計研究較少。
針對長碼直擴信號的PN碼盲估計研究,文獻[3-5]將長碼直擴信號建模為多用戶短碼直擴信號模型,實現了PN碼的有效估計,并根據特定約束條件完成了PN碼片段的拼接,但是都沒能有效解決在拼接時產生的相位模糊問題。文獻[6]先用聚類方法對PN碼分段估計,再用游程檢驗進行恢復,解決了相位模糊問題,但隨著數據量的增大,算法復雜度隨之升高,性能急劇下降,以上文獻所使用的方法只能對周期長碼直擴信號PN碼進行盲估計。對非周期長碼直擴信號的PN碼盲估計,使用較多的方法就是文獻[7-11]中的m序列三階相關函數法,但是該方法只適用于PN碼為m序列的情況,而對于Gold等其它PN碼序列不再適用。其次就是將非周期長碼直擴信號建模為含有缺失數據的短碼直擴信號[12],但是當缺失數據比例較大時,估計性能嚴重下降。
針對上述問題,本文提出基于分段特征值分解和梅西算法的非周期長碼直擴信號PN碼盲估計方法。首先,在偽碼周期內根據擴頻調制比對信號進行非重疊分段。然后,利用分段特征值分解估計出PN碼片段并進行拼接,其中每個片段都會獨立地取正負號。最后,從二進制偽隨機碼的產生規律及特性出發,通過滑動搜索窗,利用梅西算法得到PN碼的生成多項式,消除在拼接時產生的相位模糊,從而估計出正確的m序列和Gold序列。
不失一般性,假設信號的PN碼周期及碼片速率已通過文獻[13]得到,則接收機端接收的基帶非周期長碼直擴信號經碼片速率采樣后,可以表示為
(1)
其中
(2)
(3)

為方便起見,假設根據文獻[4]已經完成信號的盲同步,即τ=0,此時式(1)可記作為
y(n)=s(n)+v(n),n=1,2,…,N
(4)



圖1 分段特征值分解
定義Yj如下
(5)
其中
(6)

對Yj的自相關矩陣Rj進行特征值分解,由式(5)可得信號自相關矩陣Rj的估計值為
(7)
由于s和v相互獨立,當M→∞時,式(7)中第一項和第四項趨于0,則式(7)可進一步化簡為
(8)
即
(9)
將(6)式代入式(9)中得
(10)

(11)

(12)

由矩陣分解知識可知,式(12)就是矩陣Rj的特征值分解式,即
(13)
其中
(14)
(15)


(16)
由式(16)可看出,根據特征值分解法估計得到的PN碼的每一段都可以獨立地取正負號,因此存在分段相位模糊的問題,這使得輸出序列有2J種選擇,要從2J種選擇中恢復出一整周期完全正確的PN碼絕非易事。下面通過梅西算法求PN碼生成多項式從而對PN碼進行恢復,消除相位模糊。
梅西算法是用來求產生二元序列的最短線性移位寄存器的一種迭代算法[14],即通過歸納的方法從校驗子中找出一系列的移位寄存器:〈fnx,ln〉,n=1,2,…,B,使每個〈fnx,ln〉都是產生序列前n項的最短移位寄存器,最終得到的〈fBx,lB〉就是產生B長二元序列的最短線性移位寄存器,其中fBx為寄存器的聯結多項式,lB為寄存器的級數,也是多項式的階數。利用梅西算法求給定二元序列的最短線性移位寄存器的過程如下:
任意給定一個序列a0,a1,…aB-1,用數學歸納法定義一系列的寄存器〈fnx,ln〉,n=1,2,…,B。
(1)取初始值:f0x=1,l0=0。

(17)
其中,dn為第n步差值,并區別以下兩種情形:
1)若dn=0,則令
fn+1x=fnx,ln+1=ln
(18)
2)若dn=1,則需要區分以下兩種情形:
當l0=l1=…=ln=0,取
fn+1x=1+xn+1,ln+1=n+1
(19)
當有m0≤m fn+1x=fnx+xn-mfmx (20) ln+1=maxln,n+1-ln (21) 通過該過程最后得到的〈fBx,lB〉便是產生序列a0,a1,…aB-1的最短線性移位寄存器。其算法流程如圖2所示。 擴頻通信中使用的PN碼大部分是由線性反饋移位寄存器(LFSR)產生的二進制偽隨機序列,如式(22)所示 ak=hlak-l+hl-1ak-l+1+…+h2ak-2+h1ak-1 (22) 即PN碼序列的第k位,可由前l位線性表示,其中,l為生成多項式階數。h0,h1,…hlh0=1為生成多項式的系數。 根據文獻[14]可知,利用梅西算法求無誤碼(跟原序列相比完全同相或反相)的二進制偽隨機序列的生成多項式時,不需要知道完整的周期序列,只需要知道其中連續正確的2l位即可。以m序和Gold序列為例,當截取的序列長度大于或者等于2l時,利用梅西算法均可100%求出該序列的生成多項式。 圖2 梅西算法流程 根據這一結論,把式(16)作為待求生成多項式的序列,如圖3所示,按照一定的步長滑動搜索一個無誤碼矩形窗(窗長為2l),利用梅西算法求其對應多項式,該多項式就是m序列或Gold序列生成多項式。由式(22)可知,根據求得的生成多項式和矩形窗中連續的l位,可以產生一周期長度的新的序列,然后選取滑動窗后的部分序列同與之對應的部分新序列相比較,通過判斷其對應位置相同的概率是否達到一個閾值,來判斷求得的生成多項式是否正確,從而判斷出產生的新序列是否為恢復的PN碼序列。顯然,閾值越大,恢復的PN碼序列誤碼率越低,但滑動窗需要滑動搜索的次數也越多。通過合理設置閾值,可以達到不同的實驗要求,本文將閾值設置為80%,其實驗效果將在后面給出。 綜上所述,利用梅西算法識別序列生成多項式從而恢復出無相位模糊的PN碼的具體步驟如下: 步驟1 將式(16)作為接收序列; 步驟2 選取接收序列的第v位(假設v的初始值為5,v≤L-4l-4)到第v+2l-1位,也就是接收序列中連續的2l位,作為一個矩形滑動窗,利用梅西算法求序列的生成多項式; 步驟3 根據生成多項式及矩形窗中連續的前l位,產生一周期長度的新的序列; 步驟4 將新序列的第2l+1位到第4l位與接收序列的第v+2l位到v+4l-1位進行比較,如果對應位置相同的概率達到80%,那么求得的多項式就是PN碼序列生成多項式,然后執行步驟5,恢復出對應的序列;如果對應位置相同的概率未達到80%,滑動矩形窗,將v的值加5,重復步驟2、步驟3、步驟4,直到這兩段對應位置相同; 圖3 生成多項式求解 步驟5 根據序列的周期性,對新的序列向右循環移動v-1位,就可以恢復出一整周期不存在相位模糊的PN碼。 實驗中,信息碼采用BPSK調制的隨機序列;PN碼采用由線性移位寄存器產生的m序列和Gold序列,其具體階數、周期長度及生成多項式見表1;誤碼率計算公式為 (23) 式中:nm表示第m次蒙特卡洛仿真中估計的PN碼誤碼個數,M表示蒙特卡洛仿真次數,L表示PN碼的周期長度。 表1 仿真實驗選取的PN碼 實驗1:驗證本文方法的可行性。PN碼采用表1中的7階Gold序列,設接收信號樣本長度N=200L,G=53,擴頻調制比r=L/G=2.4,信噪比SNR=-10 dB,利用分段特征值分解對PN碼進行估計如圖4所示,利用梅西算法對PN進行恢復如圖5所示。 圖4中估計的PN碼是各段PN碼按式(16)進行組合得到的一整周期的PN碼序列的估計值(未取符號函數),由于各子段的碼序列是獨立估計的,組合后就會出現分段相位模糊的情況,從圖4可看出,估計出的第2子段PN碼(第54位到第106位)的相位與對應的真實PN碼的相位完全反相。 圖5是特征值分解結合梅西算法估計出來的PN碼估計值,為了便于和真實PN碼進行比較,在圖5中將估計的PN碼幅度值縮小為原來的0.8倍。由圖5可知,圖4中存在相位模糊的PN碼經過梅西算法處理恢復后與真實PN碼完全相同,不再存在相位模糊的問題。 實驗2:比較不同擴頻調制比對PN碼的估計性能的影響。PN碼分別采用表1中的9階Gold序列和m序列,接收信號樣本長度N=200L,擴頻調制比分別為r=1.8,r=2.4,r=3.5,r=5.2,信噪比變化范圍從-20 dB~-10 dB,變化間隔為1 dB,蒙特卡洛仿真400次得到PN碼的誤碼率曲線如圖6和圖7所示。 圖4 估計PN碼與真實PN碼對比 圖5 估計PN碼與真實PN碼對比 圖6 不同擴頻調制比下9階Gold序列誤碼率 圖7 不同擴頻調制比下9階m序列誤碼率 從圖6和圖7中可看出,無論是對m序列還是Gold序列的估計,r越大,對PN碼的周期性破壞越大,分段特征分解的性能越差,最終恢復出的PN碼序列的誤碼率也就越高。 對比圖6和圖7還可以看出,在相同的擴頻調制比和相同階數下,估計的m序列的誤碼率低于Gold序列的誤碼率。這是因為產生m序列的LFSR的級數是產生Gold序列的LFSR的級數的一半,在利用梅西算法進行m序列恢復時,矩形滑動窗的長度及相比較的數據長度也是Gold序列的一半,這樣在一個PN碼周期長度內,矩形窗具有更多的滑動次數,對比得到的數據也越精確,從而恢復出序列的誤碼率也就越低。 實驗3:比較不同階數對PN碼的估計性能的影響。設置接收信號樣本長度N=200L,擴頻調制比分別為r=5.2,PN碼分別采用表1中的7、9、10階Gold序列以及7、8、9、10階m序列,信噪比變化范圍從-20 dB~-5 dB,變化間隔為1 dB,蒙特卡洛仿真400次得到PN碼的誤碼率曲線如圖8和圖9所示。 從圖8和圖9中可以看出,不同階數下,隨著信噪比的增加,估計的m序列和Gold序列誤碼率逐漸減少,在信噪比SNR=-15 dB和SNR=-17 dB下,可以實現對10階Gold序列和10階m序列的正確估計。在相同信噪比下,階數越高的序列恢復出的PN碼序列的誤碼率越低。這是因為階數越高,序列的周期長度越長,算法處理的數據越多,包含有用信息越多,估計出的序列越準確,但數據的計算量也就越大,算法執行時間也就越長。 圖8 不同階數的Gold序列誤碼率 圖9 不同階數的m序列誤碼率 實驗4:比較在不同階數下,正確估計出PN碼序列所需要的數據組數,每組數據長度為PN碼周期長度L。設置擴頻調制比r=2.4,采用的PN碼序列及信噪比變化范圍同實驗3,蒙特卡洛仿真300次,得到不同階數下完全正確地估計出PN碼所需要的數據組數隨信噪比變化曲線如圖10和圖11所示。 圖10 Gold序列數據組數與信噪比關系 圖11 m序列數據組數與信噪比關系 從圖10和圖11可以看出,不同階數下,隨著信噪比的增加,完全估計出PN碼序列所需要的數據組數在不斷減少;在信噪比SNR=-5 dB下,大約只需要10組數據就能完全估計出各階的Gold序列和m序列。在同一信噪比下,階數越高,序列周期長度越長,完全估計出PN碼序列所需要的數據組數越少。 針對非周期長碼直擴信號PN碼盲估計問題,本文提出了特征分解與梅西算法相結合的方法。首先利用特征值分解估計出每一小段的PN碼,對每一小段PN碼進行拼接得到一整周期長度的PN碼。對于拼接產生的相位模糊問題,利用梅西算法估計PN碼生成多項式,根據生成多項式對序列進行恢復,從而得到完全正確的PN碼。實際上該方法適應于多種PN碼的估計,仿真實驗以常用的m序列和Gold序列為例進行研究,結果表明,本文方法能夠在較低信噪比下對這兩種序列進行有效估計,并且序列的階數越高,性能越好。2.3 PN碼生成多項式求解


3 仿真實驗與分析









4 結束語