用于gnss的相关器电路、gnss接收机及其接收信号的方法

文档序号:66903 发布日期:2021-10-01 浏览:42次 >En<

阅读说明:本技术 用于gnss的相关器电路、gnss接收机及其接收信号的方法 (Correlator circuit for GNSS, GNSS receiver and signal receiving method thereof ) 是由 顾明飞 杨小勇 秦奇波 于 2021-07-16 设计创作,主要内容包括:本发明实施例提供一种用于GNSS的相关器电路、GNSS接收机及其接收信号的方法。相关器电路包括跟踪FIFO模块,其产生k个采样信号;码片控制模块,其计算切片溢出值;使能和比特极性产生模块,其计算出使能信号和比特极性信号;通道模块,其中每个部分相关器均接收使能信号和比特极性信号,从而并行处理而获得计算结果;通道选择模块,其接收计算结果;多路相关值计算模块,其在每一轮计算中依次接收通道选择模块输出的计算结果并且进行累加而获得多路相关值;环路调整模块,其基于多路相关值输出多路相关值。这可以有效地避免了重复运算,极大地减少了运算时间。(The embodiment of the invention provides a correlator circuit for GNSS, a GNSS receiver and a signal receiving method thereof. The correlator circuit comprises a tracking FIFO module which generates k sampled signals; a chip control module that calculates a slice overflow value; an enable and bit polarity generation module calculating an enable signal and a bit polarity signal; a channel module, wherein each partial correlator receives an enable signal and a bit polarity signal, and then the enable signal and the bit polarity signal are processed in parallel to obtain a calculation result; a channel selection module that receives the calculation result; the multi-path correlation value calculating module is used for sequentially receiving the calculation results output by the channel selecting module in each calculation and accumulating the calculation results to obtain multi-path correlation values; a loop adjustment module that outputs a multi-path correlation value based on the multi-path correlation value. This can effectively avoid repeated operations and greatly reduce the operation time.)

用于GNSS的相关器电路、GNSS接收机及其接收信号的方法

技术领域

本发明涉及通信

技术领域

,尤其涉及用于GNSS的相关器电路、GNSS接收机及其接收信号的方法。

背景技术

全球导航卫星系统(GNSS)具有精度高,范围极广、不受时间约束等优势,其在国防建设和社会经济发展的各个领域发挥着重大作用。

在接收卫星导航信号的过程中,GNSS接收机中产生的本地码序列的相位与接收信号的相位必须完成对齐才能实现数据的接收,其中,捕获主要利用相关器实现码相位的初始值及频偏估计,而估计码相位值及频偏较粗略,跟踪是在捕获的基础上利用多路相关器来实现码相位的精确计算。

但是,GNSS接收机中每个通道的多路相关器彼此独立计算,使得资源消耗较多,运算效率较差,并且对多通道的适应能力同样比较差。

发明内容

本发明解决的技术问题是GNSS接收机的资源消耗较多、运算效率较差等问题。

为解决上述技术问题,本发明实施例提供一种用于GNSS的相关器电路,包括:

跟踪FIFO模块,其适于产生k个采样信号,k个采样信号基于与卫星导航信号相关的数字信号进行采样而获得,其中,k为大于0的整数;

码片控制模块,其适于获取本地码,基于固定切片数目对本地码进行分割,基于code_nco和nco控制字计算与k个采样信号分别对应的切片溢出值,以及基于切片溢出值更新已使用的切片数目和code_nco;

使能和比特极性产生模块,其适于接收固定切片数目、已使用的切片数目和切片溢出值,基于这三者计算出与k个采样信号分别对应的k个控制信号,并且基于k个控制信号中的任一个控制信号计算出特定的使能信号和比特极性信号;

包括n个通道的通道模块,n个通道中的每个通道均包括m个部分相关器,n个通道中的每个部分相关器均适于接收使能信号和比特极性信号,从而并行处理相应的采样信号而获得计算结果,其中,n和m均为大于0的整数;

通道选择模块,其适于每次从n个通道中选择1个通道而接收该通道中部分相关器输出的计算结果;

多路相关值计算模块,其适于在每一轮计算中依次接收通道选择模块输出的计算结果,并且进行累加而获得多路相关值;

环路调整模块,其适于接收多路相关值并且判断其是否达到峰值,若是,则输出多路相关值,若否,则对码片控制模块和多个通道中的各个通道进行环路调整,直至多路相关值达到峰值。

