期刊VIP學術指導 符合學術規范和道德
保障品質 保證專業,沒有后顧之憂
摘 要: 為了對采用BOC調制的B1C導航信號進行捕獲,提出了基于PCO+FFT的導航信號捕獲算法。首先,在深入分析B1C信號特點的基礎上,對分段長度和FFT點數進行選擇;其次,從相干積分增益、非相關積分增益、多普勒測頻范圍與測頻分辨率、檢測概率等幾個方面對該算法進行了深入地推導;再次,給出基于新算法的FPGA實現方案;最后,通過仿真驗證算法的有效性。在FPGA硬件平臺上進行實測的結果顯示了方案的正確性。將副載波剝離的方式以及基于狀態機的控制核心的實現思路可為導航信號捕獲算法的改進提供參考。
關鍵詞: 無線通信技術;B1C信號;PCO;FFT;捕獲;性能分析;算法實現
B1C信號屬于北斗衛星導航系統(BeiDou navigation satellite system,BDS)中的北斗三號衛星導航信號。2017年末,中國衛星導航系統辦公室發布了B1C信號的空間接口文件。2020-06-23,最后一個北斗衛星發射成功并且組網完成,標志著北斗三號全球衛星導航系統星座部署全面完成。
與之前的北斗二號不同的是,B1C屬于新體制信號,采用二進制偏移載波(binary offset carrier, BOC)類型信號,且包含數據分量和導頻分量2個部分。其中,數據分量采用BOC(1,1)調制方式,導頻分量采用正交復用二進制偏移載波(quadrature complexed BOC, QMBOC)調制方式,二者的功率比為1∶3。由于BOC/MBOC類信號的特性,使得導航信號的功率譜密度存在多個主瓣和旁瓣,且偽碼的自相關函數存在副峰,這會給信號的捕獲帶來模糊性問題[1]。
文獻[2]提出用3路并行相關器的捕獲算法消除BOC調制的副峰問題,可以消除BOC調制引起的副峰情況,但是需要額外的相關器,不利于硬件實現。文獻[3]提出了構建輔助函數對相關結果進行處理最后消除自相關副峰的捕獲算法,但是需要對碼相位和多普勒進行二位搜索,增加了捕獲時間。文獻[4]通過濾波器對信號的某一頻譜邊帶進行濾除以達到消自相關副峰的目的,不僅額外增加了硬件開銷,而且由于濾除邊帶導致失去了BOC類調制的自相關峰更尖銳的優勢。因此,設計恰當的捕獲算法具有很重要的意義和使用價值。
由于B1C信號的數據分量功率占比較小,且考慮到民用接收機對于性能的要求,本文提出了一種采用分段相關(piecewise correlation operation, PCO)結合快速傅里葉變換(fast Fourier transform, FFT)測頻相結合的捕獲算法,僅對導頻分量進行捕獲[5]。本算法在頻率方面采用并行搜索的方式,很大程度上縮短了對同一碼相位不同頻率的搜索時間;對副載波進行4路剝離的方式消除了副載波帶來的捕獲模糊性問題;采用固定時間相干積分與不同次數的非相干積分相結合的方法,對低信噪比環境下信號的捕獲有著良好的適應能力[6]。
本文從算法的原理出發,首先對其分段段數、FFT點數的選擇以及非相干積分次數等重要參數的設定進行詳細論述;其次給出基于FPGA的硬件實現方案,并對本算法的性能進行仿真;然后將本文算法同目前經典的BPSK-LIKE和ASPeCT算法進行對比;最后對硬件實現的結果進行驗證[7]。
1 算法原理
1.1 算法描述
從射頻前端傳送來的B1C中頻信號可表示為
s(t)=A·(12DB1C_data(t)·CB1C_data(t)·sign(sin(2πfsc_B1C_at))+ 111CB1C_pilot(t)·
sign(sin(2πfsc_B1C_bt))+j2944
CB1C_pilot(t)·sign(sin(2πfsc_B1C_at)))·
cos(fIF+fd)+n(t),
式中:A為振幅;D(t)為數據碼,僅在數據分量播發;C(t)為衛星播發的偽碼,導頻分量和數據分量偽碼不同;sign(sin(2πfsc_B1Ct))為不同頻率分量的副載波;fsc_B1C_a為1.023 MHz;fsc_B1C_b為6.138 MHz;fIF為中頻信號頻率;fd為多普勒頻移;n(t)為噪聲[8]。
針對B1C信號的特點,設計了基于PCO+FFT的捕獲算法,算法原理框圖如圖1所示。其基本原理是將來自射頻前端的數字中頻信號經過本地載波信號混頻并略去高頻分量,得到零中頻信號。將1個碼周期內信號點數P(B1C信號,1個主碼周期10 ms,P=10 230,為實現分段整除補0為10 240點)分為K段,每段L點。將K段數據每次位移1個數據點,然后逐段與本地碼分段做相關運算,可得到某個特定搜索相位下的K個相關值,將K個相關值進行補0至N點的FFT運算。選擇FFT處理輸出中幅值最大的峰值與預設的門限進行比較,最終得到多普勒頻移及偽碼相位的估計值。
其中,分段相關運算,即將整周期的本地偽碼和導航信號均進行平均劃分成段,并對每段進行相關運算,其效果等同于對信號進行了部分匹配濾波(partial matched filtering,PMF)。若此時的偽隨機碼和輸入信號的偽碼同相位,則它們在模二運算之后就只有殘留的多普勒頻偏及副載波[9]。
由于分段的概念等同于對信號進行采樣,所以此時的運算結果包含頻率信息。當得到分段相關的結果后,對結果做FFT運算進行頻譜分析,可以獲得輸入信號的多普勒頻移值fd。因此1次循環運算,就可以得到碼相位和多普勒頻移,很大程度上減少了捕獲所需要的時間,提高了捕獲效率。
副載波是sign函數,剝離載波后,殘留的副載波會導致捕獲峰值模糊度出現問題。由BOC信號的自相關函數可知,只有當本地副載波與導航信號副載波對齊才能產生最大的相關峰。由于信號的碼相位具體情況未知,本算法采用4路并行操作的方法,在數據降速時,將降速的數據分成4路輸出,分別對應于各相差90°的副載波,實現了在對數據進行降采樣的同時也剝離了副載波,方法如圖2所示。
1.2 分段長度與FFT點數的選擇
因為B1C信號的主碼速率為1.023 MHz,碼周期長P=10 230(10 ms),在1個主碼周期內,數據位不發生跳變,故可設置最長的相干積分時間為10 ms。為工程實現方便,將10 ms內數據10 230點補0為10 240點。設分段的段數為K,每段數據長度L,則有P=KL,FFT點數M取與L最靠近的2的整數次冪。表1給出了不同分段參數下多普勒估計范圍和多普勒測頻分辨率的對應表。不同的分段數和段內點數對多普勒頻偏估計的影響不同[10],基本上分段數K越大,其多普勒頻偏的估計范圍也越大,但同時需要的FFT點數也越多,這是對實現不利的方面。綜合考慮指標要求,當采用K=64,L=160,M=256時,從多普勒頻偏測量指標及工程實現的資源占用情況看,既能滿足民用接收機對動態的要求,同時實現的代價又可以接受[11]。
本算法的運算量主要集中在相關運算和FFT運算。
OM=(P2+M2 logM2·P)·N,
OA=(P2+M logM2·P)·N,
式中:OM為乘法運算量;OA為加法運算量;P為總點數;M為FFT點數;N為非相干積分次數。
1.3相干積分增益與非相干積分增益計算
相干積分是提高信號信噪比的關鍵所在,要盡可能地增加相干積分時間Tcoh以獲得信噪比增益[12]。根據B1C碼的周期特性,最合理的相干積分時間Tcoh應為其主碼周期10 ms。在信號進入相關器之前,信噪比為SNRpd,B1C信號射頻前端的噪聲帶寬Bpd一般選為4.096 MHz,由于噪聲是寬帶信號且相干積分器的濾波帶寬為1/Tcoh,因此信號經過相關器后噪聲帶寬從Bpd下降到1/Tcoh。由于有用信號功率不變,噪聲功率降低,使得經過相干積分器后信號信噪比增加,其增值為
Gcoh=10 lgBpd1/Tcoh=10 lg4.092×106100=46.1 dB。
將分段相關的結果進行補0做256點FFT之后,經過多次平方得到信號的相關檢測值V2,其實質是對信號進行多次非相干積分[13]。設計中主要通過增加非相干積分次數以增加B1C信號的信噪比。假定非相干積分次數為N,其獲得的增益為
GNC=10 lg N。
非相干積分存在一定的平方損耗[14],N次非相干積分的損耗LSQ(N)為
LSQ(N)=10 lg 1+1+9.2N/Ds(1)1+1+9.2/Ds(1) dB,
式中Ds(1)表示1次非相干積分的損耗。從而可得非相干積分增益Gnc為
Gnc=GNC-LSQ。
推薦閱讀;物流信息化論文投稿期刊