袁進,劉云飛
(南京林業大學 信息科學技術學院,江蘇 南京 210037)
全球衛星導航系統(GNSS)主要包括GPS、GLONASS、Galileo和我國的北斗衛星導航系統(BDS),可以為全球用戶提供高性能的定位、導航與授時服務,在軍事、社會和科研領域都有廣泛的應用并在全球范圍內形成了一個高新技術產業。導航信號的接收技術是導航系統的核心技術之一,是所有應用的基礎。GNSS信號接收涉及信號的捕獲、跟蹤和解算等關鍵技術,其中捕獲是接收機的第一步,是首要解決的關鍵技術[1-2]。
針對現有的信號捕獲算法中出現的硬件資源消耗大、捕獲精度低、捕獲速度慢、兼容性差等問題,本文針對GNSS系統兼容互操作方面,研究設計了一種適用于多種導航系統的信號捕獲算法,并進行了仿真驗證及工程應用測試,證明了系統的有效性及精確性。由測試結果可知,在資源利用較少的情況下,本算法可在較短時間內精確捕獲B1C、B1I、B2a、L1C、L5、E5a、E1OS等信號。
在GNSS系統中,信號捕獲是指對接收信號碼型、多普勒頻移和碼起止時刻的估計。捕獲成功是指使估計的碼型正確,碼相位差小于二分之一碼片的寬度,并初步估計出載波頻偏[3]。捕獲的實質就是利用導航信號中PN碼強自相關的特點從噪聲之中分解出導航信號的過程,為了避免不同衛星系統在接收機處理時出現相互干擾的問題,GNSS信號之間存在著許多的差異,如調制方式、載波頻率PN碼的長度與速度等[4-5]。
總結相關捕獲算法的文章,目前捕獲原理大致包含四類:基于序列檢測原理、基于相關性原理、基于信息迭代傳遞技術、基于現代信號檢測原理。在捕獲算法方面,大致分類為:能量累加方式(差分累加等)、捕獲策略(檢測策略、搜索策略)、相關算法:時域(滑動相關、匹配濾波)、頻域快速傅里葉變換(FFT)捕獲算法。
隨著技術的發展與變革,目前信號捕獲算法大多采用頻域處理,即將信號從時域轉換到頻域中進行處理。在時域中,信號數據循環卷積的過程可以表示為
m=0,1…,L-1 ,
(1)
式中:L為偽碼序列長度;PN((i+m))N為PN(i+m)以N為周期循環移位。
如果直接計算式(1),計算量正比于L2,當L非常大時計算量過大,捕獲時間太長。但如果利用時域的循環卷積等價于頻域相乘這一特性,將相關運算轉化到頻域上,利用快速傅里葉變換來計算,將會大幅度縮短運算時間。本文所討論的算法就是基于這種思想提出的,算法分別對樣點和偽碼進行傅里葉變換,接著將變換后的偽碼和樣點共軛相乘,再對相乘結果進行傅里葉逆變換,完成時域中的卷積過程。過程的數學表達如式(2)。最后對式(2)的結果進行后續的能量累積處理,能量峰值超過閾值,則表明捕獲成功。
=S(i)?PN(i)
=IFFT(FFT(S(i)))·FFT*
(PN(i)))
(2)
根據上一節所述,捕獲算法總體設計框圖如圖1所示。在無先驗值的條件下,當接收機射頻前端接收到衛星導航信號時,首先將信號進行下變頻操作,其目的是使信號頻率從中頻轉換為便于處理的零頻。接著對信號進行下抽采樣,將采樣數據存儲在相應的存儲模塊中,并進行合并操作。
在捕獲過程中,若捕獲到的多普勒偏移與真實的多普勒偏移的差值在整個周期的三分之二范圍內,則表明捕獲成功。由此,將多普勒頻移范圍以667 Hz為單位分為多個子單元。開始捕獲時,將本地載波NCO對準初始頻率估計值,使產生的信號對準一個頻率搜索單元。將采樣信號按0和1相位分為兩路,兩相位相差二分之一碼片,保證了捕獲精度。在啟動FFT捕獲環路之前,設置數據支路選擇模塊,通過時序控制,將數據按PN碼、0相位支路、1相位支路的順序依次傳輸。其中PN碼進行FFT處理后,結果數據保存在PN碼存儲模塊,待0相位支路進行FFT后,再將PN碼的FFT結果輸出到共軛相乘模塊進行下一步驟的運算。
因為在兼容互操作接收機中,捕獲的信號無法判斷是否有周期性的比特翻轉現象。故首先在相干累加模塊中對其進行同符號的累加,而且在信號累加的過程中,噪聲信號的能量將以根號二分之一的速度減弱。待相干累加模塊完成后,加入平方模塊,消除正負符號的影響,最后將平方后的值進行非相干累加處理。通過比較相干累加處理后的相關峰值找出其最大值。若最大值大于設定的檢測門限,則表明捕獲到信號,給出信號所在位置的碼相位和多普勒頻率。如果小于門限,則信號未捕獲,通過控制邏輯改變多普勒搜索單元,重復上述過程直到捕獲成功。
三通道數據傳輸順序如圖2所示,在PN碼輸入脈沖為高時,將PN碼數據傳入FFT模塊,待處理完成后將PN碼完成脈沖置高。只有在PN碼輸出脈沖為高時,才能傳輸0相位支路數據。同樣0相位支路數據處理完成后,才能繼續對1相位支路數據進行傳輸處理。待處理完成后,才能進行下一輪的傳輸,即從PN碼開始傳輸。
分析各衛星系統兼容捕獲結構,由于衛星的PN碼的長度不同,周期不同,由此導致捕獲算法中FFT變換的點數也不相同。結合實際工程要求,本文捕獲算法適用的信號分量信息如表1所示。綜合考慮處理速度及資源使用情況等因素,在進行FFT模塊設計時,本文采用基2-2048點按頻率抽取(DIF)的FFT算法模塊,以解決雙頻兼容互操作接收機對不同主碼長信號的兼容與遍歷要求。

