于雪暉,徐 京,柳 濤
(北京衛(wèi)星信息工程研究所 北京 100086)
全球定位系統(tǒng)(Global Positioning System,簡稱GPS)是美國從上世紀70年代初開始規(guī)劃研制,歷時21年,耗資200余億美元,于1994年全面建成的,具有海、陸、空全方位實時三維(時間、速度、方位)導(dǎo)航與定位能力的第二代衛(wèi)星導(dǎo)航系統(tǒng)。它是目前最先進、應(yīng)用最廣泛的衛(wèi)星導(dǎo)航定位系統(tǒng),可為全球的民用及軍用飛機、艦船、人員、車輛等提供實時導(dǎo)航定位服務(wù)[1]。
GPS系統(tǒng)采用典型的CDMA體制,這種擴頻調(diào)制信號具有低截獲概率特性,系統(tǒng)以碼分多址形式區(qū)分各衛(wèi)星信號。目前GPS系統(tǒng)是部分公開的,采用的偽碼有C/A碼、P(Y)碼等。
GPS系統(tǒng)中的P碼是一種高精度定位碼,利用P碼進行定位比利用C/A碼進行定位的精度高10倍左右。由于P碼具有碼周期長,結(jié)構(gòu)復(fù)雜的特點,對P碼的捕獲一直倍受關(guān)注。P碼的捕獲過程中需要產(chǎn)生本地復(fù)現(xiàn)碼,因此,若能產(chǎn)生其周期內(nèi)任意一段的P碼數(shù)據(jù),則對提高P碼的捕獲有著重要的意義。
P碼是復(fù)雜的偽隨機噪聲(PRN)碼,碼速率為10.23 MHz,碼周期為266.41天,碼元長度遠遠大于C/A碼1023的碼元長度。在實際應(yīng)用中,每顆衛(wèi)星使用P碼的一星期長的碼元作為自己的擴頻序列。
按照ICD-GPS-200C[2],P碼的產(chǎn)生原理如圖1所示,主要由4個 12級的線性反饋移位寄存器(X1A,X1B,X2A,X2B)構(gòu)成,系統(tǒng)的統(tǒng)一時鐘源為10.23 MHz。X1A和X2A序列被截短為4 092個碼片,X1B和X2B序列被截短為4 093個碼片。P碼的設(shè)計規(guī)范要求4個移位寄存器每一個都有一組反饋抽頭,這些抽頭用異或電路相互合并在一起,并反饋到各個寄存器的輸入級。描述這些反饋移位寄存器方案的多項式如表1所示[3]。
表1 P碼發(fā)生器多項式及初始狀態(tài)Tab.1 Polynomial of P code generator and initial state
X1A序列每4 092個碼片循環(huán)一次,X1B序列每4 093個碼片循環(huán)一次,形成了X1B序列與X1A序列的相對運動。當X1A序列循環(huán)了3 750次,就完成一次X1序列周期。此時,X1B序列只循環(huán)了3 749次。當X1B序列完成第3 749次循環(huán)時,其對應(yīng)的移位寄存器就停止移位,等待X1A序列完成第3 750次循環(huán)后產(chǎn)生信號對X1A和X1B的移位寄存器重新初始化。X2序列的產(chǎn)生過程與X1序列類似,但區(qū)別在于每次X2A序列完成第3 750次循環(huán)后都要等待37個時鐘周期才產(chǎn)生信號重新初始化X2A和X2B移位寄存器。從而,又形成了序列X2與序列X1的相對運動。由于X1序列是始終保持4 092個碼片循環(huán)的,因此,X1B、X2A和X2B序列的運動可以看作是參照X1A序列進行的。一個X1序列周期包括15 345 000個碼片,經(jīng)歷的時間為1.5 s。X2移位寄存器的綜合周期為15 345 037個碼片,它比X1寄存器長37個碼片[4]。
如果P碼是由X1直接異或X2產(chǎn)生的,而且在星期末尾移位寄存器沒有復(fù)位,其序列長度將是15 3450 00×15 345 037=2.35 471 014碼片。對于10.23 M的碼片速率,這一序列的周期為266.41天,然而由于序列在星期末尾被截斷,每顆衛(wèi)星只用該序列的一個星期。在X2序列的輸出位置使用移位寄存器來對X2序列進行i個碼片(i的范圍從1到37)的延遲,就形成了37種不同的P碼序列。
圖1 P碼產(chǎn)生原理框圖Fig.1 Architecture of P code generator
P碼輸出由相應(yīng)的移位寄存器的狀態(tài)所決定。任意一個GPS時間點上,任意一顆GSP衛(wèi)星上的P碼信號產(chǎn)生器中各個移位寄存器的狀態(tài),各個計數(shù)器的值都是一致的。若能知道各個移位寄存器的狀態(tài)及各個計數(shù)器的值,并和衛(wèi)星號一起作為初始值賦給碼產(chǎn)生器,即可控制碼產(chǎn)生器從該時間點開始產(chǎn)生該GPS衛(wèi)星的P碼[5],這就是P碼的時間反推模型。
由于已知P 碼速率為10.23 MHz,在某一時刻T,產(chǎn)生的P碼片為第T×10 230 000個碼片,記該碼片為chip_num。記P碼產(chǎn)生器中X1A和X2A運行3 750個周期的碼片數(shù)為常數(shù) C1=40 923 750=15 345 000,X1B和 X2B運行 3 749個周期的碼片數(shù)為常數(shù)C2=40 933 749=15 344 657。根據(jù)X2序列延遲i個碼片,即形成第i顆衛(wèi)星的P碼序列,所以設(shè)PRN為延遲碼片個數(shù),并且范圍為1到37。
此外,該算法中還包含4級寄存器:
第1級:X1中包含C1整周的數(shù)目為x1_cnt,X2中包含C2整周的數(shù)目為x2_cnt;
第2級:X1A3750計數(shù)周期的寄存器 x1a_cnt,X1B3749計數(shù)周期的寄存器 x1b_cnt,X2A3750計數(shù)周期的寄存器x2a_cnt,X2B3749計數(shù)周期的寄存器x2b_cnt;
第3級:X1A單周期內(nèi)寄存器x1areg_num,X1B單周期內(nèi)移位寄存器x1breg_num,X2A單周期內(nèi)移位寄存器x2areg_num,X2B單周期內(nèi)移位寄存器x2breg_num;
第4級:X2比X1長37個碼片,若查找的碼片在該37碼片內(nèi),則記該碼片為cnt37(范圍為0到37)。
本算法最終需要求得的就是第3級寄存器內(nèi)的存數(shù),再將這4個碼值進行異或就得到所需時刻的P碼。
根據(jù)P碼生成原理,上述各參數(shù)間存在如下關(guān)系:
用“%”表示求余運算,“/”表示除法取整運算,那么由式(1)可知:
圖2 x1a和x1b碼片位置示意圖Fig.2 Architecture of x1a and x1b code position
由圖2可知,
當chip_num-C1×x1_cnt>C2時,碼片落在X1B的最后343個碼中,則x1breg_num應(yīng)為4 093。
圖3 x2a和x2b碼片位置示意圖Fig.3 Architecture of x2a and x2b code position
由圖3可知,
當chip_num-(C1+37)×x2_cnt>C1時, 碼片落在 X2A 延遲的37個碼片中,則x2areg_num應(yīng)為4092,且cnt37=chip_num-(C1+37)×x2_cnt-C1。
當chip_num-(C1+37)×x2_cnt≤C2 時,碼片落在 X2B 的后380個碼片中,則x2breg_num應(yīng)為4093。
至此,可以得到任意GPS時間,碼產(chǎn)生器中所有移位寄存器和計數(shù)器的值,若P碼信號產(chǎn)生器中包含設(shè)定寄存器和計數(shù)器的碼相位所必須的控制,即可控制碼產(chǎn)生器從該時間點開始產(chǎn)生P碼。
該算法在Matlab開發(fā)環(huán)境下進行了仿真實現(xiàn),可以產(chǎn)生對應(yīng)于任意時刻開始的任意長度的P碼信號。產(chǎn)生的部分P碼碼片如圖4和圖5所示。其中,第5顆衛(wèi)星從起始時刻(每周日的零時)開始的前100個P碼碼片如圖4所示,第18顆衛(wèi)星在一周內(nèi)的C1到C1+100的100個P碼碼片如圖5所示。
圖4 GPS 5號衛(wèi)星起始的100個P碼片F(xiàn)ig.4 A hundred initial P codes of GPS5 signal
圖5 GPS 18號衛(wèi)星C1到C1+100的100個碼片F(xiàn)ig.5 Codes of GPS18 from C1 to C1+100
ICD-GPS-200C[2]作為GPS的官方標準,提供了P碼的生成機理及部分P碼碼片,如表2所示。把仿真產(chǎn)生的P碼碼片與ICD-200C中提供的資料進行對照比較,結(jié)果完全吻合。
表2 5號星和18號星P碼的初始12位碼序列Tab.2 Twelve initial codes sequence of satellite 5 and 18
同時,GPS P碼的相關(guān)函數(shù)(自相關(guān)、互相關(guān)函數(shù))可以統(tǒng)一用下式表示:
式中,Pi(t)表示衛(wèi)星 PRNi在t時刻的 P 碼序列;Tcp為 P碼片周期,約等于97.75 ns;τ為相關(guān)函數(shù)中時間移動的相位。
圖7 P碼(PRN5和PRN20)的互相關(guān)函數(shù)Fig.7 Cross-correlation function of GPS5 and GPS20
圖6 P碼(PRN5)的自相關(guān)函數(shù)Fig.6 Autocorrelation function of GPS5 P code
因此,為了進一步了解GPS系統(tǒng)P碼序列的特性,可以通過仿真平臺根據(jù)P碼生成機理產(chǎn)生出GPS衛(wèi)星信號所使用的P碼,并截取其中部分對其進行自相關(guān)性和互相關(guān)性分析,結(jié)果如圖6、7所示,可見P碼具有良好的相關(guān)、寬帶特性,從而增加了信號的抗干擾能力[6]。
文中利用Matlab對P碼反推生成算法進行了仿真,仿真結(jié)果表明采用該種方法可以得到任意時刻開始的任意長度P碼信號,同時通過產(chǎn)生的P碼序列驗證了P碼具有良好的自相關(guān)特性和互相關(guān)特性。該算法程序簡單,運算量小,易于實現(xiàn),而且不會受到輸出長度的限制,能更好地滿足接收機[7-8]的實時性要求,可在后續(xù)研究中嘗試將該算法移植到硬件電路中實現(xiàn)。
[1]Kaplan E D.GPS原理與應(yīng)用[M].北京:電子工業(yè)出版社,2008.
[2]ARINC Research Corporation.ICD-GPS-200C.Navstar GPS Space Segment/navigation User Interfaces[S].1993.
[3]謝鋼.GPS原理與接收機設(shè)計[M].北京:電子工業(yè)出版社,2009.
[4]James B,Yen T.Fundamentals of global positioning system receivers: A Software Approach[M].John Wiley&Sons,,2000.
[5]Brown A,May M,Tanju B.Benefits of softwareGPS receivers for enhanced signal processing[J].GPS Solutions,2000,4(1):56-66.
[6]Brown A,Gerein N.Direct P-Code acquisition using an electro-optic correlator[C]//proceedings of the 2001 National Technical Meeting.Long Beach,CA:ION,2001:386-393.
[7]程翔,史雪輝.基于多相濾波的數(shù)字接收機的FPGA實現(xiàn)[J].現(xiàn)代電子技術(shù),2010(23):95-98.
CHENG Xiang,SHIXUE-hui.FPGA implementation of digitalreceiver based on polyphase filting[J].Modern Electronics Technique,2010(23):95-98.
[8]施永熱,陳霽月.VHF跳頻電臺接收機射頻前端的仿真設(shè)計與研究[J].電子科技,2009(9):34-38.
Shi Yong-re,Chen Ji-yue.Simulation design and study of the VHF frequency-hopping radio receiver front-end[J].Electronic Science and Technology,2009(9):34-38.