【摘要】北斗衛(wèi)星導(dǎo)航系統(tǒng)是我國自主研制的全球衛(wèi)星導(dǎo)航系統(tǒng),是繼美國的GPS以及俄羅斯的GLONASS之后的第三個成熟的衛(wèi)星導(dǎo)航系統(tǒng)。北斗衛(wèi)星導(dǎo)航系統(tǒng)的衛(wèi)星信號采用了二次編碼技術(shù),限制了相干積分的時間,給北斗導(dǎo)航信號的捕獲帶來了挑戰(zhàn),因此本文提出了基于4ms的遍歷并行碼相位搜索的衛(wèi)星捕獲算法,用來解決這個問題,提高衛(wèi)星捕獲的靈敏度,提高衛(wèi)星捕獲的性能。
【關(guān)鍵詞】北斗衛(wèi)星捕獲;4ms遍歷;并行碼相位搜索;FPGA
1.引言
北斗衛(wèi)星導(dǎo)航系統(tǒng)是中國自行研制的全球衛(wèi)星定位與通信系統(tǒng),是繼美國的全球定位系統(tǒng)(GPS)和俄國的GLONASS之后第三個成熟的衛(wèi)星導(dǎo)航系統(tǒng)。2012年12月27日,北斗導(dǎo)航業(yè)務(wù)正式對亞太地區(qū)提供無源定位、導(dǎo)航、授時服務(wù)。
隨著北斗衛(wèi)星導(dǎo)航系統(tǒng)的建立,北斗衛(wèi)星導(dǎo)航接收機終端的研發(fā)也進入了關(guān)鍵階段,衛(wèi)星導(dǎo)航接收機終端按照信號處理的流程來講,分為三個階段,第一階段是衛(wèi)星的捕獲,第二階段是衛(wèi)星的跟蹤,第三階段是定位結(jié)算[1]。本文研究的重點就是衛(wèi)星的捕獲階段,導(dǎo)航終端接收到的衛(wèi)星信號的能量必須要能夠保證進行PVT計算,如果當(dāng)信號被建筑物所阻擋,那么信號的強度將會受到嚴(yán)重的衰減,這也意味著對該信號進行捕獲也將更具挑戰(zhàn)性。因此,在上述嚴(yán)峻的條件下我們需要引入新的捕獲技術(shù)來增加衛(wèi)星捕獲的靈敏度。
北斗衛(wèi)星信號不僅僅調(diào)制了數(shù)據(jù)位,而且還調(diào)制了NH碼,NH碼是一種二級碼,周期為20ms,每1ms就有可能發(fā)生比特跳變,為了保證衛(wèi)星信號的捕獲性能,一種通用的方法是非相干積分算法[2],該算法將1ms的擴頻結(jié)果進行平方,借此消除了比特跳變的影響,但是這種方法卻引入了平方損耗,而且經(jīng)過1ms相關(guān)解擴后的信噪比越低,引入的平方損耗就越大,因此無法應(yīng)用于弱衛(wèi)星信號的捕獲。有一些研究方向是采用差分的方法來減小平方損耗,但是對于調(diào)制了NH碼的北斗信號而言并不適用,還有一種方法就是延長相干積分時間,這也是最行之有效的方法。衛(wèi)星信號上的NH碼把相干積分時間限制在1ms,也限制了相干積分增益,進而限制了捕獲的靈敏度。因此我們的研究目標(biāo)是消除NH碼帶來的比特跳變的影響,避免引入平方損耗,提高捕獲靈敏度。
2.基于4ms的遍歷并行碼相位搜索算法
北斗衛(wèi)星信號上調(diào)制的NH碼:
[3]。
每個NH碼片的長度為1ms,周期為20ms,從NH碼中我們可以找到規(guī)律,即NH碼的前5個比特是相同的,如果用該段數(shù)據(jù)進行相干積分,那么就可以不采用非相干積分的算法,直接延長相干積分的時間,從而可以增大相干積分增益,提高北斗衛(wèi)星信號的捕獲靈敏度。因此在這個思路之下,我們設(shè)計了基于4ms的遍歷并行碼相位搜索算法,具體算法步驟如下:
A.取24ms的衛(wèi)星中頻信號;
B.取4ms數(shù)據(jù)進行一次粗混頻,得到基帶信號;
C.對基帶信號進行抽取,降速率至4.092 MHz;
D.對降速率的信號進行插值,將信號速率調(diào)整至4.096MHz;
E.本地產(chǎn)生載波,對數(shù)據(jù)進行二次精細(xì)混頻,在頻率域上進行搜索;
F.將二次混頻后的數(shù)據(jù)進行4點DFT,然后送入4096點FFT模塊進行FFT運算;
G.本地產(chǎn)生該顆北斗衛(wèi)星的PRN碼,預(yù)先作4096點FFT并取共軛,與衛(wèi)星信號FFT后的數(shù)據(jù)相乘;
H.將相乘后的結(jié)果作4096點IFFT取模,根據(jù)模值進行排序;
I.搜索完這個頻率,再轉(zhuǎn)到步驟E,搜索其他的頻率;
J.搜索完這個4ms數(shù)據(jù)的全部頻率,再將數(shù)據(jù)的起點往后移1ms,再取4ms的數(shù)據(jù),轉(zhuǎn)到步驟B.
K.重復(fù)20次的4ms數(shù)據(jù)搜索,就可以遍歷整個NH碼序列,因為取得是4ms的數(shù)據(jù)長度,無論起點的位置,遍歷之后4ms的數(shù)據(jù)都會落在5ms的相同符號的區(qū)域之內(nèi),搜索完畢之后,將最大的模值結(jié)果取出進行判決,如果超過閾值,那么說明該顆衛(wèi)星存在并被捕獲到,如果沒有超過閾值,說明該顆衛(wèi)星沒有被捕獲到。
上述步驟可以用圖1所示的流程圖描述。
圖1 基于4ms遍歷并行碼相位算法流程圖
3.北斗導(dǎo)航信號捕獲系統(tǒng)硬件系統(tǒng)設(shè)計
北斗導(dǎo)航信號的捕獲算法的計算量大,而且實時性要求較高,這樣就需要使用硬件實現(xiàn),加速計算,保證實時性的要求[4]。因此本文中的北斗衛(wèi)星導(dǎo)航信號捕獲系統(tǒng)由Verilog語言在FPGA平臺上進行設(shè)計,作為協(xié)處理器通過AMBA總線掛載在ARM7核上,負(fù)責(zé)北斗衛(wèi)星信號的捕獲過程,各個功能模塊如圖2所示。
圖2 北斗導(dǎo)航信號捕獲系統(tǒng)功能模塊設(shè)計框圖
(1)ae_decimator模塊:混頻抽取模塊,將中頻輸入的衛(wèi)星信號混頻至基帶,然后抽取降速。
(2)cap_buffer和cap_wr_ctl模塊:控制數(shù)據(jù)存儲到dsp_ram中。
(3)CPU register模塊:用來和ARM7核進行數(shù)據(jù)的交互。
(4)CRAM模塊:用來暫存最終的捕獲結(jié)果以及從CPU register模塊接收來的捕獲控制信息。
(5)AE_CTL模塊:用來控制捕獲協(xié)處理器的算法流程。
(6)Interpolator模塊:用來對暫存到dsp_ram中的數(shù)據(jù)進行插值,將原速率為4.092MHz的數(shù)據(jù)插值成4.096MHz的數(shù)據(jù),方便后面進行4096點的FFT操作。
(7)FFT/IFFT engine模塊:負(fù)責(zé)4096點的FFT/IFFT的計算
(8)Work_mem模塊:用于FFT/IFFT計算中中間結(jié)果的暫存。
(9)MEM_arbiter模塊:DSP_MEM的仲裁器。
(10)DSP_MEM模塊:用于存儲捕獲過程中的中間數(shù)據(jù)。
4.北斗導(dǎo)航信號捕獲協(xié)處理器系統(tǒng)測試
北斗導(dǎo)航信號捕獲協(xié)處理器是通過AMBA總線掛載在ARM7核上的,協(xié)處理器運行之前需要配置好捕獲的控制信息,包括需要捕獲的衛(wèi)星號,搜索頻率范圍,搜索的起始頻率等控制信息,這些信息是由配置軟件生成.mif文件,存儲在dsp_ram中,F(xiàn)PGA啟動后,ARM7核會從dsp_ram中讀取配置文件,將信息配置在捕獲模塊的寄存器中,啟動捕獲協(xié)處理器對北斗衛(wèi)星信號進行捕獲。
在搭建好的FPGA環(huán)境中進行測試,使用的數(shù)據(jù)是天線接收到的北斗衛(wèi)星導(dǎo)航信號,強度在-130dB左右,事先用matlab實現(xiàn)的北斗導(dǎo)航軟件接收機進行捕獲,可以成功捕獲到1號衛(wèi)星,捕獲到的1號衛(wèi)星的頻率是4.09115MHz,再使用verilog實現(xiàn)的北斗導(dǎo)航信號捕獲協(xié)處理器對該段數(shù)據(jù)進行捕獲,配置軟件中的衛(wèi)星號設(shè)為1,一級混頻頻率設(shè)為4.092MHz搜索頻率范圍設(shè)定為10KHz,搜索步長設(shè)定為1KHz,結(jié)果如圖3所示,捕獲結(jié)果中發(fā)現(xiàn)o_peak處有明顯的峰值,根據(jù)載噪比的計算公式計算得到CN0為42.96dB·Hz,超過了閾值37.5dB·Hz,再查看捕獲到的頻率o_bin0=1,搜索的起始頻率為4.092MHz,因此硬件系統(tǒng)捕獲到的1號衛(wèi)星頻率為4.091MHz,與matlab捕獲到的1號衛(wèi)星的頻率相近,因此視作捕獲到1號衛(wèi)星。
圖3 北斗導(dǎo)航信號捕獲測試結(jié)果
5.總結(jié)
本文為了解決北斗衛(wèi)星信號中調(diào)制了NH碼所引入的比特跳變問題,提出了基于4ms的遍歷并行碼相位搜索的衛(wèi)星捕獲算法,提高了捕獲靈敏度和導(dǎo)航接收機的性能,并使用FPGA硬件成功實現(xiàn)了該算法,將捕獲模塊作為一個協(xié)處理器掛載在ARM7核上,通過實際的測試,成功驗證了該算法與實現(xiàn)的正確性。
參考文獻
[1]謝剛.GPS原理與接收機設(shè)計[M].電子工業(yè)出版社,2009.
[2]易維勇,董緒榮,孟凡玉.GNSS單頻軟件接收機應(yīng)用與編程[M].國防工業(yè)出版社,2010.
[3]北斗衛(wèi)星導(dǎo)航系統(tǒng)空間信號接口控制文件,2012.
[4]JAMES BAO-YEN TSUI.GPS軟件接收機基礎(chǔ)[M].電子工業(yè)出版社,2008.
作者簡介:林嵩(1989—),男,福建福州人,廈門大學(xué)信息科學(xué)與技術(shù)學(xué)院通信工程系研究生在讀,研究方向:衛(wèi)星導(dǎo)航接收機設(shè)計。