夏運兵 , 龔文斌 , 姜泉江 , 姜興龍
(1.中國科學(xué)院 上海微系統(tǒng)與信息技術(shù)研究所,上海 200050;2.上海微小衛(wèi)星工程中心 上海 201203)
GPS衛(wèi)星信號是采用數(shù)據(jù)碼和偽隨機(jī)碼組合的碼調(diào)制技術(shù)[1],將衛(wèi)星所要傳遞的數(shù)據(jù)比特經(jīng)偽隨機(jī)碼擴(kuò)頻為組合碼,再對L頻段的載波進(jìn)行相移鍵控調(diào)制。采用這種調(diào)制模式[2]的信號不僅提高了系統(tǒng)導(dǎo)航定位的精度,并且可以讓系統(tǒng)具有較強(qiáng)的抗干擾能力,而所用的關(guān)鍵技術(shù)是偽隨機(jī)碼的擴(kuò)頻技術(shù)[3]。地面或天基等用戶終端,實現(xiàn)對偽隨機(jī)碼的捕獲至關(guān)重要,對其捕獲算法的研究一直是GPS接收機(jī)研究的一個熱點。本文通過Matlab/Simulink對3種常用的捕獲算法進(jìn)行仿真,并給出捕獲結(jié)果圖和捕獲時間,這對接收終端[4]的捕獲模塊研究具有一定的參考作用。
線性捕獲就是利用數(shù)字相關(guān)器在時域內(nèi)對所指定的衛(wèi)星信號的多普勒頻移和碼相位[5-7]進(jìn)行掃描式搜索,是最基本的信號搜索捕獲方法。它通常從頻率搜索范圍中間值所對應(yīng)的頻點出發(fā)開始搜索,然后左右交替逐漸對其兩邊的頻帶進(jìn)行搜索,直到最后檢測出信號或者搜索完所有頻帶為止。優(yōu)點在于它所使用的數(shù)字相關(guān)器只需要幾個,并且這些相關(guān)器還可以用于信號跟蹤,從而降低了硬件設(shè)計的復(fù)雜程度。缺點是捕獲的時間較長,應(yīng)用受到限制。
傳統(tǒng)線性搜索算法在時域內(nèi)對所有可能的頻點和相位進(jìn)行串行搜索,搜索的過程只需要加法和乘法運算,無論是在硬件還是軟件中都容易實現(xiàn),在GPS接收機(jī)設(shè)計中得到大量應(yīng)用。但由于線性搜索算法在實際接收機(jī)中實現(xiàn)時,捕獲過程需要大量的相乘、累加運算,需要較長的捕獲時間。
文中仿真采用多普勒頻移范圍在0~±10 kHz,以500 Hz的步長進(jìn)行遍歷搜索,碼相位以半個碼片遍歷搜索,則可得到線性捕獲算法完成信號捕獲的理論時間為:2 046×1 ms×
線性搜索是二維搜索,包括前文所述的41個搜索頻帶和2 046個搜索碼帶。而并行頻率搜索就是將頻率一維以并行實現(xiàn)的方式剔除,從而使信號搜索速度大幅提高的算法。并行頻率只需要進(jìn)行2 046個碼帶的滑動搜索即可,頻率一維搜索通過傅里葉變換實現(xiàn)。其實現(xiàn)算法流程如圖1所示。
圖1 并行頻率捕獲算法流程Fig.1 The parallel frequency acquisition algorithm
首先,數(shù)字中頻輸入信號與接收機(jī)[8]內(nèi)部復(fù)制的載波進(jìn)行混頻,再與復(fù)制C/A碼做相關(guān)運算,由此得到相關(guān)結(jié)果i和q是一個關(guān)于自相關(guān)值R(τ)與殘余載波頻率損耗因子sin c(feT)乘積的函數(shù);然后時域中的相關(guān)結(jié)果i+jq經(jīng)傅里葉變換后被轉(zhuǎn)換成頻域信號,它反映了相關(guān)結(jié)果在各個頻率成分處的強(qiáng)度;最后,對該頻域信號的幅值大小進(jìn)行分析,從中找出殘余頻率值fe及其相應(yīng)的接收信號載波頻率值。如果幅值C/A碼相位與接收信號中的C/A碼相位一致,那么它們兩者的低相關(guān)性會抑制傅里葉變換前和變換后的信號幅值,使得傅里葉變換結(jié)果沒有一個較大的幅值,故可斷定接收信號不位于此碼相位所對應(yīng)的搜索碼帶上。只有當(dāng)復(fù)制C/A碼與接收C/A碼相位對齊時,傅里葉變換輸出結(jié)果幅值中才有可能出現(xiàn)一個明顯的峰值,而該峰值對應(yīng)的傅里葉變換頻帶頻率值就是頻率誤差fe的估計值,并且當(dāng)時復(fù)制C/A碼信號的碼相位就是接收信號的碼相位估計值。
并行碼相位捕獲就是指2 046(以半個碼片為步進(jìn)則有10 23×2=2 046)次碼相位的搜索通過傅里葉變換一次性實現(xiàn),從而使搜索次數(shù)由線性搜索捕獲法的83 886次急劇地減少至只在頻率一維內(nèi)的41次搜索。這種基于FFT算法的相關(guān)技術(shù)相當(dāng)于并行相關(guān)器,其算法實現(xiàn)的流程如圖2所示。
圖2 并行碼相位捕獲算法流程Fig.2 The parallel code phase acquisition algorithm
并行碼相位搜索捕獲算法實際上是利用傅里葉變換這種數(shù)字信號處理技術(shù)來代替數(shù)字相關(guān)器的相關(guān)運算,下面推導(dǎo)兩者的等價性。由離散序列的相關(guān)函數(shù)表達(dá)式知,長為N點的兩個周期性序列 x(n)與 y(n)的相關(guān)值 z(n)為:
將式(1)進(jìn)行離散傅里葉變換,得到z(n)的離散傅里葉變換值:
將式(1)代入(2)式可得:
對式(3)進(jìn)行改寫得到如下式子:
其中,X(k)和 Y(k)分別為 x(n)與 y(n)的離散傅里葉變換,Y(k)代表復(fù)數(shù) Y(k)的共軛。 (4)式表明,乘積 X(k)Y(k)的離散傅里葉反變換正好是接收機(jī)需要進(jìn)行檢測的在各個碼相位處的相關(guān)值z(n)。得到相關(guān)值后,接下來的信號檢測與線性搜索捕獲法一樣,即找出在所有搜索單元中自相關(guān)幅值|z(n)|的峰值,并將該幅值與捕獲門限比較,超過門限則捕獲成功,反之則失敗。并行碼相位捕獲算法的優(yōu)點是搜索速度比線性捕獲算法更為快捷,適用于快速捕獲的應(yīng)用領(lǐng)域。
用Matlab中的Simulink仿真工具搭建本次仿真的信號源(本文中的信號源是模擬GPS信號源經(jīng)下變頻后得到的中頻信號源),并用To File模塊將偽碼和信號源存儲下來作為捕獲時的本地偽碼和信號源。信號源產(chǎn)生的框圖如圖3所示。本次仿真中偽隨機(jī)碼產(chǎn)生的速率為1.023 mHz,數(shù)據(jù)比特速率為50 bps,圖3中To file模塊前的采樣率為10.23 mHz,載波信號頻率為4.092 mHz,采樣率為10.23 mHz,最后將信號源存儲起來備用。
捕獲的實現(xiàn)過程可以通過Matlab的M語言實現(xiàn)的,對于不同的捕獲算法其M語言的編寫方法有很大不同。首先,Simulink信號源中存儲的偽隨機(jī)碼在M文件中載入備用,偽碼相位的延遲可以通過循環(huán)語句,將存儲的C/A碼重組,形成一個新變量 CA_acq,它是 1 023×10 230維的變量(行代表碼相位延遲,列代表碼片采樣點,由于采樣率是碼速率10倍,故而是10 230列),仿真時選擇其中一行作為本地偽碼即可,行數(shù)代表了碼相位的延遲數(shù)。這樣仿真時只需要取其中的某一行,其行數(shù)就代表了碼相位的延遲數(shù),可使仿真非常方便的選擇偽隨機(jī)碼需要延遲的碼片數(shù)目。而信號源產(chǎn)生的數(shù)據(jù)也需要載入到M文件中備用,并存儲成變量data_acq。
首先線性捕獲算法是最基本的算法,仿真的捕獲結(jié)果圖如圖4所示。
仿真所用時長為95.018 439秒。
圖3 信號源產(chǎn)生框圖Fig.3 Signal source generating diagram
圖4 線性算法捕獲結(jié)果Fig.4 The linear acquisition algorithm results
其次,并行頻率捕獲算法減少了搜索單元,捕獲時長較短。仿真的捕獲結(jié)果圖如圖5所示。
圖5 并行頻率算法捕獲結(jié)果Fig.5 Parallel frequency acquisition algorithm results
仿真所用時長為36.232 367秒。
最后,并行碼相位捕獲算法搜索的單元數(shù)最少,捕獲最快。仿真的捕獲結(jié)果如圖6所示。
仿真所用時長為22.113 107秒。
3種捕獲算法在采樣率,載波頻率,C/A碼采樣點數(shù)等條件一致的情況下,其仿真的時長(包括數(shù)據(jù)載入的時間)情況如表1所示。
仿真結(jié)果表明:線性捕獲算法雖然實現(xiàn)方法簡單,但是其捕獲時間較長,不利于快速捕獲;并行頻率捕獲算法由于
圖6 并行碼相位捕獲結(jié)果Fig.6 Parallel code phase acquisition algorithm resuls
表1 捕獲時間Tab.1 Capture time
文中主要用Simulink仿真工具,通過模塊的搭建實現(xiàn)GPS[9]中頻信號源,并將信號存儲備用,最終通M文件的運行模擬信號捕獲的過程。并給出了3種捕獲算法的仿真所用時長,結(jié)果表明并行碼相位捕獲最快,并行頻率其次,線性捕獲最慢,這與實際的情況相符。這些捕獲算法的Matlab/Simulink仿真實現(xiàn)對接收終端研究具有一定的參考作用,對其研制的前期仿真論證具有指導(dǎo)性意義。
[1]王超亮,李擎,蘇中.高速GPS接收機(jī)信號捕獲算法研究[J].測控技術(shù),2014,2(33):20-23.WANG Chao-liang,LI Qing,SU Zhong.Acquisition algorithm based on high speed GPSreceiver signal[J].Measurement&Control Technology,2014,2(33):20-23.
[2]周開利.基于MATLAB/SIMULINK的模擬通信系統(tǒng)仿真[J].信息技術(shù),2003,12(27):1-3.ZHOU Kai-li.Simulation of communication system based on Matlab/Simulink[J].Information Technology,2003,12(27):1-3.
[3]姜弢,廖瑞華,卓志敏.直擴(kuò)系統(tǒng)中匹配濾波器捕獲方法研究[J].信息技術(shù),2004,10(28):90-92.JIANG Tao,LIAO Rui-hua,ZHOU Zhi-min.Research of matched filter acquisition method in DSSS system[J].Information Technology,2004,10(28):90-92.
[4]沈振元,聶志泉,趙學(xué)荷.通信系統(tǒng)原理[M].西安:西安電子科技大學(xué)出版社,1993.
[5]張威,張克,徐熙宗.GPS信號C/A碼生成算法設(shè)計及仿真實現(xiàn)[J].通信技術(shù),2008,11(41):216-218.ZHANG Wei,ZHANG Ke,XU Xi-zong.GPSsignal C/A code generation design and simulation algorithm[J].Communications Technology,2008,11(41):216-218.
[6]郭海艷,畢紅軍.MATLAB在偽隨機(jī)碼的生成及仿真中的應(yīng)用[J].計算機(jī)仿真,2004,21(3):149-152.GUO Hai-yan,BI Hong-jun.Application of MATLAB in the generation and simulation of PN code[J].Computer Simulation,2004,21(3):149-152.
[7]盧曉春,陳清剛,胡永輝.衛(wèi)星導(dǎo)航定位系統(tǒng)中偽隨機(jī)碼的研究[J].時間頻率學(xué)報,2004,27(1):23-31.LU Xiao-chun,CHEN Qing-gang,HU Yong-hui.Study of the pseudo random code satellite navigation and positioning system[J].Journal of Timeand Frequency,2004,27(1):23-31.
[8]趙昀,張其善.軟件GPS接收機(jī)架構(gòu)與捕獲算法實現(xiàn)[J].北京航空航天大學(xué)學(xué)報,2006,1(32):53-56.ZHAO Jun,ZHANG Qi-shan.Architecture of software GPS receiver and capture algorithm[J].Journal of Bejing University of Aeronautics and Astronautics,2006,1(32):53-56.
[9]袁會東,韓峻峰,潘盛輝,等.基于WinCE的GPS數(shù)據(jù)采集系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012(19):165-167,171.YUAN Hui-dong,HAN Jun-feng,PAN Sheng-hui,et al.Design of GPS data acquisition system based on WinCE[J].Modern Electronics Technique,2012(19):165-167,171.