賈興剛 許向陽 劉丹丹
摘 要 為了實現(xiàn)PC平臺上GPS軟件接收機C/A碼信號的快速搜索,本文提出了一種由CUDA快速捕獲GPS信號的方法。該方法以數(shù)據(jù)分塊和頻率補償信號捕獲算法為基礎,通過CUDA代碼的編寫,在GPU上并行計算實現(xiàn)信號的捕獲。最后,將本方法與傳統(tǒng)的捕獲方法進行比較。
關鍵詞 CUDA;捕獲;數(shù)據(jù)分塊;軟件接收機
中圖分類號 TN92 文獻標識碼 A 文章編號 2095-6363(2017)15-0087-01
GPS擴頻信號的快速捕獲技術一直是衛(wèi)星信號處理研究的熱點。CUDA是利用圖形處理單元實現(xiàn)通用計算的編程模型,能夠使用大量的處理單元進行并行計算。本文在數(shù)據(jù)分塊和頻率補償信號捕獲算法基礎上,提出一種利用CUDA實現(xiàn)GPS信號C/A碼快速捕獲的方法。仿真結果表明:冷啟動條件下,搜索完全部GPS衛(wèi)星只需1.602s,捕獲時間減少了。
1 數(shù)據(jù)分塊和頻率補償信號捕獲原理
數(shù)據(jù)分塊和頻率補償?shù)男盘栄a償算法是將Lms的采樣數(shù)據(jù)分塊,每塊包含1ms的數(shù)據(jù),通過載波相位調整后的數(shù)據(jù)塊累加使信號強度提高,將中頻數(shù)據(jù)采樣按橫塊和豎塊重新排列,對豎塊數(shù)據(jù)進行FFT,對橫快數(shù)據(jù)進行FFT碼相位并行捕獲。
對一個L×N的輸入數(shù)據(jù)塊捕獲,數(shù)據(jù)分塊和頻率補償?shù)男盘柌东@總的FFT運算量為10×2×L個N點FFT加上N個L點FFT,如果直接對L×N的輸入數(shù)據(jù)進行FFT,總的計算量為20×L個L×N點的FFT。當L>1時,通過幾種不同的L長度兩種方法的運算量對比,先分塊處理然后進行FFT捕獲,利用FFT快速算法減少計算量從而達到快速捕獲的目的。
2 基于CUDA的快速捕獲
CUDA將并行計算從大型集群擴展到普通顯卡,使用戶只需要配置英偉達顯卡的電腦就可以運行較大規(guī)模的并行處理程序。GPU執(zhí)行FFT的并行計算速度超過了CPU執(zhí)行FFT的速度,使用基于數(shù)據(jù)分塊頻率補償與cuFFT相結合的的信號捕獲算法,可以實現(xiàn)更快的捕獲。
設定FFT點數(shù)為8192,輸入數(shù)據(jù)FFT的運算組數(shù)(Batch)為10,本地信號FFT的Batch為30,采用300個線程實現(xiàn)頻域相乘的操作。FFT的最大操作元素個數(shù)為8192×10×30=2457600。捕獲N號衛(wèi)星的操作步驟如下:
Step1分配主機內存空間。
Step2分配設備內存空間。
Step3傳入衛(wèi)星信號。
Step4對信號分塊。
Step5對輸入信號進行cuFFT變換。
Step6對本地偽碼進行cuFFT變換。
Step7根據(jù)頻率步進值調整偽碼cuFFT順序,將輸入信號的FFT結果和本地偽碼信號FFT結果共軛做乘法。
Step8對結果做cuIFFT逆變換得到一個矩陣,對這個矩陣中的數(shù)判斷最大值是否超過閾值。
Step9如果超過閾值,則捕獲成功,橫向是多普勒頻移信息,縱向是偽碼相位信息。如果不是則返回第一步繼續(xù)。
3 性能測試
在VS2010下利用C語言和CUDA編程語言分別實現(xiàn)捕獲算法。一種是基于FFT的碼相位并行搜索算法,使用的FFT是做了適量修改后的FFTW軟件包;另一種方法是本文提出的基于CUDA的快速捕獲方法。
仿真環(huán)境設置:硬件平臺為:英特爾i7-7700 3.60GHz,顯卡NVIDIA GeForce GTX 1060,3GB顯存,GPU的核心頻率是1.76GHz,1152個流處理器。測試過程中使用的時間函數(shù)是VS2010自帶的clock()函數(shù)。仿真環(huán)境不同測試的結果可能不同。
準備一組靜態(tài)測試的中頻數(shù)據(jù)?;緟?shù)為:90s的BeiDou和GPS雙模中頻數(shù)據(jù)文件。采樣頻率為16.367 6MHz,理論中頻為4.130 4MHz,2比特量化,高比特為符號位,低比特為幅度位。程序中設計只捕獲GPS信號,兩種方法捕獲結果如表1所示。
由表1可見,兩種方法檢測到的參數(shù)幾乎相同,檢測性能沒有影響,但改進方法的計算速度提高了。
4 結論
本文針對GPS軟件接收機C/A碼信號快速捕獲的問題,以數(shù)據(jù)分塊和頻率補償?shù)男盘栄a償算法為基礎,提出了一種CUDA運算數(shù)據(jù)分塊和頻率補償算法快速捕獲GPS信號的方法。在PC平臺下將本方法和傳統(tǒng)碼相位捕獲方法進行了比較,結果表明,在保證捕獲性能的前提下,捕獲時間減少了。該方法對其他擴頻信號的快速捕獲具有一定的參考價值。
參考文獻
[1]L Xu,NI Ziedan. Correlation acceleration in GNSS software receivers using a CUDA-enabled GPU .Gps Solutions,2016:1-12.
[2]程俊仁,劉光斌,張博.基于CUDA的GPS信號快速捕獲[J].宇航學報,2010,31(10):2407-2410.
[3]魯郁.北斗/GPS雙模軟件接收機原理與實現(xiàn)技術[M].北京:電子工業(yè)出版社,2016.endprint