劉 寧,劉雪瑞
(61365部隊,天津300142)
隨著軟件無線電技術的發展,基于軟件結構的GPS接收機正越來越受到人們的重視。與硬件接收機相比,軟件接收機成本低,靈活性好,開發周期短,具有高度的可配置性。要利用GPS衛星信號進行導航定位,接收機首先要捕獲GPS衛星信號。本文討論了GPS軟件接收機數字中頻信號的快速捕獲原理,分析了初始捕獲后精確載波頻率的獲取方法,并對該方法進行了改進,提高了軟件接收機捕獲模塊中載波頻率的精度。
GPS信號的捕獲是一個二維的搜索過程,需要復現本地C/A碼和載波,然后和輸入信號作相關獲取最大值[1-2]?;诳焖俑道锶~變換(FFT)的并行碼相位搜索捕獲方法是對碼相位進行并行搜索。首先通過傅立葉變換使處理過程由時域變為頻域,使時域中的相關運算變換到頻域中的乘法運算,然后再通過逆傅立葉變換得到時域的相關運算結果。此方法稱之為循環相關法,其數學模型如式(1)所示:

式中:y[m]表示接收的信號數據;CA[m]表示本地復現的信號;DFT和IDFT分別表示快速傅里葉變換及逆變換;*表示取復數的共軛;R[m]表示相應的接收信號與本地復現信號間的相關值。找出所有R[m]幅值中的最大值,如果這個最大值大于預先設定的門限值,那么信號就捕獲成功。
由1 ms數據捕獲得到的頻率分辨率大約是1 kHz,這對于跟蹤環來說過于粗糙,需要的頻率分辨率應當在幾十赫茲以內[3]。采用長的數據進行捕獲,可以提高頻率分辨率,但長數據的FFT運算量大,非常耗時,而且長數據段內C/A碼發生相移的可能性相對要高。
通過相位關系可以得到精確載波頻率[4]。為了將C/A碼從輸入信號中剝離掉,根據捕獲得到的C/A碼初始相位和載波頻率(1 kHz分辨率)生成本地復現信號,并與輸入信號相乘(即作DFT運算),輸出信號可以表示為

式中:M為累加的采樣值點數;A為信號的幅度;R(?)為PRN碼的自相關函數;Δ τ為輸入信號與本地復現信號C/A碼相位偏差;T為積分累加時間;Δ f為輸入信號與本地復現信號的頻差;Δ φ為初始相位差。此時,C/A碼已從輸入信號中剝離掉,輸出信號r(t)為cw信號,通過相位關系就可以求得精確頻差 Δ f.
如果m時刻的輸入信號與本地復現信號相乘,輸出信號r(t)在m時刻的初始相位可由式(3)得到

式中,Im和Re分別表示復數的虛部和實部。因為在短時間內輸入信號的頻率變化不大,忽略短時間內的頻率變化,相同的初始捕獲頻率,對應的頻差Δ f可以看作是定值。在m時刻之后間隔不長的n時刻,輸出信號r(t)在n時刻的初始相位為

利用這兩個相位角可得到精確的頻差[5]

由此式得到的頻率分辨率比DFT得到的要精確得多。為了保證得到的頻差不模糊,相位差θnθm必須小于2π,即相位差不能存在整周模糊度。如果用間隔1 ms的兩段數據求取精確頻差,捕獲得到的載波頻率與輸入信號的頻率之差就應小于1 kHz。
但是,實際問題要復雜一些。因為在兩組相鄰數據中,導航數據可能會引起180°的相移,這時就不能把輸出信號看作cw信號。這就會將1 ms時延數據的模糊帶寬限制在 250 Hz。如果頻偏±250 Hz,1 ms時延對應的相位差是±π/2。如果頻偏+250 Hz,對應的相位差是+π/2,然而,由導航數據產生的π相移將把相位角變為-π/2(+π/2-π),這對應于頻偏-250 Hz的情形。如果在確定精確頻率時不考慮相位跳變的話,結果會有500 Hz的頻偏。為了避免這種情況,最大頻差必須小于250Hz.如果最大頻差限制在±200 Hz,相應的相位差就是±2π/5,若存在 180°相移,相差就是3π/5,大于2π/5。因此,相差可用來在不產生誤差頻移的情況下,確定精確頻率[1]。
從以上分析可以看出,要獲得精確載波頻率,首先要將載波頻率的分辨率從1 kHz提高到400 Hz,即使頻率精度保持在200 Hz以內。文獻[1]中的方法是對同1 ms數據進行兩個DFT操作(信號相乘),一個比初始捕獲頻率值低400 Hz,另一個高400 Hz.然后將三個輸出幅值中最大值所對應的頻率作為新的載波頻率。由于噪聲的影響,三個幅值中的最大值很可能并不對應頻差最小的頻率,此時的頻率偏差將大于400 Hz,得到的相位差大于2π/5,并且越修正越大。為了使頻率精度精確地保持在200 Hz以內,本文采用對同一連續5 ms的數據進行相干積分,然后取累加后的三個幅值中的最大值所對應的頻率作為新的載波頻率。由于采用了相干積分,消弱了噪聲的影響,使得載波頻率能夠精確地保持在200 Hz以內。
實驗首先用模擬的兩組GPS信號來實現基于FFT的并行碼相位搜索捕獲,并用上述算法進行頻率精化。仿真產生GPS中頻數據的主要參數為:衛星號為21,采樣率5 MHz,中頻1.25 MHz,多普勒頻移-1455 Hz,C/A碼初始相位為2151。為了分析算法性能,模擬產生兩組GPS信號,一組為加高斯白噪聲的弱信號;一組為不加噪聲的強信號。捕獲采用的數據長度為1 ms,圖1為捕獲結果。
圖1(a)為弱信號得到的捕獲結果,噪聲很大,效果不明顯;圖1(b)為強信號得到的捕獲結果,噪聲很小,峰值高出圖1(a)很多,效果明顯。
模擬信號采樣率為5 MHz,1 ms對應5000個數據點??紤]到接收機的實時性,為了減少捕獲過程中的運算量和實現的復雜度,采用的捕獲方案不直接對5 MHz的數據點做FFT,而是先以2.048 MHz對數據進行二次采樣,變成一個點數較少的,為2的n次冪的點序列,以便于進行基2的FFT運算。此時,1 ms對應2048個數據點。二次采樣后,C/A碼仍然具有良好的自相關性,保證了捕獲的順利進行[2],但捕獲靈敏度會有所降低。在圖1中,捕獲的C/A碼初始碼相位為881,對應于 5 MHz的原始數據為2151(881×5/2.048)。表1列出了捕獲過程得到的初始載波頻率和頻率精化后的載波頻率:

