APP下载

基于GPU的GNSS信号跟踪设计与实现

2014-08-21唐小妹陈华明孙广富

全球定位系统 2014年5期
关键词:伪码环路线程

张 尧,唐小妹,陈华明,孙广富

(国防科技大学电子科学与工程学院卫星导航定位技术工程研究中心,湖南 长沙 410073)

0 引 言

软件接收机在GNSS信号处理方面发挥着重要的作用,然而传统的软件接收机均是基于CPU(中央处理单元)实现,效率低下,是实时处理与商业推广的瓶颈所在。信号的跟踪具有大量的并行运算,而且也是实时性要求最为严格的地方,减小跟踪部分的耗时是解决软件接收机实时性的核心。图像处理单元(GPU)是高度并行化的处理器,在并行计算领域有着广泛的应用,将信号的跟踪采用GPU实现可以大大提升接收机的处理效率。目前,国外有很多学者已经开始了基于GPU的软件接收机研究[1-2],国内研究则相对较少,且主要集中在信号捕获的GPU实现上[3-4],信号跟踪的GPU实现仍很少见。本文将信号跟踪采用GPU实现,同时给出了这种实现方案的数据更新、分配策略,以及生成伪距观测量时与传统方法相比做出的调整。仿真的结果表明:采用该方法可实现信号跟踪,且其效率相比传统的软件接收机跟踪提升了112.5倍。

1 信号跟踪的GPU实现

信号的跟踪分为载波跟踪和码跟踪,分别使用载波环和码环实现,其中码环一般采用DLL实现。跟踪环的结构图如图1所示[5],其中数字中频信号和本地正余弦载波相乘,剥离信号中的载波,所得结果的同相和正交分量依次与超前、即时和滞后支路的本位伪码相乘,剥离伪码,进而进行积分清零,得到相关结果。相关结果可用于码环和载波环的更新。

采用并行处理代替原始的串行处理时,由于各个通道可利用的数据是相同的,且每个通道每次更新所需的数据量不同,因此需要研究相应的数据更新和对各个通道的分配策略,下面将逐一阐述、分析。

1.1 数据更新策略

将跟踪放在GPU上执行时,所有通道可用的数据是相同的。但是由于各颗卫星之间的码相位不同,每个通道利用的数据在全局存储器中的起始、终止位置不同。因此在GPU中处理此问题时,需要每次缓存足够长的数据以满足各颗卫星的需要。采取的方案是缓存4 ms的数据,具体如图2所示。其中GMi(i=1、2、3、4)表示一个连续的1 ms数据块,且它们在时间上是连续的,开始跟踪时大部分卫星所需要处理的数据在中间2 ms.由于多普勒的存在,一个码周期的数据时长不等于严格的1 ms,GM1和GM4中存储的1 ms数据用以保证当跟踪足够长的时间后,每颗卫星更新处理的数据仍然在这4 ms之内。

图1 接收机跟踪环路结构

数据每次更新时,首先丢弃GM4中的数据,GMi(i=1、2、3)替换掉GMi+1中的数,GM1中的数据利用从CPU中最新复制的数据更新。

图2 GPU中数据的更新策略

1.2 数据分配策略

各个通道数据分配的关键在于确定每个通道利用的采样点在4 ms数据中的起始位置和数据长度。以图3为例,假设某次更新时,GPU全局存储器中的数据时长总共为4 ms,一共跟踪5颗卫星,每颗卫星所需的数据在4 ms中的起始位置分别为pi,假设上次更新后的残留码相位分别为ri,码频率为fci(i=1,2,3,4,5),码长为Lc,信号采样率为fs,则下次每个通道读数时,对应的起始位置为

pi=pi+(Lc-ri)·fs/fci-Lu.

(1)

图3 GPU中各通道数据分配策略

ri、fci等参数可以通过环路更新获取,其原理和单通道并行处理相同。在GPU中进行数据分配和更新的独特之处在于对起始位置pi的标记。

1.3 跟踪的GPU实现

跟踪环设计的关键在于环路鉴别器和环路滤波器参数的设计,由于本文的重点是采用GPU实现信号跟踪,因此忽略这方面的设计。在此基础上,基于GPU的跟踪环路结构如图4所示。

图4 基于GPU的跟踪环结构图

图5 规约算法示意图

整个跟踪过程可以分为4个阶段,其中Si(i=1、2、3、4),表示各个阶段的输入信号。其中S1数据的更新和对各个通道的分配在1.1和1.2节中已做详细说明。每个阶段的功能和GPU网格配置如下。

阶段1:去载波。原始信号和本地产生的载波信号相乘以实现接收信号的载波剥离,本地载波的频率由载波环路产生,此阶段GPU的块数设置为2N,其中N为跟踪的卫星数目,2表示同相和正交分量;

阶段2:去伪码。经载波剥离的信号和本地产生的伪码相乘以实现接收信号的伪码剥离,本地伪码的频率和初相位由码环产生,此阶段GPU的块数设置为6N;

阶段3:相干积累。对解调和解扩后的基带信号S3进行相干累加,得到各个超前、即时、滞后支路的同相分量和正交分量,此阶段GPU的块数设置为6N;

阶段4:环路更新。包含码环和载波环的更新,此阶段的块数设置为1,线程设置为2N,其中一半负责对码环的更新,一半负责对载波环的更新。

