文献标志码: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)