《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 基于DSP Builder的GPS/BD2快捕算法設(shè)計與實現(xiàn)
基于DSP Builder的GPS/BD2快捕算法設(shè)計與實現(xiàn)
2014年電子技術(shù)應(yīng)用第6期
楊長林,, 楊 宇,, 劉延飛,, 胡建宇
第二炮兵工程大學(xué), 陜西 西安710025
摘要: 介紹了GPS L1頻點和BD2 B1頻點并行碼相位捕獲算法的基本原理,。為了提高捕獲速度,,減少計算量,保證捕獲精度,,易于電路實現(xiàn),,采用固定位置的平均采樣方法改進(jìn)了捕獲算法。在Simulink/DSP Builder環(huán)境下設(shè)計實現(xiàn)了GPS和BD2衛(wèi)星的快速捕獲電路,。仿真和實際測試結(jié)果表明,DSP Builder圖形化設(shè)計環(huán)境能夠高效地完成改進(jìn)捕獲算法的電路設(shè)計,而且算法既能發(fā)揮FPGA的并行特性又能降低對資源的要求,設(shè)計的電路在保證捕獲精度的同時達(dá)到了雙模雙通道數(shù)據(jù)實時處理和快速捕獲的要求,。
中圖分類號: 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實現(xiàn)的DSP系統(tǒng)與利用傳統(tǒng)DSP處理器相比,,在高速與實時性,系統(tǒng)的重配置與硬件可重構(gòu)性以及單片DSP系統(tǒng)的可實現(xiàn)性等方面具有突出優(yōu)勢[1],。而DSP Builder是Altera公司的一個面向DSP開發(fā)的系統(tǒng)級工具,內(nèi)嵌Matlab的一個Simulink工具箱,,使得DSP算法的電路實現(xiàn)可以充分利用Simulink的圖形化界面,具有直觀,、高效的特性,,簡化了硬件實現(xiàn)流程[2]。采用DSP Builder作為設(shè)計數(shù)字電路的工具,,是現(xiàn)代DSP系統(tǒng)設(shè)計的發(fā)展方向之一,。

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

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

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

        衛(wèi)星接收機捕獲算法的實現(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取共軛后的值逐點執(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)運算轉(zhuǎn)換為頻域的乘法運算,。一旦算出了Z(k),則其時域的結(jié)果就可以通過傅里葉逆變換得到,,即:

        

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

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

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

3 硬件電路設(shè)計及驗證

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

        (1)FFT /IFFT模塊

        本設(shè)計采用FFT和IFFT依照時序輪流在一個FFT IP核中執(zhí)行的方式,,節(jié)省了一個FFT處理器,降低了資源消耗,。GPS捕獲中IP核輸入數(shù)據(jù)位寬旋轉(zhuǎn)因子精度定為18 bit,,BD2中精度為20 bit。由于采用主次峰值比值的檢測算法,,IFFT的輸出結(jié)果可以不必除以變換點數(shù)而直接用于累加判決模塊,,另外,在信號較強情況下利用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è)計利用平均采樣模塊將16.368 MHz的數(shù)據(jù)降采樣至1.024 MHz和2.048 MHz,,該模塊包括本地載波NCO子模塊carrier_gen,15點和16點累加子模塊add_1516,,RAM模塊,,累加點數(shù)判決子模塊index_judge和相應(yīng)的時序生成電路。其中載波NCO模塊基于LUT設(shè)計,,LUT預(yù)存8個數(shù)據(jù)代表正余弦波的一個周期,數(shù)據(jù)位寬為3 bit,,輸入不同的頻率控制字將輸出不同頻率的本地載波,。其對應(yīng)關(guān)系為:

        

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

        (3)其他模塊

        本地偽碼存儲模塊存儲的是預(yù)先計算好的各衛(wèi)星偽碼被下采樣之后的FFT結(jié)果,,按照實部和虛部分別存放在兩個ROM中。對GPS衛(wèi)星而言,偽碼FFT結(jié)果擴大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ù)據(jù)位寬進(jìn)行截取,使之等于IP和輸入精度,。時序控制電路實現(xiàn)了對inverse信號的精確控制以及對各生成地址的計數(shù)器的使能和驅(qū)動,。累加判決完成最終的I2+Q2累加,找出最高峰值和非相鄰次高峰,,寄存最高峰值的偏移量并進(jìn)行門限判決,。

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

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

參考文獻(xiàn)

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

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

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

[4] AKOS D M. 軟件定義的GPS和伽利略接收機[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信號捕獲與跟蹤算法研究與實現(xiàn)[D]. 南京:南京郵電大學(xué),,2012.

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