專利名稱:一種基于通用圖形處理器的衛(wèi)星導(dǎo)航系統(tǒng)比特壓縮跟蹤方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件衛(wèi)星導(dǎo)航接收機(jī)跟蹤方法,尤其是涉及一種在通用圖形處理器上實(shí)現(xiàn)的衛(wèi)星導(dǎo)航系統(tǒng)信號(hào)跟蹤的方法。
背景技術(shù):
衛(wèi)星導(dǎo)航技術(shù)的飛速發(fā)展已逐漸取代了無(wú)線電導(dǎo)航、天文導(dǎo)航等傳統(tǒng)導(dǎo)航技術(shù), 而成為一種普遍采用的導(dǎo)航定位技術(shù),并在精度、實(shí)時(shí)性、全天候等方面取得了長(zhǎng)足進(jìn)步。 目前,世界上多個(gè)國(guó)家和地區(qū)已經(jīng)建立或者正在建設(shè)全球衛(wèi)星定位導(dǎo)航系統(tǒng),具體包括美國(guó)建立的GPS系統(tǒng)、俄羅斯建立的GL0NASS(格魯納斯)系統(tǒng)、歐盟正在建設(shè)的“伽利略”系統(tǒng)和中國(guó)正在建設(shè)的北斗二代系統(tǒng)。因而,衛(wèi)星導(dǎo)航系統(tǒng)的接收設(shè)備可能需要完成對(duì)不同衛(wèi)星導(dǎo)航系統(tǒng)信號(hào)的接收和處理。在衛(wèi)星導(dǎo)航接收機(jī)中,信號(hào)跟蹤方法是衛(wèi)星導(dǎo)航接收機(jī)最核心的算法之一。利用通用處理器,采用軟件方法實(shí)現(xiàn)的衛(wèi)星導(dǎo)航接收機(jī)被稱為軟件接收機(jī)。傳統(tǒng)的衛(wèi)星導(dǎo)航軟件接收機(jī)通常使用CPU、DSP和ARM作為其核心處理器。其跟蹤方法如圖1所示,(1)獲取上次記錄的載波頻率和碼相位信息;( 讀取對(duì)應(yīng)載波頻率和載波相位的載波;( 讀取碼相位對(duì)應(yīng)的擴(kuò)頻碼;(4)采用相關(guān)積分方法,計(jì)算不同延遲擴(kuò)頻碼的I、Q支路的相關(guān)累加數(shù)值;( 使用上述數(shù)值進(jìn)行環(huán)路濾波,計(jì)算新的載波頻率、載波相位和碼相位,并記錄相關(guān)運(yùn)算結(jié)果用于導(dǎo)航電文解算和偽距測(cè)量;(6)運(yùn)行其它任務(wù)調(diào)度(如衛(wèi)星捕獲和定位解算);(7)等待下一個(gè)數(shù)據(jù)塊的到達(dá)。由于衛(wèi)星導(dǎo)航系統(tǒng)信號(hào)跟蹤過(guò)程中的相關(guān)累加運(yùn)算的計(jì)算量較大,因此很多研究提出了一些方法來(lái)對(duì)相關(guān)運(yùn)算進(jìn)行加速。針對(duì)基于中央處理器的軟件接收機(jī)通常使用比特壓縮算法(參見(jiàn) B. M. Ledvina,S. P. Powell, P. Μ. Kintner and M.L. Psiaki, "A12-Channel Real-Time GPS Ll Software Receiver", ION-GPS 2003 和 Jiangping Deng, Ruizhi Chen and Jianyu Wang,"An enhanced bit-wise parallel algorithm forreal-time GPS software receiver",GPS Solution 2010 vol. 14)、MMX 或者 SSE 指令集(參見(jiàn) Charkhandeh et al. "Performance Testing of a Real-Time Software-Based GPS Receiver for x86 Processors,,,ION-GNSS 2006 禾口 Gregory W. Heckler and James L. Garrison, "SIMD correlator library for GNSS software receivers,,,GPS Solution 2004 vol. 10)、或者通用圖形處理器(參見(jiàn) Thomas Hobiger et al,“A GPU based real-time GPS software receiver,,,GPS Solution 2010, vol. 14 禾口 Cailun Wu et al, “The Optimized Method and Algorithms in the PC-Based GNSS Software Receiver Design", ION-GNSS 2009)來(lái)進(jìn)行跟蹤過(guò)程中信號(hào)相關(guān)運(yùn)行的加速。根據(jù)文獻(xiàn)Riedl,Bernhard,“EfficientGNSS Signal Acquisition with Massive Parallel Algorithms using OpenCL on GPUsION-GNSS 2010,目前上述算法能夠在目前高端的CPU處理器(Intel Core i7處理器)上實(shí)現(xiàn)20個(gè)通道的20MHz采樣信號(hào)的跟蹤運(yùn)算,但仍然不足采用軟件接收機(jī)的方法實(shí)現(xiàn)多衛(wèi)星導(dǎo)航系統(tǒng)的多通道同時(shí)跟蹤。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問(wèn)題克服現(xiàn)有技術(shù)的不足,提出一種基于圖形處理器的衛(wèi)星導(dǎo)航系統(tǒng)比特壓縮跟蹤方法,該方法在圖形處理器上使用比特壓縮技術(shù),能夠?qū)⒈忍貕嚎s算法的優(yōu)點(diǎn)和圖形處理器的并行計(jì)算性能進(jìn)行結(jié)合,提高衛(wèi)星導(dǎo)航系統(tǒng)跟蹤算法的性能。本發(fā)明的技術(shù)解決方案一種基于圖形處理器的衛(wèi)星導(dǎo)航系統(tǒng)比特壓縮跟蹤方法,包括以下步驟(1)由接收機(jī)處理器負(fù)責(zé)生成或者讀取載波相位查找表、擴(kuò)頻碼查找表,并將傳遞到通用圖形處理器中;(2)接收機(jī)處理器讀取需要進(jìn)行跟蹤的衛(wèi)星導(dǎo)航系統(tǒng)中頻信號(hào),并將其傳遞到通用圖形處理器的全局內(nèi)存中;(3)接收機(jī)處理器讀取需要進(jìn)行跟蹤的各個(gè)通道的擴(kuò)頻碼相位、載波相位、載波頻率信息、衛(wèi)星編號(hào)信息,并將其傳遞到通用圖形處理器的全局內(nèi)存中;(4)根據(jù)跟蹤任務(wù)劃分區(qū)塊,根據(jù)采樣率和通用處理器處理字長(zhǎng)劃分線程,啟動(dòng)通用處理器處理程序,并將線程劃分為數(shù)據(jù)交換線程(組)、相關(guān)計(jì)算線程和環(huán)路計(jì)算線程三類功能;(5)各個(gè)通道的數(shù)據(jù)交換線程(組)至少負(fù)責(zé)獲取本通道的擴(kuò)頻碼相位、載波相位、載波頻率信息、衛(wèi)星編號(hào),并存儲(chǔ)在本通道的存儲(chǔ)器中;(6)各個(gè)通道的相關(guān)運(yùn)算線程根據(jù)本通道的擴(kuò)頻碼相位信息、載波相位信息和載波頻率信息,負(fù)責(zé)進(jìn)行跟蹤相關(guān)運(yùn)算;(7)環(huán)路計(jì)算線程負(fù)責(zé)計(jì)算DLL、PLL/FLL、載噪比等信息,并將上述結(jié)果保存在本通道的存儲(chǔ)器中;然后回到步驟( 直到步驟( 所讀取的中頻信號(hào)處理完畢;(8)各個(gè)通道的數(shù)據(jù)交換線程(組)至少負(fù)責(zé)將本通道的擴(kuò)頻碼相位、載波相位、 載波頻率信息、跟蹤處理結(jié)果存儲(chǔ)在圖形處理器的全局存儲(chǔ)器中;(9)接收機(jī)處理器負(fù)責(zé)將各個(gè)通道的擴(kuò)頻碼相位、載波相位、載波頻率信息、跟蹤處理結(jié)果從通用圖形處理器存儲(chǔ)器中取回后,繼續(xù)完成衛(wèi)星導(dǎo)航其他捕獲、解碼和定位等處理任務(wù);所述的步驟中根據(jù)跟蹤任務(wù)劃分區(qū)塊、根據(jù)系統(tǒng)采樣率和通用處理器處理字長(zhǎng)劃分線程,并將線程劃分為數(shù)據(jù)交換線程、相關(guān)計(jì)算線程和環(huán)路計(jì)算線程三類的步驟如下(a)劃分區(qū)塊數(shù)量為跟蹤通道數(shù)量的整數(shù)倍;(b)劃分線程數(shù)量的基數(shù)為擴(kuò)頻碼周期的采樣點(diǎn)數(shù)和通用處理器字長(zhǎng)除法取整 (N/L),其中N為每擴(kuò)頻碼周期采樣點(diǎn)個(gè)數(shù),L為通用處理器字長(zhǎng)。同時(shí)在碼相位跳變點(diǎn)位置多劃分一個(gè)線程、對(duì)于采樣率不是通用處理器處理字長(zhǎng)整數(shù)倍的情況,再多劃分一個(gè)線程。 當(dāng)每擴(kuò)頻碼周期采樣點(diǎn)為N個(gè),通用處理器處理字長(zhǎng)為L(zhǎng)個(gè)。當(dāng)N為L(zhǎng)的整數(shù)倍時(shí),劃分線程數(shù)量為Ν/L+l ;當(dāng)每擴(kuò)頻碼周期采樣點(diǎn)為N個(gè),通用處理器處理字長(zhǎng)為L(zhǎng)個(gè)。當(dāng)N不為L(zhǎng) 的整數(shù)倍時(shí),劃分線程數(shù)量為N/L+2 ;(c)從劃分的線程中選擇一個(gè)或者多個(gè)線程作為數(shù)據(jù)交換線程(組),該線程的功能是實(shí)現(xiàn)接收機(jī)處理器和通用圖形處理器之間的數(shù)據(jù)交換功能,每個(gè)線程負(fù)責(zé)傳送本通道的一個(gè)或者幾個(gè)交換數(shù)據(jù);(d)所有線程均屬于相關(guān)計(jì)算線程,這些線程都將參與跟蹤過(guò)程中的相關(guān)運(yùn)算;(e)從劃分的線程中選擇一個(gè)線程作為環(huán)路計(jì)算線程,該線程的功能是負(fù)責(zé)導(dǎo)航接收機(jī)跟蹤環(huán)路及其參數(shù)的計(jì)算,包括但不限于PLL跟蹤環(huán)路、DLL跟蹤環(huán)路、FLL跟蹤環(huán)路和EKF跟蹤環(huán)路、跟蹤通道的信號(hào)載噪比等;所述的步驟(6)中跟蹤相關(guān)運(yùn)算步驟包括(a)根據(jù)本通道的擴(kuò)頻碼相位信息,確定本線程處理的采樣點(diǎn)。對(duì)于跳變點(diǎn)之前 (含跳變點(diǎn))的線程t,處理的采樣點(diǎn)范圍為0 t*L,對(duì)于跳變點(diǎn)之后(含跳變點(diǎn))的線程 t,,處理的采樣點(diǎn)范圍為t*L N ;(b)根據(jù)處理的采樣點(diǎn)范圍,獲取本通道該采樣點(diǎn)的對(duì)應(yīng)中頻信號(hào)數(shù)據(jù),并進(jìn)行數(shù)據(jù)位對(duì)齊;(c)根據(jù)處理的采樣點(diǎn)范圍和本通道擴(kuò)頻碼相位信息、載波相位信息和載波頻率信息,獲取載波數(shù)值、擴(kuò)頻碼數(shù)值,并計(jì)算屏蔽掩碼;(d)據(jù)屏蔽掩碼和上述的中頻信號(hào)、擴(kuò)頻碼數(shù)值、載波相位數(shù)值進(jìn)行比特壓縮的相關(guān)運(yùn)算。每個(gè)線程會(huì)得中頻信號(hào)、擴(kuò)頻碼和載波I、Q支路相乘的結(jié)果,該結(jié)果可能包括但不具有限于(d. 1)對(duì)于PSK調(diào)制的衛(wèi)星導(dǎo)航系統(tǒng),如果采用超前、即時(shí)和滯后碼,會(huì)得到中頻信號(hào)與超前碼、即時(shí)碼、滯后碼和載波I、Q兩個(gè)支路相乘的六個(gè)結(jié)果;(d. 2)對(duì)于PSK調(diào)制的衛(wèi)星導(dǎo)航系統(tǒng),如果采用即時(shí)和超前減滯后碼,會(huì)得到中頻信號(hào)與即時(shí)碼、超前減滯后碼和載波I、Q兩個(gè)支路相乘的四個(gè)結(jié)果;(d. 3)對(duì)于BOC調(diào)制的衛(wèi)星導(dǎo)航系統(tǒng),如果采用超超前、超前、即時(shí)、滯后和超滯后碼,會(huì)得到中頻信號(hào)與超超前碼、超前碼、即時(shí)碼、滯后碼和超滯后碼和載波I、Q兩個(gè)支路相乘的十個(gè)結(jié)果;(d. 4)對(duì)于BOC調(diào)制的衛(wèi)星導(dǎo)航系統(tǒng),如果采用超超前減超滯后碼、超前減滯后碼和即時(shí)碼,會(huì)得到中頻信號(hào)與超超前碼減超滯后碼、超前減滯后碼、即時(shí)碼和載波I、Q兩個(gè)支路相乘的六個(gè)結(jié)果;(e)對(duì)于兩部分計(jì)算線程分別進(jìn)行矢量縮減求和運(yùn)算,分別得到兩部分的I、Q支路累加結(jié)果。本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于(1)與傳統(tǒng)的基于通用處理器的衛(wèi)星導(dǎo)航系統(tǒng)跟蹤算法相比,本發(fā)明采用了比特壓縮算法,因此在GPU上啟動(dòng)的線程數(shù)量只是傳統(tǒng)算法的1/32或者更少。更少的處理線程會(huì)加快圖形處理器任務(wù)調(diào)度,并且利用比特壓縮算法可以實(shí)現(xiàn)多個(gè)采樣點(diǎn)相關(guān)運(yùn)算的并行性,從而加快跟蹤運(yùn)算的速度。(2)與傳統(tǒng)的基于中央處理器的衛(wèi)星導(dǎo)航系統(tǒng)跟蹤算法相比,在通用圖形處理器上能夠?qū)崿F(xiàn)對(duì)信號(hào)處理的并行性。由于通用圖形處理器具有多個(gè)處理核心,支持MIMD指令系統(tǒng),因此可以同時(shí)完成對(duì)多個(gè)比特壓縮后的信號(hào)進(jìn)行并行處理,從而加快跟蹤運(yùn)算的速度。(3)本發(fā)明采用獨(dú)立的線程分別處理跳變點(diǎn)數(shù)據(jù)和非整數(shù)位置數(shù)據(jù),不會(huì)引起圖形處理器內(nèi)存訪問(wèn)不對(duì)齊,內(nèi)存讀取延遲小;基于此方法處理跳變點(diǎn)位置的中頻信號(hào)處理和非整數(shù)位置的中頻信號(hào)數(shù)據(jù)基本不會(huì)增加算法處理的復(fù)雜度。(4)本發(fā)明采用處理掩碼使跳變點(diǎn)和非整數(shù)位置數(shù)據(jù)的處理和其他數(shù)據(jù)處理方法基本一致。因此在圖形處理器的指令執(zhí)行系統(tǒng)中,對(duì)這兩個(gè)特殊的采樣點(diǎn)的處理指令和其他采樣點(diǎn)的處理指令可以保持一致,從而不會(huì)影響圖形處理器流水線的執(zhí)行,保證算法執(zhí)行的效率。(5)將傳統(tǒng)的相關(guān)累加運(yùn)算分解為兩組矢量縮減求和運(yùn)算,使其能夠并行地計(jì)算相關(guān)累加結(jié)果。該算法既保證了相關(guān)累加過(guò)程不會(huì)跨越跳變點(diǎn),同時(shí)算法復(fù)雜度與一組矢量縮減求和運(yùn)算基本相同,因此能夠提高跟蹤算法的執(zhí)行效率。(6)將跟蹤環(huán)路放在GPU的環(huán)路計(jì)算線程上進(jìn)行,可以使跟蹤過(guò)程中產(chǎn)生的鑒別器數(shù)值、IQ支路相關(guān)結(jié)果以及跟蹤過(guò)程中的碼相位、載波相位和載波頻率的變化信息都不需要傳送回中央處理器進(jìn)行處理,從而減少中央處理器和圖形處理器的數(shù)據(jù)交換。由于全局內(nèi)存拷貝在圖形處理器中需要使用較長(zhǎng)時(shí)間,因此本發(fā)明的方法能夠極大地縮短跟蹤算法執(zhí)行的時(shí)間。
圖1為傳統(tǒng)的衛(wèi)星導(dǎo)航系統(tǒng)中頻信號(hào)跟蹤方法處理流程圖;圖2為本發(fā)明的跟蹤方法處理流程圖;圖3為本發(fā)明的基于比特壓縮線程任務(wù)分配示意圖;圖4為本發(fā)明的線程功能劃分示意圖;圖5為本發(fā)明的相關(guān)運(yùn)算線程流程圖;圖6為本發(fā)明的相關(guān)運(yùn)算過(guò)程中屏蔽掩碼計(jì)算示意圖;圖7為本發(fā)明的兩組矢量縮減求和運(yùn)算示意圖。
具體實(shí)施例方式本發(fā)明中處理的數(shù)據(jù)是衛(wèi)星導(dǎo)航系統(tǒng)的中頻數(shù)字信號(hào),該信號(hào)是由衛(wèi)星導(dǎo)航系統(tǒng)射頻信號(hào)通過(guò)硬件進(jìn)行下變頻后采樣得到的。數(shù)字中頻信號(hào)的采樣頻率必須符合過(guò)采樣或帶通采樣定律,通常情況大于5MHz。對(duì)數(shù)字中信信號(hào)的處理是基于數(shù)據(jù)塊進(jìn)行的,即每次從采集系統(tǒng)或者文件系統(tǒng)中獲取一定數(shù)量的采樣數(shù)據(jù)(譬如40毫秒的采樣數(shù)據(jù))。假設(shè)擴(kuò)頻碼周期為1毫秒,則對(duì)于40毫秒的采樣數(shù)據(jù),跟蹤處理算法需要完成40次相關(guān)運(yùn)算處理。 接收機(jī)會(huì)對(duì)于每一組采樣數(shù)據(jù)的所有通道進(jìn)行并行處理,如圖2所示。本發(fā)明的具體步驟如下(1)由接收機(jī)處理器負(fù)責(zé)生成或者讀取載波相位查找表、擴(kuò)頻碼查找表,并將傳遞到通用圖形處理器中;擴(kuò)頻碼查找表的生成算法與使用的擴(kuò)頻碼有關(guān)GPS Ll頻段的擴(kuò)頻碼生成方法參見(jiàn)ICD200c和IS800、GPS L2頻段的擴(kuò)頻碼生成方法參見(jiàn)ICD200d、GPS L5頻段的擴(kuò)頻碼生成方法參見(jiàn)IS705、GL0NASS系統(tǒng)的擴(kuò)頻碼生成方法參見(jiàn)GL0NASS I⑶v5. 1、伽利略系統(tǒng)的擴(kuò)頻碼生成方法參加(Galileo OS SIS I⑶。生成的擴(kuò)頻碼查找表以衛(wèi)星編號(hào)和碼相位偏移作為索引,通過(guò)這兩個(gè)索引可以查找到指定編號(hào)和碼相位偏移的一個(gè)周期擴(kuò)頻碼。以GPS Ll頻段的C/A碼為例,當(dāng)處理字長(zhǎng)為32比特時(shí),其索引為32個(gè)導(dǎo)航衛(wèi)星和32個(gè)碼相位偏移,其查找表內(nèi)容為首尾相接的C/A擴(kuò)頻碼。載波相位查找表的生成算法與衛(wèi)星導(dǎo)航系統(tǒng)中頻信號(hào)的頻率有關(guān)。生成的載波相位查找表以載波頻率和載波相位作為索引,通過(guò)這兩個(gè)索引可以查找指定頻率和相位的一個(gè)周期的本地復(fù)現(xiàn)載波信號(hào)。載波相位查找表的載波頻率間隔可以設(shè)置為50Hz,載波相位間隔可以設(shè)置為π/32。在衛(wèi)星導(dǎo)航接收機(jī)運(yùn)行后,這兩個(gè)查找表可以保存在通用圖形處理器的全局內(nèi)存中。(2)接收機(jī)處理器讀取需要進(jìn)行跟蹤的衛(wèi)星導(dǎo)航系統(tǒng)中頻信號(hào),并將其傳遞到通用圖形處理器的全局內(nèi)存中。接收機(jī)處理器從采樣緩沖器或者文件中讀取需要進(jìn)行跟蹤的衛(wèi)星導(dǎo)航系統(tǒng)中頻信號(hào),其讀取長(zhǎng)度為一次需要處理的數(shù)據(jù)塊長(zhǎng)度(譬如40毫秒的中頻數(shù)據(jù)塊),并將其傳遞到通用圖形處理器的全局內(nèi)存中。在本數(shù)據(jù)塊處理完成后,接收機(jī)處理器需要傳遞下一個(gè)需要處理的數(shù)據(jù)塊。當(dāng)采樣頻率為12MHz,量化位數(shù)為2比特,長(zhǎng)度為40毫秒的中頻數(shù)據(jù)需要占用120000字節(jié)。(3)接收機(jī)處理器讀取需要進(jìn)行跟蹤的各個(gè)通道的擴(kuò)頻碼相位、載波相位、載波頻率信息、衛(wèi)星編號(hào)信息,并將其傳遞到通用圖形處理器的全局內(nèi)存中。接收機(jī)處理器將各個(gè)跟蹤通道的擴(kuò)頻碼相位τ、載波相位Φ、載波頻率信息f、衛(wèi)星編號(hào)信息η保存到一個(gè)數(shù)組中,并將其傳遞到通用圖形處理器的全局內(nèi)存中。跟蹤算法利用步驟( 傳遞的中頻信號(hào)數(shù)據(jù)塊和步驟C3)傳遞的跟蹤初始信息對(duì)中頻信號(hào)進(jìn)行處理。待處理完成后,再使用步驟( 和步驟C3)傳遞中頻信號(hào)數(shù)據(jù)和下一組跟蹤通道信息。(4)根據(jù)跟蹤任務(wù)劃分區(qū)塊,根據(jù)采樣率和通用處理器處理字長(zhǎng)劃分線程,啟動(dòng)通用處理器處理程序,并將線程劃分為數(shù)據(jù)交換線程(組)、相關(guān)計(jì)算線程和環(huán)路計(jì)算線程三類功能。圖形處理器計(jì)算任務(wù)的區(qū)塊數(shù)量等于所需要處理的通道數(shù),而劃分線程數(shù)量的基數(shù)為擴(kuò)頻碼周期的采樣點(diǎn)數(shù)和通用處理器字長(zhǎng)除法取整(N/L),其中N為每擴(kuò)頻碼周期采樣點(diǎn)個(gè)數(shù),L為通用處理器字長(zhǎng)。同時(shí)在碼相位跳變點(diǎn)位置多劃分一個(gè)線程、對(duì)于采樣率不是通用處理器處理字長(zhǎng)整數(shù)倍的情況,再多劃分一個(gè)線程。即當(dāng)N為L(zhǎng)的整數(shù)倍時(shí), 劃分線程數(shù)量為Ν/L+l ;當(dāng)N不為L(zhǎng)的整數(shù)倍時(shí),劃分線程數(shù)量為N/L+2。譬如,當(dāng)采樣率為12MHz、圖形處理器處理字長(zhǎng)為32比特、擴(kuò)頻碼周期為1毫秒時(shí),劃分線程數(shù)量為376個(gè) (12000/32+1);當(dāng)采樣率為5. 172MHz、圖形處理器處理字長(zhǎng)為32比特、擴(kuò)頻碼周期為1毫秒時(shí),劃分線程數(shù)量為163個(gè)(5172/32+ 。其劃分方法如圖3所示。線程按照功能被分為數(shù)據(jù)交換線程(組)、相關(guān)計(jì)算線程和環(huán)路計(jì)算線程三類,其分類方法如圖4所示。當(dāng)一個(gè)區(qū)塊存在376個(gè)線程的時(shí)候,可以將0 3號(hào)線程劃分為數(shù)據(jù)交換線程組,每個(gè)線程負(fù)責(zé)通道內(nèi)一個(gè)跟蹤參數(shù)的交換,也可以只將0號(hào)線程劃分為數(shù)據(jù)交換線程,負(fù)責(zé)通道內(nèi)所有跟蹤參數(shù)的交換;將0號(hào)線程劃分為環(huán)路計(jì)算線程,負(fù)責(zé)計(jì)算跟蹤環(huán)路參數(shù);所有線程(0 375號(hào)線程)均屬于相關(guān)計(jì)算線程,均參與信號(hào)相關(guān)積分的計(jì)算過(guò)程。(5)各個(gè)通道的數(shù)據(jù)交換線程(組)至少負(fù)責(zé)獲取本通道的擴(kuò)頻碼相位、載波相位、載波頻率信息、衛(wèi)星編號(hào),并存儲(chǔ)在本通道的存儲(chǔ)器中;數(shù)據(jù)交換線程負(fù)責(zé)讀取本通道的擴(kuò)頻碼相位τ、載波相位Φ、載波頻率信息f、衛(wèi)星編號(hào)n,并存儲(chǔ)在本通道的存儲(chǔ)器中。同時(shí)該線程還負(fù)責(zé)將所獲取到的參數(shù)值換算為索引編號(hào)后,保存在寄存器中,以便于相關(guān)運(yùn)算線程進(jìn)行查詢。譬如,如果處理器字長(zhǎng)為32位、 載波相位被劃分為64個(gè)單元、載波頻率的間隔為50Hz,此時(shí)擴(kuò)頻碼相位索引為τ/32、載波
相位索引為!><64、載波頻率信息索引為f/50、衛(wèi)星編號(hào)索引為η。 2π(6)各個(gè)通道的相關(guān)運(yùn)算線程根據(jù)本通道的擴(kuò)頻碼相位τ、載波相位Φ、載波頻率信息f、衛(wèi)星編號(hào)η,進(jìn)行跟蹤相關(guān)運(yùn)算。具體跟蹤相關(guān)運(yùn)算的過(guò)程分為劃分線程、數(shù)據(jù)位對(duì)齊、掩碼計(jì)算、相乘運(yùn)算、矢量縮減求和五個(gè)步驟,其流程如圖5所示(a)每個(gè)通道的相關(guān)運(yùn)算線程需要處理L個(gè)采樣點(diǎn)數(shù)據(jù)(L為通用圖形處理器字
長(zhǎng)),其采樣點(diǎn)范圍為t^ 和b表示,其取值分別為
tb。對(duì)于編號(hào)為t的線程而言,采樣點(diǎn)范圍的兩側(cè)位置分別用a
權(quán)利要求
1.一種基于通用圖形處理器的衛(wèi)星導(dǎo)航系統(tǒng)比特壓縮跟蹤方法,其特征在于步驟如下(1)由接收機(jī)處理器負(fù)責(zé)生成或者讀取載波相位查找表、擴(kuò)頻碼查找表,并將傳遞到通用圖形處理器中;(2)接收機(jī)處理器讀取需要進(jìn)行跟蹤的衛(wèi)星導(dǎo)航系統(tǒng)中頻信號(hào),并將中頻信號(hào)傳遞到通用圖形處理器的全局內(nèi)存中;(3)接收機(jī)處理器讀取需要進(jìn)行跟蹤的各個(gè)通道的擴(kuò)頻碼相位、載波相位、載波頻率信息和衛(wèi)星編號(hào)信息,并將擴(kuò)頻碼相位、載波相位、載波頻率信息和衛(wèi)星編號(hào)信息傳遞到通用圖形處理器的全局內(nèi)存中;(4)根據(jù)跟蹤任務(wù)劃分區(qū)塊、采樣率和通用處理器處理字長(zhǎng)劃分線程,并將線程劃分為數(shù)據(jù)交換線程、相關(guān)計(jì)算線程和環(huán)路計(jì)算線程三類;(5)各個(gè)通道的數(shù)據(jù)交換線程至少負(fù)責(zé)獲取本通道的擴(kuò)頻碼相位、載波相位、載波頻率信息和衛(wèi)星編號(hào),并存儲(chǔ)在本通道的存儲(chǔ)器中;(6)各個(gè)通道的相關(guān)運(yùn)算線程根據(jù)本通道的擴(kuò)頻碼相位信息、載波相位信息和載波頻率信息,負(fù)責(zé)進(jìn)行跟蹤相關(guān)運(yùn)算;(7)環(huán)路計(jì)算線程負(fù)責(zé)計(jì)算DLL、PLL/FLL和載噪比信息,并將上述結(jié)果保存在本通道的存儲(chǔ)器中;然后回到步驟( 直到步驟( 所讀取的中頻信號(hào)處理完畢;(8)各個(gè)通道的數(shù)據(jù)交換線程至少負(fù)責(zé)將本通道的擴(kuò)頻碼相位、載波相位、載波頻率信息、跟蹤處理結(jié)果存儲(chǔ)在圖形處理器的全局存儲(chǔ)器中;(9)接收機(jī)處理器負(fù)責(zé)將各個(gè)通道的擴(kuò)頻碼相位、載波相位、載波頻率信息和跟蹤處理結(jié)果從通用圖形處理器存儲(chǔ)器中取回后,繼續(xù)完成衛(wèi)星導(dǎo)航其他捕獲、解碼和定位處理任務(wù)。
2.根據(jù)權(quán)利要求1所述的一種基于通用圖形處理器的衛(wèi)星導(dǎo)航系統(tǒng)比特壓縮跟蹤方法,其特征在于所述的步驟(4)中根據(jù)跟蹤任務(wù)劃分區(qū)塊、根據(jù)系統(tǒng)采樣率和通用處理器處理字長(zhǎng)劃分線程,并將線程劃分為數(shù)據(jù)交換線程、相關(guān)計(jì)算線程和環(huán)路計(jì)算線程三類的步驟如下(a)劃分區(qū)塊數(shù)量為跟蹤通道數(shù)量的整數(shù)倍;(b)劃分線程數(shù)量的基數(shù)為擴(kuò)頻碼周期的采樣點(diǎn)數(shù)和通用處理器字長(zhǎng)除法取整(N/ L),其中N為每擴(kuò)頻碼周期采樣點(diǎn)個(gè)數(shù),L為通用處理器字長(zhǎng),同時(shí)在碼相位跳變點(diǎn)位置多劃分一個(gè)線程、對(duì)于采樣率不是通用處理器處理字長(zhǎng)整數(shù)倍的情況,再多劃分一個(gè)線程;當(dāng)每擴(kuò)頻碼周期采樣點(diǎn)為N個(gè),通用處理器處理字長(zhǎng)為L(zhǎng)個(gè);當(dāng)N為L(zhǎng)的整數(shù)倍時(shí),劃分線程數(shù)量為Ν/L+l ;當(dāng)每擴(kuò)頻碼周期采樣點(diǎn)為N個(gè),通用處理器處理字長(zhǎng)為L(zhǎng)個(gè);當(dāng)N不為L(zhǎng)的整數(shù)倍時(shí),劃分線程數(shù)量為N/L+2 ;(c)從劃分的線程中選擇一個(gè)或者多個(gè)線程作為數(shù)據(jù)交換線程,該線程的功能是實(shí)現(xiàn)接收機(jī)處理器和通用圖形處理器之間的數(shù)據(jù)交換功能,每個(gè)線程負(fù)責(zé)傳送本通道的一個(gè)或者幾個(gè)交換數(shù)據(jù);(d)所有線程均屬于相關(guān)計(jì)算線程,這些線程都將參與跟蹤過(guò)程中的相關(guān)運(yùn)算;(e)從劃分的線程中選擇一個(gè)線程作為環(huán)路計(jì)算線程,該線程的功能是負(fù)責(zé)導(dǎo)航接收機(jī)跟蹤環(huán)路及其參數(shù)的計(jì)算,包括但不限于PLL跟蹤環(huán)路、DLL跟蹤環(huán)路、FLL跟蹤環(huán)路和EKF跟蹤環(huán)路、跟蹤通道的信號(hào)載噪比。
3.根據(jù)權(quán)利要求1所述的一種基于通用圖形處理器的衛(wèi)星導(dǎo)航系統(tǒng)比特壓縮跟蹤方法,其特征在于所述的步驟(6)中跟蹤相關(guān)運(yùn)算步驟包括(a)根據(jù)本通道的擴(kuò)頻碼相位信息,確定本線程處理的采樣點(diǎn),對(duì)于跳變點(diǎn)之前的線程 t,處理的采樣點(diǎn)范圍為0-t*L,對(duì)于跳變點(diǎn)之后的線程t’,處理的采樣點(diǎn)范圍為t*L-N ;(b)根據(jù)處理的采樣點(diǎn)范圍,獲取本通道該采樣點(diǎn)的對(duì)應(yīng)中頻信號(hào)數(shù)據(jù),并進(jìn)行數(shù)據(jù)位對(duì)齊;(c)根據(jù)處理的采樣點(diǎn)范圍和本通道擴(kuò)頻碼相位信息、載波相位信息和載波頻率信息, 獲取載波數(shù)值、擴(kuò)頻碼數(shù)值,并計(jì)算屏蔽掩碼;(d)據(jù)屏蔽掩碼和上述的中頻信號(hào)、擴(kuò)頻碼數(shù)值、載波相位數(shù)值進(jìn)行比特壓縮的相關(guān)運(yùn)算;(e)對(duì)于兩部分計(jì)算線程分別進(jìn)行矢量縮減求和運(yùn)算,分別得到兩部分的I、Q支路累加結(jié)果。
全文摘要
一種基于通用圖形處理器的衛(wèi)星導(dǎo)航系統(tǒng)比特壓縮跟蹤方法根據(jù)衛(wèi)星導(dǎo)航系統(tǒng)跟蹤通道數(shù)量,將每個(gè)通道的跟蹤任務(wù)劃分到通用圖形處理器的區(qū)塊進(jìn)行處理,同時(shí)根據(jù)系統(tǒng)采樣率N和通用處理器處理字長(zhǎng)L,將每L個(gè)采樣點(diǎn)數(shù)進(jìn)行比特壓縮并劃分到一個(gè)通用處理器的線程進(jìn)行處理;對(duì)于碼相位跳變點(diǎn)位置的L個(gè)和最后不足L個(gè)的采樣點(diǎn)分別采用一個(gè)線程單獨(dú)處理;所有線程均負(fù)責(zé)完成跟蹤過(guò)程中的相關(guān)運(yùn)算,過(guò)程包括數(shù)據(jù)位對(duì)齊、屏蔽掩碼的計(jì)算、分段相關(guān)和矢量縮減求和四個(gè)步驟;每個(gè)區(qū)塊存在一個(gè)線程根據(jù)求和結(jié)果進(jìn)行跟蹤環(huán)路的計(jì)算,負(fù)責(zé)調(diào)整擴(kuò)頻碼相位、載波頻率和載波相位。本發(fā)明利用通用圖形處理器的并行計(jì)算能力,使衛(wèi)星導(dǎo)航系統(tǒng)的跟蹤運(yùn)算變得高效。'
文檔編號(hào)G01S19/24GK102176033SQ20101062391
公開(kāi)日2011年9月7日 申請(qǐng)日期2010年12月31日 優(yōu)先權(quán)日2010年12月31日
發(fā)明者劉楊, 秦紅磊, 金天 申請(qǐng)人:北京航空航天大學(xué)