可选地,相关器电路包括控制模块,其适于当跟踪FIFO模块内存储的采样信号超过第一阈值时,将采样信号输出至n个通道,当产生code_nco的时间达到第二阈值时,使n个通道停止接收采样信号并且触发多路相关值计算模块计算多路相关值,直至数据量达到第三阈值时结束其一轮计算。

可选地,第二阈值为code_nco周期的整数倍。

可选地,码片控制模块适于基于如下步骤计算与k个采样信号分别对应的切片溢出值:

在当前时钟节拍,基于如下公式获得码code_nco_i[d+a-1:0]:

code_nco_i[d+a-1:0]=code_nco[d-1:0]+code_freq[d-1:0]*b,

在下一个时钟节拍,将code_nco[d-1:0]更新为code_nco_k[d-1:0];

切片溢出值包括初始切片溢出值,将其设置为0,

基于如下公式获得切片溢出值code_inv_ovf_i:

code_inv_ovf_i=code_nco_i[d+a-1:d],

其中,码code_nco_i为具体的code_nco,code_nco_i[d+a-1:0]取code_nco中第0位至第d+a-1位比特,code_nco_i[d+a-1:d]取code_nco中第d位至第d+a-1位比特,i为大于0并且小于或等于k的整数,a和b为大于0并且小于或等于k的整数,d为固定比特深度,其为大于1的整数,code_freq[d-1:0]为nco控制字控制的步进。

可选地,使能和比特极性产生模块适于基于如下公式设置第i个控制信号prn_acc_i:

active_acc_max=active_corr+code_inv-1,

当prn_acc_i大于或等于active_acc_max时,使prn_acc_i=0,其中,active_acc_max为最大相关通路数目,active_corr为多路相关值计算模块中预设的相关通路数目,code_inv为固定切片数目。

可选地,使能和比特极性产生模块适于基于如下公式获得第i个控制信号prn_acc_i:

prn_acc_i=prn_acc_0+code_inv*i,

prn_acc_0=(prn_cnt_i+code_inv_ovf_i)mod code_inv;

其中,第i个控制信号prn_acc_i与第i个采样信号对应,prn_acc_0为初始控制信号,prn_cnt_i为与第i个采样信号对应的、已使用的切片数目,code_inv_ovf_i为与第i个采样信号对应的切片溢出值,mod表示取模值。

可选地,使能和比特极性产生模块适于基于如下公式获得m个部分相关器中第j个部分相关器关于第i个采样信号的使能信号prn_acc_j_en_sap_i:

prn_acc_j_en_sap_i=prn_acc_en_group_i[j],

prn_acc_en_group_k[m-1:0]=

(1<<prn_acc_0)|(1<<prn_acc_1)|……|(1<<prn_acc_k),其中,j为大于0并且小于或等于m的整数,prn_acc_en_group_k[m-1:0]基于1分别向左移动各控制信号所对应的位然后依次进行按位或运算而获得,prn_acc_en_group_i[j]为第i个采样信号在第j个部分相关器的使能信号,其基于prn_acc_en_group_k[m-1:0]而获得。

可选地,使能和比特极性产生模块适于基于如下步骤获得m个部分相关器中第j个部分相关器关于第i个采样信号的比特极性信号prn_mask_pair_j_sap_i:

基于如下公式获得prn_i_acc_bit_ij:

prn_i_acc_bit_ij=prn_i_mask_i,

prn_i_mask_i=((1<<(prn_acc_i+code_inv_ovf_k-code_inv_ovf_i))&

prn_reg),

其中,prn_i_acc_bit_ij为第j个部分相关器关于第i个采样信号的中间参量,prn_i_mask_i为第i个采样信号的掩码,code_inv_ovf_k为与第k个采样信号对应的切片溢出值,prn_reg为切片寄存器中保存的code_nco;

将prn_i_acc_bit_0j、prn_i_acc_bit_1j直至prn_i_acc_bit_kj进行或运算而获得第j个部分相关器关于第i个采样信号的选择信号prn_i_mask_bit_sel_j;

基于如下公式获得比特极性信号prn_mask_pair_j_sap_i:

prn_mask_pair_j_sap_i=prn_i_mask_bit_sel_j。

可选地,第j个部分相关器适于基于如下公式获得计算结果prn_acc_pair_j:

其中,sample_i为与第i个采样信号对应的采样信号。

可选地,多路相关值计算模块适于在code_count+code_inv_ovf_k>=C时触发n个通道中一个通道的初始计算,并且在code_count<active_corr-1和code_inv_ovf_k>0时触发该通道的后续计算,其中,code_count为code_nco的计数,C为code_nco的周期。

