一种基于CPU+GPU异构的并行GNSS矢量接收机实现方法

文档序号:34857630发布日期:2023-07-23 00:36阅读:65来源:国知局
一种基于CPU+GPU异构的并行GNSS矢量接收机实现方法

本发明涉及卫星导航高性能接收机,具体为一种基于cpu+gpu异构的并行gnss矢量接收机实现方法。


背景技术:

1、全球卫星导航系统能为其覆盖范围内的用户提供高精度的三维位置、速度和时间信息,目前已经成为了全球无缝隙连续导航的首选技术之一。传统的基于标量跟踪环路的接收机因结构简单、易实现等优点被广泛应用。然而随着gnss应用越来越广泛,用户接收机也将面临着密集城区和室内等复杂环境,此时stl的导航性能会严重下降甚至无法工作。

2、基于矢量跟踪环路的接收机,简称矢量接收机,其跟踪环路的参数来自于导航解的反馈,实现了各跟踪通道之间的信息共享,这使得其可以用其他质量较好的信号来辅助质量较差的信号,因此矢量接收机可以提高复杂环境下的导航性能。然而,矢量接收机跟踪环路对导航解的依赖也使其运算量大大增加,使其难以被推广应用。


技术实现思路

1、本发明的目的在于提供一种基于cpu+gpu异构的并行gnss矢量接收机实现方法,以解决上述背景技术中提出的问题。

2、为实现上述目的,本发明提供如下技术方案:一种基于cpu+gpu异构的并行gnss矢量接收机实现方法,包括以下步骤:

3、第一步骤:在cpu中预测当前历元的接收机状态先验值;

4、第二步骤:在cpu中计算各跟踪通道本地参考信号的同步参数,并将这些参数送至gpu;

5、第三步骤:利用gpu多线程方式并行生成各跟踪通道超前、即时和滞后码对应的本地参考信号;

6、第四步骤:利用gpu多线程块方式和多流技术并行执行所有相关器,得到各相关值并送入cpu;

7、第五步骤:执行矢量接收机的码/载波鉴别,得到矢量接收机的观测量,最后将观测量送入扩展卡尔曼滤波器得到导航解。

8、优选的,所述第一步骤中,所述的在cpu中预测当前历元的接收机状态先验值的方法是:

9、令表示接收机的状态矢量,其中pk为三维位置矢量,为三维速度矢量,δtk为钟差,为钟漂,下标k表示第k个历元,在已有接收机运动模型先验信息的条件下,可以用k-1时刻接收机的导航解来预测k时刻接收机的状态矢量其中上标-和+分别表示状态先验值和后验更新值。

10、优选的,所述第二步骤中在cpu中计算各跟踪通道本地参考信号的同步参数,并将这些参数送至gpu的方法是:

11、首先,从星历中解算出当前各卫星的三维位置矢量和三维速度矢量其中上标i=1,2,…,l表示第i颗卫星对应的参数,l表示可见卫星数量。然后计算得到各卫星与接收机之间的方向向量据此计算出各跟踪通道本地参考信号的码相位和载波频率可以表示为:

12、

13、

14、其中表示在δt时刻内卫星的位移矢量,c为光速,fl1=1575.42mhz为卫星信号载波频率。最后,在gpu上申请一定字节的线性内存,将中频信号x(n)、各跟踪通道的码相位和载波频率等同步参数从cpu内存拷贝到gpu内存中。

15、优选的,所述第三步骤中利用gpu多线程方式并行生成各跟踪通道超前、即时和滞后码对应的本地参考信号的方法是:

16、根据卫星信号采样点数n在gpu中分配若干个线程,利用步骤2)得到的各跟踪通道的码相位和载波频率等同步参数,各线程并行生成本地码信号和本地载波信号。从而得到l个卫星跟踪通道的超前、即时和滞后码三个支路的本地参考信号

17、优选的,所述第四步骤中利用gpu多线程块方式和多流技术并行执行所有相关器,得到各相关值并送入cpu的方法是:

