趙丙風(fēng),章林鋒,孫壽浩
(1.中國電子科技集團(tuán)公司第五十四研究所,石家莊 050081;2.32021 部隊(duì),北京 100094)
衛(wèi)星導(dǎo)航定位系統(tǒng)是以人造地球衛(wèi)星作為導(dǎo)航臺的星基無線電導(dǎo)航系統(tǒng),可以提供全天侯定位、測速和授時(shí)(PNT)服務(wù).目前全球衛(wèi)星導(dǎo)航系統(tǒng)(GNSS)主要包括北斗衛(wèi)星導(dǎo)航系統(tǒng)(BDS)、美國的全球定位系統(tǒng)(GPS)、歐盟的伽利略衛(wèi)星導(dǎo)航系統(tǒng)(Galileo)以及俄羅斯的格洛納斯系統(tǒng)(GLONASS),除此之外還包括日本的準(zhǔn)天頂衛(wèi)星系統(tǒng)(QZSS)和印度的區(qū)域?qū)Ш叫l(wèi)星系統(tǒng)(IRNSS)[1].導(dǎo)航信號的PNT 服務(wù)依賴信號穩(wěn)定跟蹤與電文解析,事實(shí)上,在實(shí)現(xiàn)衛(wèi)星導(dǎo)航信號跟蹤之前,首先要完成信號捕獲,其目的是為了獲取衛(wèi)星導(dǎo)航信號的載波頻率和偽碼相位的估計(jì)值[2].
典型的捕獲算法主要包括線性搜索、并行頻率搜索、并行碼相位搜索[2].線性搜索是利用相關(guān)器在時(shí)域內(nèi)對所指定衛(wèi)星信號的多普勒和碼相位進(jìn)行掃描式搜索,實(shí)現(xiàn)簡單、資源消耗低,但是捕獲速度慢,不適用于長碼捕獲;并行頻率搜索在串行搜索的基礎(chǔ)上,通過快速傅里葉變換(FFT)將信號載波搜索由時(shí)域轉(zhuǎn)換到頻域進(jìn)行,由串行搜索轉(zhuǎn)換為并行搜索,通過增加資源的方式加快了搜索速度;并行碼相位搜索類似于并行頻率搜索,通過FFT 方式將串行碼相位搜索轉(zhuǎn)化并行搜索,降低搜索次數(shù),提高捕獲速度.
近年來,隨著導(dǎo)航接收機(jī)硬件平臺的快速發(fā)展,目前導(dǎo)航接收機(jī)多采用資源豐富的現(xiàn)場可編程門陣列(FPGA)、數(shù)字信號處理器(DSP)等作為核心器件開發(fā),資源不再是接收機(jī)捕獲性能的主要限制條件,更多的研究致力于提高導(dǎo)航信號的捕獲速度、捕獲靈敏度等方面.其中研究較多的是部分匹配濾波+快速傅里葉變換(PMF-FFT)捕獲方法[3-4].PMF-FFT 算法是一種基于頻率并行搜索的快捕算法,在對載波頻率進(jìn)行搜索的同時(shí)還對碼相位進(jìn)行搜索,縮短了捕獲時(shí)間,非常適合在捕獲時(shí)間要求嚴(yán)格的高動態(tài)環(huán)境中使用.但PMF-FFT 算法也存在資源消耗大、積分長度受限、捕獲多普勒分辨率低等問題,文獻(xiàn)[5-10]從不同的角度對PMF-FFT 算法提出性能改進(jìn)措施.
針對PMF-FFT 算法存在的問題,本文提出一種基于預(yù)平均處理的變系數(shù)匹配濾波改進(jìn)方法,克服了傳統(tǒng)匹配濾波器硬件消耗資源較多的問題,同時(shí)解決傳統(tǒng)信號捕獲方法得到的多普勒分辨率低,轉(zhuǎn)跟蹤后牽引時(shí)間較長的問題,并針對現(xiàn)有四系統(tǒng)兼容信號實(shí)現(xiàn)捕獲算法,通過靈活可配置的捕獲參數(shù)實(shí)現(xiàn)現(xiàn)代多模多頻導(dǎo)航信號的高靈敏度快速捕獲,將該算法成功應(yīng)用到專用集成電路(ASIC)項(xiàng)目設(shè)計(jì)當(dāng)中.
多頻多模是現(xiàn)代化導(dǎo)航接收機(jī)的主流發(fā)展方向,隨著四大導(dǎo)航系統(tǒng)的建設(shè)完善,尤其是隨著BDS 的建設(shè)與開通,兼容互操作將是提供高性能導(dǎo)航服務(wù)的重要途徑.本文研究信號類型包括了北斗B1I、B1C、B2a、B2b、B3I 信號;GPS L1C/A、L1C、L5C 信號、Galileo E1OS、E5a、E5b 信號;GLONASS G1、G2 信號.以上信號既包括傳統(tǒng)的二進(jìn)制相移鍵控(BPSK)調(diào)制信號,也包括兼容互操作的二進(jìn)制偏移副載波(BOC)調(diào)制信號和正交相移鍵控(QPSK)調(diào)制信號.
由表1 可知,現(xiàn)代導(dǎo)航接收機(jī)要處理的信號調(diào)制類型不同、信號帶寬不同、信號周期長度不同,因此在設(shè)計(jì)捕獲算法的時(shí)候要做到根據(jù)待捕獲信號的特點(diǎn)進(jìn)行捕獲方式配置.
表1 信號參數(shù)
其中QPSK 和BOC 調(diào)制類型的信號包含數(shù)據(jù)支路與導(dǎo)頻支路,且兩個(gè)支路相互正交.
導(dǎo)航衛(wèi)星發(fā)射的信號可以寫為
式中:i表示衛(wèi)星號;X表示不同的信號頻點(diǎn);j 是虛數(shù)單位;是信號實(shí)部,代表信號的數(shù)據(jù)支路;是信號的虛部,代表信號的導(dǎo)頻支路;表示正交和同相分量的發(fā)射功率;表示信號主碼;Di表示信號電文;表示信號輔碼,如B1C 的輔碼、L5C 的NH 碼等;sc表示信號子載波,僅在BOC調(diào)制時(shí)有效;f為信號頻率;θ 為信號初相.
導(dǎo)航信號接收首先經(jīng)過射頻處理,圖1 給出一種典型的導(dǎo)航接收機(jī)射頻前端處理流程[2],依次分為射頻信號調(diào)整、下變頻混頻、中頻信號濾波放大、模數(shù)轉(zhuǎn)換幾個(gè)主要階段.
圖1 典型射頻前端處理流程
其中由天線接收到的衛(wèi)星i的信號si(t)經(jīng)過下變頻和模數(shù)轉(zhuǎn)換(ADC)得到數(shù)字中頻信號
式中:φ(n)為信號接收相位;分為數(shù)據(jù)支路和導(dǎo)頻支路的接收幅度,表示為:
經(jīng)過射頻前端的處理,得到采樣后的數(shù)字中頻信號sIF(n).導(dǎo)航捕獲模塊將sIF(n)與本地載波數(shù)字控制振蕩器(NCO)產(chǎn)生的估計(jì)載波信號相乘以剝離載波,得到導(dǎo)航基帶信號;對基帶信號進(jìn)行下變頻和降采樣等處理,將處理后的數(shù)據(jù)送入PMF-FFT 模塊,進(jìn)行捕獲核心部分的處理.經(jīng)過PMF-FFT 處理,完成待捕獲信號的碼相位和多普勒頻偏的估計(jì)值,完成捕獲檢測.圖2 為PMF-FFT 算法的捕獲流程[3].
圖2 PMF-FFT 的捕獲流程圖
每個(gè)PMF 濾波器長度為K個(gè)信號主碼碼片,M個(gè)PMF 濾波器相干積分結(jié)果進(jìn)行M點(diǎn)FFT 運(yùn)算,則每個(gè)匹配濾波器的相干積分時(shí)長為
捕獲使用的總相干積分時(shí)間為
式中,Rc為信號的主碼速率.
為延長積分時(shí)間,對FFT 的計(jì)算結(jié)果進(jìn)行Nnc次的非相干累加,以延長總的積分時(shí)間,提高檢測概率,捕獲總積分時(shí)間為
其中每個(gè)相關(guān)器的輸出結(jié)果記為
相關(guān)器輸出向量的幅度Ar(m)和相位φe(m)可以寫作:
式中:D(m)表示電文,其值在相干積分時(shí)間之內(nèi)保持不變,為±1;h(m)為信號輔碼,其值在捕獲相干積分之間之內(nèi)保持不變,為±1;Rc(τ)為信號主碼的自相關(guān)函數(shù).
FFT 的作用是將每個(gè)輸入的復(fù)信號r(m)在每個(gè)輸出頻率上循環(huán),在M個(gè)不同的頻率上形成多普勒的并行相關(guān)搜索[4].第i個(gè)FFT 輸出頻率的表達(dá)式為
第i個(gè)FFT 輸出的頻率為
每個(gè)FFT 輸出頻率的功率相應(yīng)為
FFT 結(jié)合相干組合匹配濾波器的相干損失為
所以當(dāng)捕獲頻率在兩個(gè)FFT 頻點(diǎn)之間時(shí)引起的損耗為3.92 dB.圖3 為M=16 時(shí)的FFT 響應(yīng)主瓣.
圖3 無補(bǔ)零FFT 的輸出主瓣響應(yīng)
為了降低相關(guān)損耗,同時(shí)提高捕獲FFT 的頻率分辨率,實(shí)際工程應(yīng)用中一般會進(jìn)行補(bǔ)零操作.圖4為補(bǔ)零FFT 的響應(yīng)圖.
圖4 補(bǔ)零FFT 的輸出主瓣響應(yīng)
在相同匹配濾波器數(shù)量的條件下,補(bǔ)零FFT 運(yùn)算點(diǎn)數(shù)是無補(bǔ)零的兩倍,需要在FFT 輸入端增加與匹配濾波器相同數(shù)量的零點(diǎn).補(bǔ)零后FFT 輸出的頻率間隔是無補(bǔ)零的一半,提高了捕獲的多普勒分辨率;補(bǔ)零后的相干損耗由無補(bǔ)零的3.92 dB 下降到0.91 dB.補(bǔ)零雖然使FFT 運(yùn)算點(diǎn)數(shù)加倍,但獲得了3 dB 的相干增益,在現(xiàn)代接收機(jī)中是非常有益的.
本文中為了適配多種信號的兼容捕獲處理,提供一種基于中頻信號預(yù)平均處理的變系數(shù)匹配濾波捕獲算法,圖5 為其捕獲結(jié)構(gòu)框圖.
圖5 信號捕獲框圖
數(shù)據(jù)預(yù)處理主要完成數(shù)字中頻信號的下變頻、低通濾波、降采樣與預(yù)平均處理,圖6 為處理流程圖.
圖6 中頻信號預(yù)處理流程圖
其中抽取部分將中頻信號采樣率抽取為L倍信號主碼速率,其中L在信號主碼速率Rc不同時(shí)取值不同,如下式
式中:Rc為導(dǎo)航信號主碼速率;L的取值由捕獲控制軟件配置本地偽碼NCO 的步進(jìn)值實(shí)現(xiàn).
預(yù)平均處理操作過程如式(15)所示:
預(yù)平均處理之后,為了減少數(shù)據(jù)的存儲量,需要將中頻數(shù)據(jù)按照兩比特符號-幅值(sig-mag)進(jìn)行量化
式中:L0為中頻數(shù)據(jù)平均長度,單位是采樣點(diǎn),取值由捕獲控制控制;的重量化過程與一致.
預(yù)處理完成后,每個(gè)中頻數(shù)據(jù)采樣點(diǎn)包含了抽取后兩個(gè)中頻數(shù)據(jù)采樣點(diǎn)的信息,所以在相同積分時(shí)間的條件下,相關(guān)器的數(shù)量減少一半,節(jié)省了相關(guān)器資源;同時(shí),因中頻數(shù)據(jù)存儲為2 bit sig-mag 形式,同4 bit 中頻量化相比,硬件資源消耗減少一半.
變系數(shù)匹配濾波器的簡化結(jié)果如圖7 所示,其相關(guān)器長度為K,濾波系數(shù)為待捕獲信號的主碼,初始值為全零,每一個(gè)時(shí)鐘變換其中一個(gè)系數(shù),其他保持不變,每個(gè)時(shí)鐘輸入一個(gè)數(shù)據(jù)樣點(diǎn),對應(yīng)的輸出一個(gè)相關(guān)結(jié)果.分別與K個(gè)濾波系數(shù)相乘后,再與前一級緩存中的中間結(jié)果相加存入本級的緩存中,第K級的結(jié)果作為濾波器的輸出.
圖7 變系數(shù)匹配濾波器框圖
匹配濾波器開始工作后,第l時(shí)鐘時(shí)刻,第m個(gè)濾波器系數(shù)與主碼之間的關(guān)系時(shí)如下:
式中:cm,k(l)為第l時(shí)鐘時(shí)第m個(gè)濾波器的第k個(gè)系數(shù);a(l)為待捕獲信號主碼;k的取值范圍是0~K–1;m的取值范圍是0~M–1;l的取值范圍Lc取決于當(dāng)前捕獲的相干積分時(shí)間Ttotal、信號主碼速率Rc
對于B3I 信號,設(shè)置的變系數(shù)匹配濾波器長度K=320;濾波器數(shù)量M=64 ;FFT 為1 倍補(bǔ)零運(yùn)算,點(diǎn)數(shù)MFFT=128 ;非相干累加次數(shù)Nnc=8;則存數(shù)的主碼長度Lc=173 910 碼片.
對于式(18),當(dāng)M=2、K=3 時(shí),每一時(shí)刻,濾波器系數(shù)的變化過程如下所示:
第l時(shí)鐘時(shí)刻,第m個(gè)變系數(shù)匹配濾波器輸出結(jié)果為
式中,l的取值范圍是l≥MK,當(dāng)M個(gè)濾波器均有相關(guān)結(jié)果輸出時(shí),啟動FFT 計(jì)算進(jìn)行并行頻率計(jì)算.
匹配濾波器運(yùn)算啟動后,每個(gè)時(shí)鐘進(jìn)入一個(gè)數(shù)據(jù)和一個(gè)偽碼,依次完成相關(guān)運(yùn)算,經(jīng)過MK個(gè)時(shí)鐘后,M個(gè)濾波器完成單次匹配運(yùn)算,結(jié)果暫存到轉(zhuǎn)置存儲器中,開始進(jìn)行FFT 運(yùn)算,單次運(yùn)算搜索M個(gè)主碼相位,經(jīng)過K次FFT 運(yùn)算,完成所有主碼相位的搜索,同時(shí)啟動下一組匹配濾波運(yùn)算.表2 給出了M=2、K=3 時(shí)的運(yùn)算過程.
表2 M=2、K=3 時(shí)匹配濾波計(jì)算過程示意
式(21)給出了典型的M個(gè)K階匹配濾波器的輸出序列,每一列是同一個(gè)主碼相位的部分匹配相關(guān)結(jié)果,前后兩列結(jié)果之間相差一個(gè)主碼相位,每一行為一組,分別對應(yīng)了K個(gè)不同的主碼與中頻數(shù)據(jù)之間的相位.
匹配濾波結(jié)果將會暫存到轉(zhuǎn)置存儲器中.轉(zhuǎn)置存儲器包含兩個(gè)RAM 模塊,與中頻數(shù)據(jù)緩存一一對應(yīng),形成捕獲過程中中頻搜索的乒乓操作.輸入存取器的時(shí)候按行存儲,從存儲器輸出的時(shí)候按列讀取,從而實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)置存儲.變系數(shù)匹配濾波器輸出的數(shù)據(jù)每M×K個(gè)為一幀,存儲完成后按每個(gè)碼相位對應(yīng)的數(shù)據(jù)存儲地址讀取數(shù)據(jù),送入FFT 頻率估計(jì)器.
FFT 頻率估計(jì)器對送入的一幀相關(guān)數(shù)據(jù)進(jìn)行FFT 運(yùn)算,并得到一幀結(jié)果的最大值.FFT 采用基2 流水線處理方式實(shí)現(xiàn)1 點(diǎn)輸入、1 點(diǎn)輸出的MFFT點(diǎn)FFT 運(yùn)算,F(xiàn)FT 運(yùn)算分多級完成.對于B3I 信號,采用的MFFT=128,F(xiàn)FT 運(yùn)算分成七級.
最大值檢測模塊對FFT 模塊輸出的復(fù)數(shù)序列按照實(shí)部平方與虛部平方之和求得能量,然后得到其中的最大值,并計(jì)算出最大值對應(yīng)的碼相位和頻率的索引值.
驗(yàn)證模塊對最大值進(jìn)行第二次驗(yàn)證,根據(jù)最大值對應(yīng)的碼相位計(jì)算出驗(yàn)證模塊的起始時(shí)刻,根據(jù)頻率的索引值設(shè)置驗(yàn)證模塊的本振頻率,將驗(yàn)證后的結(jié)果與設(shè)定值進(jìn)行比較,當(dāng)二者的比值大于設(shè)定的門限值時(shí),則捕獲成功.
為了提高多普勒分辨率,驗(yàn)證模塊有3 路本振頻率,分別是最大值對應(yīng)的頻率值、最大值對應(yīng)的頻率值±100 Hz;用3 路本振頻率積分得到3 個(gè)積分值,取最大值作為驗(yàn)證的相關(guān)結(jié)果Rveri,并將Rveri與設(shè)定捕獲閾值Rth進(jìn)行比較,當(dāng)Rveri≥Rth時(shí),則捕獲成功,則轉(zhuǎn)入信號跟蹤階段,同時(shí)結(jié)束當(dāng)前捕獲,繼續(xù)搜索下一顆衛(wèi)星;若Rveri<Rth,則進(jìn)行下一輪捕獲.一輪搜索完成個(gè)M碼相位,下一輪捕獲時(shí),數(shù)據(jù)存儲器的地址在上一輪初始值的基礎(chǔ)上增加M,總共需要進(jìn)行捕獲K輪搜索,如果搜索完所有的碼相位,仍沒有大于捕獲閾值Rth的相關(guān)搜索結(jié)果,則捕獲結(jié)束,繼續(xù)捕獲下一顆衛(wèi)星.圖8 給出了完整的搜索控制流程.
圖8 捕獲實(shí)施流程圖
針對自有ASIC 原型驗(yàn)證平臺實(shí)現(xiàn)本算法,核心器件為Xilinx Zynq UltraScale+的XCZU19EG,實(shí)現(xiàn)捕獲模塊資源消耗情況如表3 所示.
表3 捕獲模塊資源消耗
捕獲性能評價(jià)的主要依據(jù)是捕獲速度、捕獲成功率、捕獲多普勒誤差.其中捕獲速度測試量為發(fā)起捕獲指令到上報(bào)捕獲結(jié)束的時(shí)間;捕獲成功率測試量為捕獲結(jié)果轉(zhuǎn)入跟蹤的鎖定成功率;捕獲多普勒的測試結(jié)果為捕獲估計(jì)信號多普勒與信號在真實(shí)多普勒的差值.下面以真實(shí)信號實(shí)測結(jié)果來分析本文實(shí)現(xiàn)的捕獲算法性能.
測試時(shí)間為協(xié)調(diào)世界時(shí)(UTC)時(shí)間2021-05-01—05T08:00—20:00,選取BDS B1C、B1I、B2a、B2b、B3I,GPS L1CA、L5C,Galileo E1OS、E5a,GLONASS G1 等信號中衛(wèi)星仰角高于30°的衛(wèi)星進(jìn)行測試,捕獲模塊工作時(shí)鐘頻率為124 MHz,分別測試其捕獲速度、捕獲成功率、捕獲多普勒準(zhǔn)確性.表4 給出了各信號的捕獲參試配置.
表4 捕獲參數(shù)配置
表5 給出了各信號的捕性能統(tǒng)計(jì)結(jié)果,針對每個(gè)信號統(tǒng)計(jì)500 次捕獲結(jié)果.
表5 捕獲結(jié)果
從表5 可得,信號主碼信號的碼率Rc越高,其在單位相干積分時(shí)間內(nèi)需要搜索的主碼相位越多,因而其捕獲搜索時(shí)間越長;同速率的信號單星最長捕獲時(shí)間受總的積分時(shí)間Ttotal影響,Ttotal越長捕獲耗時(shí)越長.
信號的主碼速率Rc越高,其捕獲成功率越低,因?yàn)樗阉鲿r(shí)刻在信號主碼相位上均勻分布,Rc越高,需要搜索的碼相位越多,導(dǎo)致搜索成功率越低.
信號捕獲多普勒范圍主要取決于捕獲使用的相關(guān)積分時(shí)間.由式(11)可以得到FFT 計(jì)算結(jié)果的輸出頻率,則FFT 輸出結(jié)果的頻率間隔為
式中,M為實(shí)際采用的FFT 點(diǎn)數(shù).
則信號捕獲的多普勒誤差范圍為
捕獲多普勒誤差在 Δfd內(nèi)均勻分布.實(shí)測多普勒誤差最大未超過上述理論多普勒范圍.
本文在基于PMF-FFT 算法的基礎(chǔ)上研究了四系統(tǒng)多頻點(diǎn)信號兼容捕獲實(shí)現(xiàn),提出了基于預(yù)平均處理的部分匹配濾波器改進(jìn)方法,原來的N點(diǎn)長度的數(shù)據(jù)樣點(diǎn)變?yōu)榱? 組長度N/2 數(shù)據(jù)樣點(diǎn),在相同的積分時(shí)間條件下,使匹配濾波器階數(shù)變?yōu)樵瓉淼囊话耄?jié)省了一半的資源;中頻數(shù)據(jù)量化為2 bit sig-mag 形式,中頻數(shù)據(jù)緩存部分資源消耗減少50%;以最長捕獲時(shí)間20~42 ms 的每顆星的速度完成對真實(shí)信號捕獲,能夠通過軟件配置實(shí)現(xiàn)多種公開GNSS 信號的快速捕獲;捕獲結(jié)果多普勒誤差約為31.25~125 Hz,捕獲估計(jì)結(jié)果可以直接轉(zhuǎn)入信號跟蹤階段,并且轉(zhuǎn)跟蹤成功率優(yōu)于97.6%.本文研究的預(yù)平均變系數(shù)匹配濾波器捕獲算法適用于兼容互操作型導(dǎo)航接收機(jī),也適用于ASIC 芯片設(shè)計(jì).