《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于DSP Builder的GPS/BD2快捕算法設(shè)計(jì)與實(shí)現(xiàn)
基于DSP Builder的GPS/BD2快捕算法設(shè)計(jì)與實(shí)現(xiàn)
2014年電子技術(shù)應(yīng)用第6期
楊長林, 楊 宇, 劉延飛, 胡建宇
第二炮兵工程大學(xué), 陜西 西安710025
摘要: 介紹了GPS L1頻點(diǎn)和BD2 B1頻點(diǎn)并行碼相位捕獲算法的基本原理。為了提高捕獲速度,減少計(jì)算量,保證捕獲精度,易于電路實(shí)現(xiàn),采用固定位置的平均采樣方法改進(jìn)了捕獲算法。在Simulink/DSP Builder環(huán)境下設(shè)計(jì)實(shí)現(xiàn)了GPS和BD2衛(wèi)星的快速捕獲電路。仿真和實(shí)際測試結(jié)果表明,DSP Builder圖形化設(shè)計(jì)環(huán)境能夠高效地完成改進(jìn)捕獲算法的電路設(shè)計(jì),而且算法既能發(fā)揮FPGA的并行特性又能降低對資源的要求,設(shè)計(jì)的電路在保證捕獲精度的同時達(dá)到了雙模雙通道數(shù)據(jù)實(shí)時處理和快速捕獲的要求。
中圖分類號: TN911.73
文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2014)06-0137-03
Design and implementation of fast acquisition algorithm based on DSP Builder for GPS/BD2
Yang Changlin, Yang Yu, Liu Yanfei, Hu Jianyu
The Second Artillery Engineering University, Xi′an, 710025, China
Abstract: This paper introduces the basic principle of parallel code phase acquisition algorithm in GPS L1 and BD2 B1 frequency point. In order to reduce the amount of calculation, rise the speed of acquisition, guarantee the accuracy, and ease the implementation of circuit, the algorithm is improved by the method of fixed position of the average sampling. The fast acquisition circuit is designed in the environment of Simulink/DSP Builder. Simulation actual test results show that the DSP Builder graphical design environment is capable of implementing this improved fast acquisition algorithm efficiently in form of circuit. And the algorithm can not only display the FPGA parallel characteristics, but also reduce the demand for resources. This circuit design meets the requirements of real-time processing and rapid capture in the way of dual mode and dual channel while guarantees the acquisition precision.
Key words : GPS; BD2; parallel code phase capture; DSP Builder; FPGA

       目前,采用FPGA實(shí)現(xiàn)的DSP系統(tǒng)與利用傳統(tǒng)DSP處理器相比,在高速與實(shí)時性,系統(tǒng)的重配置與硬件可重構(gòu)性以及單片DSP系統(tǒng)的可實(shí)現(xiàn)性等方面具有突出優(yōu)勢[1]。而DSP Builder是Altera公司的一個面向DSP開發(fā)的系統(tǒng)級工具,內(nèi)嵌Matlab的一個Simulink工具箱,使得DSP算法的電路實(shí)現(xiàn)可以充分利用Simulink的圖形化界面,具有直觀、高效的特性,簡化了硬件實(shí)現(xiàn)流程[2]。采用DSP Builder作為設(shè)計(jì)數(shù)字電路的工具,是現(xiàn)代DSP系統(tǒng)設(shè)計(jì)的發(fā)展方向之一。

        GPS L1頻點(diǎn)和BD2 B1頻點(diǎn)是衛(wèi)星導(dǎo)航系統(tǒng)中公開的民用信號,以此為基礎(chǔ)的軟件接收機(jī)得到廣泛而深入的研究。目前,并行碼相位算法在用高級語言實(shí)現(xiàn)的軟件接收機(jī)中廣泛應(yīng)用,在運(yùn)算速度得到保證的前提下,與串行捕獲算法相比可以極大地提高捕獲衛(wèi)星的速度。但是目前大多數(shù)嵌入式實(shí)時衛(wèi)星接收機(jī)由于計(jì)算能力和資源的限制,而只能采用串行捕獲的方法。另外,采用C/C++或者M(jìn)atlab等高級語言實(shí)現(xiàn)的軟件接收機(jī)雖然在捕獲速度和精度上滿足要求,但是大多數(shù)只能實(shí)現(xiàn)事后處理,達(dá)不到實(shí)時處理的要求。即使實(shí)現(xiàn)了實(shí)時處理,用整臺計(jì)算機(jī)完成接收機(jī)的功能成本過高,而且體積重量較大。但FPGA在運(yùn)算的并行特性以及內(nèi)部集成的邏輯資源方面有著巨大優(yōu)勢,保證了實(shí)時處理的可實(shí)現(xiàn)性。

        對于RX3007 GPS/BD2雙模雙通道射頻模塊,1 ms的中頻數(shù)據(jù)量就達(dá)到了16 368個點(diǎn),原始的算法必須執(zhí)行一次16 368個點(diǎn)的FFT和IFFT組合,而163 68個點(diǎn)的FFT將極大地消耗LEs和RAM資源,這對FPGA十分不利。因此必須改進(jìn)捕獲算法,將運(yùn)算量和資源消耗量降至最低。相比參考文獻(xiàn)[3]中自行設(shè)計(jì)浮點(diǎn)型FFT的方式,本文在DSP Builder的圖形化界面中以第三方可定制FFT IP核為核心搭建基于改進(jìn)并行碼相位算法的GPS/BD2雙模接收機(jī)快速捕獲電路,實(shí)現(xiàn)雙模雙通道快速捕獲,能極大地縮短開發(fā)周期,減少資源消耗,提高計(jì)算效率。

