馬經緯,王延東,江 晟
(中國科學院長春光學精密機械與物理研究所,長春 130033)
GPS 是目前世界范圍內發展最為完善,運行最為穩定,應用范圍最廣的衛星導航系統。近年來,隨著GPS 產品的飛速發展和廣泛應用,人們對GPS 的使用環境要求也越來越高,包括在高樓林立的城市街道、室內、停車場等衛星信號微弱的環境。因此,在弱信號環境下GPS 的衛星信號捕獲問題成為了近年來的研究熱點[1]。
信號捕獲的主要任務是在空間中存在的眾多電磁波信號中準確地識別捕獲到GPS 衛星廣播的信號,確定衛星信號的多普勒頻移和偽碼的初始相位,實現接收機本地生成的載波信號和偽碼與接收到的衛星信號的粗同步,為接收機后續的信號跟蹤和導航結算打下基礎[2]。捕獲靈敏度是指接收機能夠捕獲到的衛星信號的最低信噪比(SNR),是反映接收機性能的重要指標。
在弱信號捕獲方面,加長相干積分時間是最有效的方法,但導航數據跳變位的存在限制了相干積分時間的加長[3]。在不知道導航數據跳變位置的情況下,相干積分時間通常不超過10ms[4]。因此,估計導航數據跳變的位置就成了弱信號捕獲的關鍵。文獻[5]中介紹了一種全比特的弱信號捕獲算法,但這種算法計算量巨大,不利于工程實現。文獻[6]中介紹了半比特捕獲算法,并將塊累加思想運用到算法中,但這種算法中采用的非相干積分累加方法會造成平方損失,不利于積分增益的提高。文獻[3]中介紹了一種避免平方損失的差分累加的方法,但相干積分時間仍然限制在10 ms。
本研究對GPS 接收機的信號捕獲算法進行了研究,同時在半比特捕獲算法的基礎上提出了一種改進的弱信號捕獲算法,提高了GPS 接收機的捕獲靈敏度。
傳統的GPS 信號捕獲算法主要有串行時域捕獲算法和并行頻域捕獲算法2 種,其中,串行時域捕獲算法主要應用在傳統的GPS 硬件接收機中,而并行頻域捕獲算法主要應用于軟件接收機中。由于串行時域捕獲算法對衛星信號的多普勒頻移和碼相位進行二維搜索,搜索區間大,耗時長,因此本文主要介紹頻域的并行碼相位捕獲算法。
并行碼相位捕獲算法可將碼相位的搜索過程通過傅里葉變換一次性完成,因此只需要在頻率范圍內進行搜索即可。這種算法將與本地載波信號進行混頻后的中頻信號和本地C/A 碼信號分別進行傅里葉變換之后共軛相乘,然后再進行傅里葉反變換,得到信號相關累積后的模值與門限值進行比較,若高于門限值則捕獲成功,否則在下一頻段繼續捕獲。其原理圖如圖1 所示[7]。

圖1 并行碼相位捕獲算法原理框圖
對于2 個長為N 點的周期性序列x(n)和y(n),它們的相關值z(n)為

對上述相關值z(n)進行離散傅里葉變換,得到離散傅里葉變換結果如下