18、采用gpu多线程块方式完成超前、即时和滞后三个支路的相关运算,这需要在gpu中分配三个线程块,各线程块并行执行一个跟踪通道的超前、即时和滞后三个支路对应的本地参考信号se,k(n),sp,k(n),sl,k(n)和卫星信号x(n)之间的相关运算,从而得到一个跟踪通道的相关值ae,k,λp,k,λl,k。

19、同时利用cuda流技术并行执行不同跟踪通道的相关值计算,这需要构建与可见卫星数量l相同的异步、独立的cuda流,每个cuda流执行一个跟踪通道的超前、即时和滞后三个支路的相关器,l个cuda流并行完成所有跟踪通道相关值的计算,从而得到所有跟踪通道的相关值并将所有相关值从gpu内存传送到cpu内存中。

20、优选的,所述第五步骤中执行矢量接收机的码/载波鉴别,得到矢量接收机的观测量,最后将观测量送入扩展卡尔曼滤波器得到导航解的方法是:

21、将第四步骤中得到的各跟踪通道的相关值通过矢量接收机的码/载波鉴别器输出码相位误差值和载波频率误差值据此计算出矢量接收机的观测量zk,最后将观测量zk送入扩展卡尔曼滤波器得到导航解

22、与现有技术相比,本发明的有益效果是:

23、1、本发明通过cpu+gpu异构计算的方式,同时利用了gpu多线程、多流和多线程块技术来并行计算各个卫星跟踪通道的超前、即时、滞后三个支路的相关值,能够大幅度提高gnss矢量接收机的运行效。



技术特征:

1.一种基于cpu+gpu异构的并行gnss矢量接收机实现方法,包括以下步骤,其特征在于:

2.根据权利要求1所述的一种基于cpu+gpu异构的并行gnss矢量接收机实现方法,其特征在于:所述第一步骤中,所述的在cpu中预测当前历元的接收机状态先验值的方法是:

3.根据权利要求1所述的一种基于cpu+gpu异构的并行gnss矢量接收机实现方法,其特征在于:所述第二步骤中在cpu中计算各跟踪通道本地参考信号的同步参数,并将这些参数送至gpu的方法是:

4.根据权利要求1所述的一种基于cpu+gpu异构的并行gnss矢量接收机实现方法,其特征在于:所述第三步骤中利用gpu多线程方式并行生成各跟踪通道超前、即时和滞后码对应的本地参考信号的方法是:

5.根据权利要求1所述的一种基于cpu+gpu异构的并行gnss矢量接收机实现方法,其特征在于:所述第四步骤中利用gpu多线程块方式和多流技术并行执行所有相关器,得到各相关值并送入cpu的方法是:

6.根据权利要求1所述的一种基于cpu+gpu异构的并行gnss矢量接收机实现方法,其特征在于:所述第五步骤中执行矢量接收机的码/载波鉴别,得到矢量接收机的观测量,最后将观测量送入扩展卡尔曼滤波器得到导航解的方法是:


技术总结
本发明公开了一种基于CPU+GPU异构的并行GNSS矢量接收机实现方法,包括以下步骤:第一步骤:在CPU中预测当前历元的接收机状态先验值;第二步骤:在CPU中计算各跟踪通道本地参考信号的同步参数,并将这些参数送至GPU;第三步骤:利用GPU多线程方式并行生成各跟踪通道超前、即时和滞后码对应的本地参考信号;第四步骤:利用GPU多线程块方式和多流技术并行执行所有相关器,得到各相关值并送入CPU。本发明使用效果好,本方案采用CPU+GPU异构计算的方式,同时利用了GPU多线程、多流和多线程块技术,能够大幅度提高GNSS矢量接收机的运行效率,为其工程实时运行奠定基础。

技术研发人员:贾琼琼,李伟鹏,吴仁彪
受保护的技术使用者:中国民航大学
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1