趙丙風,章林鋒,孫壽浩
(1.中國電子科技集團公司第五十四研究所,石家莊 050081;2.32021 部隊,北京 100094)
衛星導航定位系統是以人造地球衛星作為導航臺的星基無線電導航系統,可以提供全天侯定位、測速和授時(PNT)服務.目前全球衛星導航系統(GNSS)主要包括北斗衛星導航系統(BDS)、美國的全球定位系統(GPS)、歐盟的伽利略衛星導航系統(Galileo)以及俄羅斯的格洛納斯系統(GLONASS),除此之外還包括日本的準天頂衛星系統(QZSS)和印度的區域導航衛星系統(IRNSS)[1].導航信號的PNT 服務依賴信號穩定跟蹤與電文解析,事實上,在實現衛星導航信號跟蹤之前,首先要完成信號捕獲,其目的是為了獲取衛星導航信號的載波頻率和偽碼相位的估計值[2].
典型的捕獲算法主要包括線性搜索、并行頻率搜索、并行碼相位搜索[2].線性搜索是利用相關器在時域內對所指定衛星信號的多普勒和碼相位進行掃描式搜索,實現簡單、資源消耗低,但是捕獲速度慢,不適用于長碼捕獲;并行頻率搜索在串行搜索的基礎上,通過快速傅里葉變換(FFT)將信號載波搜索由時域轉換到頻域進行,由串行搜索轉換為并行搜索,通過增加資源的方式加快了搜索速度;并行碼相位搜索類似于并行頻率搜索,通過FFT 方式將串行碼相位搜索轉化并行搜索,降低搜索次數,提高捕獲速度.
近年來,隨著導航接收機硬件平臺的快速發展,目前導航接收機多采用資源豐富的現場可編程門陣列(FPGA)、數字信號處理器(DSP)等作為核心器件開發,資源不再是接收機捕獲性能的主要限制條件,更多的研究致力于提高導航信號的捕獲速度、捕獲靈敏度等方面.其中研究較多的是部分匹配濾波+快速傅里葉變換(PMF-FFT)捕獲方法[3-4].PMF-FFT 算法是一種基于頻率并行搜索的快捕算法,在對載波頻率進行搜索的同時還對碼相位進行搜索,縮短了捕獲時間,非常適合在捕獲時間要求嚴格的高動態環境中使用.但PMF-FFT 算法也存在資源消耗大、積分長度受限、捕獲多普勒分辨率低等問題,文獻[5-10]從不同的角度對PMF-FFT 算法提出性能改進措施.
針對PMF-FFT 算法存在的問題,本文提出一種基于預平均處理的變系數匹配濾波改進方法,克服了傳統匹配濾波器硬件消耗資源較多的問題,同時解決傳統信號捕獲方法得到的多普勒分辨率低,轉跟蹤后牽引時間較長的問題,并針對現有四系統兼容信號實現捕獲算法,通過靈活可配置的捕獲參數實現現代多模多頻導航信號的高靈敏度快速捕獲,將該算法成功應用到專用集成電路(ASIC)項目設計當中.
多頻多模是現代化導航接收機的主流發展方向,隨著四大導航系統的建設完善,尤其是隨著BDS 的建設與開通,兼容互操作將是提供高性能導航服務的重要途徑.本文研究信號類型包括了北斗B1I、B1C、B2a、B2b、B3I 信號;GPS L1C/A、L1C、L5C 信號、Galileo E1OS、E5a、E5b 信號;GLONASS G1、G2 信號.以上信號既包括傳統的二進制相移鍵控(BPSK)調制信號,也包括兼容互操作的二進制偏移副載波(BOC)調制信號和正交相移鍵控(QPSK)調制信號.
由表1 可知,現代導航接收機要處理的信號調制類型不同、信號帶寬不同、信號周期長度不同,因此在設計捕獲算法的時候要做到根據待捕獲信號的特點進行捕獲方式配置.

表1 信號參數
其中QPSK 和BOC 調制類型的信號包含數據支路與導頻支路,且兩個支路相互正交.
導航衛星發射的信號可以寫為