可选地,n个通道中的每个通道均包括信号处理模块,其适于接收采样信号,基于本地载波信号剥离采样信号中的载波信号而得到基带信号。

可选地,环路调整模块适于基于多路相关值调整码片控制模块处的nco控制字以及调整与多个通道中各个通道分别对应的本地载波信号的频偏。

本发明实施例还提供一种GNSS接收机,包括导航前端和如上任一项所述的相关器电路,其中,导航前端适于将其接收的卫星导航信号转变为数字信号以及对数字信号进行采样而获得采样信号。

可选地,GNSS接收机包括捕获模块,其适于获取本地载波信号的初始频偏,相关器电路适于首次基于具有初始频偏的本地载波信号剥离数字信号中的载波信号。

本发明实施例还提供一种基于上述GNSS接收机接收信号的方法,包括:接收卫星导航信号,并将其转变为数字信号;基于数字信号产生k个采样信号,其中,k为大于0的整数;获取本地码,基于固定切片数目对本地码进行分割,并且基于code_nco和nco控制字计算与k个采样信号分别对应的切片溢出值;基于切片溢出值更新已使用的切片数目和code_nco;基于固定切片数目、已使用的切片数目和切片溢出值计算出与k个采样信号分别对应的k个控制信号,并且基于k个控制信号中的任一个控制信号计算出特定的使能信号和比特极性信号;GNSS接收机中的每个部分相关器分别接收使能信号和比特极性信号,从而并行处理相应的采样信号而获得计算结果;每次从n个通道中选择1个通道而接收该通道中部分相关器输出的计算结果;在每一轮计算中依次接收通道选择模块输出的计算结果,并且进行累加而获得多路相关值;判断多路相关值是否达到峰值,若是,则输出多路相关值,若否,则对码片控制模块和多个通道中的各个通道进行环路调整,直至多路相关值达到峰值。

可选地,上述方法包括:当GNSS接收机的跟踪FIFO模块内存储的采样信号超过第一阈值时,将采样信号从跟踪FIFO模块输出至n个通道。

可选地,上述方法包括:当产生code_nco的时间达到第二阈值时,使n个通道停止接收采样信号并且开始计算多路相关值,直至数据量达到第三阈值时结束一轮计算。

与现有技术相比,本发明实施例的技术方案具有如下有益效果。

例如,相关器电路的每个通道均包括m个部分相关器,每个部分相关器都可以基于使能信号和比特极性信号而并行处理相应的数据,进而获得计算结果,即对每个通道的相关运算资源进行拆分,这可以有效地避免了重复运算,极大地减少了运算时间。

又例如,相关器电路的使能和比特极性产生模块可以将使能信号和比特极性信号分别与k个采样信号关联,这可以对可变的多个采样点数进行自适应处理,使得相关器电路具有通用性和高效性。

又例如,多路相关值计算模块可以累加部分相关器的计算结果而获得多路相关值,即可以对多个通道的处理结果进行合路处理,这可以优化资源、占用较低的硬件资源以及降低功耗等。

附图说明

图1为本发明实施例中用于GNSS的相关器电路的结构示意图;

图2为本发明实施例中基于GNSS接收机接收信号的方法的流程图。

具体实施方式

为了使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

本发明实施例公开了一种用于GNSS的相关器电路。

GNSS包括空间段、地面测控段和用户段。空间段包括人造卫星;地面测控段包括主控站和监控站等;用户端包括GNSS接收机等。其中,GNSS接收机包括相关器电路。

相关器电路可以对接收到的GNSS信号进行跟踪,例如,对载波和伪随机码进行剥离,从而获得数据码,并且使得该数据码或者所跟踪的信号与本地信号保持绝对同步。

数字前端接收卫星发送的卫星导航信号,将其转换为数字信号,并且对该数字信号进行采样,从而可以在若干个采样周期内产生k个采样信号;其中k为大于0的整数。