1 并行碼相位捕獲算法原理

        衛(wèi)星接收機(jī)捕獲算法的實(shí)現(xiàn)與射頻前端緊密關(guān)聯(lián),本文采用廣州潤芯公司的RX3007雙模雙通道射頻模塊,上電后輸出頻率為4.092 MHz的GPS和BD2兩路2 bit中頻數(shù)字信號,采樣時鐘為16.368 MHz。

        并行碼相位捕獲算法的原理如圖1所示。先將中頻信號進(jìn)行載波剝離,采集整數(shù)倍毫秒時間內(nèi)的數(shù)據(jù)進(jìn)行FFT變換;然后將FFT結(jié)果與本地偽碼的FFT取共軛后的值逐點(diǎn)執(zhí)行復(fù)數(shù)乘法;最后對所得結(jié)果進(jìn)行IFFT變換,求取復(fù)數(shù)的幅值,進(jìn)行捕獲門限判決[4]。

        設(shè)長度都為N的兩個信號x(n)和y(n),x(n)代表輸入信號,y(n)代表本地偽碼,信號x(n)與y(n)的相關(guān)值為:

 

 

        從而可將相關(guān)運(yùn)算轉(zhuǎn)換為頻域的乘法運(yùn)算。一旦算出了Z(k),則其時域的結(jié)果就可以通過傅里葉逆變換得到,即:

        

2 算法改進(jìn)及仿真

        以GPS為例,平均降采樣[5]主要是采用一個期望的小頻率時鐘對原始數(shù)據(jù)重采樣,對一個周期內(nèi)的數(shù)據(jù)進(jìn)行平均。但是降采樣時對這個時鐘要求較高,不方便實(shí)現(xiàn)[6]。將載波去除之后的16 368個數(shù)據(jù)降采樣至1 024點(diǎn),要進(jìn)行16次15個點(diǎn)的平均操作,其余均為16個點(diǎn)的平均。為方便實(shí)現(xiàn)和節(jié)省資源,本文采用固定位置和只進(jìn)行累加的方式,即先找出所有的對15個點(diǎn)累加操作的起始位置并存儲起來備用,將16 368個點(diǎn)的位置與之比較,如果相同則進(jìn)行連續(xù)15個點(diǎn)的累加操作,其余情況下均進(jìn)行連續(xù)16個點(diǎn)的累加。本地C/A碼先上采樣至16.368 MHz,然后采取同樣的方式進(jìn)行下采樣。為減少存儲偽碼FFT結(jié)果的位數(shù),對下采樣后的偽碼累加值做除法運(yùn)算,以降低平均采樣后的幅值,最后執(zhí)行1 024點(diǎn)的FFT。由于硬件電路中全是整型操作,為了便于存儲處理以及減少存儲所占的空間,綜合考慮精度和資源消耗兩方面因素,最終將所有32顆衛(wèi)星的本地偽碼FFT結(jié)果擴(kuò)大5倍并取整,存儲備用。另外,考慮弱信號條件和捕獲速度,采用4 ms非相干累積的方式提高信噪比。BD2 GEO衛(wèi)星C/A碼速率為2.046 MHz,沒有調(diào)制NH碼,所以必須降采樣至2 048點(diǎn),執(zhí)行2 048點(diǎn)FFT/IFFT組合,但捕獲過程中的其他操作同GPS類似。本設(shè)計(jì)的目標(biāo)是對中頻數(shù)據(jù)進(jìn)行適當(dāng)預(yù)處理使之能夠調(diào)用Altera的FFT IP核執(zhí)行FFT和IFFT變換組合,由于FFT IP核采用塊浮點(diǎn)的處理方式,運(yùn)算過程中在精度和資源占用之間的折中,數(shù)據(jù)位寬和旋轉(zhuǎn)因子固定,每一級蝶形變換都會根據(jù)情況對數(shù)據(jù)進(jìn)行移位,如果超出數(shù)據(jù)位寬,則低位數(shù)值將會被丟棄。考慮到這種情況,最后的門限判決采用主次峰值比值超過閾值的方法。圖2為GPS/BD2改進(jìn)捕獲算法的Matlab仿真驗(yàn)證結(jié)果。

        分別用改進(jìn)算法和原始捕獲算法對同一組通過USB2.0采集到的中頻數(shù)據(jù)進(jìn)行處理,兩者捕獲得到的衛(wèi)星一樣,各衛(wèi)星多普勒頻率一樣,初始碼相位精度也在正負(fù)半個碼片之內(nèi)。這說明改進(jìn)的捕獲算法不僅大大降低了計(jì)算量,實(shí)現(xiàn)起來更加容易,而且仍然能夠很好地捕獲衛(wèi)星。

