CN113075703B - 一种多通道卫星信号跟踪方法 - Google Patents
一种多通道卫星信号跟踪方法 Download PDFInfo
- Publication number
- CN113075703B CN113075703B CN202110357049.2A CN202110357049A CN113075703B CN 113075703 B CN113075703 B CN 113075703B CN 202110357049 A CN202110357049 A CN 202110357049A CN 113075703 B CN113075703 B CN 113075703B
- Authority
- CN
- China
- Prior art keywords
- data
- tracking
- pseudo
- code
- host
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/29—Acquisition or tracking or demodulation of signals transmitted by the system carrier including Doppler, related
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO 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/00—Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
- G01S19/01—Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
- G01S19/13—Receivers
- G01S19/24—Acquisition or tracking or demodulation of signals transmitted by the system
- G01S19/30—Acquisition or tracking or demodulation of signals transmitted by the system code related
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radio Relay Systems (AREA)
Abstract
一种多通道卫星信号跟踪方法,主线程初始化跟踪参数和运算资源,开启数据获取CPU线程,发布采集数据预读取异步任务,数据获取CPU线程读取采集数据并存储至页锁定主机内存中,然后向第一CUDA流发布数据传输任务,将采集数据异步传输至GPU全局内存中;主机主线程发布新一轮跟踪所需数据的读取任务,环路开始跟踪;主机主线程向第二CUDA流依序发布异步数据处理任务,然后按序向第二CUDA流发布异步数据传输任务,将结果传输至主机;主线程对第二CUDA流进行同步并根据计算结果更新每一通道的参数,完成更新后本轮跟踪结束,若停止跟踪则流程结束,否则继续下一轮跟踪。本发明方法利用多线程并发和CUDA流的特点减少耗时。
Description
技术领域
本发明属于卫星导航技术领域,尤其涉及一种GNSS信号软件接收机的跟踪环路的设计。
背景技术
图1为传统的GNSS信号软件接收机跟踪环路的架构图,如图1所示,GNSS信号软件接收机的信号跟踪过程主要是,GNSS信号软件接收机根据采样频率,在每一个通道的一次跟踪内,生成一个伪随机码周期内对应采样点数的本地载波和本地伪随机码,然后通过相关器对采集数据进行载波剥离、伪随机码剥离,从而得到码伪距、载波伪距、电文比特等信息。目前的软件接收机跟踪环路通常使用计算机CPU(中央处理器)多线程并发,或者使用GPU(图形处理器)并行进行多通道处理。NVIDIA公司的图形处理器还支持另一种称为CUDA流的并行性,其表示一个GPU操作队列,并且该队列中的操作符将以指定的顺序执行。在伪随机码周期为1ms时,跟踪环路需要在1ms之内将数据处理完毕。在数据采样率较高,以致1ms的采样数据量较大的情况下,主机与GPU之间的数据传输耗时会对跟踪效率产生影响。
专利号为201310163718.8的中国发明专利公开了一种基于GPU的并行导航卫星信号跟踪方法,该方法在CPU-GPU上构建多通道载波跟踪环和伪码跟踪环,使用GPU对多通道卫星信号进行跟踪,通过多通道信号跟踪处理分别在GPU与CPU进行二级流水处理,但该方法是属于串行跟踪卫星通道方法,CPU主线程在每个通道执行GPU任务时都将阻塞,无法执行其它指令对其它通道进行跟踪,这使得计算机资源无法充分利用。
申请号为202010473057.9的中国发明专利申请公开了一种基于GPU的大容量短突发信号接收机设计方法,该方法利用CPU和GPU形成接收机的实时接收架构,开启多个CPU线程,每个线程控制一个CUDA流进行跟踪处理。但该方法要在完成数据初始化后才使用多线程控制多个流进行跟踪,在数据初始化完成之前需阻塞主机,并且未对CPU线程的运行顺序进行控制,从而无法控制流中任务在GPU的执行顺序,也无法达到隐藏数据传输耗时的目的,使得跟踪效率受到数据传输耗时的影响。
申请号为201810334254.5的中国发明专利申请公开了一种跟踪流水处理方法,该方法通过多通道信号跟踪处理,分别在GPU与CPU进行二级流水处理,在使用GPU进行跟踪时使用CPU进行环路参数处理,但该方法需要将多通道分为相等的两部分,若通道数并非偶数,则会遇到分组困难的问题。
发明内容
本发明的目的是提供一种可以降低数据传输耗时的多通道卫星信号跟踪方法。
为了实现上述目的,本发明采取如下的技术解决方案:
一种多通道卫星信号跟踪方法,包括以下步骤:
S1、主机主线程对跟踪参数和运算资源进行初始化,所述跟踪参数包括卫星通道参数和跟踪环路参数,所述运算资源包括用于数据获取的数据获取CPU线程、用于缓存原始采集数据的页锁定主机内存、一个用于传输采集数据的第一CUDA流资源,N个用于处理数据的第二CUDA流资源、第一GPU全局内存和第二GPU全局内存以及保存三路信号积分结果的存储空间;
S2、主机主线程开启数据获取CPU线程,向数据获取CPU线程发布采集数据预读取的异步任务,数据获取CPU线程被唤醒后读取两个伪随机码周期内的采集数据并存储至页锁定主机内存中,然后数据获取CPU线程向第一CUDA流发布数据传输任务,将读取的采集数据异步传输至第一GPU全局内存中,采集数据读取且传输完成后,数据获取CPU线程休眠;
S3、主机主线程发布新一轮跟踪所需数据的读取任务,环路开始跟踪;在发布新一轮跟踪所需数据的读取任务之前,主机主线程判断数据获取CPU线程是否已完成采集数据的读取并传输至第一GPU全局内存,如果未完成则等待数据获取CPU线程完成采集数据的读取和传输,如果已完成则交换第一GPU全局内存与第二GPU全局内存的地址,使第一GPU全局内存内的数据转移至第二GPU全局内存中,主机主线程继续发布新一轮跟踪所需数据的读取任务,并唤醒数据获取CPU线程,向数据获取CPU线程添加采集数据读取的异步任务,然后准备对第二GPU全局内存内的数据进行处理;数据获取CPU线程被唤醒后在后台读取两个伪随机码周期内的采集数据并存储至页锁定主机内存中,继续向第一CUDA流发布异步数据传输任务,将读取的采集数据异步传输至第一GPU全局内存中,采集数据读取且传输完成后,数据获取CPU线程休眠;
S4、主机主线程向N个第二CUDA流依序发布异步数据处理任务,每个数据处理任务按顺序包括数据预处理、本地载波生成和三路伪随机码生成、三路载波与伪码剥离以及三路信号积分计算,三路信号积分后的结果将保存至三路信号积分结果的存储空间;
S5、主机主线程按S4中数据处理任务的发布顺序向N个第二CUDA流发布异步计算结果传输任务,将三路信号积分计算结果从保存三路信号积分结果的存储空间传输至主机;
S6、主机主线程对每个卫星通道的第二CUDA流进行同步,当每一个卫星通道对应的第二CUDA流完成所有处理过程后,该卫星通道的三路积分计算结果回传到主机,然后主机根据三路信号积分计算结果,更新每一个卫星通道的伪随机码频率和载波频率,每个卫星通道都完成更新后本轮跟踪结束,若停止跟踪,则流程结束,否则重新回到S3继续下一轮跟踪。
更具体的,所述卫星通道参数包括数据采样率fs、卫星通道数N、每个卫星通道的载波频率fcarr、伪随机码频率fcode、伪随机码相位θcode、伪随机码长度PNLength和伪随机码数据PN;所述跟踪环路参数包括载波环与码环阻尼系数ξ、载波环与码环噪声带宽BL、相关器间隔Δθ。
更具体的,S4中数据预处理后得到的预处理数据data(t)=RawData(t)-mean,式中的RawData(t)为一个卫星通道在一个伪随机码周期内的原始采集数据序列,mean为该卫星通道原始采集数据的均值。
更具体的,S4中本地载波生成的过程如下:根据每个卫星通道的载波频率fcarr,生成相位差为90°的I、Q两路本地载波:carrI(t)=cos(2πfcarrt),carrQ(t)=sin(2πfcarrt),本地载波复信号j为虚数单位。
更具体的,S4中三路伪随机码生成的过程如下:根据每个卫星通道的伪随机码频率fcode以及设定的鉴相器间隔Δθ,分别生成E、P、L三路伪随机码:codeE(t)=PN(mod(fcodet-Δθ,PNLength)),codeP(t)=PN(mod(fcodet,PNLength)),codeL(t)=PN(mod(fcodet+Δθ,PNLength)),式中的mod表示取模运算符。
更具体的,S4中三路积分计算的过程如下:将三路伪随机码和本地载波、预处理数据相乘并进行积分,分别得到E、P、L三路积分计算结果: 其中,data(t)为数据预处理后得到的预处理数据,carr(t)为本地载波复信号,codeE(t)、codeP(t)、codeL(t)分别为生成的三路伪随机码。
本发明的方法结合了CPU线程并发与GPU流式处理,基于多线程并发来实现后台预先读取多卫星通道的采样数据,并根据数据传输CUDA流异步拷贝采样数据至GPU,然后发布异步本地载波产生、三路伪码产生、载波剥离及积分累加、结果回传的任务,发布异步积分计算结果回传的任务,依次阻塞所有已发布流,最后更新码频率、载波频率参数,完成本次跟踪并发布下一次跟踪任务。本发明方法充分利用了计算机资源来隐藏数据读取及数据传输所带来的耗时,有效降低了数据传输所需时间及整体跟踪所需时间,解决了高采样率、多通道情况下的卫星信号跟踪数据量大、传输耗时明显的问题,可应用于软件接收机的高效实时设计方案。
附图说明
图1为传统GNSS信号软件接收机跟踪环路的架构图;
图2为本发明方法的流程图;
图3为本发明方法进行数据读取的过程图;
图4为GPU内存模型图;
图5为主线程对每个通道的数据处理流进行处理的过程图;
图6为采用本发明方法和常规方法进行仿真跟踪的4个通道的耗时对比图;
图7为采用本发明方法和常规方法进行仿真跟踪的8个通道的耗时对比图。
具体实施方式
为了让本发明的上述和其它目的、特征及优点能更明显,下文特举本发明实施例,并配合所附图示,做详细说明如下。
如图2所示,本发明的软件接收机的多通道卫星信号跟踪方法包括以下步骤:
S1、初始化。在初始化步骤中对跟踪参数和运算资源进行初始化,跟踪参数包括卫星通道参数和跟踪环路参数。更具体的,卫星通道参数包括数据采样率fs、卫星通道数N、每个卫星通道的载波频率fcarr、伪随机码频率fcode、伪随机码相位θcode、伪随机码长度PNLength以及对应的伪随机码数据PN;载波频率fcarr用于本地载波的生成,伪随机码频率fcode用于本地码的生成,伪随机码相位θcode用于确定每个卫星通道在采集数据中的应取位置,伪随机码数据PN及其长度PNLength根据卫星系统的不同而不同。跟踪环路参数包括载波环与码环阻尼系数ξ、载波环与码环噪声带宽BL、相关器间隔Δθ。运算资源包括用于数据获取的数据获取CPU线程、用于缓存原始采集数据的页锁定主机内存(DataBuffer)、一个用于传输采集数据的第一CUDA流资源(DataStream),N个用于处理数据的第二CUDA流资源(第二CUDA流资源与卫星通道相对应,N个卫星通道对应N个第二CUDA流资源)、第一GPU全局内存(RawSignalBuffer)和第二GPU全局内存(RawSignalProcess),以及保存三路信号积分结果的存储空间,三路信号包括超前、即时和滞后三路信号,以下分别简称为E路信号、P路信号和L路信号。
S2、采集数据预读取,主机主线程开启数据获取CPU线程,进行数据读取;
图3为数据读取的过程图,结合图2和图3所示,主机主线程唤醒数据获取CPU线程后,向数据获取CPU线程添加采集数据预读取的异步任务(Task0),令其读取两个伪随机码周期内的采集数据RawData(t),数据获取CPU线程被唤醒后读取采集数据,并存储至已预先分配好的页锁定主机内存DataBuffer中,然后数据获取CPU线程向用于传输采集数据的CUDA流(第一CUDA流)发布数据传输任务,通过流同步操作将所读取的采集数据异步传输至第一GPU全局内存RawSignalBuffer中,采集数据读取且传输完成后,数据获取CPU线程休眠。
两个伪随机码周期内的采集数据RawData(t)包含了N个卫星通道的数据,根据每个卫星通道的伪随机码相位θcode,可以确定两个伪随机码周期内的采集数据中该卫星通道对应数据的起始位置P,并可以根据一个卫星通道在一个伪随机码周期的采样点数n确定该卫星通道的采集数据在全部数据中的位置,依此可得到N个卫星通道的数据。如,一个伪随机码周期为T,捕获码频率为fc,一个伪随机码长度为L,数据采样率为fs,采集数据的类型为Type,则应读取的一个伪随机码周期的采样点数两个伪随机码周期内的采集数据中该卫星通道对应数据的起始位置确定每个卫星的数据起始位置P之后生成载波与伪码时便可认为已处于相位对齐状态。
S3、发布新一轮跟踪所需数据的读取任务,环路开始跟踪;
由于数据读取任务是异步任务,在发布新一轮跟踪所需数据的读取任务之前,主机主线程需要调用线程同步方法同步数据获取CPU线程,保证上一次发布的数据读取任务(Task0或TaskR-1)全部处理完毕且数据已经传输至第一GPU全局内存RawSignalBuffer,对于第一次跟踪,主机主线程是等待S2中采集数据预读取任务Task0的数据是否已经读取及传输完成,对于后续的跟踪,主机主线程等待的是上一次发布的跟踪任务TaskR-1的数据是否已经读取及传输完成,R表示第R次跟踪发布的数据读取任务。如果数据读取任务未完成,则主线程等待数据获取CPU线程完成数据的读取和传输;若数据读取任务已完成,则交换第一GPU全局内存RawSignalBuffer与第二GPU全局内存RawSignalProcess的地址,使得已传输过来的采集数据转移到第二GPU全局内存RawSignalProcess中,然后发布下一轮跟踪所需数据的读取任务TaskR,接着对第二GPU全局内存RawSignalProcess中的数据进行处理;发布读取下一轮跟踪所需数据的异步读取数据任务过程和S2的数据读取过程相同,主机主线程唤醒数据获取CPU线程后,向数据获取CPU线程添加采集数据读取的异步任务TaskR,令其读取两个伪随机码周期内的采集数据,数据获取CPU线程被唤醒后在后台进行数据读取和传输,其读取两个伪随机码周期内的采集数据并存储至已预先分配好的页锁定主机内存中,然后继续向CUDA流发布数据异步传输任务,并将读取的数据异步传输至第一GPU全局内存RawSignalBuffer中,数据读取且传输完成后,数据获取CPU线程休眠。
本发明的异步数据读取任务是固定将读取的采集数据传输至第一GPU全局内存中,而后续步骤中GPU处理数据是用第二GPU全局内存RawSignalProcess中的数据进行,因此在开始发布GPU处理任务之前需要交换两个GPU全局内存中的数据(图4),以保证被传输采集数据会固定存储至第一GPU全局内存RawSignalBuffer中,GPU处理数据会从第二GPU全局内存RawSignalProcess进行。使用两个GPU全局内存的目的是为了处理数据和传输数据能够分隔在两片空间内互不干扰。
S4、发布异步数据处理任务流,主机主线程向用于处理数据的CUDA流(第二CUDA流)依序发布数据处理任务,每个数据处理任务按顺序包括数据预处理、本地载波生成和三路(E、P、L)伪随机码生成、三路载波与伪码剥离以及三路(E、P、L)积分计算,三路信号积分后的结果将保存至三路信号积分结果的存储空间。
主机线程按顺序向N个通道的N个第二CUDA流发布数据处理任务,如预先开启的处理数据的第二CUDA流为S=S1,S2,...,SN,则数据处理任务的发布顺序Order为:后续第二CUDA流的发布顺序固定为Order。每个卫星通道对应的第二CUDA流Sn,n=1,2,…,N,(即每个数据处理任务)内又按顺序包括数据预处理任务、本地载波生成任务和三路伪随机码生成任务、三路伪随机码与载波剥离任务以及三路积分任务,下面以一个卫星通道的第二CUDA流的数据处理任务为例进行说明:
数据预处理的过程为:将一个卫星通道的原始采集数据减去该卫星通道原始采集数据的均值,即得到去除直流分量后的预处理数据data(t),即data(t)=RawData(t)-mean,式中的RawData(t)为一个卫星通道在一个伪随机码周期内的原始采集数据序列,mean为该卫星通道原始采集数据的均值,n为一个卫星通道的伪随机码周期的采样点数,t为一个伪随机码周期的采样时间序列,t=t1,t2,...,tn。数据预处理任务流按照Order顺序进行发布。
本地载波生成的过程如下:根据每个卫星通道的载波频率fcarr,生成相位差为90°的I、Q两路本地载波carrI(t)、carrQ(t):carrI(t)=cos(2πfcarrt),carrQ(t)=sin(2πfcarrt),则本地载波复信号j为虚数单位。
三路伪随机码生成的过程如下:根据每个卫星通道的伪随机码频率fcode以及设定的鉴相器间隔Δθ,分别生成E、P、L三路伪随机码:codeE(t)=PN(mod(fcodet-Δθ,PNLength)),codeP(t)=PN(mod(fcodet,PNLength)),codeL(t)=PN(mod(fcodet+Δθ,PNLength)),式中的PN为该卫星通道对应的一个周期的伪随机码数据,PNlength为伪随机码长度,mod表示取模运算符,mod(x,y)表示x除以y得到的余数。三路载波与伪码剥离为常规方法,此处不做赘述。
S5、发布异步计算结果传输任务流,主机主线程按S4中数据处理任务的发布顺序Order向N个第二CUDA流发布异步数据传输任务,将E、P、L三路积分计算结果从保存三路信号积分结果的存储空间传输至主机。
至此所有流都已发布完毕,数据获取CPU线程在读取完采集数据后向GPU传输采集数据,此时GPU正在进行数据处理任务,处理完成的通道其积分计算结果也在回传至主机主线程进行跟踪环路参数更新。
S6、同步所有处理数据的第二CUDA流并计算跟踪结果。主机主线程对每个卫星通道对应的第二CUDA流进行同步处理,同步功能将主线程阻塞,直到这个流完成所有任务主线程才会继续运行,同步功能保证在跟踪环路更新之前已经将所有积分计算结果回传到主机中。当每一个卫星通道的CUDA流完成所有处理后,且积分计算结果回传到主机,主机就根据三路积分计算结果,更新每一个卫星通道伪随机码频率fcode和载波频率fcarr,每个卫星通道完成参数更新后本轮跟踪结束,若停止跟踪,则流程结束,否则重新回到S3继续下一轮跟踪(图5)。
载波环相位差通过二象限反正切鉴别器得到,码环相位差通过归一化超前滞后功率差值法得到,其中,Q(sumP)为P路积分计算结果的虚部,I(sumP)为P路积分计算结果的实部,|sumE|为E路积分计算结果的模值,|sumL|为L路积分计算结果的模值。设二阶环路滤波器的传递函数F(s)为特征频率ωn为环路增益为K,ξ为码环或载波环的阻尼系数,BL为码环或载波环的噪声带宽。载波环相位差与码环相位差输入至此二阶环路滤波器得到更新后的伪随机码频率fcode与载波频率fcarr。
为了说明本发明方法在耗时优化上的效果,下面在相同程序架构下,使用单线程进行数据复制、发布处理任务、更新参数运算以及一个CUDA流控制GPU进行处理任务的方法来和本发明方法进行跟踪耗时仿真对比。
仿真实验中,设定跟踪环路参数中载波环、码环阻尼系数ξ为0.707,载波环噪声带宽为30Hz,码环噪声带宽为5Hz,鉴相器间隔Δθ为0.2,各卫星的跟踪初始参数见表1,B1I信号的码频率为2.046MHz。基于2019年4月13日16时36分53秒开始,某研究机构40米天线采集得到的采样率为250MHz的卫星导航信号数据,对BDS中PRN为25、58、18、23、59、11、3、13的8颗卫星其B1I信号跟踪1秒,4个通道的耗时对比如图6所示,8个通道的耗时对比如图7所示。图6和图7中位于下方的曲线为本发明方法的耗时曲线,横坐标为跟踪次数(次),纵坐标为每次跟踪耗时(毫秒)。
表1跟踪初始参数
PRN | 卫星类型 | 载波频率(Hz) | 多普勒(Hz) | 码相位 |
3 | GEO | 48,178,020 | 20 | 2042.456328 |
11 | MEO | 48,176,340 | -1660 | 1803.614472 |
13 | IGSO | 48,178,370 | 370 | 2027.659656 |
18 | MEO | 48,178,550 | 550 | 1226.192352 |
23 | MEO | 48,180,290 | 2290 | 1265.549208 |
25 | MEO | 48,177,490 | -510 | 183.558936 |
58 | MEO | 48,177,370 | -630 | 751.65948 |
59 | GEO | 48,177,980 | -20 | 587.349312 |
从图6和图7可以看出,本发明方法的耗时明显减少。本发明方法一方面利用多线程并发和CUDA流的特点减少耗时,通过控制CUDA流的顺序,在GPU运算过程中GPU数据传输通道也在进行数据传输,以此实现在计算中减少GPU与主机传输数据的耗时;另外通过线程的后台并发,GPU运算过程中CPU其它线程也在并发进行数据准备操作,以此实现在计算中隐藏数据准备的耗时,从而减少了信号跟踪的整体耗时。
本发明在进行多种GNSS信号软件接收机环路跟踪时同样具有可行性,对多种GNSS信号的软件接收机设计均具有较高的工程应用价值。只需要根据卫星伪随机码的不同改变输入的伪随机码及其长度、周期,设置正确的伪随机码频率即可兼容如GPS L1C/A、BDS B1I等GNSS信号。若GNSS信号为BOC调制类型,也只需增加子载波的生成与剥离任务即可。
以上所述,仅是本发明的较佳实施例而已,并非对本发明做任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (6)
1.一种多通道卫星信号跟踪方法,其特征在于,包括以下步骤:
S1、主机主线程对跟踪参数和运算资源进行初始化,所述跟踪参数包括卫星通道参数和跟踪环路参数,所述运算资源包括用于数据获取的数据获取CPU线程、用于缓存原始采集数据的页锁定主机内存、一个用于传输采集数据的第一CUDA流资源,N个用于处理数据的第二CUDA流资源、第一GPU全局内存和第二GPU全局内存以及保存三路信号积分结果的存储空间;
S2、主机主线程开启数据获取CPU线程,向数据获取CPU线程发布采集数据预读取的异步任务,数据获取CPU线程被唤醒后读取两个伪随机码周期内的采集数据并存储至页锁定主机内存中,然后数据获取CPU线程向第一CUDA流发布数据传输任务,将读取的采集数据异步传输至第一GPU全局内存中,采集数据读取且传输完成后,数据获取CPU线程休眠;
S3、主机主线程发布新一轮跟踪所需数据的读取任务,环路开始跟踪;在发布新一轮跟踪所需数据的读取任务之前,主机主线程判断数据获取CPU线程是否已完成采集数据的读取并传输至第一GPU全局内存,如果未完成则等待数据获取CPU线程完成采集数据的读取和传输,如果已完成则交换第一GPU全局内存与第二GPU全局内存的地址,使第一GPU全局内存内的数据转移至第二GPU全局内存中,主机主线程继续发布新一轮跟踪所需数据的读取任务,并唤醒数据获取CPU线程,向数据获取CPU线程添加采集数据读取的异步任务,然后准备对第二GPU全局内存内的数据进行处理;数据获取CPU线程被唤醒后在后台读取两个伪随机码周期内的采集数据并存储至页锁定主机内存中,继续向第一CUDA流发布异步数据传输任务,将读取的采集数据异步传输至第一GPU全局内存中,采集数据读取且传输完成后,数据获取CPU线程休眠;
S4、主机主线程向N个第二CUDA流依序发布异步数据处理任务,每个数据处理任务按顺序包括数据预处理、本地载波生成和三路伪随机码生成、三路载波与伪码剥离以及三路信号积分计算,三路信号积分后的结果将保存至三路信号积分结果的存储空间;
S5、主机主线程按S4中数据处理任务的发布顺序向N个第二CUDA流发布异步计算结果传输任务,将三路信号积分计算结果从保存三路信号积分结果的存储空间传输至主机;
S6、主机主线程对每个卫星通道的第二CUDA流进行同步,当每一个卫星通道对应的第二CUDA流完成所有处理过程后,该卫星通道的三路积分计算结果回传到主机,然后主机根据三路信号积分计算结果,更新每一个卫星通道的伪随机码频率和载波频率,每个卫星通道都完成更新后本轮跟踪结束,若停止跟踪,则流程结束,否则重新回到S3继续下一轮跟踪。
2.根据权利要求1所述的多通道卫星信号跟踪方法,其特征在于:所述卫星通道参数包括数据采样率fs、卫星通道数N、每个卫星通道的载波频率fcarr、伪随机码频率fcode、伪随机码相位θcode、伪随机码长度PNLength和伪随机码数据PN;所述跟踪环路参数包括载波环与码环阻尼系数ξ、载波环与码环噪声带宽BL、相关器间隔Δθ。
3.根据权利要求1所述的多通道卫星信号跟踪方法,其特征在于:S4中数据预处理后得到的预处理数据data(t)=RawData(t)-mean,式中的RawData(t)为一个卫星通道在一个伪随机码周期内的原始采集数据序列,mean为该卫星通道原始采集数据的均值。
4.根据权利要求1所述的多通道卫星信号跟踪方法,其特征在于:S4中本地载波生成的过程如下:根据每个卫星通道的载波频率fcarr,生成相位差为90°的I、Q两路本地载波:carrI(t)=cos(2πfcarrt),carrQ(t)=sin(2πfcarrt),本地载波复信号carr(t)=carrI(t)+j·carrQ(t),j为虚数单位。
5.根据权利要求1所述的多通道卫星信号跟踪方法,其特征在于:S4中三路伪随机码生成的过程如下:根据每个卫星通道的伪随机码频率fcode以及设定的鉴相器间隔Δθ,分别生成E、P、L三路伪随机码:codeE(t)=PN(mod(fcodet-Δθ,PNLength)),codeP(t)=PN(mod(fcodet,PNLength)),codeL(t)=PN(mod(fcodet+Δθ,PNLength)),式中的mod表示取模运算符,PN为伪随机码数据,PNLength为伪随机码长度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110357049.2A CN113075703B (zh) | 2021-04-01 | 2021-04-01 | 一种多通道卫星信号跟踪方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110357049.2A CN113075703B (zh) | 2021-04-01 | 2021-04-01 | 一种多通道卫星信号跟踪方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113075703A CN113075703A (zh) | 2021-07-06 |
CN113075703B true CN113075703B (zh) | 2022-11-01 |
Family
ID=76614793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110357049.2A Active CN113075703B (zh) | 2021-04-01 | 2021-04-01 | 一种多通道卫星信号跟踪方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113075703B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113765574B (zh) * | 2021-08-04 | 2023-05-26 | 苏州阿清智能科技有限公司 | 一种高通量卫星多频点同步寻星方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102176033A (zh) * | 2010-12-31 | 2011-09-07 | 北京航空航天大学 | 一种基于通用图形处理器的卫星导航系统比特压缩跟踪方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102621562B (zh) * | 2012-03-20 | 2013-09-18 | 东南大学 | 一种基于fpga的多通道实时gps跟踪方法及其系统 |
CN103278829B (zh) * | 2013-05-06 | 2015-09-02 | 东南大学 | 一种基于gpu的并行导航卫星信号跟踪方法及其系统 |
CN105577229B (zh) * | 2015-12-07 | 2018-04-13 | 中国电子科技集团公司第十研究所 | Cpu辅助gpu实现扩频信号快速捕获方法 |
CN110515053B (zh) * | 2019-08-27 | 2023-02-17 | 西安电子科技大学 | 基于cpu和多gpu的异构平台sar回波仿真并行方法 |
-
2021
- 2021-04-01 CN CN202110357049.2A patent/CN113075703B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102176033A (zh) * | 2010-12-31 | 2011-09-07 | 北京航空航天大学 | 一种基于通用图形处理器的卫星导航系统比特压缩跟踪方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113075703A (zh) | 2021-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9869770B2 (en) | Control and features for satellite positioning system receivers | |
CN113075703B (zh) | 一种多通道卫星信号跟踪方法 | |
Hobiger et al. | A GPU based real-time GPS software receiver | |
CN202041640U (zh) | 一种基于gpu的卫星导航软件接收机 | |
JP2002122655A (ja) | 同期タスクの再分配を行なう低電力rfレシーバ | |
US8810450B2 (en) | Global positioning system receiver timeline management | |
CN111624631B (zh) | 一种并行化信号质量评估方法 | |
CN102928854A (zh) | 一种基于匹配滤波器的gps捕获单元设计方法 | |
Huang et al. | STARx--a GPU based multi-system full-band real-time GNSS software receiver | |
Gunawardena | A high performance easily configurable satnav SDR for advanced algorithm development and rapid capability deployment | |
US8615031B2 (en) | Signal processing method, correlator, software signal receiver by using code cycle | |
CN111398996A (zh) | 一种测绘性卫星导航接收机 | |
CN102176033B (zh) | 一种基于通用图形处理器的卫星导航系统比特压缩跟踪方法 | |
Heckler et al. | Architecture of a reconfigurable software receiver | |
CN113406572A (zh) | 一种雷达并行处理系统及方法、存储介质、终端 | |
CN106019334B (zh) | 一种基于gpu的导航软件接收机的相关器实现方法 | |
CN113671547B (zh) | 一种改进的高动态捕获方法、装置、设备及存储介质 | |
CN102288975A (zh) | 一种基于dft优化的捕获方法 | |
CN113341686B (zh) | 一种单星多历元校时方法、装置、计算机设备和存储介质 | |
CN113708916B (zh) | 一种基于gpu的pcm/fm遥测信号并行多符号检测方法 | |
US8395545B2 (en) | Method and system for utilizing reduced functionality processing channels in a GNSS receiver | |
Bo et al. | Real-time software GNSS signal simulator accelerated by CUDA | |
Wu et al. | Particle filter based on iterated importance density function and parallel resampling | |
Olesen et al. | Software-Defined GPS receiver Implemented on the Parallella-16 Board | |
Knezevic et al. | Co-processor aiding for real-time software GNSS receiver |
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 |