式中:i表示衛星號;X表示不同的信號頻點;j 是虛數單位;是信號實部,代表信號的數據支路;是信號的虛部,代表信號的導頻支路;表示正交和同相分量的發射功率;表示信號主碼;Di表示信號電文;表示信號輔碼,如B1C 的輔碼、L5C 的NH 碼等;sc表示信號子載波,僅在BOC調制時有效;f為信號頻率;θ 為信號初相.
導航信號接收首先經過射頻處理,圖1 給出一種典型的導航接收機射頻前端處理流程[2],依次分為射頻信號調整、下變頻混頻、中頻信號濾波放大、模數轉換幾個主要階段.

圖1 典型射頻前端處理流程
其中由天線接收到的衛星i的信號si(t)經過下變頻和模數轉換(ADC)得到數字中頻信號

式中:φ(n)為信號接收相位;分為數據支路和導頻支路的接收幅度,表示為:

經過射頻前端的處理,得到采樣后的數字中頻信號sIF(n).導航捕獲模塊將sIF(n)與本地載波數字控制振蕩器(NCO)產生的估計載波信號相乘以剝離載波,得到導航基帶信號;對基帶信號進行下變頻和降采樣等處理,將處理后的數據送入PMF-FFT 模塊,進行捕獲核心部分的處理.經過PMF-FFT 處理,完成待捕獲信號的碼相位和多普勒頻偏的估計值,完成捕獲檢測.圖2 為PMF-FFT 算法的捕獲流程[3].

圖2 PMF-FFT 的捕獲流程圖
每個PMF 濾波器長度為K個信號主碼碼片,M個PMF 濾波器相干積分結果進行M點FFT 運算,則每個匹配濾波器的相干積分時長為

捕獲使用的總相干積分時間為

式中,Rc為信號的主碼速率.
為延長積分時間,對FFT 的計算結果進行Nnc次的非相干累加,以延長總的積分時間,提高檢測概率,捕獲總積分時間為

其中每個相關器的輸出結果記為

相關器輸出向量的幅度Ar(m)和相位φe(m)可以寫作:

式中:D(m)表示電文,其值在相干積分時間之內保持不變,為±1;h(m)為信號輔碼,其值在捕獲相干積分之間之內保持不變,為±1;Rc(τ)為信號主碼的自相關函數.
FFT 的作用是將每個輸入的復信號r(m)在每個輸出頻率上循環,在M個不同的頻率上形成多普勒的并行相關搜索[4].第i個FFT 輸出頻率的表達式為

第i個FFT 輸出的頻率為

每個FFT 輸出頻率的功率相應為

FFT 結合相干組合匹配濾波器的相干損失為

所以當捕獲頻率在兩個FFT 頻點之間時引起的損耗為3.92 dB.圖3 為M=16 時的FFT 響應主瓣.

圖3 無補零FFT 的輸出主瓣響應
為了降低相關損耗,同時提高捕獲FFT 的頻率分辨率,實際工程應用中一般會進行補零操作.圖4為補零FFT 的響應圖.

圖4 補零FFT 的輸出主瓣響應
在相同匹配濾波器數量的條件下,補零FFT 運算點數是無補零的兩倍,需要在FFT 輸入端增加與匹配濾波器相同數量的零點.補零后FFT 輸出的頻率間隔是無補零的一半,提高了捕獲的多普勒分辨率;補零后的相干損耗由無補零的3.92 dB 下降到0.91 dB.補零雖然使FFT 運算點數加倍,但獲得了3 dB 的相干增益,在現代接收機中是非常有益的.
本文中為了適配多種信號的兼容捕獲處理,提供一種基于中頻信號預平均處理的變系數匹配濾波捕獲算法,圖5 為其捕獲結構框圖.

圖5 信號捕獲框圖
數據預處理主要完成數字中頻信號的下變頻、低通濾波、降采樣與預平均處理,圖6 為處理流程圖.

圖6 中頻信號預處理流程圖
其中抽取部分將中頻信號采樣率抽取為L倍信號主碼速率,其中L在信號主碼速率Rc不同時取值不同,如下式