3 硬件電路設(shè)計(jì)及驗(yàn)證

        快捕電路主要由平均采樣模塊average_sample、FFT/IFFT模塊fft_my、本地偽碼存儲模塊CA_FFT、復(fù)數(shù)乘法模塊complex_product、時序控制電路及累加判決六大部分組成,各模塊工作的參考時鐘為16.368 MHz。圖3顯示了完整電路的其中一部分, 整個電路的工作流程如圖4所示。

        (1)FFT /IFFT模塊

        本設(shè)計(jì)采用FFT和IFFT依照時序輪流在一個FFT IP核中執(zhí)行的方式,節(jié)省了一個FFT處理器,降低了資源消耗。GPS捕獲中IP核輸入數(shù)據(jù)位寬旋轉(zhuǎn)因子精度定為18 bit,BD2中精度為20 bit。由于采用主次峰值比值的檢測算法,IFFT的輸出結(jié)果可以不必除以變換點(diǎn)數(shù)而直接用于累加判決模塊,另外,在信號較強(qiáng)情況下利用1 ms數(shù)據(jù)進(jìn)行判決的過程中,IP核的指數(shù)輸出exp可不予考慮,這樣既節(jié)省了資源又降低了電路的復(fù)雜性。在執(zhí)行單次FFT/IFFT變換組合的過程中,首先將IP核的inverse信號置高,等待平均采樣模塊采集完1 ms數(shù)據(jù),從RAM中讀取數(shù)據(jù),依次產(chǎn)生sop和eop脈沖,執(zhí)行FFT,將所得結(jié)果取共軛后依次與預(yù)存在ROM中對應(yīng)衛(wèi)星的本地偽碼FFT結(jié)果相乘并暫存結(jié)果,然后將inverse信號置低,執(zhí)行IFFT。

        (2)平均采樣模塊

        本設(shè)計(jì)利用平均采樣模塊將16.368 MHz的數(shù)據(jù)降采樣至1.024 MHz和2.048 MHz,該模塊包括本地載波NCO子模塊carrier_gen,15點(diǎn)和16點(diǎn)累加子模塊add_1516,RAM模塊,累加點(diǎn)數(shù)判決子模塊index_judge和相應(yīng)的時序生成電路。其中載波NCO模塊基于LUT設(shè)計(jì),LUT預(yù)存8個數(shù)據(jù)代表正余弦波的一個周期,數(shù)據(jù)位寬為3 bit,輸入不同的頻率控制字將輸出不同頻率的本地載波。其對應(yīng)關(guān)系為:

        