其中:X(k)和Y(k)分別為x(n)和y(n)的離散傅里葉變換;ˉY(k)表示變換結果Y(k)的共軛。若x(n)和y(n)分別代表輸入的衛星信號和本地產生的偽碼序列,則由式(2)可以得知,2 個序列在時域內做相關運算相當于它們的離散傅里葉變換在頻域內做共軛乘積運算,因此,頻域內乘積的傅里葉反變換也正代表了時域內各個碼相位處的相關值。
在正常情況下接收機通常利用1 ms 的衛星信號數據便可成功的捕獲到信號,即一個C/A 碼的周期,無論是采用時域捕獲算法或頻域捕獲算法均可,但在弱信號的環境下,由于有用信號的功率比較低,捕獲的判決量往往達不到門限值,造成捕獲的失敗。因此,在這種情況下,接收機在捕獲的過程中需要對幾十毫秒甚至幾百毫秒的衛星數據通過一定方法進行處理以得到可靠的捕獲判決量。一般采用對多個C/A 碼周期的相關結果進行一定的累加方式以提高微弱信號的信噪比。常用的累加方法有相干累加、非相干累加和差分累加方法[8-10],相干累加方法對信噪比提升最為明顯,但其累加時間受到導航數據比特跳變和損耗因子的限制;非相干累加雖然克服了導航數據比特的跳變,但其引入了平方損失,信噪比提升有限; 差分累加的信噪比提升介于相干累加和非相干累加之間,由于其不受導航數據為跳變的影響,所以在弱信號處理過程中是一個比較好的選擇。在高靈敏度接收機設計中,為了盡可能兼顧實時性,獲取更高的信噪比,通常采取將這幾種累積算法相結合的算法。
半比特方法是弱信號捕獲中較常用的一種算法。由于導航數據比特的寬度為20 ms,因此半比特方法將讀入的衛星信號每20 ms 分成兩段,前后各10 ms,這樣導航數據比特的跳變肯定會落在2 個10 ms 數據塊中的一個里面,從而導致含有導航跳變的數據塊相干累加結果變小。對前后10 ms的數據進行相干累加,奇數段(數據段1,3,5,…)的相干結果進行非相干累加,偶數段(數據段2,4,6,…)的相干結果進行非相干累加,然后比較2 個非相干累加結果的大小。由于數據比特的寬度為20 ms,因此跳變位置只可能存在于奇數塊中或者偶數塊中而絕不可能同時存在于奇數塊和偶數塊中。因此,比較奇數塊和偶數塊非相干累加結果后便可以成功的避免導航數據比特跳變的影響,利用不含有導航跳變的一組數據進行捕獲判決,完成衛星信號的捕獲。但半比特方法有2 個明顯的缺點:首先半比特方法中相干累加的時間只有10 ms,數據利用率低。其次該算法采用了非相干累加方法,捕獲過程中會引入平方損耗,降低了信噪比增益。
本研究提出的弱信號捕獲算法對半比特方法的2 個缺點進行改進。首先通過精確判斷導航數據比特跳變位置提高其相干累加時間,同時避免導航數據比特跳變的影響; 其次利用差分累加方式代替非相干累加來避免非相干累加引入的平方損失,提高信噪比。
由于半比特方法只是確定導航數據跳變存在于哪個10 ms 的數據塊當中,因此在進行捕獲的過程中最長只能進行10 ms 的相干累加,而與其相鄰的存在導航數據跳變的10 ms數據則只能舍棄。針對這一問題,本研究將對導航數據跳變的位置進行進一步確定,將讀入的衛星數據中的每個10 ms數據再進行分塊,分成2 個5 ms 的數據塊,通過相干積分之后的比較進一步確定導航數據跳變位置存在于哪個5 ms 的數據之中,從而使可用于相干積分的數據長度變為15 ms,提高捕獲的靈敏度。新的捕獲算法數據分塊圖如圖2 所示。

圖2 改進算法數據分塊
由圖2 可知,改進的弱信號捕獲方法讀入N ×20 ms 的衛星數據,將衛星數據每20 ms 為一組,共分成N 組;接下來每一組20 ms 數據以5 ms 為單位分為4 塊,分別標記為A、B、C、D。將每一個5 ms 數據塊以1 ms 為單位進行數據累加,累加后的數據進行相干積分得到RAn,RBn,RCn,RDn(n =1 ~N)。由于每組數據相差時間為20 ms,即一個導航數據跳變周期,導航數據比特跳變將會發生在每組數據的相同位置的數據塊內。將N 組數據中的相同位置數據塊的相干累加結果進行平方相加得到4 組累加結果:

比較4 組累加結果(YA,YB,YC,YD)的大小,其中累加結果最小的一組內含有導航數據比特的跳變,因此便確定了含有導航數據比特跳變的5 ms 數據塊的位置。以這個位置為邊界,將處在2 個導航數據跳變位置之間的3 個數據塊的相干累加結果進行相干累加。由于處在2 個導航數據跳變位置之間的數據塊數據碼沒有跳變,即符號相同,因此得到的累加結果便相當于15 ms 的相干累加結果。接下來對每個15 ms 的相干累加結果進行差分累加,最終得到捕獲檢測量。下面舉例說明。
若導航數據比特跳變位置發生在A 位置,則不含導航數據比特跳變的數據塊累加結果依次為

則檢測統計量為

若導航數據比特跳變發生在B 位置,則不含導航數據比特跳變的數據塊累加結果依次為

則檢測統計量為

由于每組數據分為4 塊,所以導航數據跳變位置為C 和D 的情況分別與跳變位置為B 位置和A 位置相同,這里不再贅述。
綜上所述,結合并行碼相位FFT 捕獲方法,可以得到改進的弱信號捕獲算法的具體流程圖如圖3 所示。
改進后的弱信號捕獲算法具體流程如下:
1)讀入N×20 ms 衛星信號數據,在當前搜索的頻點上進行中頻信號與載波的混頻。
2)將讀入的數據以20 ms 為單位分組,每組再以5 ms為單位進行數據分塊,分塊形式見圖2。
3)分別對每個5 ms 數據塊進行數據累加,得到1 ms 的累加數據,并對累加后的1 ms 數據進行FFT 操作,與本地C/A碼的共軛FFT 相乘,對相乘結果進行FFT 逆變換,這樣便得到了4 ×N 組累加數據塊的相干積分結果。分別每組數據相同位置的相干積分結果進行平方累加,得到4 組累加結果。
4)比較4 組累加結果,結果最小的一組對應的數據塊位置中存在導航數據比特跳變。
5)以存在導航數據比特跳變的數據塊為邊界,將2 個邊界之間的相鄰3 組數據塊的相干積分結果進行累加,得到相當于15 ms 的相干累加結果。
6)再對這些相干積分結果取模后進行差分累加,累加后的結果與門限值比較,若大于門限值則捕獲成功,否則繼續在下一頻段搜索。
由以上分析可知,在改進的弱信號捕獲方法中,導航數據跳變位置被更加精確地確定在了5 ms 的數據中,這樣每20 ms 的數據便可以進行15 ms 的相干累加,結合差分累加,捕獲的信噪比增益較傳統半比特方法將大大提升。同時,采取先累加后相關的方法減小捕獲過程中的計算量,算法的執行速度得以提升。

