, ,
(北京航空航天大學(xué) 電子信息工程學(xué)院,北京 100191)
全球衛(wèi)星導(dǎo)航系統(tǒng)(Global Navigation Satellite System,GNSS)在不同的領(lǐng)域包括星空探測,陸海空導(dǎo)航,地質(zhì)勘探等定位系統(tǒng)中都得到了廣泛的應(yīng)用,其中導(dǎo)航信號的質(zhì)量直接影響用戶接收機(jī)的信號接收,捕獲,跟蹤,同步,定位解算等性能,從而可能使接收機(jī)的定位,測速,授時等功能不準(zhǔn)確[1]。目前公開的資料中,GNSS的各大衛(wèi)星系統(tǒng)均出現(xiàn)過信號異常的情況,這些異常均對依賴其定位的相關(guān)應(yīng)用產(chǎn)生了影響,有時甚至?xí)霈F(xiàn)接收機(jī)無法輸出的情況,其中最著名的是GPS SV19號星異常[2],其在1990年出現(xiàn)了L1信號的頻譜異常,但在1993年才發(fā)現(xiàn)定位誤差并進(jìn)行了相關(guān)校正??偨Y(jié)衛(wèi)星的異??梢园l(fā)現(xiàn)兩個特點(diǎn)[3]:1)衛(wèi)星信號異常出現(xiàn)頻率很小,且難以重復(fù)出現(xiàn),所以預(yù)測存在難度;2)基于1)的特點(diǎn),在衛(wèi)星信號出現(xiàn)異常時難以及時的發(fā)現(xiàn)。
在眾多的導(dǎo)致衛(wèi)星信號異常的因素里,衛(wèi)星電路故障的影響最大[4]。國外研究學(xué)者對電路故障所導(dǎo)致的信號形變提出了不同的模型,依據(jù)國際民航組織(international civil aviation organization,ICAO)采用的2OS(2nd Order Step,二階階躍)模型[5],把電路故障劃分為3類:Thread mode A(TMA,數(shù)字畸變模型),Thread mode B(TMB,模擬畸變模型),Thread mode C(TMC,混合畸變模型),而目前針對模擬電路故障TMB的分析大多是直接基于Matlab等仿真軟件進(jìn)行分析的,具體在數(shù)字電路FPGA中實(shí)現(xiàn)的研究較少,本文對TMB在硬件電路的實(shí)現(xiàn)方案進(jìn)行了詳細(xì)的理論論證和探究,并在FPGA中進(jìn)行實(shí)現(xiàn),通過數(shù)模轉(zhuǎn)換產(chǎn)生TMB故障的模擬信號,最終從接收機(jī)定位和偽碼相關(guān)圖的角度評估分析了TMB畸變信號的影響。
模擬畸變是由導(dǎo)航信號生成單元的模擬器件異常而導(dǎo)致的,一般主要是由于上變頻和射頻放大等異常而導(dǎo)致的,表現(xiàn)為偽隨機(jī)碼在0,1轉(zhuǎn)換時會產(chǎn)生欠阻尼振蕩。該模型有兩個設(shè)置參數(shù),表示振蕩幅度衰減大小的衰減因子σ和表示振蕩快慢的振蕩頻率fd。
設(shè)正常衛(wèi)星導(dǎo)航信號的偽隨機(jī)碼定義為:
(1)
其ck為二進(jìn)制偽隨機(jī)碼,u(t)為單位幅度矩陣脈沖,TC為偽碼碼元寬度,N為碼元個數(shù)。
TMB模型可看成是正常的導(dǎo)航基帶信號通過具有欠阻尼振蕩特性的系統(tǒng)而得到的[6]。該系統(tǒng)的二階等效S函數(shù)為:
(2)
將該振蕩系統(tǒng)的S函數(shù)轉(zhuǎn)換為數(shù)字無限脈沖響應(yīng)濾波器(Infinite Impulse Response,IIR)的二階Z函數(shù)。采用雙線性變換法可得到如式(3)所示的Z函數(shù)。
(3)
二階IIR濾波器的時域表達(dá)式為:
y(n)=a1y(n-1)+a2y(n-2)+b0x(n)+b1x(n-1)+b2x(n-2)
(4)
其實(shí)現(xiàn)即為輸入信號x(n),前一時刻的輸入x(n-1)和前兩個時刻的輸入x(n-2)分別與對應(yīng)的系數(shù)b0,b1,b2相乘,前一個時刻的輸出信號y(n-1)和前兩個時刻的輸出信號y(n-2)分別與對應(yīng)的系數(shù)a1,a2相乘,最后累加得到當(dāng)前時刻的輸出y(n)。
式(3)對應(yīng)的時域的二階系統(tǒng)響應(yīng)函數(shù)為:
(5)
對式(5)進(jìn)行傅里葉變換得到式(6):
(6)
對于線性系統(tǒng),若其頻域的沖激響應(yīng)為H(jw),輸入隨機(jī)過程的功率譜密度為GX(w),利用頻譜法可以得到系統(tǒng)輸出的功率譜密度GY(w)為GY(w)=|H(jw)|2GX(w)。
通過以上的分析,對TMB在FPGA上的具體實(shí)現(xiàn)方法進(jìn)行分析論證:
1)正常的偽隨機(jī)序列經(jīng)過設(shè)計(jì)的IIR濾波器,振蕩的偽碼波形在1 bit量化后再實(shí)現(xiàn)調(diào)制,該實(shí)現(xiàn)方法會對碼的振蕩特性產(chǎn)生一定失真;
2)通過查閱文獻(xiàn)[7],信號通過正常的調(diào)制后,再通過設(shè)計(jì)的IIR濾波器來產(chǎn)生TMB畸變,該實(shí)現(xiàn)方法對TMB實(shí)現(xiàn)原理有一定變形。
對上述的兩種實(shí)現(xiàn)方法進(jìn)行理論推理。
設(shè)基帶信號的表達(dá)式為a(t),功率譜密度為Pa(f),IIR濾波器的系統(tǒng)函數(shù)為h(t),其頻譜函數(shù)為H(f),載波頻率為ws,輸出為y(t),功率譜密度為PY(f)。
1)y(t)=[a(t)×h(t)]coswst,變換后的功率譜密度函數(shù)為:
PY(f)=1/4[Pa(f+fs)|H(f+fs)|2+
Pa(f-fs)|H(f-fs)|2]
(7)
2)y(t)=[a(t)coswst]×h(t) ,變換后的功率譜密度函數(shù)為:
PY(f)=1/4[Pa(f+fs)+Pa(f-fs)]|H(f)|2
(8)
對比式(7)和式(8)可知y(t)的功率譜密度函數(shù)不一樣,即式(7)的主信號和濾波器的系統(tǒng)函數(shù)均在載波的作用下進(jìn)行了平移,式(8)僅有主信號在載波的作用下進(jìn)行了平移,而濾波器的系統(tǒng)函數(shù)沒有任何的變換。
基于上述的分析采用Matlab進(jìn)行仿真,其中碼長設(shè)為1 023,碼率設(shè)為1.023 kbps,載波頻率設(shè)為4 kHz,采樣頻率設(shè)為200 kHz,正常的偽碼序列與GPS SV1對應(yīng)。
圖1 平衡碼的功率譜 圖2 異常碼的功率譜
(圖2,3,4中fd=10 kHz,σ=4.8 kNepers/sec)
從上圖可以看到,圖2異常碼的功率譜相對于圖1正常碼功率譜的旁瓣,其幅度會有一定的提升。對于方式(2)的實(shí)現(xiàn)方式,由于濾波器頻率響應(yīng)頻譜的中心點(diǎn)沒有平移,所以由圖4可以看出其最終輸出的功率譜密度在功率增益因子|H(f)|2的影響下,會在fd=10 kHz的附近幅度明顯提升,但是對于方式(1)的實(shí)現(xiàn)方式,由于濾波器頻率響應(yīng)頻譜的中心也平移到了載波的頻點(diǎn)上,所以圖3可以看出其會在fd+fs=14 kHz的附近幅度會有明顯的提升。對比圖2,圖3和圖4可以看出方式(1)的功率譜與正常的偽隨機(jī)序列直接通過IIR濾波器后的功率譜更加相近,所以本論文中采用方式(1)進(jìn)行TMB在FPGA上的實(shí)現(xiàn)。
TMB相關(guān)峰表達(dá)式[8]為
RB(τ,σ,fd)=E(τ+T)-2E(τ)+E(τ-T)
(9)
其中:
因?yàn)門MB的相關(guān)函數(shù)里包含了正弦和余弦分量,也就導(dǎo)致了相關(guān)曲線的非平滑性和不對稱性,由式(9)可知在τ=0附近有最大值。而且fd越小,相關(guān)峰偏離理想曲線的抖動頻率越小;σ越小,相關(guān)峰曲線的抖動幅度越大。
采用Matlab對振蕩的偽隨機(jī)碼進(jìn)行1 bit量化,量化閾值為0.5,再做相關(guān)圖進(jìn)行分析。
設(shè)置Matlab仿真條件的采樣率為102.3 MHz,碼率為1.023 MHz,振蕩頻率為10 MHz,衰減系數(shù)為3 MNepers/sec,1 bit量化后的碼片圖如圖5所示,對應(yīng)的相關(guān)圖如圖6所示。
圖5 振蕩的碼片 圖6 振蕩碼片相關(guān)圖
分析上圖,碼在0和1變換時會產(chǎn)生跳變,由于碼振蕩的非突變性會導(dǎo)致碼變換時產(chǎn)生碼延遲的現(xiàn)象,所以圖6中可以看到畸變后碼相關(guān)的峰值相對于正常的碼相關(guān)峰值會向右偏移。在圖6中相關(guān)峰的右側(cè)會產(chǎn)生兩個小尖峰,這主要是由于在圖5中每次碼0,1轉(zhuǎn)化后的振蕩會在當(dāng)前的采樣環(huán)境下得到兩次異常碼值,也就隨著振蕩的衰減,會采樣到兩次振蕩峰值,而對于圖6,在正常情況下相關(guān)峰值右側(cè)是平滑下降的,但是由于圖5的情況,導(dǎo)致畸變碼和本地碼相關(guān)達(dá)到最大峰值后,畸變的碼異常值會導(dǎo)致碼相關(guān)值產(chǎn)生增大的情況,也就是圖6相關(guān)峰值右側(cè)的小尖峰,而且尖峰的位置與個數(shù)與圖5振蕩后采樣的畸變碼片的位置和個數(shù)是一致的。
圖7 多組振蕩相關(guān)圖
設(shè)置多組不同的振蕩頻率和衰減系數(shù)得到如圖7所示的多組振蕩相關(guān)圖。在fd=9 MHz,σ=4 MNepers/sec時,Matlab在理想條件下采樣閾值為0.5時已經(jīng)得不到任何的振蕩信息,所以此時的自相關(guān)圖與正常的自相關(guān)圖完全重合。在更小的振蕩頻率和更大的衰減系數(shù)的影響下,自相關(guān)峰的左右不對稱和峰值下降會更加明顯。
參考文獻(xiàn)[9]中討論了TMB模型對信噪比的影響。
(10)
實(shí)現(xiàn)具有TMB故障的衛(wèi)星導(dǎo)航信號模擬器的結(jié)構(gòu)原理如圖8所示。上位機(jī)負(fù)責(zé)信號參數(shù)的計(jì)算,包括導(dǎo)航電文,數(shù)控振蕩參數(shù)(NCO)等,F(xiàn)PGA實(shí)現(xiàn)參數(shù)接收和信號調(diào)制,其中每個可見衛(wèi)星占據(jù)一個通道,主要有電文模塊,相位控制模塊,載波模塊,中頻調(diào)制模塊,幅度模塊和主碼產(chǎn)生模塊。在碼產(chǎn)生的過程中加入IIR濾波器模塊,達(dá)到對TMB故障信號的實(shí)現(xiàn)。
圖8 TMB故障衛(wèi)星導(dǎo)航信號模擬器結(jié)構(gòu)
其中IIR濾波器模塊是TMB故障在FPGA中實(shí)現(xiàn)的關(guān)鍵,而濾波器在FPGA上的實(shí)現(xiàn)存在有限字長存儲的問題。FPGA系統(tǒng)的每個數(shù)值的存儲均是用有限長度的二進(jìn)制數(shù)字來表示的,也就導(dǎo)致有限字長數(shù)字信號的誤差。對于IIR濾波器的實(shí)現(xiàn)所引起的誤差主要表現(xiàn)在以下兩個方面:將IIR的系數(shù)的量化效應(yīng);在進(jìn)行數(shù)字運(yùn)算時,為了限制位數(shù)而進(jìn)行的尾數(shù)處理。前一種是模擬量數(shù)字化引起的誤差,后一種對運(yùn)算位數(shù)的處理,在有反饋的IIR濾波器中,會使誤差累積而使運(yùn)算精度下降,甚至引起振蕩[10]。因此,在滿足一定的精度情況下,設(shè)計(jì)選擇采用補(bǔ)碼二進(jìn)制數(shù)表示方式和定點(diǎn)制的運(yùn)算方式,并通過多次測試選取恰當(dāng)?shù)臄?shù)據(jù)位數(shù)。另外在數(shù)據(jù)處理的中間過程根據(jù)精度和準(zhǔn)確度對中間數(shù)據(jù)的位數(shù)進(jìn)行了擴(kuò)展,來彌補(bǔ)定點(diǎn)運(yùn)算的缺陷。
IIR濾波器的實(shí)現(xiàn)主要包括乘法累加模塊和延時模塊,具體實(shí)現(xiàn)框圖如圖9所示。
圖9 振蕩碼片的自相關(guān)函數(shù)
乘法累加模塊實(shí)現(xiàn)了不同時刻的輸入和反饋與對應(yīng)的系數(shù)相乘,并把相乘結(jié)果全部累加。本模塊采用FPGA乘法IP核和加法IP核來實(shí)現(xiàn),雖然會比直接使用“+”和“*”需要更長的時間,但是能更好的節(jié)省系統(tǒng)的資源。經(jīng)測算,乘法IP核會延時3個時鐘,加法IP核會延時2個時鐘,所以從輸入到輸出的乘法累加模塊會9個FPGA的時鐘周期。而對輸出數(shù)據(jù)的截短等處理需要額外的2個時鐘周期,所以從當(dāng)前時刻數(shù)據(jù)的輸入到對應(yīng)該時刻的數(shù)據(jù)的輸出需要11個時鐘周期,因此對于輸入x(n),x(n-1),x(n-2)和反饋輸入y(n-1),y(n-2),每11個時鐘進(jìn)行一次輸入更新,圖9中的IP核是在FPGA的標(biāo)準(zhǔn)時鐘控制下進(jìn)行計(jì)算輸出的。
延時模塊主要包括輸入更新時鐘和IP核輸入時鐘,當(dāng)前板卡的時鐘是250 MHz,所以在該時鐘的驅(qū)動下IP核進(jìn)行乘法和累加計(jì)算,然后在該時鐘的驅(qū)動下,再加入一個計(jì)數(shù)時鐘,每11個時鐘對乘法IP核的輸入進(jìn)行更新。
此外還需要注意的問題有:
1)因?yàn)镕PGA所使用的系數(shù)b0,b1,b2,a1,a2是經(jīng)過量化后的,所以在得到最終的累加輸出y(n)后,需要將輸出的數(shù)據(jù)除以量化值。
2)在Matlab中計(jì)算IIR濾波器的系數(shù)時,其濾波器的采樣率為FPGA的基準(zhǔn)頻率除以11。
3)設(shè)計(jì)中反饋數(shù)據(jù)y(n-1),y(n-2)是16 bits的,但在經(jīng)過輸出除法之后得到的是19 bits的,此時不能簡單的截取19 bits的高16位來作為反饋,因?yàn)閷?shí)際19 bits的輸出大部分是在較低的比特位,而截取高位會很明顯的將反饋數(shù)據(jù)縮小,所以改變?yōu)楸A糇罡呶坏姆栁?,截取?5位作為輸出,此時可以得到較好的輸出。
本文故障注入所用的衛(wèi)星導(dǎo)航信號模擬器是北京航空航天大學(xué)通信導(dǎo)航與測試實(shí)驗(yàn)室的自研設(shè)備。如圖10所示是TMB故障的配置界面,在初始頻點(diǎn)配置界面上,選擇添加異常信號的功能,進(jìn)而實(shí)現(xiàn)對偽碼故障里的模擬模型TMB的振蕩頻率和衰減系數(shù)的配置,在點(diǎn)擊”開始”按鈕之后,模擬器即可輸出配置參數(shù)的TMB異常信號。模擬器輸出的信號使用62 MHz的采集器進(jìn)行采集后,用軟件接收機(jī)SatRecv處理并將定位結(jié)果輸出處理。
圖10 TMB配置界面
在測試中,選用GPSL1CA信號的頻點(diǎn),設(shè)置用戶狀態(tài)為靜止,用戶的大地坐標(biāo)為(40° 116° 1000),仿真時間為2013年6月25日0時0分0秒,對TMB的振蕩頻率和衰減系數(shù)設(shè)置不同的數(shù)值,得到的不同的定位結(jié)果如表1所示。表格中fd單位為MHz,σ單位為MNepers/sec。
表1 不同TMB參數(shù)下的定位結(jié)果
可以看出,隨著振蕩頻率和衰減系數(shù)的增大,其定位誤差在逐漸減小。這是因?yàn)榇a振蕩中大于閾值的點(diǎn)在逐漸的減小,從而使得碼逐漸趨向于正常的碼信號。從表1可以看出定位的標(biāo)準(zhǔn)差較小,可見定位具有較高的穩(wěn)定性。
用采樣器將模擬器輸出的信號進(jìn)行采樣做相關(guān)分析,得到如圖11所示的相關(guān)圖。其中圖(a)為正常和畸變信號相關(guān)圖的比較,圖(b)是對圖(a)的畸變信號相關(guān)圖的放大比較。
圖11 FPGA相關(guān)圖分析
將圖11與圖7進(jìn)行對比分析。圖11的(b)中可以看到隨著振蕩頻率和衰減系數(shù)的減小,自相關(guān)圖的左右不對稱性會更加明顯,且自相關(guān)峰值也會降低,同樣計(jì)算得到的載噪比也會降低。對比圖7,圖11在fd=9 MHz,σ=4 MNepers/sec時,相比于正常的相關(guān)圖仍具有較低的相關(guān)峰值。主要原因是在FPGA的實(shí)現(xiàn)過程中,由于工程硬件的限制以及IIR濾波器反饋截短導(dǎo)致反饋數(shù)據(jù)的不準(zhǔn)確性,使得硬件仍然可以采樣得到振蕩信息,所以也就導(dǎo)致此時的自相關(guān)峰值仍低于正常值,且定位上依然存在著誤差。
本文對衛(wèi)星導(dǎo)航系統(tǒng)模擬電路故障TMB的故障注入方法進(jìn)行了詳細(xì)的分析,提出了針對TMB的FPGA實(shí)現(xiàn)方法并在硬件上進(jìn)行了實(shí)現(xiàn),對實(shí)現(xiàn)過程中可能會遇到的關(guān)鍵技術(shù)進(jìn)行了說明。本文結(jié)合Matlab和FPGA,從理論和工程的角度均對TMB進(jìn)行了分析,最后通過對模擬器輸出的異常信號通過相關(guān)圖和接收機(jī)定位結(jié)果進(jìn)行了對比,分析了TMB故障對信號的影響。本論文目前只是對碼故障中的模擬電路故障TMB進(jìn)行了分析,后期還將基于此實(shí)驗(yàn)的基礎(chǔ)上對其他常見的故障類型進(jìn)行實(shí)現(xiàn)和探究。