文獻標志碼:A
DOI: 10.16157/j.issn.0258-7998.233903
引用格式: 王子涵,巴曉輝,姜維,等. 基于CUDA加速的GPS L1C/A實時信號發生器設計[J]. 電子技術應用,2023,49(11):146-152.
【引言】
進入21世紀后,隨著人類步入到信息數字化時代,全球導航衛星系統GNSS(Global Navigation Satellite System)的應用也從最初的軍事領域,滲透到包括交通、金融、航空、航海、測繪等生活的方方面面,成為關系人們日常生活的一項重要基礎設施[1]。
全球衛星導航系統一般由地面控制部分、空間衛星星座和地面用戶設備三部分組成。除了要保證太空中衛星的正常工作外,地面上的用戶設備也是系統正常運行的關鍵一環,而各種高性能接收機的開發與調試都離不開信號模擬器[2]。與直接讓接收機接收真實衛星信號或使用信號回放儀回放衛星信號的方法相比,信號模擬器可以根據用戶的需要,設計不同環境、不同復雜場景下的模擬衛星信號,從而為導航接收機等設備提供仿真測試條件[3]。此外,衛星導航系統在軍事領域的更多潛力也在被迅速開發,通過使用欺騙技術,使得敵方的精確武器、設備失去作戰能力,具有非常高的軍事研究價值,并已成為世界各國研究的熱點。而產生實時高效的模擬衛星信號則是研究欺騙與反欺騙技術的技術前提,具有重要意義[4,5]。
傳統的GNSS信號模擬器由仿真控制軟件(simulation control software)和信號生成硬件(signal generation hardware)組成[6-7]。仿真控制軟件可以通過設置載體運動軌跡和模擬場景來生成GNSS信號。在信號生成硬件中,數字信號處理(Digital Signal Processor, DSP)芯片負責計算導航信息、狀態參數、控制參數。通過現場可編程門陣列(Field-Programmable Gate Array, FPGA)實現信號編碼和直接序列擴頻調制,生成數字中頻信號。最后,再經過模數轉換器(Digital to Analog Converter, DAC)和數字中頻信號的上變頻得到所需的衛星信號[8-9]。
傳統的信號模擬器通常采用“FPGA+DSP”結構。這種系統需要定制化,硬件成本高且靈活性低,用戶不能方便地更改導航電文、擴頻碼等信息。此外,對于傳統信號模擬器,諸如認證信息添加和多徑效應模擬等功能的拓展也比較復雜。而模擬器在實際運用過程中經常需要根據需要,對不同場景、各種狀態的衛星信號靈活模擬,傳統信號模擬器亟需改進。
為解決上述問題,基于軟件無線電(Software Defined Radio, SDR)的GNSS模擬器體系結構開始被人們所采用[10]。基于軟件無線電的GNSS模擬器使用仿真軟件來代替DSP和FPGA生成數字中頻信號,由于整個中頻信號的產生是由軟件端完成的,因此系統功能的變更和拓展較為方便。此外,在多通道、高采樣率的情況下,普通的CPU很難做到實時地生成模擬GNSS信號。因此,通過運用GPU加速的方法來滿足實時、多通道、高速率GNSS信號的模擬需求成為很多人的選擇[11-12]。
針對基于GPU的衛星生成信號算法,前人已經進行了一些研究。文獻[13]對GPU優化加速的方法進行了系統性的總結,并通過在相同條件下比較使用CPU和CPU+GPU兩種方法產生衛星信號的快慢,證明了GPU對于信號加速的可行性及有效性;文獻[14]針對GPS L1信號,對程序的并行線程結構、內存分配方式進行了優化,實現了多通道高采樣率的衛星信號的實時生成;文獻[15]設計了一種數據結構,以提高GPU訪問偽碼數據的速度,并最終高速實時生成了BDS B1I信號。但是,前人關于GPU信號加速的研究,主要是針對并行程序部分的線程結構、內存訪問方式以及數據存儲方法的優化,而系統在執行核函數以外的命令時,仍然是以串行運行為主的方式,這造成了資源上的浪費。對此,本文在繼承前人優化思想的基礎上,運用異步運行的思想,引入了CUDA流的概念,對GPU產生衛星信號的過程進行進一步的加速。
在本文中,提出了一種SDR GNSS信號模擬器的體系結構。在這個結構中,仿真控制軟件基于本文提出的優化算法高速實時產生GNSS數字中頻信號,然后通過高速接口將信號送到USRP中,再經過正交矯正、數模變換、上變頻,最后通過射頻端輸出,生成模擬GNSS信號。由于中頻信號的產生是在軟件中進行的,因此整個系統具有良好的可拓展性,便于測試與驗證。
文章詳細內容下載請點擊:基于CUDA加速的GPS L1C/A實時信號發生器設計AET-電子技術應用-最豐富的電子設計資源平臺 (chinaaet.com)
【作者信息】
王子涵1,巴曉輝1,2,3,姜維1,2,3,蔡伯根2,3,4,王劍1,2,3,文韜1,2,3,郭旗1
(1.北京交通大學 電子信息工程學院,北京 100044;2.北京交通大學 軌道交通控制與安全國家重點實驗室,北京 100044;
3.北京市電磁兼容與衛星導航工程技術研究中心,北京 100044;4.北京交通大學 計算機與信息技術學院,北京 100044)