采样周期与采样率对应;GNSS中各个导航系统(例如全球定位系统(GPS)、北斗系统、格洛纳斯系统(Glonass)和伽利略系统(Galileo),具有不同的设置,请参见如下表1。

表1

导航系统 频段 采样率(S/s)
GPS L1,L2 8M
GPS L5 20M
Glonass G1,G2 16M
Galileo E5A,E5B 20M
Galileo E1 8M
北斗系统 B1/B1C 8M
北斗系统 B2/B2A,B3 20M

数字前端的输出端连接相关器电路。

如图1所示,相关器电路100包括跟踪FIFO模块110、码片控制模块120、使能和比特极性产生模块130、通道模块140(其包括n个通道,每个通道均包括m个部分相关器,n和m均为大于0的整数)、通道选择模块150、多路相关值计算模块160和环路调整模块170。

跟踪FIFO模块110可以接收来自于GNSS接收机的数字前端输出的采样信号。并且可以将在若干个采样周期内所获得的k个采样信号输出至通道模块140。

码片控制模块120可以获取本地码,其可以由伪随机码生成器产生。

码片控制模块120可以基于固定切片数目(code_inv)对本地码进行分割。code_nco可以基于切片寄存器而取其中的第0位至第d-1位比特,表示为code_nco[d-1:0],其中,d为切片寄存器的固定比特深度,其为大于1的整数,例如为40。

码片控制模块120可以基于code_nco和nco控制字(例如为nco频率控制字,其控制的步进可以表示为code_freq[d-1:0])计算与k个采样信号分别对应的切片溢出值(code_inv_ovf_i),其中,nco控制字可以通过数字控制振荡器(Numerically ControlledOscillator,NCO)产生,其中,i为大于0并且小于或等于k的整数。

码片控制模块120还可以基于切片溢出值更新已使用的切片数目和code_nco;切片寄存器中已使用的切片数目可以表示为prn_cnt,其为不小于0的整数,例如,0表示使用了1个切片,15表示使用了16个切片。

在具体实施中,码片控制模块120可以包括nco控制字调整单元121和码生成单元122。

nco控制字调整单元121可以接收伪随机码生成器产生的本地码,并且对本地码进行分割。在切片时,可以基于固定切片数目对本地码进行分割,一个切片对应本地码的1bit。固定切片数目可以表示为code_inv,其数值例如为2、4、8、16等。

固定切片数目越小,则分割的颗粒度越高,后续相关计算的精度也越高。固定切片数目可以在多路相关值计算模块160的一轮运算或者多轮运算中保持不变,也可以在不同轮的运算中改变。在一轮运算中,通道模块中不同的通道可以具有相同或者不同的固定切片数目。

nco控制字调整单元121可以接收环路调整模块170输出的调整信号,从而调整nco控制字。

nco控制字调整单元121还可以基于code_nco和nco控制字计算与k个采样信号分别对应的切片溢出值(code_inv_ovf_i);该计算可以基于单位时钟节拍内所接收的code_nco和nco控制字而执行。

在当前时钟节拍,可以基于如下公式获得具体的code_nco(即码code_nco_i[d+a-1:0]):

code_nco_i[d+a-1:0]=

code_nco[d-1:0]+code_freq[d-1:0]*b (1)其中,i为大于0并且小于或等于k的整数,i可以从1取值到k;a和b为大于0并且小于或等于k的整数,a可以从1取值到k或者小于k的一个正整数,b可以从1取值到k或者小于k的一个正整数;code_nco_i[d+a-1:0]取code_nco中第0位至第d+a-1位比特;code_freq[d-1:0]为nco控制字控制的步进。

在下一个时钟节拍,可以将code_nco[d-1:0]更新为code_nco_k[d-1:0]。

切片溢出值包括初始切片溢出值code_inv_ovf_0,可以使其等于0。

可以基于如下公式获得切片溢出值code_inv_ovf_i:

code_inv_ovf_i=code_nco_i[d+a-1:d] (2)

其中,i为大于0并且小于或等于k的整数,i可以从1取值到k,code_nco_i[d+a-1:d]取code_nco中第d位至第d+a-1位比特。

当a=1时,code_inv_ovf_i=code_nco_i[d]。

切片溢出值code_inv_ovf_i与第i个采样点对应。

在一个实施例中,d=40,k=8,在当前时钟节拍,可以基于如下公式获得码code_nco_i:

code_nco_1[40:0]=code_nco[39:0]+code_freq[39:0],

code_nco_2[41:0]=code_nco[39:0]+code_freq[39:0]*2,

code_nco_3[41:0]=code_nco[39:0]+code_freq[39:0]*3,

code_nco_4[42:0]=code_nco[39:0]+code_freq[39:0]*4,

code_nco_5[42:0]=code_nco[39:0]+code_freq[39:0]*5,

code_nco_6[42:0]=code_nco[39:0]+code_freq[39:0]*6,

code_nco_7[42:0]=code_nco[39:0]+code_freq[39:0]*7,

code_nco_8[43:0]=code_nco[39:0]+code_freq[39:0]*8。

在下一个时钟节拍,可以将code_nco[39:0]更新为code_nco_8[39:0]。

在另一个实施例中,d=40,k=8,在当前时钟节拍,可以基于如下公式获得码code_nco_i:

code_nco_1[40:0]=code_nco[39:0]+code_freq[39:0],

code_nco_2[41:0]=code_nco[39:0]+code_freq[39:0]*2,

code_nco_3[41:0]=code_nco[39:0]+code_freq[39:0]*3,

code_nco_4[42:0]=code_nco[39:0]+code_freq[39:0]*3,

code_nco_5[42:0]=code_nco[39:0]+code_freq[39:0]*3,

code_nco_6[42:0]=code_nco[39:0]+code_freq[39:0]*3,

code_nco_7[42:0]=code_nco[39:0]+code_freq[39:0]*3,

code_nco_8[43:0]=code_nco[39:0]+code_freq[39:0]*3。

在下一个时钟节拍,可以将code_nco[39:0]更新为code_nco_8[39:0]。

初始切片溢出值code_inv_ovf_0等于0。

可以基于如下公式获得切片溢出值:

code_inv_ovf_1=code_nco_1[40],

code_inv_ovf_2=code_nco_2[41:40],

code_inv_ovf_3=code_nco_3[41:40],

code_inv_ovf_4=code_nco_4[42:40],

code_inv_ovf_5=code_nco_5[42:40],

code_inv_ovf_6=code_nco_6[42:40],

code_inv_ovf_7=code_nco_7[42:40],

code_inv_ovf_8=code_nco_8[43:40]。

码生成单元122接收nco控制字调整单元121输出的切片溢出值,其使得切片寄存器中保存的code_nco发生移动(左移或者右移),从而更新了已使用的切片数目(其初始值为0)和在切片寄存器中保存的code_nco;其中,已使用的切片数目的初始值可以设置为0。

切片寄存器可以为移位反馈寄存器、只读存储器等。

例如,k=8,d=40,code_inv=8。

在更新前,切片寄存器中保存了40位数据“0000_0000_1111_1111_0000_0000_1111_1111_1111_1111”,prn_cnt=7,code_inv_ovf_8=5。

当码生成单元122接收到切片溢出值code_inv_ovf_8后,切片寄存器中保存的数据向左移动了5位,该40位数据更新为“000_1111_1111_0000_0000_1111_1111_1111_1111_1111_1”,prn_cnt=4。

使能和比特极性产生模块130可以接收码片控制模块120输出的固定切片数目、已使用的切片数目和切片溢出值,并且基于这三者计算出与k个采样信号分别对应的k个控制信号。

在一些实施例中,m等于31。

具体而言,使能和比特极性产生模块130可以基于如下公式设置第i个控制信号prn_acc_i:

active_acc_max=active_corr+code_inv-1 (3)

当prn_acc_i大于或等于active_acc_max时,使:

prn_acc_i=0 (4)

其中,active_acc_max为最大相关通路数目,active_corr为多路相关值计算模块160中预设的相关通路数目,i为大于0并且小于或等于k的整数。

使能和比特极性产生模块130可以基于如下公式获得第y个控制信号prn_acc_i:

prn_acc_i=prn_acc_0+code_inv*i (5)

prn_acc_0=(prn_cnt_i+code_inv_ovf_i)mod code_inv (6)

其中,prn_acc_0为初始控制信号,code_inv为固定切片数目,prn_cnt_i为与第i个采样信号对应的、已使用的切片数目,code_inv_ovf_i为与第i个采样信号对应的切片溢出值,i为大于0并且小于或等于k的整数,mod表示取模值。

第i个控制信号prn_acc_i与第i个采样信号对应,用于控制第i个采样信号输入到通道模块中的部分相关器,例如控制部分相关器的使能和比特极性。

使能和比特极性产生模块130可以基于k个控制信号中的任一个控制信号计算出应用于一个部分相关器的使能信号和比特极性信号。

每个使能信号可以使能或者不使能n个通道中相应的部分相关器以接收或者不接收相应的采样信号。

每组比特极性信号可以对n个通道中相应的部分相关器所输出的采样信号的极性进行作用。

具体而言,使能和比特极性产生模块130可以基于如下公式获得m个部分相关器中第j个部分相关器关于第i个采样信号的使能信号prn_acc_j_en_sap_i:

prn_acc_j_en_sap_i=prn_acc_en_group_i[j] (7)

prn_acc_en_group_k[m-1:0]

=(1<<prn_acc_0)|(1<<prn_acc_1)|……|(1<<prn_acc_k) (8)其中,j为大于0并且小于或等于m的整数,prn_acc_en_group_k[m-1:0]基于1分别向左移动各控制信号所对应的位然后依次进行按位或运算而获得(即,分别将1向左移动prn_acc_0、prn_acc_1、……、prn_acc_i、……prn_acc_k所对应的位,然后将它们依次进行按位或运算而获得,其中,“|”表示进行按位或运算),prn_acc_en_group_i[j]为第i个采样信号在第j个部分相关器的使能信号,其基于prn_acc_en_group_k[m-1:0]而获得。

当使能信号为0和1中的一者时第j个部分相关器选择第i个采样信号(即使能第i个采样信号)、为0和1中的另一者时第j个部分相关器不选择第i个采样信号(即不使能第i个采样信号)。

使能和比特极性产生模块130可以基于如下公式获得prn_i_acc_bit_ij:

prn_i_acc_bit_ij=prn_i_mask_i (9)

prn_i_mask_i=

((1<<(prn_acc_i+code_inv_ovf_k-code_inv_ovf_i))&prn_reg) (10)其中,prn_i_acc_bit_ij为第j个部分相关器关于第i个采样信号的中间参量,prn_i_mask_i为第i个采样信号的掩码,code_inv_ovf_k为与第k个采样信号对应的切片溢出值,prn_reg为切片寄存器中保存的code_nco;“1<<(prn_acc_i+code_inv_ovf_i-code_inv_ovf_i)”表示将1向左移动“(prn_acc_i+code_inv_ovf_k-code_inv_ovf_i)”位,然后与prn_reg进行按位与运算,“&”表示进行按位与运算。

可以基于公式(9)和(10)获得prn_i_acc_bit_0j、prn_i_acc_bit_1j直至prn_i_acc_bit_kj,将它们进行或运算而获得第j个部分相关器关于第i个采样信号的选择信号prn_i_mask_bit_sel_j。

使能和比特极性产生模块130可以基于如下公式获得m个部分相关器中第j个部分相关器关于第i个采样信号的比特极性信号prn_mask_pair_j_sap_i(即对第j个部分相关器处第i个采样信号作用的极性):

prn_mask_pair_j_sap_i=prn_i_mask_bit_sel_j (11)

通道模块140包括n个通道,n个通道中的每个通道均包括m个部分相关器,例如,通道1包括部分相关器1(0)、1(1)、……、1(m-1),通道2包括部分相关器2(0)、2(1)、……、2(m-1),通道n包括部分相关器n(0)、n(1)、……、n(m-1)。

n个通道中的每个部分相关器均可以接收与k个采样信号以及分别与其对应的k个使能信号和k个比特极性信号,从而并行处理相应的数据而获得计算结果。

例如,通道1中的部分相关器1(0)、1(1)、……、1(m-1)可以分别接收第一组使能信号EN1(0)、EN1(1)、……、EN1(m-1),通道2中的部分相关器2(0)、2(1)、……、2(m-1)可以分别接收第二组使能信号EN2(0)、EN2(1)、……、EN2(m-1),通道n中的部分相关器n(0)、n(1)、……、n(m-1)可以分别接收第n组使能信号ENn(0)、ENn(1)、……、ENn(m-1)。

又例如,通道1中的部分相关器1(0)、1(1)、……、1(m-1)可以分别接收第一组比特极性信号PO1(0)、PO1(1)、……、PO1(m-1),通道2中的部分相关器2(0)、2(1)、……、2(m-1)可以分别接收第二组比特极性信号PO2(0)、PO2(1)、……、PO2(m-1),通道n中的部分相关器n(0)、n(1)、……、n(m-1)可以分别接收第n组比特极性信号POn(0)、POn(1)、……、POn(m-1)。

通道模块140的每一个部分相关器都可以基于某个采样信号的使能信号和比特极性信号进行运算,并且可以对多个采样信号进行并行处理。

m个部分相关器中的第j个部分相关器可以基于如下公式获得计算结果prn_acc_pair_j:

其中,sample_i为与第i个采样信号对应的采样信号。

公式(12)是基于计算结果prn_acc_pair_j的迭代运算;当第j个部分相关器的采样信号为使能状态(即第j个部分相关器可以接收采样信号)时,计算结果prn_acc_pair_j可以在每个时钟节拍的翻转沿进行更新。

在本发明的实施例中,可以使i依次取1至k中的各个整数,j依次取1至m中的各个整数,从而获得各个采样信号、code_nco、切片溢出值、已使用的切片数目、控制信号、使能信号、比特极性信号、比特极性信号、选择信号、计算结果等。

通道选择模块150每次从n个通道中选择1个通道而接收该通道中部分相关器输出的计算结果,并且将该计算结果输出到多路相关值计算模块160。

多路相关值计算模块160在每一轮计算中依次接收通道选择模块输出的计算结果,并且进行累加而获得多路相关值。

计数模块可以基于code_nco的周期而循环地进行计数,并且发送计数信号,n个通道可以同步计数、也可以独立计数,计数模块可以包括于通道模块140,也可以包括于多路相关值计算模块160,还可以是一个独立的模块。

可以基于计数信号触发多路相关值计算模块160的工作;在多路相关值计算模块160进行工作时,可以使n个通道停止接收采样信号。

具体而言,可以基于如下公式获得code_nco的计数值code_count:

code_count=(code_count+code_inv_ovf_k)mod C (13)

其中,C为code_nco的周期。

多路相关值计算模块160可以在满足如下条件时触发n个通道中一个通道的初始计算:

code_count+code_inv_ovf_i>=C (14)

其中,code_count、code_inv_ovf_i和C分别为与该通道相关的参数。

并且,可以在满足如下二个条件时触发该通道的后续计算:

code_count<active_corr-1 (15)

code_inv_ovf_k>0 (16)

其中,active_corr为多路相关值计算模块160中预设的相关通路数目,code_count和code_inv_ovf_k分别为与该通道相关的参数。

多路相关值计算模块160进行多路计算时,可以以f表示一轮计算中的第一个值,g表示该轮计算中的最后一个值,dump_num表示本轮计算中多路的数目。

可以基于如下公式获得临时计数值code_count_tmp:

code_count_tmp=(code_count+code_inv_ovf8)mod C (17)

在满足如下二个条件时,使g=0、h=active_corr-1、dump_num=active_corr:

code_count_tmp<code_inv_ovf_k (18)

code_count_tmp>=active_corr-1 (19)

在满足如下二个条件时,使g=0、h=code_count_tmp、dump_num=code_count_tmp+1:

code_count_tmp<code_inv_ovf_k (20)

code_count_tmp<active_corr-1 (21)

在满足如下二个条件时,使g=code_count+1、h=active_corr-1、dump_num=active_corr-1-code_count:

code_count_tmp>=code_inv_ovf_k (22)

code_count_tmp>=active_corr-1 (23)

在满足如下二个条件时,使g=code_count+1、h=code_count_tmp、dump_num=code_count_tmp-1-code_count:

code_count_tmp>=code_inv_ovf_k (24)

code_count_tmp<active_corr-1 (25)

通过如上条件(18)至(25)可以确定g、h和dump_num的数值。

当某个通道被通道选择模块150选择而输出该通道中部分相关器的计算结果时,多路相关值计算模块160接收这些计算结果,获取该通道在本时钟节拍下的g、h和dump_num的数值,并且将计算结果进行累加而获得多路相关值。

如下算法示意了g+h+1路的相关值的迭代计算。

其中,corr_p为多路相关值,prn_acc_pair(p+q)(也可以表示为prn_acc_pair_p+q)为计算结果;关于“计算结果”,可以参见上文关于公式(12)的描述。

环路调整模块170可以接收多路相关值计算模块160输出的多路相关值,判断多路相关值是否达到峰值,若是,则输出该多路相关值,相关器电路100完成信号的跟踪;若否,则基于该多路相关值对码片控制模块120和m个通道分别进行环路调整,直至多路相关值达到峰值。在多路相关值达到峰值时,采样信号与code_nco保持绝对同步。

例如,多路相关值未达到峰值时,环路调整模块170向码片控制模块120和m个通道发送调整信号,使得码片控制模块120、使能和比特极性产生模块130、通道模块140、通道选择模块150和多路相关值计算模块160开始新的一轮计算,并且在概论计算完成后再次将多路相关值输出到环路调整模块170进行判断。

在具体实施中,可以设置相关值门限,当多路相关值大于或等于该相关值门限时,则确定多路相关值达到峰值,否则其未达到峰值。

在一些实施例中,n个通道中的每个通道均包括信号处理模块,如图1所示的D1、……、Dn,其接收采样信号,基于本地载波信号剥离采样信号中的载波信号而得到基带信号。

在具体实施中,环路调整模块可以基于多路相关值调整与码片控制模块处的nco控制字(见图1)、以及调整与m个通道分别对应的本地载波信号的频偏(未图示),从而进行环路调整。

在另一些实施例中,相关器电路包括控制模块。

当跟踪FIFO模块内存储的采样信号超过第一阈值时,控制模块将采样信号输出至n个通道;通道选择模块还可以将部分相关器的计算结果输出至多路相关值计算模块。

例如,第一阈值为2ms(即跟踪FIFO模块在2ms所存储的数据量)。

当产生code_nco的时间达到第二阈值时,控制模块使n个通道停止接收采样信号并且触发多路相关值计算模块计算多路相关值,直至数据量达到第三阈值时结束其一轮计算。

在结束一轮计算后,n个通道重新接收采样信号,对产生code_nco的时间清零并且重新计时。

例如,第二阈值为1ms、4ms、10ms或者20ms;第二阈值也可以为code_nco周期的整数倍。

例如,第三阈值为1ms。

本发明实施例还公开了一种GNSS接收机。

在具体实施中,GNSS接收机可以为基于GNSS的用户导航设备或者包含GNSS导航功能的用户设备。

GNSS接收机可以包括导航前端和相关器电路。

导航前端用于接收卫星发送的卫星导航信号,将卫星导航信号转变为数字信号;导航前端还可以对数字信号进行采样,从而获得采样信号。

相关器电路可以接收导航前端发送的采样信号并且进行处理和计算;关于相关器电路的原理、结构和功能等可以参考上文的描述,此处不再赘述。

在一些实施例中,GNSS接收机还包括捕获模块,其可以获取本地载波信号的初始频偏,相关器电路首次可以基于具有初始频偏的本地载波信号剥离数字信号中的载波信号。

本发明实施例还公开了一种GNSS接收机接收信号的方法。

如图2所示,GNSS接收机接收信号的方法200包括如下步骤。

在步骤210的执行中,接收卫星导航信号,并将其转变为数字信号。

在步骤220的执行中,基于数字信号产生k个采样信号,其中,k为大于0的整数。

在步骤230的执行中,获取本地码,基于固定切片数目对本地码进行分割,并且基于code_nco和nco控制字计算与k个采样信号分别对应的切片溢出值。

在步骤240的执行中,基于切片溢出值更新已使用的切片数目和code_nco。

在步骤250的执行中,基于固定切片数目、已使用的切片数目和切片溢出值计算出与k个采样信号分别对应的k个控制信号,并且基于k个控制信号中的任一个控制信号计算出特定的使能信号和比特极性信号。

在步骤260的执行中,GNSS接收机中的每个部分相关器分别接收使能信号和比特极性信号,从而并行处理相应的数据而获得计算结果。

在步骤270的执行中,每次从n个通道中选择1个通道而接收该通道中部分相关器输出的计算结果。

在步骤280的执行中,在每一轮计算中依次接收通道选择模块输出的计算结果,并且进行累加而获得多路相关值。

在步骤290的执行中,判断多路相关值是否达到峰值,若是,则输出多路相关值,若否,则对码片控制模块和多个通道中的各个通道进行环路调整,直至多路相关值达到峰值。

在具体实施中,方法200还包括:当GNSS接收机的跟踪FIFO模块内存储的采样信号超过第一阈值时,将采样信号从跟踪FIFO模块输出至n个通道。

在具体实施中,方法200还包括:当产生code_nco的时间达到第二阈值时,使n个通道停止接收采样信号并且开始计算多路相关值,直至数据量达到第三阈值时结束一轮计算。

关于GNSS接收机接收信号的方法中所涉及的步骤及其原理等可以参考上文关于相关器电路以及GNSS接收机的描述,此处不再赘述。

在本发明的实施例中,处理器可以为中央处理单元(Central Processing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)、其他可编程逻辑器件、分立门或晶体管逻辑器件、或者分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

在本发明的实施例中,存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-OnlyMemory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct RambusRAM,DR RAM)。

在本发明的实施例中,存储介质包括U盘、移动硬盘、ROM、RAM、非挥发性存储器(Non-volatile)、非瞬态(Non-transitory)存储器、磁碟或者光盘等各种可以存储程序代码的介质。

关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

20页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:高信噪比环境下基于小快拍数的导航接收机波束形成方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类