发明名称 一种基于GPU的并行导航卫星信号跟踪方法及其系统
摘要 本发明公开了一种基于GPU的并行导航卫星信号跟踪方法及其系统,方法为:在CPU-GPU上构建多通道载波跟踪环和伪码跟踪环;CPU负责数据读取、环路鉴相及控制等功能,而GPU负责大量数据序列的相关计算及积分求和功能。GPU在完成积分求和计算时,采用两级二叉树计算结构;CPU上的载波鉴相器和CA码鉴相器计算误差并控制本地载波相位和CA码相位做出修正,实现跟踪。本发明弥补硬件接收机系统灵活性差、黑盒操作、不支持多种导航卫星信号制式等缺点;同时增强软件接收机处理速度及精度,降低软件接收机成本,使得GNSS软件接收机能够实时跟踪多通道的导航卫星信号。
申请公布号 CN103278829A 申请公布日期 2013.09.04
申请号 CN201310163718.8 申请日期 2013.05.06
申请人 东南大学 发明人 郭骎;何峰;林艳
分类号 G01S19/24(2010.01)I 主分类号 G01S19/24(2010.01)I
代理机构 南京苏高专利商标事务所(普通合伙) 32204 代理人 李玉平
主权项 1.一种基于GPU的并行导航卫星信号跟踪方法,其特征在于,包括步骤如下: 1)CPU根据捕获到的卫星载波频率和CA码相位结果分别初始化N个通道的载波频率值和码相位值; 2)CPU上的CA码生成模块通过循环移位的方法生成所有被跟踪卫星信号的伪码; 3)在GPU显存中开辟一段空间,并将所有被跟踪卫星信号的伪码从内存中传入GPU显存中;在GPU显存中另外开辟一段空间,为存放中频采样数据预留; 4)CPU根据载波频率、中频采样速率及码片速率初始化载波步长和伪码步长; 5)为同时跟踪N个通道的卫星1毫秒信号,CPU根据码相位计算出需要处理中频采样数据的长度; 6)CPU将中频采样数据从内存传入显存,在GPU上分配M<sub>1</sub>个并行块,每个并行块分配M<sub>2</sub>个并行线程; 7)线程进入GPU并行执行,每次执行完成一个卫星1毫秒信号的跟踪;在每个并行块中的共享内存中预留足够空间用于存储载波序列、CA码序列、中频采样数据序列对位相乘结果;在寄存器为载波相位和幅度以及其他中间变量预留空间; 8)在GPU的每个线程中并行执行,计算出自身线程号,根据线程号计算对应载波幅值以及超前、滞后、同相三组CA码相位,将中频采样数据与载波的同相和正交分量分别相乘,得到两个结果,每个结果再分别与三组CA码相乘;每个线程将其计算得到的六个结果存放在共享内存中; 9)线程同步,在所有并行线程完成计算后,要对相关计算得到的六个结果序列进行积分求和;分两步进行,先计算同一并行块中所有线程的结果求和,再计算所有并行块的结果求和; 10)步骤10)和步骤11)针对六个结果序列的其中一个进行描述,其余五个操作完全相同;计算同一并行块中所有线程的结果求和,采用二叉树计算结构;为避免引起共享内存的bank conflict,每个计算周期都将共享内存中存储的前一半线程计算结果与后一半线程计算结果相加,结果暂存在共享内存中,一共<img file="FDA00003149143800021.GIF" wi="213" he="79" />个计算周期得到一个结果,将此结果传入GPU显存中;所有并行块都得到一个结果,构成一个新的暂存于显存中的结果序列;11)将显存中的结果序列传入一个并行块的共享内存中,以同样的二叉树计算结构计算其总和,最后的到一个最终结果,此结果就是相关计算后的长序列的积分求和; 12)经过步骤10)和步骤11),共得到六个积分求和结果,从显存传入内存; 13)CPU通过COSTAS环的载波鉴相器和伪码跟踪环采用非相干延迟锁相环的CA码鉴相器计算误差信息,反馈给载波NCO和CA码NCO,从而控制本地载波相位和本地CA码相位; 14)重复步骤7)到步骤13)N次,完成N颗卫星1毫秒信号的并行跟踪; 积分清零,重复步骤5)到步骤14),完成下1毫秒导航卫星信号的多通道并行跟踪。 
地址 210096 江苏省南京市玄武区四牌楼2号