除阶段4外,其余每个阶段每个块中的线程数可以设置为最大以提升效率,对于NVIDIA GT640,此值为1 024.

1.4 相干积分的加速策略

对于1.3节中的积分求累加和的环节,GPU中常规的算法是对数据进行分组,每个线程处理指定的一组数据之和,得到的结果存放在共享存储器中,最后利用某一个线程对该共享数组求和(例如利用每块中的第一个线程求和)。利用某一线程对共享数组求和非常耗时,同时也浪费了很多可用的线程资源。为了提升处理的效率,可以采用规约算法实现[6],其具体方法如图5所示。

图5中Ti(i=1、2、3…9、10)表示规约的第i步,每一行的数字表示块中的线程序号,弧形箭头连接的两个数表示将利用连接的前一个线程将共享存储器中对应位置的两个数相加。采用这种操作,可以是原来1 024次相加变为10次相加,大大提升程序效率。

1.5 同一时刻码相位预测

生成不同卫星的伪距观测量时,需要从跟踪环路中提取不同通道当前时刻的码相位。直接提取不同卫星指定时刻的码相位会导致程序的效率减低,因此,必须在GPU外(CPU中)对同一时刻的码相位进行预测。

各个通道跟踪的卫星分别记为Sati(i=1、2、…N),每个通道上一次跟踪所得的伪码频率为fcodei(i=1、2、…N),以Sat1为基准,最近一次更新时各通道处理数据的指针在数据文件中的分别指向第pi(i=1、2、…N)个采样点,每个通道跟踪的码相位残差分别为ri(i=1、2、…N),如图6所示则各个卫星通道在t0时刻跟踪的码相位分别为

CPi=ri+(p1-pi)/fs·fcodei.

(2)

图6 观测量时间同步示意图

2 实验验证

仿真生成北斗二代B1I信号,信号的采样率为20 MHz,中频为4.09 MHz,信号中仅有1号卫星,下采样采用4倍抽取进行,NVIDIA GT640显卡作为试验的GPU平台。对信号捕获后进行后续的跟踪,跟踪的结果如图7所示。图7(a)是(I,Q)散点图,(I,Q)散点集中在与Q轴对称的I轴附近,说明能稳定地跟踪载波相位;EPL(超前、即时、滞后支路)相关结果图7(b)中,即时支路的相关结果比超前和延迟支路的结果明显高出,说明环路能稳定地锁定码相位。分析说明本文给出的基于GPU的跟踪方法能稳定地进行信号跟踪。

在保证环路能稳定工作的基础上,分析基于GPU的跟踪算法的实时性。仿真信号中分别生成包含1、5、8、12颗卫星的仿真信号,其余参数保持不变,采用GPU对其进行跟踪,其耗时如表1所示。

表1 基于GPU的信号跟踪耗时

表2 基于GPU和CPU的信号跟踪耗时比较

为了进一步突出体现出基于GPU信号跟踪在效率上的优势,对上述的仿真信号利用基于CPU的传统跟踪方法进行跟踪,并且和基于GPU的信号跟踪算法进行对比,得到的每毫秒信号处理耗时如表2所示。

图7 基于GPU的信号跟踪结果(a)(I,Q)散点图;(b)EPL各支路相关结果的幅值

从上面的比较可以发现,基于GPU的信号跟踪,其耗时随着跟踪卫星数目的增加并不会有较大的变化,但是基于CPU的信号跟踪,其耗时随着卫星数目的增加成正比例增加,这是GPU信号跟踪优于CPU信号跟踪一个显著的地方。

3 结束语

结合导航信号跟踪的并行运算特点和GPU并行运算结构,实现了基于GPU的跟踪算法,其中涉及跟踪各环节的GPU实现原理及与之相适应的数据更新、分配策略、观测量生成方法等。仿真结果表明:该方法能可靠地实现信号跟踪,并且其跟踪效率相比传统的软件接收机跟踪方法提升了112.5倍。

[1]KNEZEVIC A.Co-processor aiding for real-time software GNSS receivers[D].Canada.The University of Calgary, 2010.

[2]HOBIGER T,GITOH T,AMAGAI J.A GPU based real-time GPS software receiver[J].GPS Solut,2010(14):207-216.

[3]王可东,李鸿田,侯绍东,等.GPS信号FFT捕获的GPU实现[J].全球定位系统,2011,36(6):12-66.

[4]杨 静,刘一霏.基于GPU的GPS 信号并行捕获[J].中国惯性技术学报,2010.8,20(4):430-434.

[5]KAPLAN E D, HEGARTY C J. GPS原理与应用[M]. 2版.寇艳红译. 北京: 电子工业出版社.

[6]张 舒,褚艳利,GPU高性能运算之CUDA[M]. 北京:中国水利水电出版,2009.

猜你喜欢

伪码环路线程
实时操作系统mbedOS 互斥量调度机制剖析
外差式光锁相环延时对环路性能影响
一种大扩频比突发直接序列扩频信号同步方法
DCS系统环路通信故障导致机组跳闸的原因分析及改进措施
直接序列扩频伪码同步技术的研究与实现
基于国产化环境的线程池模型研究与实现
基于重采样技术的短码直扩信号伪码估计
选取环路切换策略的高动态载波跟踪算法研究*
伪码体制脉冲串引信信号参数提取方法
惯导辅助的北斗接收机深组合环路跟踪方法研究