表1 接收機捕獲的信號信息
由于各蝶形運算的輸入與輸出互不重復,任何一個蝶形的兩個輸入量經蝶形運算后可以實現同址運算。這種原位運算方式節省了大量的存儲單元,降低了硬件資源的使用成本[6]。該方法較傳統方法的優點在于,以最小點數的FFT設計及雙通道傳輸節約了大量硬件資源。其次,遍歷各種不同主碼長的信號,對10230主碼長的信號進行處理時,在資源節約的前提下,只犧牲了少量的時間。
本文參照CORDIC算法對蝶形運算單元進行設計,目的是充分利用FPGA的流水線結構,提高蝶形運算單元的處理速度[7]。另外,考慮到數據在頻域轉換后主要對頻譜能量信息進行處理分析,故在蝶形運算單元中加入了拋位運算,在資源消耗及處理速度上進一步得到優化。
基2-FFT設計主要由存儲單元、M(log2N,N為FFT輸入序列的長度)級蝶形運算單元、倒位序轉為順序單元等部分組成,總體結構如圖3所示。在模塊輸入時序的控制下,將待處理的數據流輸入到模塊中,通過數據流水線模塊的控制,將有效數據按設定時鐘依次輸入到(M-1)級蝶形運算單元中,直到完成最后一級的蝶形運算后(最后一級無乘法器),經過順序排序單元,即可將輸出的倒位序數據按自然順序輸出到存儲單元中。其中,為了保證資源的有效利用,且不影響算法有效性的情況下,在順序排序單元的設計中,本文設置了兩個存儲單元,既能保證數據流水線輸入,又能避免在順序排序單元的工作過程中出現數據交叉讀取的問題。
在算法設計中,FFT與IFFT模塊為同一個模塊,在進行IFFT模塊處理時,只需對旋轉因子做稍許處理。FFT模塊框圖如圖3所示。
考慮到兼容互操作接收機接收信號種類不同,加入相干累加模塊,一方面是為了使有用信號得到聚集、干擾信號得到減弱。另一方面,由于有些信號呈現正負交替的形式傳輸,故需選取合適的累加段數,以達到能量累積的效果。如圖4所示,將信號峰值在相干累加后得到進一步的提高。如果設置不當,則會出現圖5所示的結果,信號能量沒有得到聚集,與預期的設計思路相違背。
借助Xilinx仿真工具,編寫相應的Testbench文件,對整個算法設計進行系統的仿真分析。在時序控制下,將數據進行變頻、下抽和存儲操作。下抽模塊的仿真如圖6所示。樣點傳輸的速率為抽樣速率的四十倍,故在清零脈沖iClrEp為高時,傳輸40個碼片時,下抽脈沖oDsSplEp置高,將40個碼片的樣點數值相加后下抽一個數據。接著將數據分為0相位和1相位支路,如圖7所示,處理完畢后,存儲在相應存儲模塊。啟動片選模塊工作脈沖,按照設定的傳輸順序進行傳輸,仿真結果如圖8所示。iX0Cz、iX1Cz、iX2Cz分別為PN碼、0相位支路、1相位支路輸入數據,當輸出使能為高時,在輸出脈沖的控制下,依次輸出PN碼、0相位支路、1相位支路數據給FFT模塊。
為了直觀地分析FFT模塊的仿真結果,將正弦信號數據作為模塊的輸入數據。當輸入使能為高時,在輸入脈沖的控制下,將數據輸入FFT模塊。當輸出使能為高時,同樣在輸出脈沖的控制下,輸出FFT處理后的數據。從仿真結果圖9可知,FFT處理結果較為準確。
FFT輸出數據進行后面的共軛相乘、IFFT及相干累加模塊處理后,對相干累加結果進行平方處理,接著將結果輸入到非相干累加模塊,再次進行累加處理,最終將圖10中的iPowValue變量所呈現的結果輸入到判別模塊,設定相應閾值,如果峰值超過閾值,即可捕獲成功。由仿真結果可知,本次捕獲成功,樣點偏移為8個比特,載波多普勒偏移為6×667 Hz.
本文主要圍繞雙頻兼容互操作接收機的信號捕獲算法這一關鍵技術進行研究與設計。結合接收機捕獲的要求與所遇到的問題,提出一種基于FFT偽碼相位捕獲算法的改進方法。算法主要對FFT處理模塊及相干累加、非相干累加模塊做了改進。在FFT模塊設計中加入截位算法和流水線設計,使其符合兼容互操作接收機的捕獲信號特點。本文完成了捕獲算法的整體模塊設計,并借助仿真工具完成了對捕獲系統的仿真、調試與分析。由仿真結果可知,本算法在捕獲精度、處理速度及兼容性方面較傳統方法有了較大的提高。從實際工程應用中發現,本算法配合后續的跟蹤和解算模塊,達到了雙頻兼容互操作接收機的性能指標。綜上可得,本算法有較好的理論價值及使用價值。