小米8手機的上市,讓大家認識了一個新的名詞:GPS L5,那麼到底什麼是L5?如何編寫L5軟體接收機呢?
(1)GPS L5信号模型
和傳統的GPS L1信号相比,L5信号的特點就是碼長更長,帶寬更寬,是以帶來的最直接的變化就是定位精度更高了。L1信号的碼長是1023,而L5信号的碼長是10230,定位精度直接提高了一個數量級。
而且L5信号中,還包含了NH碼,這也是L1信号所沒有的。是以,相對于L1信号,在處理時,不但要剝除L5 CA碼,還要剝除NH碼。
(2)捕獲算法
L5的捕獲和L1的捕獲幾乎完全相同,根據經典的L1信号。仍然讀取11ms的資料,然後使用相鄰的2個1ms的資料進行并行碼相位捕獲。捕獲時使用I通道和Q通道都可以,但要注意,後面的NH碼要和通道相對應。得到碼相位以後,就是精捕獲,也就是精頻率搜尋,這裡尤其要注意,因為,剝離了L5CA碼以後,信号中還包括NH碼,是以,直接進行FFT進行頻率估計,是有誤差的,而且這種誤差會直接導緻後面跟蹤的失敗。是以要進行NH碼剝離,但有一個問題,就是雖然L5CA碼和NH碼是對齊的,但不确定是對齊的NH碼是哪個,也就是說,要确定NH碼的碼相位。方法同以确定L5CA碼相位相同,NH碼就是10位或20位長的,分别對每個NH碼相位做相關,找個最大值的那個就是NH碼相位了。然後就可以剝離NH碼,剝離後再用FFT做精頻率估計,就可以得到這顆星的頻率以及多普勒頻移了。然後就是跟蹤。
(3)跟蹤算法
跟蹤過程和L1完全相同,使用頻率環和碼環兩個環路共同跟蹤,I_P就是最終的跟蹤結果。從圖中可以清楚的看到NH碼的變化,每一個NH碼對應一位導航電文,在做導航定位解算時,要進行卷積碼的解算,然後就可以解出導航電文,進行定位處理了。
同樣,北鬥的解碼也可以使用類似的方案。
具體的代碼,可以參考我上傳的MATLAB L5軟體接收機。