式中:Rc為導航信號主碼速率;L的取值由捕獲控制軟件配置本地偽碼NCO 的步進值實現.
預平均處理操作過程如式(15)所示:

預平均處理之后,為了減少數據的存儲量,需要將中頻數據按照兩比特符號-幅值(sig-mag)進行量化

式中:L0為中頻數據平均長度,單位是采樣點,取值由捕獲控制控制;的重量化過程與一致.
預處理完成后,每個中頻數據采樣點包含了抽取后兩個中頻數據采樣點的信息,所以在相同積分時間的條件下,相關器的數量減少一半,節省了相關器資源;同時,因中頻數據存儲為2 bit sig-mag 形式,同4 bit 中頻量化相比,硬件資源消耗減少一半.
變系數匹配濾波器的簡化結果如圖7 所示,其相關器長度為K,濾波系數為待捕獲信號的主碼,初始值為全零,每一個時鐘變換其中一個系數,其他保持不變,每個時鐘輸入一個數據樣點,對應的輸出一個相關結果.分別與K個濾波系數相乘后,再與前一級緩存中的中間結果相加存入本級的緩存中,第K級的結果作為濾波器的輸出.

圖7 變系數匹配濾波器框圖
匹配濾波器開始工作后,第l時鐘時刻,第m個濾波器系數與主碼之間的關系時如下:

式中:cm,k(l)為第l時鐘時第m個濾波器的第k個系數;a(l)為待捕獲信號主碼;k的取值范圍是0~K–1;m的取值范圍是0~M–1;l的取值范圍Lc取決于當前捕獲的相干積分時間Ttotal、信號主碼速率Rc

對于B3I 信號,設置的變系數匹配濾波器長度K=320;濾波器數量M=64 ;FFT 為1 倍補零運算,點數MFFT=128 ;非相干累加次數Nnc=8;則存數的主碼長度Lc=173 910 碼片.
對于式(18),當M=2、K=3 時,每一時刻,濾波器系數的變化過程如下所示:

第l時鐘時刻,第m個變系數匹配濾波器輸出結果為

式中,l的取值范圍是l≥MK,當M個濾波器均有相關結果輸出時,啟動FFT 計算進行并行頻率計算.
匹配濾波器運算啟動后,每個時鐘進入一個數據和一個偽碼,依次完成相關運算,經過MK個時鐘后,M個濾波器完成單次匹配運算,結果暫存到轉置存儲器中,開始進行FFT 運算,單次運算搜索M個主碼相位,經過K次FFT 運算,完成所有主碼相位的搜索,同時啟動下一組匹配濾波運算.表2 給出了M=2、K=3 時的運算過程.

表2 M=2、K=3 時匹配濾波計算過程示意

式(21)給出了典型的M個K階匹配濾波器的輸出序列,每一列是同一個主碼相位的部分匹配相關結果,前后兩列結果之間相差一個主碼相位,每一行為一組,分別對應了K個不同的主碼與中頻數據之間的相位.
匹配濾波結果將會暫存到轉置存儲器中.轉置存儲器包含兩個RAM 模塊,與中頻數據緩存一一對應,形成捕獲過程中中頻搜索的乒乓操作.輸入存取器的時候按行存儲,從存儲器輸出的時候按列讀取,從而實現數據的轉置存儲.變系數匹配濾波器輸出的數據每M×K個為一幀,存儲完成后按每個碼相位對應的數據存儲地址讀取數據,送入FFT 頻率估計器.
FFT 頻率估計器對送入的一幀相關數據進行FFT 運算,并得到一幀結果的最大值.FFT 采用基2 流水線處理方式實現1 點輸入、1 點輸出的MFFT點FFT 運算,FFT 運算分多級完成.對于B3I 信號,采用的MFFT=128,FFT 運算分成七級.
最大值檢測模塊對FFT 模塊輸出的復數序列按照實部平方與虛部平方之和求得能量,然后得到其中的最大值,并計算出最大值對應的碼相位和頻率的索引值.
驗證模塊對最大值進行第二次驗證,根據最大值對應的碼相位計算出驗證模塊的起始時刻,根據頻率的索引值設置驗證模塊的本振頻率,將驗證后的結果與設定值進行比較,當二者的比值大于設定的門限值時,則捕獲成功.
為了提高多普勒分辨率,驗證模塊有3 路本振頻率,分別是最大值對應的頻率值、最大值對應的頻率值±100 Hz;用3 路本振頻率積分得到3 個積分值,取最大值作為驗證的相關結果Rveri,并將Rveri與設定捕獲閾值Rth進行比較,當Rveri≥Rth時,則捕獲成功,則轉入信號跟蹤階段,同時結束當前捕獲,繼續搜索下一顆衛星;若Rveri<Rth,則進行下一輪捕獲.一輪搜索完成個M碼相位,下一輪捕獲時,數據存儲器的地址在上一輪初始值的基礎上增加M,總共需要進行捕獲K輪搜索,如果搜索完所有的碼相位,仍沒有大于捕獲閾值Rth的相關搜索結果,則捕獲結束,繼續捕獲下一顆衛星.圖8 給出了完整的搜索控制流程.

