鄒曉軍, 廉保旺, 丹澤升
(西北工業大學 電子信息學院, 陜西 西安 710072)
隨著用戶對導航定位需求的日益提高,對GNSS(global navigation satellite system)接收機性能的要求越來越高,傳統的GNSS信號接收技術越來越難以滿足要求。矢量跟蹤技術作為下一代GNSS接收機的關鍵接收技術[1]之一,以其潛在的性能優勢,近年來受到越來越多國內外學者的關注。相對于傳統接收機中使用的標量跟蹤技術,矢量跟蹤技術在沒有外部設備輔助的情況下,通過挖掘衛星信號之間的相關信息,能夠有效提高跟蹤能力,具有跟蹤更加微弱的衛星信號、橋接被瞬時遮擋的衛星信號以及忍受更大的用戶動態等優勢[2-3]。
在當前的矢量跟蹤環路中,通過鑒別器[4-6]獲得碼相位誤差和載波頻率誤差,然后以此為觀測量來求解用戶位置和速度。這種方式結構簡單,計算復雜度低,但是,由于噪聲的影響,容易進入鑒別器的非線性區域,使得鑒別器的輸出存在較大誤差,尤其是在弱信號的情況下,這種現象更加明顯。為了解決這個問題,可以對相關積分累加之后的I/Q支路數據進行濾波處理,這樣既可以降低噪聲的影響,同時還可以規避鑒別器的非線性問題。鑒于I/Q支路數據的非線性特征,需要采用可處理非線性數據的濾波算法。容積卡爾曼濾波算法[7](CKF),是近年來新提出的一種非線性濾波算法,它基于三階球面-相徑容積規則,能精確到泰勒展開的三階精度,并具有嚴格的理論推導和證明。CKF避免了擴展卡爾曼濾波算法(EKF)對非線性函數的線性化處理,所以濾波精度更高,較無跡卡爾曼濾波算法(UKF)減少了一個采樣點,且采樣點權值均為正,具有更好的數值穩定性和計算效率[8]。但是,CKF算法存在一個問題,它完全依賴于初始化配置,不能夠根據環境的變化自適應地調整自身參數,這樣會出現參數的配置與實際應用不匹配的情況,導致濾波器性能下降甚至發散。針對這一問題,使用新息[9]協方差能夠實時估計量測噪聲的協方差矩陣,自適應地調整量測噪聲的大小,進而提高CKF算法應對環境變化的能力。
本文采用上述具有自適應調節能力的CKF算法對I/Q支路數據進行濾波處理,然后將濾波輸出的碼相位誤差和載波頻率誤差作為導航濾波器的觀測量。導航濾波器集中處理所有接收通道的數據,進行用戶位置和速度的解算,并同時輸出各個接收通道的NCO(numerical controlling oscillator)控制參數,完成各個接收通道衛星信號的跟蹤。最后,將本文算法與基于鑒別器方式的矢量跟蹤算法進行了對比測試,驗證了算法改進后的有效性。
對于采用標量跟蹤環路的GNSS接收機來說,每顆衛星信號的載波頻率和碼相位都由一個獨立的通道進行跟蹤鎖定,通道之間相互沒有聯系。矢量跟蹤環路與之最明顯的區別就是各通道間的數據都匯聚到導航濾波器進行集中處理,從而實現各個通道間的信息共享。這種結構的好處是強信號能夠輔助弱信號的接收,實現微弱信號的跟蹤。矢量跟蹤環路的結構如圖1所示。

圖1 基于CKF的矢量跟蹤結構模型
圖1中,CKF代替碼相位鑒別器和載波頻率鑒別器,同時輸出碼相位誤差Δτi和載波頻率誤差Δfi,作為導航濾波器的輸入數據使用。i∈[1,N],表示第i個接收通道,N為衛星的總個數。只有當Δτi和Δfi足夠小的時候,導航濾波器才可能輸出準確的位置和速度,以及各環路的控制量。所以說,Δτi和Δfi的誤差大小,直接影響著整個矢量跟蹤環路的性能。
第i顆衛星的信號經接收機射頻前端處理后,其中頻信號的信號模型可以由(1)式表示
(1)
式中,AIF,i表示中頻信號的幅度;C(t-τi)表示偽碼;D(t-τi)為調制的數據碼;τi表示信號的傳播延時,單位為s;fc為載波頻率,單位為Hz;fd,i為信號的多普勒頻移,單位為Hz;θi表示載波相位,單位為rad。
信號被捕獲后,接著進入跟蹤階段。如圖1所示,接收信號首先與本地產生的2路相位相差90°的載波信號相乘,實現載波剝離,然后再分別與本地產生的3路偽碼數據相乘,實現偽碼的剝離,最后完成積分累加后輸出到CKF濾波器。經過上述步驟的處理,第i個接收通道6路I/Q數據的數學表達式如下所示:
式中,Ai表示信號幅度;R(Δτi+δ)表示偽碼的自相關函數;Δτi表示碼相位誤差;δ表示本地偽碼超前和滯后的間隔,一般設置為二分之一個碼片長度;Tcoh表示積分累加的時間;Δfi表示載波頻率誤差;Δθi表示載波相位誤差。
一個衛星信號對應一個接收通道,對于任意一個接收通道,CKF的狀態量定義為:
(8)

鑒于載波頻率、載波相位、碼相位之間的關系,濾波器在k+1時刻的狀態方程可表示為:

(9)
式中,fcode表示偽碼頻率,Wk為過程噪聲向量,其協方差矩陣為Qk。
以6路I/Q數據作為觀測量,量測方程可表示為:
(10)

CKF算法是一種確定性采樣非線性算法,基于容積規則選取一組容積點,容積點經非線性函數傳遞后,來近似非線性高斯濾波中的高斯積分。
為了提高濾波的穩定度,避免誤差協方差矩陣失去正定性,采用奇異值分解[10](SVD)代替原算法中的Cholesky分解。CKF算法包含時間更新和測量更新2個部分,計算步驟如下:
2.2.1 時間更新
1) 對k-1時刻的狀態誤差協方差矩陣Pk-1作SVD分解,有
(11)
式中,Sk-1為對角陣,Sk-1=diag{s1,k-1,s2,k-1,…sn,k-1},sn,k-1為奇異值,Uk-1和Vk-1的列向量為對應的奇異向量。
2) 計算容積點
(12)

(13)
式中,i=1,2,…,m,m表示容積點個數,等于狀態量維數n的2倍。文中,m=10。[1]i表示點集[1]中的第i列,[1]表示完整全對稱點集。
3) 計算經狀態方程傳遞后的容積點
(14)
4) 估計k時刻的狀態預測值
(15)
5)發計算誤差協方差陣的預測值
(16)
2.2.2 測量更新
1) 對矩陣Pk|k-1作SVD分解,有
(17)
2) 計算容積點
(18)
3) 計算經量測方程傳遞后的容積點
Zi,k|k-1=h(Xi,k|k-1,uk)
(19)
4) 估計k時刻的觀測量預測值
(20)
5) 計算新息協方差陣:
(21)
6) 計算互相關協方差陣
(22)
7) 計算k時刻的濾波增益
(23)
8) 計算k時刻的狀態估計值
(24)
式中,zk表示的是觀測量。
9) 計算k時刻的狀態誤差協方差矩陣
(25)
(21)式中的Rk是量測誤差的協方差矩陣,表示的是觀測量的量測噪聲,其初始值可表示為:
(26)

在實際應用中,環境是不斷變化的,量測誤差也會隨之發生變化,如果Rk始終使用固定的初始值R0,那么CKF會因為不能夠適應環境的變化而降低性能甚至發散,所以,需要根據環境的變化動態調整Rk的值?;谛孪⒌淖赃m應卡爾曼濾波方法能夠實時估計Rk,而且理論清晰,計算簡單。該方法是基于線性的卡爾曼濾波算法推導而來的,所以不能夠直接套用其公式,本文針對CKF算法進行了適配修改。
定義新息為
(27)
新息的理論協方差矩陣為:
(28)
利用一段新息樣本數據可對新息的協方差矩陣進行近似估計,有:
(29)
式中,L表示樣本數據的個數。
而在CKF算法[7]中,新息的協方差矩陣又可表示為:
(30)
所以,結合(29)式和(30)式,Rk的遞推估計值為
(31)
導航濾波器作為整個矢量跟蹤環路的核心,基于EKF算法,為了方便建立濾波器模型,選取系統狀態的誤差信息作為EKF的狀態變量ΔX,定義如下:
(32)

對于低速運動物體,一般常使用Position Velocity(PV)模型[11],對應的狀態方程如下所示:
ΔXk+1=FΔXk+Yk
(33)

(34)
式中,F為狀態轉移矩陣,T為相鄰狀態間的時間間隔,Yk為過程噪聲向量。

(35)
(36)
式中,fi,code為偽碼頻率,fi,carr為載波頻率,c為光速。
于是,量測方程可表示為:
(37)

(38)

