韓志鳳,劉建業,李榮冰,王 翌
(南京航空航天大學導航研究中心,南京211106)
隨著我國北斗衛星導航系統的建設和發展,北斗衛星導航系統的應用領域越來越廣泛,已經滲透到人們生活的方方面面[1],在復雜環境中應用的發展勢頭迅猛[2-3](如城市、峽谷、森林,以及大型建筑物的內部或地下車庫等室內場所)。在這些環境中,衛星信號強度存在較大的衰減,傳統的衛星導航接收機設計已不能滿足常規的導航定位需求[4]。因此,針對弱信號的高靈敏度接收機設計已經成為國內外專家研究的熱點。
延長相干積分時間是高靈敏度接收機常用的提高信噪比的方法[5],但是積分時間的延長往往受到數據比特跳變的限制[6]。在當前第二代北斗衛星導航系統中,衛星信號二次編碼調制了速率為1kbps的NH碼,能夠提高抗窄帶干擾的能力,并改善衛星信號間的互相關特性[7]。但是,數據比特符號跳變頻率被提高,也給接收機的各個環節設計帶來了一定的影響[8],特別是信號捕獲模塊。
NH碼的存在使得每1ms的隨機采樣信號都可能存在數據比特符號跳變,導致傳統的1ms相干積分產生不同程度的衰減。如果數據比特符號跳變恰好位于1ms數據的中間,在前后值抵消之后,1ms的相干積分值為0,導致信號捕獲結果極易出錯[9]。
在北斗接收機捕獲模塊設計中,往往采用連續重復多次的搜索策略。根據對NH碼的分析,每6ms數據中至少存在1次無數據比特符號跳變的情況,因此可連續獲得6個1ms相干積分值,選取擁有最大峰值的結果作為捕獲結果。在這種方法中,單次搜索需要6ms數據,但有效積分時間為1ms,效率較低,且不適合用于弱信號捕獲。
補零算法也常常被用在有二次調制的信號捕獲算法中。在本地1ms偽碼之后補充1ms零值,與輸入的2ms衛星信號進行相關,取前1ms的相關結果進行峰值判斷和碼相位估計[10]。此方法可有效屏蔽NH碼相位的影響,但有效累積時間仍為1ms,不能滿足弱信號捕獲的要求。
有論文提出將NH碼與偽碼結合形成長序列NH-PRN組合碼,對長組合碼進行搜索,獲得偽碼相位和NH碼相位。此方法可獲得20ms的積分效果,但是頻率搜索帶寬較小,運算量和搜索時間非常可觀。
本文針對NH碼相位頻繁跳變限制積分時間的問題,提出了一種北斗弱信號捕獲算法,將補零算法與差分相干積分算法相結合,消除了NH碼相位的影響,提高了信噪比。
北斗衛星導航系統的空間星座由5顆地球靜止軌道衛星(GEO)、27顆中圓地球軌道衛星(MEO)和3顆傾斜地球同步軌道衛星(IGSO)組成。
MEO/IGSO衛星的B1I和B2I信號播發D1導航電文,速率為50bps,并調制了 20bit的速率為1kbps的NH碼,碼寬為1ms,如圖1所示。GEO衛星的 B1I和 B2I信號播發 D2導航電文,速率為500bps[11]。
因此,相對于GPS信號,北斗信號中包含頻繁的數據比特跳變和NH碼相位變化,數據比特符號跳變頻率被提高到1kbps。在每1ms隨機采樣信號中都可能存在數據比特符號跳變,導致傳統的1ms相干積分產生衰減,可采用補零算法消除NH碼的影響。
補零算法采用并行碼相位的搜索方式,具體包括:
1)將2ms輸入信號與本地載波進行頻率維度的相關,頻率搜索間隔可為500Hz;
2)生成1ms本地偽碼序列,在其后補充1ms的零值;
3)將步驟1中的結果與步驟2中的結果進行相關,可利用FFT/IFFT進行并行的碼相位搜索;
4)取步驟3中相關結果的前1ms部分進行峰值檢測,獲得碼相位和載波頻率估計值。
圖2為補零算法的原理示意圖,本地碼序列包含1ms偽碼和1ms零值,與2ms輸入信號進行相關運算,相關結果中最高峰值的位置代表2個序列完全對齊,峰值出現在相關結果的前半個1ms中。零值的存在使得本地偽碼更好地與輸入信號中完整的1ms數據對齊,避免了NH碼相位跳變的影響。
補零算法有效避免了NH碼相位的影響,但是有效積分時間僅為1ms,不適于弱信號的捕獲。
補零算法雖然能夠避免NH碼相位的影響,但是無法滿足弱信號捕獲的需求,因此需要通過增加積分時間的方式提高信噪比。常用的相干積分算法受到數據比特符號跳變和NH碼相位的限制,非相干積分算法能夠削弱數據比特符號跳變影響,但是存在平方損耗。
差分相干積分算法是在相干積分的基礎上,將前1ms相干積分的結果與當前1ms相干積分的結果進行共軛相乘。如果前后2個相干積分跨越了數據比特符號跳變,則差分運算乘積為負號,否則為正號。
相干積分結果表示為:
差分相干積分乘積可表示為:
在北斗信號中,存在NH碼的普遍跳變。因此在差分相干積分方法中,常用的將相鄰2ms相干積分結果共軛相乘的形式并不能適用于北斗信號。
基于以上對北斗信號結構特點及相關算法的分析,分別對補零算法和差分相干積分算法進行改進,并將改進后的補零算法與差分相干積分算法結合,解決北斗弱信號的捕獲問題。
2.2.1 改進補零算法
補零算法通過對本地碼序列進行補零,使得本地碼序列更好地與輸入信號對齊,可有效消除數據比特符號跳變的影響。對輸入信號連續地采用補零算法獲得連續的相關結果。
1)第1次相關運算:采用第1ms和第2ms的輸入信號與本地的2ms碼序列相關,保存前半部分1ms的相關結果;
2)第2次相關運算:采用第2ms和第3ms的輸入信號與本地的2ms碼序列相關,保存前半部分1ms的相關結果;
3)以此類推,如圖3所示。
由于每次將輸入信號移動1ms,獲得的多次相關結果是連續的。但是,相關結果的符號是由數據比特符號和NH碼相位共同決定的。
2.2.2 改進差分相干積分算法
在改進補零算法的基礎上,對相關結果先進行差分相干積分運算,再進行峰值檢測。將差分相關運算中的延遲時間由1ms延長為20ms(即數據比特周期),差分結果可表示為:
進行共軛相乘的2個相關值必然屬于2個數據比特,如果2個數據比特符號一致,則差分乘積為正,否則為負。由圖4可以看出,差分相干積分結果不再受NH碼相位的影響,僅與是否存在數據比特符號跳變有關。
由于北斗信號B1I和B2I播發的D1導航電文比特長度持續時間為20ms,可以將差分相干積分時間長度設定為10ms,連續獲得2個差分相干積分結果,則必定有1個結果不跨越數據比特,對其進行峰值檢測,可獲得碼相位和載波頻率的估計值。
與直接進行相干積分算法相比,差分相干積分算法的優點在于頻率搜索帶寬仍然可以按照1ms的相關頻率搜索帶寬進行設置,頻率搜索帶寬大,因而搜索次數大大減少,運算量和搜索時間降低。
改進的補零算法和改進的差分相干積分算法消除了NH碼相位的影響,并實現了積分時間的延長,能夠有效地提高信噪比,實現弱信號的捕獲。具體流程為:
1)將2ms輸入信號與本地載波進行混頻,對結果進行FFT變換;
2)在1ms本地偽碼后補充1ms零值,并對序列進行FFT變換;
3)將步驟1中的結果與步驟2中的結果進行共軛相乘,對結果進行IFFT變換,保存前1ms值;
4)將輸入信號向后移動1ms,重復步驟1、步驟2和步驟3,重復次數為20次;
5)對保存的相關結果進行延遲時間為20ms的差分相干積分,積分時間為10ms,共獲得2組差分相干積分結果;
6)對2組差分相干積分結果進行峰值檢測,取峰值較高的一組結果作為捕獲結果。
Monte Carlo仿真的結構如圖5所示,包括仿真中頻北斗信號生成和軟件接收機2部分。中頻信號仿真按照預設航跡和星歷生成中頻數據,在每次Monte Carlo仿真循環過程中按照設定的載噪比參數加入Gauss白噪聲,中頻頻率為4.1304MHz,采樣頻率為16.3676MHz。
按照上述流程,編程實現算法功能,設置信號載噪比為30dBHz,設置差分相干積分的延遲時間為20ms,差分相干積分時間為10ms。圖6(a)和圖6(b)是連續2組差分相干積分的結果。
可以看出,圖6(b)中的峰值要高于圖6(a)。因此,圖6(a)段數據據判斷是跨越了數據比特符號跳變,從峰值位置可以得知碼相位估計值為4258個采樣點,載波頻率為第11個搜索頻帶。
選擇北斗接收機中常用的6ms反復搜索算法與本文提出的基于改進補零和改進差分相干積分的弱信號捕獲算法,進行仿真對比分析。采用Monte Carlo仿真算法,設置載噪比為20dBHz~38dBHz,每次仿真循環次數為1000次,對檢測結果進行概率統計,結果如圖7所示。
可以看出,由于在北斗接收機中常用的6ms反復搜索算法的有效積分時間為1ms,其捕獲靈敏度不高,在載噪比為31dBHz時,僅有51%的成功率。本文提出的基于改進補零和改進差分相干積分的弱信號捕獲算法的有效積分時間為10ms,在載噪比為21dBHz時的成功率為65%,在載噪比為22dBHz時的成功率為94%,其捕獲靈敏度比傳統算法提高了約10dB。
本文針對北斗信號NH碼相位跳變頻繁限制積分時間的問題,提出了一種基于改進補零算法和改進差分相干積分算法的弱信號捕獲算法,有效地消除了NH碼相位的影響,延長了有效積分時間,實現了對北斗弱信號的捕獲。
采用Monte Carlo仿真對算法性能進行全面的測試分析,分析結果表明,相比傳統的反復搜索算法,采用本文提出的弱信號的捕獲算法的捕獲靈敏度提高了約10dB。此方法適用于弱信號條件下的北斗信號捕獲。