CN108073455B - 一种基于gpu的卫星导航信号并行模拟方法 - Google Patents

一种基于gpu的卫星导航信号并行模拟方法 Download PDF

Info

Publication number
CN108073455B
CN108073455B CN201611009712.5A CN201611009712A CN108073455B CN 108073455 B CN108073455 B CN 108073455B CN 201611009712 A CN201611009712 A CN 201611009712A CN 108073455 B CN108073455 B CN 108073455B
Authority
CN
China
Prior art keywords
signal
gpu
calculation
satellite
satellite navigation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611009712.5A
Other languages
English (en)
Other versions
CN108073455A (zh
Inventor
宋茂忠
熊骏
杜蒙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing University of Aeronautics and Astronautics
Original Assignee
Nanjing University of Aeronautics and Astronautics
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing University of Aeronautics and Astronautics filed Critical Nanjing University of Aeronautics and Astronautics
Priority to CN201611009712.5A priority Critical patent/CN108073455B/zh
Publication of CN108073455A publication Critical patent/CN108073455A/zh
Application granted granted Critical
Publication of CN108073455B publication Critical patent/CN108073455B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/23Testing, monitoring, correcting or calibrating of receiver elements
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/35Constructional details or hardware or software details of the signal processing chain
    • G01S19/37Hardware or software details of the signal processing chain

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

本发明公开了一种基于GPU的卫星导航信号并行模拟方法,以解决卫星导航技术领域的测试信号产生过程中计算速度慢的问题,这种方法采用CPU+GPU的混合异构计算模式,引入GPU作为信号合成的加速部件,配合CPU共同完成程序运行。其中CPU负责用户数据读取、可见星判断、模型计算等功能,GPU负责高采样率下传播时延计算、查表计算、信号相乘与累加等功能。在内存优化上,扩频码和导航电文使用纹理内存,三阶变化率参数和稀疏采样传播时延使用常量内存,加速了程序的内存访问速度。最终,提高了卫星导航信号模拟的速度。

Description

一种基于GPU的卫星导航信号并行模拟方法
技术领域
本发明涉及一种基于GPU加速的卫星信号模拟源实现方法,属于卫星导航与测试领域。
背景技术
随着卫星导航技术的日益普及和广泛应用,对相关的产品研制测试评估的提出了更高要 求,卫星导航信号模拟源已经成为重要的测量设备。传统卫星导航信号模拟方法主要有两种: 一种是纯硬件组合的卫星导航模拟源,这种模拟源性能稳定,但是成本高,不易于维护和升 级;另一种是上位机软件与播放硬件组合的模拟源,具有低成本、易升级、可便携的优点。 对于第二种模拟源方案,其大致实现流程为:上位机软件生成中频信号文件,播放硬件读取 该文件并将中频信号上变频至射频信号,最终通过天线播放。其中,中频信号文件生成是卫 星导航信号模拟源的核心技术,在该过程中需要庞大的运算量来生成信号,这给CPU带来了 极大的运行负担,大大降低了模拟源的使用效率,导致传统上位机软件在信号采样率、处理 速度、计算精度等方面难以满足复杂的应用需求。
自GPU发布以来,一直保持着高速发展的状态,目前,GPU可以提供数十倍甚至上百倍 于CPU的浮点计算性能。因此,GPU在很多工程领域获得了应用,它能够大幅度提升工程计 算的效率。本发明利用GPU的大规模并行计算能力,实现了高效率的卫星导航信号模拟方法, 提升了卫星导航信号生成速度和效率。
发明内容
发明目的:本发明提供了一种高效率的卫星导航信号模拟方法,使用GPU对模拟运算进 行加速,降低了卫星导航模拟源成本;同时提升了卫星导航信号生成速度和采样率。
技术方案:采用CPU+GPU的混合异构计算模式,引入GPU作为信号合成的加速部件,配 合CPU共同完成程序运行。其中CPU负责程序总体调度和包含复杂逻辑的算法运算,GPU负 责可并行化的大规模数据计算,根据硬件特性予以适当优化,步骤如下:
(1)CPU读取起始参数和初始化信息,包含模拟信号时长、模拟坐标、导航电文等数据;
(2)以模拟坐标作为站心坐标系原点,排除仰角低于10°的卫星,并生成可见星扩频码;
(3)根据可见星排除结果,在CPU上计算每颗可见星的数据,生成稀疏采样时刻的信号 传输时延和三阶变化率参数;
(4)在GPU上开辟输入参数的空间,并将步骤(2)、(3)得到的数据从内存传入GPU显存,稀疏采样时刻信号传播时延和三阶变化率参数存入常量内存,可见星扩频码和导航电 文存入二维纹理内存;
(5)设计GPU线程,步骤(6)(7)(8)的核函数均采用此线程结构。即:N个并行线 程块组成,每个线程块均为2维,每个线程块由N_CH×M个线程组成;
(6)调用核函数,结合稀疏采样时刻信号传输时延和三阶变化率参数,完成所有信号采 用时刻的传输时延计算;
(7)根据步骤(6)的计算结果确定信号的码相位和载波多普勒,并生成模拟中频信号 存在GPU显存中;
(8)将多颗星的模拟中频信号相加,合成为一个信号,经过量化后将数据回传本地内存;
(9)CPU将数据写入文件并通过主函数判断信号是否生成完毕,如果没有,回到步骤(4) 继续循环;如果完成,则程序结束,并释放GPU上开辟的内存空间。
有益效果:
(1)信号参数计算,查表运算与信号调制均采用多通道并行计算,能够同时完成多颗星 的数据运算,充分利用了GPU运算性能,同时对不同的计算参数采用不同的内存访问方式, 降低了内存访问延迟,使基于GPU的卫星导航信号模拟算法相比传统算法的平均加速比达到 20倍以上;
(2)可模拟单点、动态、高动态卫星导航信号,且信号参数可调,能够适用于多种仿真 环境的需求;
附图说明
图1本发明的系统架构图。
图2本发明的CPU-GPU数据通信模型。
图3本发明的线程设计模型。
图4本发明的程序执行流程。
图5本发明的码相位计算流程。
图6本发明的测试系统图。
图7本发明的验证结果图。
具体实施方式
为了阐明本发明的技术方案及技术目的,下面结合附图及具体实施方式对本发明做进一 步的介绍。
图1为本发明的系统框图,采用CPU+GPU的混合计算结构,CPU完成用户设置的参数读取和信号模型计算,GPU完成信号合成计算。
硬件配置如下:
CPU:Intel(R)Core(R)CPU i5 4200m@2.5G
GPU:NVidia GeForce GT740M
软件配置如下:
操作系统:Window7 64位
编程环境:Microsoft Visual Studio 2013
SDK:NVidia CUDA 7.5
根据以上软件和硬件配置,设置信号采样率为16.369MHz,信号中频为3.996875MHz, 使用C编译的传统卫星导航信号模拟方法,生成5分钟北斗卫星导航系统B1频点信号所需 时间为80.13分钟;而采用CUDA7.5编译的基于GPU的卫星导航信号模拟方法,所需时间 仅为3.83分钟,加速比达到20.92。
图4为本发明的程序执行流程图,其实现步骤如下:
1.用户参数读取模块包含:用户坐标信息、导航电文信息、最低可见星仰角、对流层修正 使能、电离层修正使能和噪声修正参数。
用户参数读取模块工作流程为:
(1)读取用户坐标信息,静态坐标为经度纬度高度,动态坐标来自KML文件或者定位 接收机输出的NMEA数据;
(2)导航电文信息来自RINEX文件;
(3)最低可见仰角为卫星最低的可见角度,一般设定为10°;
(4)对流层修正使能、电离层修正使能分别为这两种误差修正的开关参数,噪声修正参 数的单位为分贝(DB)。
2.信号模型计算包含:可见星判断、信号误差模拟、稀疏采样时刻信号传播时延计算、三 阶变化率参数计算。
信号模型计算模块工作流程为:
(1)根据输入的用户坐标和导航电文信息,计算模拟时刻的卫星位置(计算方法以不同 的卫星导航系统的接口控制文件为准),以用户坐标为站心坐标系原点,计算所有卫星的仰角, 排除不可见卫星,并生成可见星的扩频码;
(2)根据输入的修正参数,模拟信号误差,计算稀疏采样时刻的信号传播时延τi
τi=τd+δtu-δts+I+T (1)
其中,δtu为接收机钟差、δts为卫星钟差、I为电离层延迟和T为对流层延迟;
(3)计算信号的三阶变化率参数υτ、ατ、ατ
Figure BSA0000136233010000041
其中,Δt为稀疏采样间隔时长,其值在低动态情况下设定为0.1s,高动态情况下设定为0.01s,τ0、 τ1、τ2、τ3为τi在相邻Δt时刻的值。
3.信号合成模块在GPU执行,CPU-GPU数据通信模型见图2,其输入参数包含:稀疏采 样时刻信号传播时延、三阶变化率参数、可见星扩频码、导航电文。
信号合成模块的工作流程为:
(1)在GPU上开辟显存空间,将CPU生成的数据传输到开辟的显存内,可见星扩频码和导航电文均存入二维纹理内存,扩频码对应纹理的维数为N_CH×NC/A,NC/A为一个周期 扩频码码元个数,N_CH为模拟的卫星通道个数,导航电文对应纹理维数为
N_CH×(Tsum*RB),Tsum为模拟信号总时长,RB为导航电文的传码率,稀疏采样时刻传播时 延和三阶变化参数均存入常量内存;
为GPU计算的核函数设计线程结构,以下步骤(2)(3)(4)(5)在计算时均采用此结构,由N个并行线程块组成,每个线程块为2维,由N_CH×M个线程组成,N_CH*M<1024, N的值由采样率fs和计算周期3Δt决定N=3fs*Δt/(N_CH*M),其结构如图3;
(2)GPU核函数通过三阶变化率参数计算任意采样时刻的传输时延τsample,每3Δt为一 个计算周期
Figure RE-GSB0000193564980000011
其中,Nt是3Δt内均匀采样的时间序列,t0为3Δt的起始时间点,Tc为采样间隔,n为 3Δt内的信号采样点个数,n≥0,τsample为3Δt内任意采样时刻的信号时延;
(3)根据τsample的值,使用查表模块确定信号的码相位,同时计算载波多普勒。要确定 信号发射时刻tT的码相位,可以将其拆分成三个部分,如图5:发射时刻前一个周内秒SOW1、 发射时刻距离SOW1的毫秒整数N和发射时刻在一个周期扩频码元NC/A内的码相位chip。
Figure RE-GSB0000193564980000012
要确定信号发射时刻tT的载波多普勒,可由信号传输时延τsample乘以卫星射频信号频率求 取。
(4)根据步骤(3)确认码相位和载波多普勒后,将所有通道内的扩频码、导航电文和 载波相乘,生成N_CH个通道的中频信号数据;
(5)并将所有通道的信号累加得到最终信号;
(6)对步骤(5)得到的最终信号进行量化,将量化得到的数据回传本地内存,然后写 入文件,并且判断信号是否生成完毕。如果信号生成没有完成,则重复步骤(2)(3)(4)(5) (6),如果模拟完成则释放显存并结束程序。
为了说明本发明的实用性与进步性,通过硬件接收机对该信号模拟方法进行测试。测试 系统图如图6所示,使用AV1443矢量信号播放器和Novatel OEM 615接收机对生成的文件 进行测试,首先将数据由电脑发送给AV1443矢量信号播放器,然后AV1443加载根据本发明 得到的北斗信号文件,并通过射频播放出来,最后使用OEM 615接收机对射频信号进行接收 机测试,结果如图7。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应 该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原 理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,本发明要求保护 范围由所附的权利要求书、说明书及其等效物界定。

Claims (1)

1.一种基于GPU的卫星导航信号并行模拟方法,其特征在于卫星导航信号模拟源采用GPU的多维并行结构实现了多颗卫星导航信号的并行模拟,其核心算法包括用户参数读取、信号模型计算和信号合成三大模块,三大模块算法过程如下,
用户参数读取模块工作流程为:
(1)读取用户坐标信息,静态坐标为经度纬度高度,动态坐标来自KML文件或者定位接收机输出的NMEA数据,
(2)导航电文信息来自RINEX文件,
(3)最低可见仰角为卫星最低的可见角度,一般设定为10°,
(4)对流层修正使能、电离层修正使能分别为这两种误差修正的开关参数,噪声修正参数的单位为分贝,
信号模型计算模块工作流程为:
(1)根据输入的用户坐标和导航电文信息,计算模拟时刻的卫星位置计算方法以不同的卫星导航系统的接口控制文件为准,以用户坐标为站心坐标系原点,计算所有卫星的仰角,排除不可见卫星,并生成可见星的扩频码,
(2)根据输入的修正参数,模拟信号误差,计算稀疏采样时刻的信号传播时延τi
(3)计算信号的三阶变化率参数υτ、aτ、aτ
信号合成模块的工作流程为:
(1)在GPU上开辟显存空间,将CPU生成的数据传输到开辟的显存内,可见星扩频码和导航电文均存入二维纹理内存,扩频码对应纹理的维数为N_CH×NC/A,NC/A为一个周期扩频码码元个数,N_CH为模拟的卫星通道个数,导航电文对应纹理维数为N_CH×(Tsum*RB),Tsum为模拟信号总时长,RB为导航电文的传码率,稀疏采样时刻传播时延和三阶变化参数均存入常量内存,
为GPU计算的核函数设计线程结构,以下步骤(2)(3)(4)(5)在计算时均采用此结构,由N个并行线程块组成,每个线程块为2维,由N_CH×M个线程组成,N_CH*M<1024,N的值由采样率fs和计算周期3Δt决定N=3fs*Δt/(N_CH*M),
(2)GPU核函数通过三阶变化率参数计算任意采样时刻的传输时延τsample,每3Δt为一个计算周期,
Figure FSB0000193564970000021
其中,Nt是3Δt内均匀采样的时间序列,t0为3Δt的起始时间点,Tc为采样间隔,n为3Δt内的信号采样点个数,τsample为3Δt内任意采样时刻的信号时延,
(3)根据τsample的值,使用查表模块确定信号的码相位,同时计算载波多普勒,要确定信号发射时刻tT的码相位,
(4)根据步骤(3)确认码相位和载波多普勒后,将所有通道内的扩频码、导航电文和载波相乘,生成N_CH个通道的中频信号数据,
(5)并将所有通道的信号累加得到最终信号,
(6)对步骤(5)得到的最终信号进行量化,将量化得到的数据回传本地内存,然后写入文件,并且判断信号是否生成完毕,如果信号生成没有完成,则重复步骤(2)(3)(4)(5)(6),如果模拟完成则释放显存并结束程序。
CN201611009712.5A 2016-11-11 2016-11-11 一种基于gpu的卫星导航信号并行模拟方法 Active CN108073455B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611009712.5A CN108073455B (zh) 2016-11-11 2016-11-11 一种基于gpu的卫星导航信号并行模拟方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611009712.5A CN108073455B (zh) 2016-11-11 2016-11-11 一种基于gpu的卫星导航信号并行模拟方法

Publications (2)

Publication Number Publication Date
CN108073455A CN108073455A (zh) 2018-05-25
CN108073455B true CN108073455B (zh) 2021-08-03

Family

ID=62163189

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611009712.5A Active CN108073455B (zh) 2016-11-11 2016-11-11 一种基于gpu的卫星导航信号并行模拟方法

Country Status (1)

Country Link
CN (1) CN108073455B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109471138B (zh) * 2019-01-11 2023-01-31 西安雷擎电子科技有限公司 一种多模卫星导航信号的合成方法
CN110764081A (zh) * 2019-11-05 2020-02-07 北京理工大学 一种精密跟踪测量雷达信号的处理系统
CN110824508B (zh) * 2019-11-27 2020-08-04 中国科学院微小卫星创新研究院 一种可重构的导航卫星模拟器
CN111239774B (zh) * 2020-02-11 2021-11-19 中国人民解放军93216部队 一种卫星导航数字信号生成方法及服务器
CN115343731A (zh) * 2021-05-14 2022-11-15 中移雄安信息通信科技有限公司 卫星导航信号生成方法及装置
CN115309555B (zh) * 2022-08-08 2024-03-15 西安中科天塔科技股份有限公司 一种用于卫星的并行计算方法及系统、存储介质、设备
CN116859422B (zh) * 2023-07-18 2024-01-26 湖南六九零六信息科技股份有限公司 一种基于异构融合并行集群架构的卫星高精度定位增强系统及方法
CN116719006B (zh) * 2023-08-11 2023-10-20 西安电子科技大学 基于多核异构架构的星载无源定位方法及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110312320A1 (en) * 2010-06-16 2011-12-22 Qualcomm Incorporated Satellite-assisted positioning in hybrid terrestrial-satellite communication systems
CN103278829A (zh) * 2013-05-06 2013-09-04 东南大学 一种基于gpu的并行导航卫星信号跟踪方法及其系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110312320A1 (en) * 2010-06-16 2011-12-22 Qualcomm Incorporated Satellite-assisted positioning in hybrid terrestrial-satellite communication systems
CN103278829A (zh) * 2013-05-06 2013-09-04 东南大学 一种基于gpu的并行导航卫星信号跟踪方法及其系统

Also Published As

Publication number Publication date
CN108073455A (zh) 2018-05-25

Similar Documents

Publication Publication Date Title
CN108073455B (zh) 一种基于gpu的卫星导航信号并行模拟方法
CN106501782B (zh) 一种多通道卫星导航和干扰信号模拟源及信号模拟方法
Hendeby et al. Particle filtering: the need for speed
CN102176029B (zh) 一种gps直达与多径信号模拟器及模拟方法
CN111239774B (zh) 一种卫星导航数字信号生成方法及服务器
CN101247137B (zh) 基于随机投影的超宽带模拟信号并行采样系统
CN103278829A (zh) 一种基于gpu的并行导航卫星信号跟踪方法及其系统
CN110568458B (zh) 一种基于gnss的电离层vtec闭环测试系统及方法
CN110031873B (zh) Gnss多径信号模拟方法和gnss多径信号模拟器
Heckler et al. Architecture of a reconfigurable software receiver
CN113433519A (zh) 脉冲多普勒雷达多目标回波中频信号模拟系统及方法
CN104614737A (zh) 一种qpsk扩频卫星动态信号模拟方法
CN102122986B (zh) 基于卫星星时重构的通用仿真卫星广播信号合成器
CN104076372A (zh) 一种产生多场景多系统的卫星数字中频信号的方法及装置
Hu Gnss sdr signal generator implementation based on usrp n210
CN202110287U (zh) 一种gps直达与多径信号模拟器
CN113504551A (zh) 基于gpu+cpu+fpga的卫星导航信号模拟器及信号模拟方法
Wang et al. Acceleration method for software signal simulators of BDS navigation signals and RDSS signals based on GPGPU
Bo et al. Real-time software GNSS signal simulator accelerated by CUDA
CN104483670B (zh) 基于gpu的合成孔径雷达回波仿真方法
Li et al. A CUDA-based real-time software GNSS IF signal simulator
Bartunkova et al. Massive parallel algorithms for software GNSS signal simulation using GPU
CN111239784A (zh) 一种卫星导航信号模拟装置及方法
CN115343731A (zh) 卫星导航信号生成方法及装置
CN106772481B (zh) 一种基于向量内积的软件并行相关计算方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant