符 強(qiáng), 陳孝倩, 孫希延, 任風(fēng)華, 嚴(yán)素清
(1.桂林電子科技大學(xué) 廣西精密導(dǎo)航技術(shù)與應(yīng)用重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004;2.桂林電子科技大學(xué) 電子工程與自動(dòng)化學(xué)院,廣西 桂林 541004)
在室內(nèi)、密集街區(qū)、山地、森林等微弱衛(wèi)星導(dǎo)航信號(hào)環(huán)境中,由于遮擋和反射,衛(wèi)星信號(hào)功率衰減并伴有多徑干擾和噪聲干擾,從而降低了碼環(huán)的跟蹤性能[1-2]。針對(duì)這些問題,現(xiàn)有的解決方案主要有3類:1)信號(hào)接收天線的空域處理方法,如扼流圈天線可以削弱來自地面和低仰角的多徑信號(hào)[3-4];2)對(duì)跟蹤環(huán)路的相關(guān)器和碼鑒相器進(jìn)行改進(jìn),如窄相關(guān)[5]和Strobe鑒相器[6-7],這類方法雖然可提高抑制多徑干擾的性能,但也減弱了環(huán)路的跟蹤性能和噪聲抑制性能;3)基于估計(jì)原理的多徑估計(jì)方法,如Townsend等[8]采用多相關(guān)器結(jié)構(gòu)得到多組相關(guān)值,通過迭代計(jì)算,得到估計(jì)的直達(dá)信號(hào)相關(guān)參數(shù),以達(dá)到抑制多徑的目的。通過借鑒多徑估計(jì)延遲鎖定環(huán)路(MEDLL)中信號(hào)估計(jì)的方法,崔艷等[9]提出最大似然估計(jì)算法,利用最大似然估計(jì)原理在相關(guān)前估計(jì)出直達(dá)信號(hào)和多徑信號(hào)的各項(xiàng)參數(shù),雖能很好地抑制了多徑,但也降低了噪聲抑制性能,且有計(jì)算量過大的問題?;诳柭鼮V波的方法很多,其主要有2種實(shí)現(xiàn)結(jié)構(gòu):1)在碼環(huán)鑒別器和環(huán)路濾波器之間加入卡爾曼濾波器;2)用卡爾曼濾波器代替原有的鑒別器??柭鼮V波主要有線性卡爾曼濾波[10](Kalman filter,簡(jiǎn)稱KF)、擴(kuò)展卡爾曼濾波[11-12](extended Kalman filter,簡(jiǎn)稱EKF)和平淡卡爾曼濾波[13](unscented Kalman filter,簡(jiǎn)稱UKF)3種,其中EKF和UKF都是非線性的。采用非線性卡爾曼濾波雖然效果相對(duì)較好,但計(jì)算量很大;而采用線性卡爾曼濾波,計(jì)算量小,但存在濾波器發(fā)散的問題。
雖然研究者提出了很多基于卡爾曼濾波的碼跟蹤方法,但不管采用線性卡爾曼濾波還是非線性卡爾曼濾波,在這種濾波估計(jì)中,觀測(cè)值是唯一的信息源,但信息源中的噪聲誤差、系統(tǒng)誤差、觀測(cè)誤差、設(shè)備誤差等會(huì)降低濾波器的估計(jì)性能,使得采用現(xiàn)有卡爾曼濾波技術(shù)的碼跟蹤環(huán)的性能較差。為此,提出一種最小二乘算法與卡爾曼濾波相結(jié)合的改進(jìn)算法。
衛(wèi)星導(dǎo)航接收機(jī)中,載波跟蹤環(huán)和碼跟蹤環(huán)共同組成接收機(jī)的跟蹤環(huán)路。載波跟蹤環(huán)對(duì)載波頻率和載波相位進(jìn)行跟蹤。碼環(huán)對(duì)碼相位進(jìn)行精確的估計(jì)和跟蹤,這是實(shí)現(xiàn)偽距測(cè)量和定位的基礎(chǔ)[14]。在存在多徑效應(yīng)的弱信號(hào)環(huán)境中,全球定位系統(tǒng)(global position system,簡(jiǎn)稱GPS)衛(wèi)星信號(hào)可表示為
(1)
其中:i為各路信號(hào)分量;ai為信號(hào)幅度;ω為載波頻率;θi為第i路信號(hào)的載波初相位;c(t)為偽碼;τi為第i路信號(hào)與本地偽碼的碼相位差;D(t)為導(dǎo)航電文;n(t)為高斯白噪聲。這里τ0為直達(dá)信號(hào)與本地偽碼的碼相位差,是估計(jì)的目標(biāo)參數(shù)。
設(shè)I路本地載波為sin(ω0t+θ0),不考慮導(dǎo)航電文,則I路解擴(kuò)后的相干積分值為
(2)
其中:
(3)
φi=(ω-ω0)Tcoh+(θi-θ0);
(4)
(5)
其中:p(t)為服從N(0,σ2)的高斯白噪聲;Tcoh為相干積分時(shí)長(zhǎng);fe為載波頻率差;φi為載波相位差;Rc(·)為偽碼自相關(guān)函數(shù)。實(shí)際接收機(jī)中,由于載波跟蹤環(huán)對(duì)載波頻率差fe和載波相位差φi的精確跟蹤,將fe、φi看作已知的常數(shù)參數(shù)。
采用卡爾曼濾波器代替?zhèn)鹘y(tǒng)碼環(huán)鑒別器處理多徑問題,通常建立狀態(tài)方程和觀測(cè)方程,對(duì)直達(dá)信號(hào)和多徑信號(hào)的碼相位等目標(biāo)參數(shù)進(jìn)行估計(jì),抑制多徑效應(yīng)。在這種方法中,由各相關(guān)支路解擴(kuò)后的相干積分值組成的觀測(cè)值是卡爾曼濾波的唯一信息源。從式(2)可知,偽碼自相關(guān)函數(shù)是相干積分值的一個(gè)因子,這個(gè)因子包含噪聲誤差、系統(tǒng)誤差、觀測(cè)誤差、設(shè)備誤差等各種誤差,這些誤差會(huì)被帶入卡爾曼濾波對(duì)目標(biāo)參數(shù)的估計(jì)中。如何尋求一種方法抑制或消除這些誤差,對(duì)自相關(guān)函數(shù)因子進(jìn)行修正,使得觀測(cè)值更接近真實(shí)值,從而對(duì)直達(dá)信號(hào)和多徑信號(hào)的碼相位、幅度等目標(biāo)參數(shù)進(jìn)行更精確的跟蹤。
為了便于推導(dǎo),以接收到的衛(wèi)星信號(hào)只包含一路直達(dá)信號(hào)和一路多徑信號(hào)的情形為例,推導(dǎo)的結(jié)果很容易推廣到更多路徑的情況。設(shè)某一I路相關(guān)支路的相關(guān)器與本地即時(shí)碼相關(guān)器的碼相位間距為δ,由式(2)可知,該支路的相干積分值為
R(t)=a0sinc(feTcoh)cos(φ0)Rc(τ0-δ)+
a1sinc(feTcoh)cos(φ1)Rc(τ1-δ)+p(t),
(6)
每次相干積分值作為一個(gè)觀測(cè)值緩存于緩存模塊中,每M次相干積分進(jìn)行一次環(huán)路更新。式(6)可寫成矢量形式
R=G·B+P。
(7)
其中:P為噪聲矢量;R為該相關(guān)支路的M次相干積分值組成的觀測(cè)矢量;G為量測(cè)矩陣;B為待估計(jì)的狀態(tài)矩陣。
R=[R1,R2,…,RM]Τ,
(8)
(9)
(10)
由最小二乘估計(jì)原理[15]可知,B的最小二乘估計(jì)為
(11)
(12)
得到一個(gè)修正后的相干積分。對(duì)每條相關(guān)支路的相干積分中的自相關(guān)函數(shù)因子都用最小二乘算法進(jìn)行修正,并得到修正后的相干積分,則可得一組無偏、均方誤差和最小的新的觀測(cè)值,組成觀測(cè)矢量zk,用于后續(xù)的濾波估計(jì)。
(13)
利用最小二乘算法修正相關(guān)函數(shù)因子的思想,構(gòu)造一組無偏、均方誤差和最小的修正觀測(cè)值。改進(jìn)卡爾曼濾波算法的碼跟蹤環(huán)實(shí)現(xiàn)結(jié)構(gòu)如圖1所示。與傳統(tǒng)卡爾曼濾波算法不同,改進(jìn)卡爾曼濾波算法在卡爾曼濾波器前加入最小二乘模塊,并在最小二乘模塊與積分累加器之間加入緩存模塊,用于緩存各支路解擴(kuò)后的相干積分。為解決卡爾曼濾波器的發(fā)散問題,改進(jìn)卡爾曼濾波算法加入了發(fā)散判斷控制模塊。
圖1 改進(jìn)卡爾曼濾波算法的碼跟蹤環(huán)實(shí)現(xiàn)結(jié)構(gòu)
設(shè)各相關(guān)支路的相關(guān)器相對(duì)即時(shí)碼相關(guān)器的碼相位間距為±δj,為了能夠估計(jì)多徑信號(hào),并對(duì)直達(dá)信號(hào)進(jìn)行精確碼跟蹤,選擇濾波器狀態(tài)量為
x=[a0a1τ0τ1]Τ。
(14)
其中:a0為直達(dá)信號(hào)的幅度;a1為多徑信號(hào)的幅度;τ0、τ1分別為直達(dá)信號(hào)和多徑信號(hào)相對(duì)本地偽碼的碼相位差。卡爾曼濾波器的狀態(tài)方程為
(15)
其中:wk為過程噪聲向量,其為零均值白高斯噪聲。設(shè)Qk是wk的協(xié)方差矩陣,Qk一般取對(duì)角矩陣,建立修正觀測(cè)矢量與狀態(tài)量之間的線性方程為
zk=Hk·xk+vk。
(16)
其中:Hk為測(cè)量矩陣,Hk的維數(shù)為4N×4;vk為測(cè)量噪聲向量。Hk的第i列(i=1,2,3,4)可由下述公式求得,
(17)
a1sinc(feTcoh)cos(φ1)Rc(τ1+δj)。
(18)
a1sinc(feTcoh)cos(φ1)Rc(τ1-δj)。
(19)
a1sinc(feTcoh)sin(φ1)Rc(τ1+δj)。
(20)
a1sinc(feTcoh)sin(φ1)Rc(τ1-δj)。
(21)
設(shè)I和Q支路分別采用了N組超前-滯后相關(guān)器,考慮下線性系統(tǒng):
xk=F·xk-1+wk;
(22)
zk=Hk·xk+vk。
(23)
根據(jù)系統(tǒng)模型構(gòu)建卡爾曼濾波基本方程:
(24)
Pk|k-1=FPk-1FΤ+Qk-1,
(25)
Kk=Pk|k-1HkΤ(HkPk|k-1HkΤ+Rk)-1,
(26)
(27)
Pk=(I-KkHk)Pk|k-1。
(28)
在卡爾曼濾波的實(shí)現(xiàn)過程中,測(cè)量噪聲的預(yù)測(cè)是非常關(guān)鍵的一步,很大程度上決定了卡爾曼濾波器的性能。此外,如何進(jìn)行發(fā)散的判斷和修正也是至關(guān)重要的步驟。只有這樣,所設(shè)計(jì)的卡爾曼濾波器才能帶來預(yù)想的效果。
1)噪聲的理論分析。接收機(jī)中噪聲是白高斯噪聲,白高斯噪聲通過積分累加器的過程可近似為通過低通濾波器的過程,故接收機(jī)噪聲方差σ2=N0Bn/2,其中N0為雙邊帶頻譜功率密度,Bn=1/Tcoh為積分累加器的帶寬。測(cè)量噪聲協(xié)方差陣Rk由各測(cè)量之間的協(xié)方差組成。設(shè)n1、n2為I路上2條相關(guān)支路的信號(hào),n3、n4為Q路上2條相關(guān)支路的信號(hào),vn1、vn2、vn3、vn4為4條支路的噪聲,|ni-nj|為2個(gè)信號(hào)所在支路相關(guān)器之間的碼相位間距,
E[vn12]=E[vn22]=E[vn32]=E[vn42]=σ2。
(29)
由于I支路與Q支路的不相關(guān)性,有
E[vn1,vn3]=E[vn1,vn4]=E[vn2,vn3]=
E[vn2,vn4]=0。
(30)
設(shè)偽碼碼元長(zhǎng)為Tchip,不同信號(hào)間的協(xié)方差為:
(31)
(32)
采用GPS的1號(hào)衛(wèi)星的偽碼,中頻為4.092 MHz,采樣頻率為16.368 MHz,相干積分時(shí)間為5 ms,每10次相干積分組成最小二乘模塊的觀測(cè)量。仿真有兩路信號(hào),一路直達(dá),一路多徑,多徑信號(hào)相對(duì)直達(dá)信號(hào)的碼相位時(shí)延為0.3碼片,幅度相對(duì)比例為0.5。
圖2為信噪比RSN=-25 dB時(shí)傳統(tǒng)卡爾曼濾波算法[10]和改進(jìn)卡爾曼濾波算法的碼相位跟蹤誤差。從圖2可看出,當(dāng)RSN=-25 dB時(shí),傳統(tǒng)卡爾曼濾波的碼相位跟蹤誤差為-0.028~0.031碼片,改進(jìn)卡爾曼濾波算法的碼相位跟蹤誤差為-0.022~0.018碼片,改進(jìn)卡爾曼濾波算法的碼相位跟蹤精度稍高于傳統(tǒng)卡爾曼濾波算法。
圖2 2種算法在信噪比為-25 dB時(shí)碼相位誤差對(duì)比
圖3為典型低信噪比RSN=-45 dB時(shí)2種算法的碼相位跟蹤誤差。從圖3可看出,隨著信噪比降至-45 dB,傳統(tǒng)卡爾曼濾波算法[10]的碼相位跟蹤誤差為-0.14~0.17碼片,而改進(jìn)卡爾曼濾波算法的碼相位誤差為-0.06~0.08碼片,改進(jìn)卡爾曼濾波算法的碼跟蹤精度明顯高于傳統(tǒng)卡爾曼濾波算法。
圖4為2種算法不同信噪比的碼相位均方根誤差(root mean square error,簡(jiǎn)稱RMSE)。從圖4可看出,在信噪比為-45 dB時(shí),改進(jìn)卡爾曼濾波算法和傳統(tǒng)卡爾曼濾波算法[10]的碼相位RMSE分別為0.002 7碼片和0.043碼片,前者比后者要小很多。隨著信噪比的增加,2種算法的碼相位RMSE都有減小的趨勢(shì)。當(dāng)信噪比增加到-24 dB時(shí),改進(jìn)卡爾曼濾波和傳統(tǒng)卡爾曼濾波的碼相位RMSE分別為0.001和0.004,相比于信噪比-45 dB的情形,2種算法的碼相位RMSE的差值減小,但前者仍然小于后者。其結(jié)果充分表明了改進(jìn)卡爾曼濾波算法較傳統(tǒng)卡爾曼濾波算法的碼跟蹤性能更穩(wěn)定。
圖4 2種算法在不同信噪比下的碼相位跟蹤RMSE對(duì)比
為了進(jìn)一步分析2種算法在不同多徑時(shí)延下的性能,仿真的2路信號(hào)中,多徑信號(hào)相對(duì)直達(dá)信號(hào)的幅度為1/2。圖5為2種算法在信噪比-45 dB和-25 dB時(shí)不同多徑時(shí)延下的碼相位RMSE跟蹤誤差。從圖5可看出,在多徑時(shí)延相同信噪比條件下,改進(jìn)卡爾曼濾波算法比傳統(tǒng)卡爾曼濾波算法[10]的碼相位RMSE更小。改進(jìn)卡爾曼濾波算法比傳統(tǒng)卡爾曼濾波算法具有更優(yōu)的跟蹤性能。
圖5 2種算法在不同多徑時(shí)延下碼相位RMSE對(duì)比
為了解決卡爾曼濾波處理伴有多徑干擾的微弱衛(wèi)星導(dǎo)航信號(hào)的碼跟蹤時(shí)相干積分值組成的觀測(cè)量誤差較大的問題,利用最小二乘算法對(duì)相關(guān)函數(shù)因子進(jìn)行修正的思想,構(gòu)造一組無偏、均方誤差和最小的修正觀測(cè)值,建立數(shù)學(xué)模型,通過卡爾曼濾波得到更優(yōu)的碼跟蹤性能,減小了相干積分中包含的多種誤差,且采用線性卡爾曼濾波器,具有計(jì)算量小的特點(diǎn)。本算法加入了發(fā)散判斷控制模塊,控制了卡爾曼濾波器的發(fā)散。仿真結(jié)果表明,與文獻(xiàn)[10]的算法相比,本算法對(duì)碼相位跟蹤具有更高的精度,特別是在低信噪比條件下,本算法的碼相位跟蹤誤差精度與強(qiáng)信號(hào)條件保持在同一個(gè)數(shù)量級(jí),同時(shí)具有更穩(wěn)定的跟蹤性能。在多徑時(shí)延變化的統(tǒng)計(jì)意義上,本算法的碼相位RMSE跟蹤誤差更小,具有更優(yōu)的跟蹤性能。