表1 模擬信號捕獲及頻率精化結果
從表1中可以看出,捕獲得到的初始載波頻率與精確載波頻率(1248545 Hz)差-455 Hz.對于弱信號,經頻率精化后的載波頻率與精確頻率差19.8 Hz;對于強信號,頻差為0 Hz,得到了精確的載波頻率。由此可見,根據相位關系的頻率精化方法可以將捕獲的載波頻率精度提高到幾十個赫茲以內,符合一般信號的跟蹤需求。

圖1 模擬GPS信號捕獲結果對比
本實驗處理的數據來自于由前端硬件采集的實測數據,采樣頻率為38.192 MHz,中頻(IF)為9.548 MHz,總共有8顆可見衛星。下面以其中的兩顆衛星來進行捕獲實驗,分別為18號星和21號星。捕獲采用的數據長度為1 ms.同樣,捕獲過程中對中頻信號進行了二次采樣,由每毫秒38192個數據點重采樣成2048個數據點進行捕獲。圖2為兩顆星的捕獲結果:
從圖2的對比中可以看出,21號星受到噪聲的影響比18號星大一些,信噪比要比18號星低。表2列出了初始捕獲后得到的C/A碼初始碼相位和初始載波頻率以及進行頻率精化后得到的載波頻率:

圖2 實測數據捕獲結果對比

表2 實測數據捕獲及頻率精化結果
從表2中可以很直觀地看到精確的載波頻率和初始的載波頻率相差多達幾百赫茲,可見初始捕獲得到的載波頻率是不滿足后續跟蹤模塊要求的。
為了檢測經頻率精化后得到的載波頻率是否符合信號跟蹤模塊的需求,本文以精化后的載波頻率作為跟蹤模塊的輸入,分別對18號星和21號星進行了跟蹤實驗,圖3為起始600 ms的跟蹤輸出結果:

圖3 實測數據跟蹤輸出對比
從圖3中可以看出,跟蹤模塊以頻率精化后得到的頻率作為輸入,成功地跟蹤上了18號星和21號星的信號,說明經頻率精化后得到的精確頻率滿足跟蹤模塊的需求,以上述方法對初始捕獲后得到的載波頻率進行精化的方法是可行的。圖3中18號星和21號星跟蹤輸出的差異在于18號星從一開始就平穩地跟蹤上了,而21號星雖然開始也跟蹤上了,但跟蹤輸出有些波動,隨后才趨于平穩。這是因為21號星信號噪聲比18號星要大些,在噪聲的影響下,頻率精化得到的載波頻率精度沒有18號星的載波頻率精度高。
基于FFT的并行碼相位搜索捕獲算法可以快速地捕獲到GPS信號。在獲得C/A碼初始相位和載波頻率后,通過相位關系可以得到精細頻偏,從而獲得更精確的載波頻率,可以滿足GPS跟蹤模塊對一般信號的跟蹤需求。
[1] James Bao-Yen T.Fundamentals of global positioning system receivers:A software approach[M].2 ed.John Wiley&Sons.Inc,2005.
[2] 唐 斌.衛星導航軟件接收機關鍵技術研究[D].北京:裝備指揮技術學院,2007.
[3] 李作虎.GPS軟件接收機技術仿真實驗研究[D].鄭州:信息工程大學,2008.
[4] 徐衛明,劉雁春,朱穆華.GPS中頻信號快速捕獲技術分析[J].測繪科學,2007,32(5):98-100.
[5] 高潔雯,柳林濤,楊 光.基于軟件實現GPS信號捕獲以及獲取精確載波頻率[J].測繪科學,2007,32(5):14-16.