本文主要針對GPS L1信號進行測試,實驗方法是先采用中頻采集器將數據收集起來,然后使用基于Matlab平臺的軟件接收機對數據進行處理。中頻采集器的型號為NordNav R30,中頻為4.02 MHz,采樣速率為20 MHz。設置相關器的積分累加時間為10 ms。信號模擬器型號為HWA-RNSS-7300,使用該信號模擬器作為信號源,生成高低2種功率的GPS數據,驗證算法在這2種情況下的靜態跟蹤誤差。
同時,采用相同的數據,將本文算法與基于鑒別器的矢量跟蹤算法進行對比測試,以驗證二者跟蹤性能的差異。其中,碼相位鑒別器采用非相干超前減滯后幅值法[12],載波頻率鑒別器采用叉積鑒頻[12]的方法。
1) 高功率信號測試
使用信號模擬器輸出載噪比C/N0為45 dB/Hz的數據,該信號強度模擬衛星信號正常到達地面時的情況。接收機共有8個接收通道,每個通道的信號處理方式相同,不一一贅述,只以通道1的接收情況為例進行說明。
圖2和圖3分別描述的是2種算法輸出的碼相位誤差和載波頻率誤差,從圖中可以看出,自適應CKF(ACKF)算法輸出的碼相位誤差集中在0.02個碼片以內,載頻頻率誤差集中在2 Hz以內,相對于鑒別器的輸出,幅度明顯減小,說明了跟蹤精度有所提高。

圖2 載噪比為45 dB/Hz時的碼相位誤差圖3 載噪比為45 dB/Hz時的載波頻率誤差


圖4 載噪比為45 dB/Hz時的位置誤差曲線圖 圖5 載噪比為45 dB/Hz時的速度誤差曲線圖
表1給出了2種算法輸出的各項誤差數據的均方根誤差(RMSE),它衡量的是各項誤差的波動情況,客觀地反映了2種算法受噪聲影響的程度。

表1 載噪比為45 dB/Hz時各項誤差的RMSE
2) 低功率信號測試
使用信號模擬器輸出載噪比C/N0為30 dB/Hz的數據,該信號強度相對于正常衛星信號的強度,有較大程度的衰減,模擬衛星信號經過遮擋、多徑等因素干擾后的情況。
如圖6和圖7所示,由于信號功率降低,受噪聲影響加劇,2種算法輸出的碼相位誤差和載波頻率誤差都明顯增大,ACKF算法的碼相位誤差的集中在0.06個chip以內,載波頻率誤差增加到7 Hz左右。但是,ACKF算法仍然能夠保持對信號的跟蹤,而且誤差比鑒別器小。說明ACKF算法能夠根據信號功率的變化,自動地調整量測噪聲的協方差陣Rk,維持濾波器對輸入信號的穩定處理。

圖6 載噪比為30 dB/Hz時的碼相位誤差 圖7 載噪比為30 dB/Hz時的載波頻率誤差
導航濾波器輸出的位置誤差和速度誤差分別如圖8和圖9所示,衛星信號的功率降低后,導航解的精度也有所降低,但是,ACKF算法的精度仍然優于鑒別器。

圖8 載噪比為30 dB/Hz時的位置誤差曲線圖 圖9 載噪比為30 dB/Hz時的速度誤差曲線圖
通過對比表1和表2的數據還可以發現,雖然信號功率降低后,兩者算法各項誤差的RMSE都有所增加,但是,增加幅度并不相同,ACKF相對要小一些。最為明顯的是載波頻率誤差,ACKF算法的載波頻率誤差只增加了約1.6 Hz,而鑒別器卻增加了9.2 Hz,增加的比例分別是2.8倍和3.3倍,說明了載波頻率鑒別器在弱信號時的誤差較大,ACKF算法更適合在弱信號環境中應用。

表2 載噪比為30 dB/Hz時各項誤差的RMSE
本文不僅根據I/Q支路數據的特征建立了合適的濾波器模型,而且采用數值穩定性更好的SVD分解替換原CKF算法中的Cholesky分解,提升了數據處理的穩定度。利用新息協方差實時修正量測噪聲的協方差矩陣,自適應地估計量測噪聲的方差,使得算法對環境的變化具有魯棒性。將本文算法與基于鑒別器的矢量跟蹤算法進行了對比測試,測試結果表明,無論是高功率信號還是低功率信號,算法改進后輸出結果的RMSE都更小,尤其是在低載噪比的情況下,改進效果更加明顯,說明該算法更加有利于弱信號的接收,具有一定的應用價值。