圖8 捕獲實施流程圖
針對自有ASIC 原型驗證平臺實現本算法,核心器件為Xilinx Zynq UltraScale+的XCZU19EG,實現捕獲模塊資源消耗情況如表3 所示.

表3 捕獲模塊資源消耗
捕獲性能評價的主要依據是捕獲速度、捕獲成功率、捕獲多普勒誤差.其中捕獲速度測試量為發起捕獲指令到上報捕獲結束的時間;捕獲成功率測試量為捕獲結果轉入跟蹤的鎖定成功率;捕獲多普勒的測試結果為捕獲估計信號多普勒與信號在真實多普勒的差值.下面以真實信號實測結果來分析本文實現的捕獲算法性能.
測試時間為協調世界時(UTC)時間2021-05-01—05T08:00—20:00,選取BDS B1C、B1I、B2a、B2b、B3I,GPS L1CA、L5C,Galileo E1OS、E5a,GLONASS G1 等信號中衛星仰角高于30°的衛星進行測試,捕獲模塊工作時鐘頻率為124 MHz,分別測試其捕獲速度、捕獲成功率、捕獲多普勒準確性.表4 給出了各信號的捕獲參試配置.

表4 捕獲參數配置
表5 給出了各信號的捕性能統計結果,針對每個信號統計500 次捕獲結果.

表5 捕獲結果
從表5 可得,信號主碼信號的碼率Rc越高,其在單位相干積分時間內需要搜索的主碼相位越多,因而其捕獲搜索時間越長;同速率的信號單星最長捕獲時間受總的積分時間Ttotal影響,Ttotal越長捕獲耗時越長.
信號的主碼速率Rc越高,其捕獲成功率越低,因為搜索時刻在信號主碼相位上均勻分布,Rc越高,需要搜索的碼相位越多,導致搜索成功率越低.
信號捕獲多普勒范圍主要取決于捕獲使用的相關積分時間.由式(11)可以得到FFT 計算結果的輸出頻率,則FFT 輸出結果的頻率間隔為

式中,M為實際采用的FFT 點數.
則信號捕獲的多普勒誤差范圍為

捕獲多普勒誤差在 Δfd內均勻分布.實測多普勒誤差最大未超過上述理論多普勒范圍.
本文在基于PMF-FFT 算法的基礎上研究了四系統多頻點信號兼容捕獲實現,提出了基于預平均處理的部分匹配濾波器改進方法,原來的N點長度的數據樣點變為了2 組長度N/2 數據樣點,在相同的積分時間條件下,使匹配濾波器階數變為原來的一半,節省了一半的資源;中頻數據量化為2 bit sig-mag 形式,中頻數據緩存部分資源消耗減少50%;以最長捕獲時間20~42 ms 的每顆星的速度完成對真實信號捕獲,能夠通過軟件配置實現多種公開GNSS 信號的快速捕獲;捕獲結果多普勒誤差約為31.25~125 Hz,捕獲估計結果可以直接轉入信號跟蹤階段,并且轉跟蹤成功率優于97.6%.本文研究的預平均變系數匹配濾波器捕獲算法適用于兼容互操作型導航接收機,也適用于ASIC 芯片設計.