一种GPU的GPS/BDS双模信号单硬件通道复合模拟方法∗
2021-02-26
(南京航空航天大学电子信息工程学院 南京 211106)
1 引言
随着北斗系统的不断发展,在民用领域,GPS系统和北斗系统的联合定位将成为主流,因此设计一款基于GPS/BDS的双模导航卫星信号模拟系统具有很高的使用价值。目前模拟源的实现多为硬件实现,例如文献[1]基于“上层软件+DSP+FPGA”的架构的GNSS模拟源的工程实现。基于硬件实现的模拟源优点是实时性好,性能稳定;缺点是电路设计难度高,修改与升级困难,开发成本高。文献[2]提出了一种数字信号实现方案,基于ARM和FPGA模拟产生了中频数字信号,但是没有产生射频信号。除了硬件实现以外,基于软件实现的模拟源在市场上也占有一席之地。基于软件实现的模拟源具有开发成本低、设计实现简单、易于修改升级等优点[3]。目前主流的软件模拟源主要是通过Matlab、SystemView等大型计算机仿真软件实现,且多用于研究阶段,缺点是信号模拟时间长,实时性差,因此本文给出了一种GPU的GPS/BDS双模卫星导航信号的单硬件通道复合模拟方法。该方法利用软件模拟中频信号,采用单硬件通道处理中频信号,其明显区别于多通道与传统的单通道的处理方式。多通道方式大多基于硬件实现,具有消耗资源大,设计复杂,生产成本高等缺点;传统单通道的带宽很大,对采样率要求很高,如果采用硬件实现会增加成本,如果基于软件实现,那么信号模拟速度就会大大降低,在实时性上无法与硬件实现相媲美。本文给出的方法降低了对采样率的要求,大大降低了时间成本。通过GPU的加速优化,提高了软件模拟源的实时性,最终兼具硬件模拟源和传统软件模拟源的优势。
2 GPS L1和北斗BI1信号模型
以GPS L1信号为例,接收机接收到的中频信号为[4]
式中:RIF(t)表示中频信号,Rnoise表示噪声,Rmp表示多径信号,Pir表示接收信号中第i颗卫星的功率,Di表示导航电文,Ci表示测距码,τicode表示伪码时延,fid表示多普勒频移。多普勒变化可以通过时间压扩关系表示:
其中τicarrier表示载波时延,因此求解多普勒频移转换成了求解载波时延。
根据上面的推导,模拟GPS信号的重点是伪码时延和载波时延的模拟,伪码时延和载波时延的求解公式如下所示:
其中τ表示真实距离对应的时延,τtrop表示对流层误差引起的时延,τiono表示电离层误差引起的时延,τsat表示卫星钟差[5]。因此需要重点求解τ。
在式(5)中用户位置和接收时间属于已知量,卫星的轨道可以由导航电文获取,具体位置取决于信号发射时间,也就是取决于时延τ,本文通过迭代求解的方法求解上述方程,从而获得每个采样点的精确时延。
3 单通道双模信号产生的基本思想
3.1 上变频方案选择
由于GPS系统L1信号的载波为1575.42MHz,带宽约为2MHz[6],北斗 B1信号的载波为1561.098MHz,带宽为约为 4MHz[7],二者不在同一频段,因此一般需要两个通道,分别播放GPS和BDS信号。本文提出一种单通道的系统设计方案。该方案基于单通道的方式播放射频信号,由于只经过一次统一的上变频,因此上变频的频率只有一个值,设为fo,在此条件下,可供选择的系统方案有以下两种。
方案一:GPS信号和BDS信号同时采用相同的单边带,可选择上边带或者下边带。该方案优点是结构简单,信号干扰小,缺点是GPS和BDS的中频信号必须相差14.322MHz,对于本文利用软件产生中频信号而言,采样率过高,时间成本巨大,故放弃此方案。
图1 GPS信号和BDS信号同时采用上边带或者下边带
方案二:GPS信号和BDS信号采用不同的单边带。该方案缺点是结构复杂,容易产生信号干扰,fo可选范围小;优点是由于fo在fL1与fB1之间,因此GPS和BDS的中频信号十分接近,可以显著降低数字信号的带宽。对于软件产生中频信号而言,带宽越低,采样率越低,能节省信号模拟时间,这正是本方法的优势所在。
图2 GPS信号采用上边带,BDS信号采用下边带
3.2 中频参数选择
由于GPS L1信号和北斗B1信号的载波与带宽具有一定差异,设计者需要尽可能地缩小二者中频信号的频差,同时尽可能地减少二者之间的信号干扰,因此中频信号载波与fo之间需要满足以下关系。
GPS中频信号载波fL1IF与fo需要满足的约束关系为
BDS中频信号载波fB1IF与fo需要满足的约束关系为
为了尽可能地减小GPS和BDS中频信号载波的差值,需要求满足上述条件下的目标函数的最优解,目标函数如下所示:
能够使目标函数的值最小的解,即为最优解。如果采用单边带调制,那么可以弱化上述条件,增加fo的可选范围,对于单边带信号,约束条件可以弱化为下式:
此时的最优解为
为了提高信号的质量同时又能减少时间成本,本文最终选择以下参数:将GPS中频信号载波频率设置为6.42MHz,经过滤波器只保留其上边带,将BDS中频信号载波频率设置为7.902MHz,经过滤波器只保留其下边带,将二者合成的中频信号经过1569MHz上变频,此时GPS信号载波变为1575.42MHz,BDS信号的载波变为1561.098MHz。
3.3 多普勒频移的方向与上下边带的关系
多普勒频率偏移是由于卫星与接收机间的相对运动而产生的。在信号模拟的过程中,上下边带经过了相同的调制,只有一个边带与多普勒频移的变化规律相一致,另一个边带的变化规律与多普勒频移相反。为了保证信号模拟的多普勒变化规律相一致,在中频信号的模拟的过程中,需要根据不同的边带,设置相应的多普勒频移变化方向。在本方案中,GPS信号保留其上边带,多普勒变化取正向;BDS信号保留其下边带,多普勒变化取反向,二者的多普勒频移变化方向相反,在最终合成的射频信号中,二者均符合真实的变化规律。
4 系统实现与验证
4.1 信号模拟验证
1465L-V是一款微波矢量信号发生器。利用该信号发生器可以播放本方法产生的双模信号。用户通过上位机的人机交互界面设置仿真场景,CPU与GPU联合产生数字中频信号,
经PCIe传输至1465L-V的DDR中,FPGA根据数字信号的编码规则从DDR中读取数据并进行处理,最终通过天线播放射频信号。
图3 1465L-V信号模拟过程
4.2 GPU优化
由于在信号模拟的过程中,时间模型的计算会产生大量的并行计算,在一个CPU上编程实现的时间开销是非常巨大的,因此选择CPU+GPU的架构进一步减少计算时间。
GPU最初是为图像处理任务而设计的,但是近年来,考虑到其惊人的计算能力,越来越多的领域使用GPU加速[8]。GPU可看作是一种协处理器或者加速卡,其内部分为若干线程格(Grid),线程格被分为许多线程块(Block),每个线程块被分为若干个线程(Tread),线程是程序执行的基本单元[9~11]。在CUDA平台下,可分为设备与主机,分别指代的是GPU和CPU。设备通过内核函数创建大量的线程,并将内存映射到线程[12],多线程同步工作完成并行运算并将结果传送给主机,二者通过PCIe实现通信。为了提高GPU上的信号生成的效率需要最小化地传输数据和最大化地利用多处理器[13]。
在软件架构设计上,由CPU执行控制流程的工作,将采样点的信号时延的求解以及信号调制过程交由GPU端执行。本方法将采样点以时间为单位分段,在每个时间段内均匀选取四个采样点,根据信号时间模型求解每一点的精确时延,然后利用曲线拟合的方法,在该段通过一个三阶曲线进行拟合,该段内每一个采样点可以通过三阶多项式进行求解,经过上述步骤,可将逻辑复杂的时延求解过程转换成每个采样点的简单运算,之后将参数传入设备端,调用核函数完成并行计算,最终实现降低软件模拟时间的需求。
4.3 FPGA信号处理
产生好的数字中频信号需要经过FPGA的一系列处理,变成可供矢量信号发生器播放的信号。该过程包括数据读取、采样率变换、基带信号处理和数模转换四个过程。由于FPGA与DAC模块的系统时钟均为200MHz,无法保证采样率被200MHz整除,因此选用Farrow重采样滤波器实现信号采样率的动态变换。基带信号处理包括了混频和带通滤波:为了尽可能地降低软件模拟时的数字中频信号的采样率,在软件端将GPS和BDS信号的中频载波统一降低了5MHz,因此需要通过FPGA对基带信号进行混频还原;为了减少对调制后射频频段其他信号的影响,在数字中频信号被送入DAC之前还需进行带通滤波处理。经过基带信号处理之后的数字信号被送入DAC,经射频模块调制到射频,最终通过天线发射。
4.4 接收定位验证
射频信号可以利用接收机进行接收验证。本文使用的接收机是UTREK210,这是一款可以同时接收GPS和BDS信号的双模接收机,可以同时观测到这两种信号的捕获与定位情况:图4显示了接收机对双模信号的捕获情况,从图中可以看到该接收机捕获了6颗GPS卫星,8颗BDS卫星,这表明播放的双模信号没有产生明显的干扰,有效地模拟了卫星导航信号的扩频码与动态多普勒信息;图5显示了接收机从导航信号中所提取的仰角和星座图,从图中可知接收机通过对导航信号的捕获跟踪后,成功地提取出了导航电文;图6显示了接收机最终的定位结果,定位结果与预设的位置坐标一致,定位时间也与仿真时间相同。由此结果可知,本文所给出的单硬件通道的GPS/BDS双模导航信号模拟方法能够有效地模拟真实导航卫星信号,具有很好的实用性。
图4 接收机卫星通道
图5 接收机卫星星座图
图6 接收机定位结果
5 结语
本文旨在给出一种基于软件的GPS/BDS双模信号模拟方法。对于两种信号频段的差异,提出了一种新型的单硬件通道解决方案,将GPS与BDS的中频信号利用CPU+GPU架构联合产生,之后对其进行统一地信号处理。该方案大大减少了软件模拟时的中频信号带宽,克服了多通道资源消耗大,设计复杂和传统单通道带宽大,采样率高的缺点,大大提高了软件模拟信号的速度,经过信号发生器的播放,验证了该方案的可行性。通过分析单硬件通道处理双模导航信号的优势,可以发现该方法具有很好的应用前景。随着软件端信号模拟速度的提高,有望利用软件实现卫星导航信号的实时模拟:在软件端和硬件端的之间设置一个缓冲区,将一段生成好的信号导入缓冲区,通过乒乓操作安全无缝地接收数据流供硬件端播放。理论上只要中频信号的生成速度不小于信号的实际播放速度即可实现,该功能的实现取决于GPU的加速性能和采样率的大小。除了在双模系统中使用本方法,也可以在多模卫星导航信号模拟系统中使用。这对于软件实现信号模拟的实时播放有着非比寻常的意义,有望实现软件模拟源完全替代硬件模拟源的可能。