其中,fcar為輸出的本地載波頻率,fclk為輸入時鐘,M為頻率控制字,N為相位累加的數(shù)據(jù)位寬(本設(shè)計(jì)N取32)。M由頻率控制字選擇模塊生成,遍歷±10 kHz范圍內(nèi)以400 Hz步進(jìn)的所有對應(yīng)頻率控制字,在捕獲過程中完成對本地載波頻率的調(diào)整。其余子模塊在時序電路的控制下完成15點(diǎn)或16點(diǎn)數(shù)據(jù)累加功能,最終數(shù)據(jù)分為I支路和Q支路分別暫存在兩個1 024×6 bit RAM中。

        (3)其他模塊

        本地偽碼存儲模塊存儲的是預(yù)先計(jì)算好的各衛(wèi)星偽碼被下采樣之后的FFT結(jié)果,按照實(shí)部和虛部分別存放在兩個ROM中。對GPS衛(wèi)星而言,偽碼FFT結(jié)果擴(kuò)大5倍取整后的數(shù)據(jù)需用10 bit表示, 而BD2則需用11 bit表示。復(fù)數(shù)乘法模塊的功能是將本地預(yù)存的C/A碼FFT結(jié)果與FFT IP核執(zhí)行FFT之后取共軛的結(jié)果相乘,然后進(jìn)行暫存,為執(zhí)行IFFT準(zhǔn)備數(shù)據(jù),根據(jù)實(shí)際情況對數(shù)據(jù)位寬進(jìn)行截取,使之等于IP和輸入精度。時序控制電路實(shí)現(xiàn)了對inverse信號的精確控制以及對各生成地址的計(jì)數(shù)器的使能和驅(qū)動。累加判決完成最終的I2+Q2累加,找出最高峰值和非相鄰次高峰,寄存最高峰值的偏移量并進(jìn)行門限判決。

        圖5為GPS和BD2快捕電路仿真得到I2+Q2的值,橫軸為采樣點(diǎn)的偏移值,縱軸為幅值。主次峰值的比值都超過了2,說明捕獲到衛(wèi)星;主峰偏移量分別為644和206,說明快捕電路通過運(yùn)算得到的初始碼相位與Matlab中的結(jié)果一致,算法改進(jìn)效果明顯。最終,使用Signal Compiler將圖形模塊轉(zhuǎn)化成VHDL語言,在QuartusII軟件中編譯成功后下載配置文件至目標(biāo)器件EP3C120F780C8N。實(shí)際測試時與華訊HX6330 GPS/BD2雙模接收機(jī)對比,快捕電路可以在2 s之內(nèi)對所有GPS和BD2衛(wèi)星完成一次盲捕,兩者捕獲得到的衛(wèi)星號基本一致。

        改進(jìn)的捕獲算法不僅大大降低了運(yùn)算量,減少資源消耗,便于硬件電路的實(shí)現(xiàn),而且設(shè)計(jì)出來的電路能夠在單片F(xiàn)PGA內(nèi)以較高的精度迅速對GPS和BD2衛(wèi)星同時進(jìn)行捕獲,為捕獲之后的跟蹤環(huán)路留下寶貴的邏輯資源。同時,本設(shè)計(jì)也為將來添加NIOS II多處理器系統(tǒng)完成信號跟蹤解調(diào)及導(dǎo)航解算從而在單片F(xiàn)PGA內(nèi)部實(shí)現(xiàn)雙模導(dǎo)航接收機(jī)的全部功能奠定了基礎(chǔ)。

參考文獻(xiàn)

[1] 潘松,黃繼業(yè),王國棟.現(xiàn)代DSP技術(shù)[M]. 西安:西安電子科技大學(xué)出版社,2003.

[2] 楊守良.基于DSP Builder的插值濾波器的設(shè)計(jì)及FPGA實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2013,32(1):54-56. 

[3] 劉健.基于FPGA的高速浮點(diǎn)FFT的實(shí)現(xiàn)研究[J]. 微型機(jī)與應(yīng)用,2012,31(14):79-81.

[4] AKOS D M. 軟件定義的GPS和伽利略接收機(jī)[M].楊東凱,張飛舟,張波,譯.北京:國防工業(yè)出版社,2009.

[5] STARZYK J A, ZHU Z. Averaging correlation for C/A code acquisition and tracking in frequency domain[J].MWSCAS 2001, Dayton, OH, 2001:905-908.

[6] 趙麗.基于FPGA平臺的GPS信號捕獲與跟蹤算法研究與實(shí)現(xiàn)[D]. 南京:南京郵電大學(xué),2012.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。