王奕新,左啟耀,李 峰
(北京自動(dòng)化控制設(shè)備研究所,北京 100074)
基于FPGA的BOC(1,1)信號(hào)捕獲技術(shù)
王奕新,左啟耀,李 峰
(北京自動(dòng)化控制設(shè)備研究所,北京 100074)
BOC調(diào)制是新一代衛(wèi)星導(dǎo)航系統(tǒng)中廣泛采用的調(diào)制方式,在時(shí)域上具有多峰值特性,副峰的存在增加了捕獲的難度。采用自相關(guān)副峰消除技術(shù)(ASPeCT)在原有的BOC碼相關(guān)支路的基礎(chǔ)上增加一條偽碼相關(guān)支路,可以有效削弱碼相位檢測(cè)函數(shù)的副峰,避免誤捕獲,是一種性能良好的BOC信號(hào)捕獲技術(shù)。提出一種采用二維并行快速搜索的在FPGA芯片中實(shí)現(xiàn)ASPeCT捕獲技術(shù)的方案,可以顯著縮短捕獲時(shí)間。在理論分析和仿真驗(yàn)證的基礎(chǔ)上,采用Verilog硬件描述語言在接收機(jī)FPGA+DSP平臺(tái)上編程實(shí)現(xiàn),在露天測(cè)試中,成功捕獲到Galileo E1B衛(wèi)星導(dǎo)航信號(hào),并對(duì)ChipScope采集的數(shù)字中頻信號(hào)的多普勒頻率和碼相位靜態(tài)捕獲結(jié)果進(jìn)行驗(yàn)證,與同一段信號(hào)的Matlab仿真結(jié)果一致,證明所提出的技術(shù)方案正確合理可行。
BOC調(diào)制;ASPeCT技術(shù);信號(hào)捕獲;FPGA
隨著衛(wèi)星導(dǎo)航技術(shù)的發(fā)展,傳統(tǒng)的BPSK調(diào)制信號(hào)在提高定位精度上遭遇瓶頸,因此,新一代衛(wèi)星導(dǎo)航系統(tǒng)計(jì)劃采用BOC調(diào)制方式[1]。BOC調(diào)制相較于BPSK調(diào)制,增加了一個(gè)副載波調(diào)制環(huán)節(jié),將原有的基帶信號(hào)頻譜分別向左右兩側(cè)搬移。BOC調(diào)制不僅提高了頻段的復(fù)用性,而且信號(hào)的自相關(guān)函數(shù)峰值相較于BPSK信號(hào)更加尖銳,有利于提高偽距測(cè)量精度[2];但是自相關(guān)函數(shù)的多峰值特性[3]也增加了信號(hào)捕獲的復(fù)雜性,尤其是存在噪聲和干擾的情況下,容易造成誤捕獲,給接收機(jī)捕獲算法設(shè)計(jì)帶來難度。
BOC信號(hào)捕獲技術(shù)的研究重點(diǎn)是如何正確識(shí)別主峰值,BPSK-Like捕獲算法[4]只捕獲頻譜中一個(gè)邊帶,適合高信噪比信號(hào)捕獲;SCC捕獲算法[5]、三路并行相關(guān)捕獲算法[6]、Filtered捕獲算法[7]和ASPeCT算法[8]都是通過增加額外的相關(guān)支路來確定主峰,由于2個(gè)頻譜邊帶都參與運(yùn)算,所以低信噪比信號(hào)也有很好的處理效果。本文提出一種基于二維并行快速搜索的ASPeCT捕獲技術(shù)實(shí)現(xiàn)方案,并在FPGA芯片中完成了方案的軟件設(shè)計(jì),以及實(shí)際信號(hào)的捕獲測(cè)試。
通過多普勒頻率和碼相位的二維搜索實(shí)現(xiàn)捕獲。如果每次只搜索一個(gè)單元,對(duì)于偽碼周期長度為4ms的BOC(1,1)調(diào)制信號(hào),完成128×8184個(gè)單元的搜索大約需要1h,難以在FPGA上實(shí)現(xiàn)。因此,本文提出了ASPeCT算法的二維并行快速搜索實(shí)現(xiàn)方案,在多普勒頻率一維,通過傅里葉變換一次完成128個(gè)頻率的搜索;在碼相位一維,通過100路并行相關(guān)器一次搜索100個(gè)碼相位,將搜索次數(shù)由128×8184降為82,最小捕獲時(shí)間降為328ms。算法原理圖如圖1所示。
圖1 基于二維并行快速搜索的ASPeCT捕獲算法原理圖Fig.1 The schematic diagram of ASPeCT acquisition algorithm based on 2-D parallel fast search
以圖1中最下方一對(duì)相關(guān)支路為例,它可以完成一個(gè)碼相位上全部頻率搜索單元的搜索,將輸入的BOC(1,1)數(shù)字中頻信號(hào)表示為[9]
(1)
其中,c(t)和χ(t)分別表示信號(hào)中的調(diào)制偽碼和調(diào)制副載波,τi(t)表示傳播相位時(shí)延,θi(t)是載波相位。
對(duì)于BOC碼相關(guān)支路,中頻輸入信號(hào)先與本地載波混頻,再與本地BOC碼做相關(guān)運(yùn)算,結(jié)果可表示為w1(t) = 2c(t-τi(t))c(t-τo(t))χ(t-τi(t))
χ(t-τo(t))·cosθi(t)(cosθo(t)+jsinθo(t))
=c(t-τi(t))c(t-τo(t))χ(t-τi(t))
χ(t-τo(t))·((cosθe(t)-cos(θi(t)+
θo(t)))+j(sinθe(t)+sin(θi(t)+θo(t))))
(2)
其中,θe(t)=θi(t)-θo(t)。再經(jīng)過時(shí)間為T的積分,對(duì)積分結(jié)果采樣得到
(cosφe(nT)+jsinφe(nT))
(3)
RBOC/BOC(τ)為BOC碼自相關(guān)函數(shù),τe(t)=τi(t)-τo(t),ωe(t)=ωi(t)-ωo(t),ωi(t)和ωo(t)分別為信號(hào)載波和本地載波角頻率,φe(t)表示信號(hào)載波和本地載波的相位差均值。RBOC/BOC(τ)的表達(dá)式為
χ(t-τi(t))χ(t-τo(t)))dt
(4)
(5)
故經(jīng)過歸一化FFT的結(jié)果可表示為
(cosφe+jsinφe)L(ωe,k)
(6)
對(duì)S1(k)取模平方,得到式(7)。
(7)
偽碼相關(guān)支路有類似結(jié)果
(8)
其中,RBOC/PRN(τ)為BOC碼與偽碼的互相關(guān)函數(shù),RBOC/PRN(τ)的表達(dá)式為
χ(t-τi(t)))dt
(9)
將V1與V2相減,得到
(10)
在預(yù)設(shè)BOC(1,1)中頻信號(hào)載噪比為45dB·Hz、碼相位延遲為1000碼片的條件下,BOC碼相關(guān)支路輸出的取模平方結(jié)果V1、偽碼相關(guān)支路輸出的V2及兩路求差結(jié)果V分別如圖2所示,可以看出,基于二維并行快速搜索的ASPeCT算法通過偽碼相關(guān)支路可以顯著削減位于捕獲碼相位±0.5碼片處的副峰,使合路輸出檢測(cè)量不受副峰的影響,主峰值更加尖銳,是一種性能良好的快速高精度捕獲算法。
(a)BOC碼相關(guān)支路平方結(jié)果 (a) The square result of BOC code correlation branch
圖3 基于二維并行快速搜索的ASPeCT捕獲算法流程圖Fig.3 The flowing chart of ASPeCT acquisition algorithm based on 2-D parallel fast search
(b)偽碼相關(guān)支路平方結(jié)果 (b) The square result of pseudo code correlation branch
(c)兩路求差結(jié)果 (c) The subtraction of two branches圖2 兩路求差前后的結(jié)果Fig.2 The result before and after subtraction of two branches
基于二維并行快速搜索的ASPeCT捕獲算法在FPGA+DSP硬件平臺(tái)上實(shí)現(xiàn),其中FPGA采用Xilinx公司的Kintex-7 K325T芯片,工作時(shí)鐘為62M,中頻信號(hào)數(shù)據(jù)速率為62M,位數(shù)為4bit。
2.1 實(shí)現(xiàn)流程
基于二維并行快速搜索的ASPeCT捕獲算法流程如圖3所示。輸入中頻信號(hào)先與載波NCO生成的正余弦信號(hào)相乘得到同相正交兩路零中頻信號(hào)I_Data和Q_Data,再將它們分別與碼NCO生成的偽碼序列Code和BOC碼序列Code_BOC相關(guān),一次完成K個(gè)碼相位上的相關(guān),經(jīng)過部分累積降低采樣頻率分別得到P個(gè)采樣點(diǎn)補(bǔ)零至M點(diǎn)進(jìn)行傅里葉變換,將時(shí)域信號(hào)轉(zhuǎn)換為頻域信號(hào),一次完成對(duì)多普勒頻率一維的搜索,然后將兩條相關(guān)支路的變換結(jié)果平方相減生成檢測(cè)量,最后將檢測(cè)量的最大值MaxValue和對(duì)應(yīng)地址MaxAddr傳給DSP,在DSP的控制下進(jìn)行N/K次運(yùn)算完成對(duì)整個(gè)偽碼周期的搜索。
以Galileo E1B信號(hào)的捕獲為例,Galileo E1B信號(hào)采用CBOC(6,1,1/11,'+')調(diào)制方式,只捕獲其中的BOC(1,1)成分造成的損耗不超過0.5dB。Galileo E1B信號(hào)長度為4ms,包含4092碼片。將實(shí)現(xiàn)的搜索參數(shù)說明如下:
1)對(duì)于多普勒頻率一維,一般陸基運(yùn)動(dòng)載體上的衛(wèi)星信號(hào)接收機(jī)接收到載波的最大多普勒頻率為±10kHz,為了覆蓋20kHz的頻率搜索范圍,相干積分時(shí)間最長不能超過50μs[11]。對(duì)于偽碼周期為4ms的Galileo E1B信號(hào),取P等于80,4ms信號(hào)經(jīng)過50μs相關(guān)累積得到80點(diǎn)采樣數(shù)據(jù)。如果將這80點(diǎn)數(shù)據(jù)直接進(jìn)行FFT,由式(10)可知,雖然對(duì)所有頻率單元的搜索可以一次完成,但是當(dāng)ωe偏離譜線時(shí)會(huì)產(chǎn)生頻率損耗L2(ωe,k),多普勒頻率一維的輸出結(jié)果如圖4所示。
圖4 80點(diǎn)FFT歸一化輸出結(jié)果Fig.4 The normalized output result of 80 point FFT
可以看出,在FFT點(diǎn)數(shù)和輸入數(shù)據(jù)個(gè)數(shù)均為80時(shí),FFT的頻譜泄漏會(huì)造成ASPeCT算法多普勒頻率輸出結(jié)果最大3.9dB的頻率損耗,嚴(yán)重影響性能。為了彌補(bǔ)頻率損耗,同時(shí)兼顧FFT對(duì)輸入數(shù)據(jù)的長度是以2為底的指數(shù)冪的要求,取FFT點(diǎn)數(shù)M為128,將80點(diǎn)采樣數(shù)據(jù)補(bǔ)零至128點(diǎn)進(jìn)行運(yùn)算。補(bǔ)零后的多普勒頻率輸出結(jié)果如圖5所示。
圖5 128點(diǎn)補(bǔ)零FFT歸一化輸出結(jié)果Fig.5 The normalized output result of 128 point FFT
由圖5可知,補(bǔ)零后的ASPeCT捕獲算法最大僅有1.4dB的頻率損耗,滿足實(shí)際要求。算法的頻率分辨率為
Δf=20kHz/128=156.25Hz
(11)
2)對(duì)于碼相位一維,GalileoE1B信號(hào)的偽碼周期長度為4092碼片,選取碼相位搜索步長Δc為0.5碼片,實(shí)現(xiàn)對(duì)整個(gè)偽碼周期的搜索需要遍歷8184個(gè)搜索單元。本文取K等于100,即采用100路并行相關(guān)器,一次搜索100個(gè)半碼相位,只需82次就可以完成對(duì)碼相位一維的搜索。算法對(duì)碼相位的估算精度為0.5碼片。
可以看出,基于二維并行快速搜索的ASPeCT捕獲算法通過復(fù)雜的傅里葉變換和追加更多相關(guān)器資源,在碼相位估算精度和頻率分辨率不變的前提下,將搜索次數(shù)從原有的128×8184次降為82次,最小捕獲時(shí)間從70min降為328ms,適合在資源豐富的Kintex-7芯片中實(shí)現(xiàn)。
2.2 實(shí)現(xiàn)結(jié)構(gòu)
2.2.1 本地載波和碼的生成
捕獲電路的載波NCO通過累加DSP提供的載波頻率控制字,并將累加值作為取樣地址送入相幅轉(zhuǎn)換電路得到本地復(fù)制正余弦載波信號(hào)Carrier_Sin和Carrier_Cos用于混頻,如圖6所示。
碼NCO通過讀入DSP提供的碼頻率控制字,得到2倍于偽碼速率的半碼片發(fā)生計(jì)數(shù)信號(hào)Code_En,當(dāng)計(jì)數(shù)值為偶數(shù)時(shí),通過ROM控制器依次讀取存在ROM里的4092個(gè)Galileo E1B信號(hào)的偽碼碼片值,得到偽碼序列Code;如果同時(shí)在計(jì)數(shù)值為奇數(shù)時(shí)反轉(zhuǎn)偽碼電平,即可生成經(jīng)副載波調(diào)制的偽碼序列Code_BOC,如圖7所示。
2.2.2 相關(guān)支路數(shù)據(jù)的處理
BOC碼相關(guān)支路的結(jié)構(gòu)如圖8所示。將BOC碼延時(shí)得到依次相差半個(gè)碼片的100路信號(hào),再將這100路信號(hào)分別與同相正交支路上的零中頻信號(hào)相關(guān)并進(jìn)行50μs累積,每個(gè)碼相位上產(chǎn)生80個(gè)累積結(jié)果,100路信號(hào)共產(chǎn)生100×80個(gè)累積結(jié)果。每完成一次50μs累積,就將100個(gè)結(jié)果縱向?qū)懭?00×80 RAM的一列,4ms寫滿RAM的80列。當(dāng)一個(gè)RAM縱向?qū)憹M后,依次將每個(gè)碼相位上的80個(gè)結(jié)果橫向讀出補(bǔ)零后進(jìn)行128點(diǎn)FFT變換,輸出的實(shí)部和虛部結(jié)果分別為RE_BOC和IM_BOC。偽碼相關(guān)支路的情況與之類似,輸出的FFT變換實(shí)部和虛部結(jié)果分別為RE_PRN和IM_PRN。
圖6 本地載波生成的結(jié)構(gòu)框圖Fig.6 The structured flowchart of local carrier generation
圖7 本地碼生成的結(jié)構(gòu)框圖Fig.7 The structured flowchart of local code generation
圖8 BOC碼相關(guān)支路的結(jié)構(gòu)框圖Fig.8 The structured flowchart of BOC code correlation branch
2.2.3 檢測(cè)量的生成
將BOC碼和偽碼相關(guān)支路輸出的FFT結(jié)果平方相減得到峰值檢測(cè)量Value,計(jì)算公式為
(12)
實(shí)現(xiàn)框圖如圖9所示,利用平方差公式進(jìn)行分解,并采用流水線的工作模式,依次計(jì)算100個(gè)半碼相位上FFT變換輸出的多普勒頻率搜索結(jié)果存入100×128 RAM,然后逐一比較選出最大值MaxValue和對(duì)應(yīng)地址MaxAddr傳給DSP,由DSP比較82次搜索的結(jié)果得到整個(gè)偽碼周期的最大值,當(dāng)最大值超過門限時(shí),聲明捕獲成功,對(duì)應(yīng)地址就是捕獲到信號(hào)的碼相位時(shí)延和多普勒頻率。
圖9 檢測(cè)量生成的結(jié)構(gòu)框圖Fig.9 The structured flowchart of test quantity generation
ASPeCT算法驗(yàn)證是通過接收實(shí)際Galileo E1B信號(hào)實(shí)現(xiàn)的。2015年8月25日上午9點(diǎn)54分,北京市僅可以觀測(cè)到播發(fā)BOC(1,1)信號(hào)的Galileo系統(tǒng)在軌工作的11號(hào)衛(wèi)星,經(jīng)過反復(fù)調(diào)試,解決實(shí)際問題,在露天環(huán)境下,采用基于二維并行快速搜索的ASPeCT捕獲算法在“FPGA+DSP”平臺(tái)上成功實(shí)現(xiàn)了對(duì)11號(hào)衛(wèi)星的動(dòng)態(tài)捕獲,并利用ChipScope采集了4bit衛(wèi)星信號(hào)數(shù)據(jù),數(shù)據(jù)中頻頻率為15.58MHz,數(shù)據(jù)長度為4ms。實(shí)際衛(wèi)星信號(hào)的Matlab捕獲仿真結(jié)果如圖10所示,信號(hào)的多普勒頻率和碼相位時(shí)延分別為625Hz和3459.5碼片。
(a)多普勒頻率捕獲結(jié)果 (a) The Doppler frequency acquisition result
(b)碼相位捕獲結(jié)果 (b) The code phase acquisition result
(c)二維捕獲結(jié)果(局部) (c) The two-dimension acquisition result (part)圖10 ASPeCT算法的實(shí)際衛(wèi)星信號(hào)捕獲結(jié)果Fig.10 The real satellite signal acquisition result of ASPeCT
同一段衛(wèi)星信號(hào)的FPGA捕獲結(jié)果如圖11所示,可以看出,捕獲結(jié)果峰值明顯,最大值遠(yuǎn)大于次大值,且在地址00100110000100處有一個(gè)幅值為3231的峰值,地址的前七位0010011即十進(jìn)制數(shù)19為碼相位捕獲結(jié)果,后七位0000100即十進(jìn)制數(shù)4為多普勒頻率捕獲結(jié)果,經(jīng)過DSP計(jì)算得到的實(shí)際衛(wèi)星信號(hào)的多普勒頻率和碼相位分別為
Doppler=4Δf=4×156.25=625(Hz)
(13)
Phase=(100×69+19)Δc
=6919×0.5=3459.5(chip)
(14)
與Matlab仿真結(jié)果一致,驗(yàn)證了設(shè)計(jì)的正確性。
圖11 基于ASPeCT技術(shù)的實(shí)際衛(wèi)星信號(hào)的FPGA捕獲結(jié)果Fig.11 The FPGA acquisition result of actual satellite signal based on ASPeCT
為了削弱BOC調(diào)制信號(hào)的副峰、避免誤捕獲,ASPeCT算法在原有的BOC碼相關(guān)支路的基礎(chǔ)上增加一條偽碼相關(guān)支路,實(shí)現(xiàn)方案更為復(fù)雜,每次只搜索一個(gè)單元的串行搜索不能滿足BOC信號(hào)在FPGA上動(dòng)態(tài)捕獲的實(shí)現(xiàn)。
本文提出了一種ASPeCT捕獲算法在FPGA芯片上的二維并行快速搜索實(shí)現(xiàn)方案,在BOC碼相關(guān)支路和偽碼支路并行工作的基礎(chǔ)上,在碼相位一維,通過追加更多的相關(guān)器資源一次搜索多個(gè)碼相位;在多普勒頻率一維,通過傅里葉變換一次完成所有頻率單元的搜索,顯著縮短了捕獲時(shí)間。在理論分析和仿真驗(yàn)證的基礎(chǔ)上,通過FPGA邏輯編程在FPGA+DSP平臺(tái)上實(shí)現(xiàn)了動(dòng)態(tài)捕獲并采集了衛(wèi)星導(dǎo)航信號(hào)數(shù)據(jù)。數(shù)據(jù)的FPGA測(cè)試結(jié)果顯示捕獲峰值明顯,且多普勒頻率和碼相位時(shí)延與Matlab仿真結(jié)果一致,證明了方案設(shè)計(jì)的正確性和有效性??梢?基于二維并行快速搜索的ASPeCT捕獲算法是一種捕獲BOC(1,1)信號(hào)的有效算法,可以在實(shí)際應(yīng)用中加以推廣。
[1]BetzJW.TheoffsetcarriermodulationforGPSmodernization[C].ProceedingsofIONNationalTechnicalMeetingInstituteofNavigation, 1999.
[2] 周驥, 郭承軍, 曹建蜀, 等.GNSSCBOC信號(hào)快速無模糊度捕獲算法研究[J]. 信號(hào)處理, 2015, 31(7):876-882.
[3] 許磊, 何巍巍, 趙勝.BOC調(diào)制導(dǎo)航信號(hào)的精確捕獲方法研究[J]. 無線電工程, 2015, 45(12):36-39.
[4]MartinN,LeblondV,GuillotelG,etal.BOC(x,y)signalacquisitiontechniquesandperformances[C].Proceedingsofthe16thInternationalTechnicalMeetingoftheSatelliteDivisionoftheInstituteofNavigation,IONGPS/GNSS, 2003.
[5]WardPW.Adesigntechniquetoremovethecorrelationambiguityinbinaryoffsetcarrier(BOC)spreadspectrumsignal[C].ProceedingsofAnnualMeetingoftheInstituteofNavigation&CigtfGuidanceTestSymposium, 2003.
[6] 邢兆棟, 張其善, 楊東凱.GALILEO接收機(jī)中BOC(1,1)信號(hào)的捕獲[J]. 北京航空航天大學(xué)學(xué)報(bào), 2006, 32(6):687-690.
[7]BrickellF,GardonM,McCurleyS,etal.Fastexponentiationwithprecomputation[C].ProceedingsofEurocryptonAdvancesinCryptology, 1993.
[8]JulienO,CannonME,LachapelleG.ANewunambiguousBOC(n,n)signaltrackingtechnique[C].TheEuropeanNavigationConferenceGNSS, 2004.
[9] 謝鋼. 全球?qū)Ш叫l(wèi)星系統(tǒng)原理——GPS、格洛納斯和伽利略系統(tǒng)[M]. 北京: 電子工業(yè)出版社, 2013.
[10]RabinerLR,GoldB.Theoryandapplicationofdigitalsignalprocessing[M].NJ:PrenticeHall, 1989.
[11] 謝鋼.GPS原理與接收機(jī)設(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2009.
Technique of BOC(1,1) Signal Acquisition Based on FPGA
WANG Yi-xin, ZUO Qi-yao, LI Feng
(Beijing Institute of Automatic Control Equipment, Beijing 100074, China)
BOC modulation will be widely adopted in new satellite navigation system. The signal has multi-peaks in time domain. The existence of side-peak increases the difficulty of acquisition. Autocorrelation side-peak cancellation technique (ASPeCT) is good in performance as it can effectively weaken the side-peak of code-phase detecting function and avoid false lock by adding a pseudo-code detecting branch on the basis of one BOC-code detecting branch. An implementation project of 2-D parallel fast search for ASPeCT on the FPGA chip is put forward which can significantly cut the acquisition time.On the basis of theoretical analysis and emulation verification, the acquisition algorithm is realized by Verilog HDL programing on FPGA+DSP receiving platform. The Galileo E1B satellite navigation signal is successfully acquired in the open air test. The Doppler frequency and code phase static acquisition results of the digital IF signal captured by ChipScope fall in line with the Matlab simulation results of the same signal, which proves the validity and feasibility of the project put forward.
BOC modulation; ASPeCT; Signal acquisition; FPGA
2016-06-02;
2016-08-01
王奕新(1991-),女,碩士,主要從事衛(wèi)星接收機(jī)基帶處理算法研究。E-mail:wangyixin0916@163.com
10.19306/j.cnki.2095-8110.2017.02.012
TN967.1
A
2095-8110(2017)02-0064-08