圖3 改進的弱信號捕獲算法流程
為了驗證改進的弱信號捕獲算法的有效性,在Matlab 環境下對弱信號捕獲算法進行了仿真。設置仿真參數:采樣頻率: fs=8.184 MHz;中頻頻率: fi=4.309 MHz。采用恒虛警門限法,虛警率設為10-2。
首先對改進的弱信號捕獲算法與傳統的半比特方法在捕獲概率上進行比較。每種方法讀入100 ms 的衛星數據,分別在不同信噪比下進行信號捕獲,每個信噪比下面進行100 次捕獲,最終計算其捕獲概率,得到的結果圖如圖4所示。

圖4 改進算法與傳統算法性能對比
由圖4 可知,相比于傳統的半比特方法,改進的弱信號捕獲方法在捕獲靈敏度提升上效果較好。在相同的捕獲概率下,改進的算法比傳統半比特算法靈敏度提高了2 ~3 dB。
在正常的室內弱信號環境下,GPS 信號的信噪比SNR 大約在-34 dB 左右,此時采用改進的弱信號捕獲算法進行信號的捕獲,使用100 ms 的衛星信號數據,結果如圖5 所示。
由圖5 可知,在正常的室內弱信號環境下,改進的捕獲算法可以很好地捕獲到衛星信號,捕獲過程中噪聲干擾小,在捕獲點處相關值突出,捕獲效果好。
為了驗證改進捕獲算法的捕獲靈敏度,繼續降低衛星信號的信噪比,衛星信號長度依舊為100 ms,當信噪比SNR 達到-40 dB 時,改進捕獲算法的捕獲效果圖和傳統算法的捕獲效果圖分別如圖6 和圖7 所示。

圖5 SNR= -34 dB 100 ms 數據改進算法捕獲圖

圖6 SNR= -40 dB 改進算法捕獲圖

圖7 SNR= -40 dB 傳統算法捕獲圖
由圖6 可知,當衛星信號的信噪比降低到-40 dB 時,改進的捕獲算法依然能夠捕獲到衛星信號,但捕獲過程中噪聲干擾比較大,捕獲點處相關值依然比較突出; 而由圖7 可知傳統算法在此信噪比下已經無法捕獲到衛星信號。繼續降低衛星信號的信噪比,改進捕獲算法依然可以捕獲到衛星信號,但噪聲干擾變大,捕獲效果變差,所以認為其捕獲靈敏度可以達到-40 dB。
本研究介紹了一種新的弱信號捕獲算法,在半比特算法的基礎上進行了改進,將相干積分時間提高到了15 ms,并采用了新的累加方法提高信噪比。通過仿真分析,本研究的弱信號捕獲算法可以成功的捕獲到相當于室內弱信號的信噪比-40 dB 的衛星信號,比傳統的半比特捕獲算法捕獲靈敏度提高了2 ~3 dB,使GPS 軟件接收機在弱信號環境下也能快速地實現信號的捕獲。
[1]Oleksiy V Korniyenko,Mohammad S Sharawi.GPS software receiver implementations[J]. IEEE Potentials Magazine,2007 (26):42-46.
[2]方科.高動態擴頻信號捕獲的多普勒補償[J].四川兵工學報,2013,34(7):122-124.
[3]Yang Liu,Tian Jin.Analysis and compare of weak GPS signal acquisition algorithms[C]//IET International Communication Conference on Wireless Mobile and Computing.Shanghai,China,2009.
[4]O’Driscoll C,Petovello M G,Lachapelle G. Software receiver strategies for the acquisition and re-acquisition of weak GPS signals[C]//Proceedings of National Technical Meeting.California,USA,2008.
[5]Mao Wei-Lung,Chen An-Bang.New code delay compensation algorithm for weak GPS signal acquisition[J].AEU-International Journal of Electronics and Communications,2009,63(8):665-677.
[6]李寅寅,徐曉蘇,劉錫祥.基于半比特交替和FFT 組合的GPS 軟件接收機弱信號捕獲算法[J].中國慣性技術學報,2012,20(1):46-50.
[7]謝剛.GPS 原理與接收機設計[M].北京:電子工業出版社,2009.
[8]唐康華. GPS/MIMU 嵌入式組合導航關鍵技術研究[D].長沙:國防科技大學,2008.
[9]馬若飛.GPS 弱信號捕獲算法研究及其在軟件接收機上的實現[D].哈爾濱:哈爾濱工業大學,2010.
[10]文立,劉建業,李榮冰.面向深組合導航技術的GPS 軟件接收機捕獲算法[J].彈箭與制導學報,2009,29(1):31-34.