背景技术:
卫星信号体制的二次编码在北斗、Galileo等全球导航***以及GPS的现代化中得到了普遍应用。二次编码通过延长扩频码的整体周期来改善相关性,可以使接收机快速实现数据同步,降低频谱谱线的间隔,进一步抑制窄带干扰。GPS现代化中,L1C信号二次编码长为1800,周期为18s,码速率为100bps,L5C信号的数据通道和导频通道分别采用长度为10和20的NH码两种二次编码长度。伽利略***在不同频点的不同通道采用了不同周期和不同码长的二次编码。
北斗D1导航电文中调制的二次编码是指在速率为50bps的D1导航电文上调制了一个Neumann-Hoffman码(即NH码)。该NH码周期为一个导航信息位的宽度,NH码1比特宽度则与扩频码周期相同。如图1所示,D1导航电文一个信息位宽度为20毫秒,扩频码周期为1毫秒,因此采用20比特的NH码,码序列为(0,0,0,0,0,1,0,0,1,1,0,1,0,1,0,0,1,1,1,0)。码速率为1kbps,码宽为1毫秒,与导航信息码和扩频码同步调制。
NH码的加入,提高了北斗信号抗窄带干扰的能力,改善了电文数据字符的同步,改善了卫星信号之间的互相关特性,使各颗卫星信号之间的互相关旁峰至少下降了3dB。但是二次编码也增加了卫星信号的复杂性,加重了捕获跟踪环路和导航电文剥离的负担。目前软件接收机中进行北斗捕获的方法主要分为两种思路:一种是改进的并行码相位捕获方法,扩频码、载波、NH码进行三维搜索;第二种方法是用截断的NH码调制一段扩频码,生成的测距-NH码再和载波利用滑动相关的方法进行捕获。上述两种方案均可是通过对NH码的剥离来现对北斗卫星的捕获,计算量大,而且后者还存在捕获所需信号长度过长的问题。
发明内容:
本发明所要解决的技术问题是:降低NH码相位求解给北斗信号捕获增加的计算复杂度,提出了一种基于独特序列的捕获方法,可以成功的规避NH码跳变对捕获的干扰,同时在子帧同步环节实现对NH码的剥离,本发明适用于北斗导航接收机信号捕获和NH码剥离过程。
本发明采用如下技术方案:一种针对北斗导航卫星***D1导航电文中的Neumann-Hoffman码规避与剥离方法,其包括如下步骤:
第一步:对北斗卫星信号进行采集、下变频和量化处理,选取不短于6毫秒的连续信号序列进入卫星捕获环节;
第二步:产生本地北斗扩频码,并进行1ms的采样,采样频率与卫星信号采样频率一致;
第三步:在中频信号频率±10Hz范围内生成搜索步长为500Hz的本地载波,产生同相和正交两路信号,并进行1ms采样,采样频率与卫星信号采样频率一致;
第四步:将中频信号的第1ms,第2ms,第5ms和第6ms分别放入四个粗捕获通道中,与本地产生的扩频码、本地载波在频域内进行基于离散傅里叶变换的1ms并行码相位搜索,并通过离散反傅里叶变换获得对应扩频码相位和载波频率的相关结果;
第五步:对同相支路和正交支路的相关结果进行平方求和再开方,获得对应于扩频码相位和载波频率的非相干积分结果;
第六步:遍历四个粗捕获通道获得峰值和对应的码相位、载波频率,计算峰值所在载波频率的非相干积分结果的均值,计算峰值和均值的比值;
第七步:四个通道的比值与设定的门限值进行比较,超过门限值的通道粗捕获成功,其中门限值最大的通道进入精捕获,其它通道清零并进行下一颗卫星的捕获;若四个通道的比值均没有超过门限值,则判定此次捕获失败,进行下一颗卫星的捕获或换下一段数据继续进行捕获;
第八步:精捕获阶段,在粗捕获确定的500Hz范围内进行步长逐级递减的搜索,利用确定的1ms序列和扩频码相位,通过二到三级遍历将载波频率精度缩小到10Hz以内,保证足够的跟踪环路需要;
第九步:将11比特共计220ms的帧同步码和11个周期的NH码进行异或运算得到220ms的NH-Pre组合码,与跟踪过程中剥离扩频码和载波的信号进行实时的相关累加,得到相关函数输出,设定门限值为200即可,相关函数输出结果超过200时认为子帧同步,同时确定NH码起点;
第十步:从NH码起点开始进行扩频码、载波和NH码的同步剥离,得到导航电文。
进一步地,在卫星捕获阶段,省略NH码的相位确定和剥离过程中,通过必选延迟时间和成功落入无比特跳变区段所需最小时间两个评价指标来归纳出数量最小的1ms信号序列,序列内的各个1ms信号同时进行捕获,规避NH码跳变对捕获的影响,实现信号的快速捕获,同样的思想适用于其它采用了固定序列二次编码的导航卫星***的信号快速捕获。
进一步地,所述第四步中,在卫星捕获阶段采用概率统计方法归纳出独特序列以保证所选序列中至少有一个信号序列是不存在NH码跳变的,成功避开NH码跳变对相关运算的影响,在不需要确定NH码相位的情况下获得扩频码相位和载波频率。
进一步地,所述第七步中,在基于独特序列的粗捕获阶段,通过判断并行码相位相关运算的峰值与同频率内其它相关运算均值的比值,比值大于设定的门限值即为粗捕获成功,比值最大者所在的1ms序列进入精捕获环节。
进一步地,所述第八步中,精捕获阶段,采用频率搜索步长逐级递减的方式,通过两级或三级并行码相位捕获实现载波频率的精确捕获,满足信号跟踪环节对载波频率精度的需要。
进一步地,所述第九步中,在跟踪环路进行子帧同步过程中,采用NH码和帧同步码的组合码进行相关运算,实现子帧同步的同时确定NH码相位并剥离掉NH码,解调出导航电文。
本发明具有如下有益效果:本发明北斗导航***Neumann-Hoffman码规避与剥离方法相对一般的北斗捕获方法而言,不进行NH码的相位确定和剥离,而是通过概率统计和两个评价指标得到的独特序列来规避掉NH码对捕获的干扰和捕获精度的影响,降低了信号捕获的技术难度,提升了卫星信号捕获的成功率和精确度,将NH码相位的确定和剥离放在子帧同步环节一并完成。本发明北斗导航***Neumann-Hoffman码规避与剥离方法技术简单,容易实现,是一种特别适用于软件接收机的理想的北斗卫星捕获与NH码剥离方法。
具体实施方式:
下面结合附图对发明的技术方案进行详细说明。
请参照图2所示,本发明针对北斗导航卫星***D1导航电文中的Neumann-Hoffman码规避与剥离方法,具体实现步骤如下:
第一步:对北斗卫星信号进行采集、下变频和量化处理,选取不短于6毫秒的连续信号序列进入卫星捕获环节;
第二步:产生本地北斗扩频码,并进行1ms的采样,采样频率与卫星信号采样频率一致;
第三步:在中频信号频率±10Hz范围内生成搜索步长为500Hz的本地载波,产生同相和正交两路信号,并进行1ms采样,采样频率与卫星信号采样频率一致;
第四步:将中频信号的第1ms,第2ms,第5ms和第6ms分别放入四个粗捕获通道中,与本地产生的扩频码、本地载波在频域内进行基于离散傅里叶变换(DFT)的1ms并行码相位搜索,并通过离散反傅里叶变换(IDFT)获得对应扩频码相位和载波频率的相关结果;
第五步:对同相支路和正交支路的相关结果进行平方求和再开方,获得对应于扩频码相位和载波频率的非相干积分结果;
第六步:遍历四个粗捕获通道获得峰值和对应的码相位、载波频率,计算峰值所在载波频率的非相干积分结果的均值,计算峰值和均值的比值;
第七步:四个通道的比值与设定的门限值进行比较,超过门限值的通道粗捕获成功,其中门限值最大的通道进入精捕获,其它通道清零并进行下一颗卫星的捕获;若四个通道的比值均没有超过门限值,则判定此次捕获失败,进行下一颗卫星的捕获或换下一段数据继续进行捕获;
第八步:精捕获阶段,在粗捕获确定的500Hz范围内进行步长逐级递减的搜索,利用确定的1ms序列和扩频码相位,通过二到三级遍历将载波频率精度缩小到10Hz以内,保证足够的跟踪环路需要;
第九步:将11比特共计220ms的帧同步码(Pre)和11个周期的NH码进行异或运算得到220ms的NH-Pre组合码,与跟踪过程中剥离扩频码和载波的信号进行实时的相关累加,得到相关函数输出,子帧同步时相关函数的理论输出为220,考虑有采样片出错的可能,并且实际信号验证中伪随机码与NH-Pre码的相关结果最高为180,设定门限值为200即可,相关函数输出结果超过200时认为子帧同步,同时确定NH码起点;
第十步:从NH码起点开始进行扩频码、载波和NH码的同步剥离,得到导航电文。
上述流程的完成需要完成以下工作:
1.基于概率统计的独特序列选择法:
本发明从统计学的角度出发,提出一种利用独特信号序列来进行快速捕获的方法,规避NH码对捕获的影响。基本思想为:使用多个间隔不同的1ms信号分别进行相关累加,保证其中至少有一组信号不发生数据比特的跳变。通过比较各组相关累加值的最大者即为上述需要的信号。在此基础上再进行精捕获,成功避开NH码的干扰。同时在后续环节再剥离NH码。
为降低运算量,需要用尽可能少的1ms序列来完成粗捕获的整个过程。本发明通过概率统计的方法来找到这个序列。如图3所示,第一列表示数据序列起始位置所在NH码的区段,第一行所示为数据延迟的毫秒数。“√”所在的表格表示成功落入无比特跳变的区段。
分析图3数据可知,任何起始位置在6ms内都可以成功落入“区段”,即采用6个连续的1ms进行相关捕获,至少有一个1ms是不存在比特跳变的。继续归纳最优的序列,需要考虑必选延迟时间和成功落入“区段”所需最小时间两个因素。
首先必选延迟时间,由于在(9,10)和(10,11)两个开始位置,分别只有延迟5ms和4ms才能成功落入“区段”,所以5ms和4ms是必选的,并且通过延迟5ms和4ms,有14个开始位置可以成功落入“区段”。在此基础上继续考虑剩余6个起始位置成功落入“区段”所需最小时间。有4个起始位置本身即在“区段”范围内,剩余2个起始位置在1ms处也落入“区段”。综上所述,对于开始捕获的1ms,分别再延迟1、4、5ms所选取的长度为1ms的信号,即第2、5、6ms,所组成的序列{1,2,5,6}可以保证至少有1个信号不存在比特跳变。{1,2,5,6}毫秒的信号序列在多种情况下会有不止一个1ms会落入无比特跳变区段,这样的情况不影响进行捕获,在一定程度上还增加了成功捕获的概率。同时最小序列包含两个连续的1ms序列,同样适用于GEO卫星的捕获。因此本发明提出的独特序列的捕获方法是一种北斗全部类型卫星通用的方法。
2.基于步长逐级逼近的精捕获方法:
对输入中频信号进行搜索步长逐级逼近的捕获。粗捕获阶段,对于输入的4个1ms的信号,分别进行并行码相位搜索,选取非相干结果超过捕获门限值的序列进入精捕获过程。精捕获阶段,采用步长逐级逼近的策略在上一级捕获步长范围内进行搜索,将载波频率缩小到较小的范围内。由于对扩频码采用了并行处理,并行码相位捕获方法将搜索范围削减为对载波频率的遍历,与传统的串行搜索捕获和并行频率空间搜索捕获相比,计算量和捕获时间均大大降低。下面以北斗B1I信号为例进行说明,具体算法如下:
1)北斗信号经过中频采样器下变频和量化采样后,B1I信号的表达式可以写成:
其中,A为信号振幅,Cj为信号扩频码,NH20为20位的Neumann-Hoffman码,数值为1或0;Dj表示调制在B1I扩频码上面的数据码,fIF为B1信号下变频后的中频频率,表示B1I信号载波初相,上标j表示卫星号,Ns为1ms的采样点序列。
2)产生本地载波和本地扩频码。B1I信号的标称载波频率为fB1I=1561.098MHz,下变频后的载波频率为fIF。正弦载波和余弦载波的生成公式分别为:
Icarr=cos((fIF+Nf*fd)*2*π*Ts*Ns)
Qcarr=sin((fIF+Nf*fd)*2*π*Ts*Ns)
其中,fd为搜索步长,Nf为搜索范围,Ts为采样时间,Ns为采样点序列。
B1I信号扩频码Cj的码速率为2.046Mcps,码长为2046。本地扩频码生成器严格按照两线性序列G1和G2模二和产生平衡Gold码后截断1码片生成。通过对产生G2序列的移位寄存器不同抽头的模二和可以实现G2序列相位的不同偏移,与G1序列模二和后可以产生不同卫星的扩频码。G1和G2序列分别由两个11位线性移位寄存器生成,其生成多项式为:
G1(X)=1+X+X7+X8+X9+X10+X11
G2(X)=1+X+X2+X3+X4+X5+X8+X9+X11
生成扩频码进行1ms的采样,得到扩频码序列为
其中j为卫星编号,对应PRN-1~35,G2n(X)为与卫星编号一一对应的G2序列相位分配抽头产生的G2序列。对本地扩频码进行离散傅里叶变换(DFT)得到C(k),再取其共轭形式方便后续运算。
3)剥离载波并变换到频域。本地产生的两路同相和正交载波信号分别与中频信号进行相乘,剥离掉载波
i(n)=Sj.*Icarr
q(n)=Sj.*Qcarr
两路信号组成复数向量的形式rp(n)=i+jq后进行离散傅里叶变换。
4)扩频码剥离。扩频码和载波频率信号在时域内做相关运算,相当于它们的离散傅里叶变换和R(k)在频域内进行乘积运算。因此,和R(k)的乘积进行离散傅里叶反变换(IDFT)就是接收机捕获环路需要进行检测的各个码相位处的相关值。
相关结果I和Q在数值上和时域线性捕获方法得到的相关值是等效的。即:
5)通过频域内的并行码相位相关,卫星信号的载波和扩频码被成功剥离,同相支路和正交支路的信号表达式可以简写成:
采用非相干积分的方法排除载波相位差对捕获结果的干扰:
6)经过1ms的并行码相位捕获后,可以得到4组非相干积分值,遍历找到4组数据里面的峰值和对应频率内的均值,峰值与均值的比值与已经设定的捕获门限进行比较,超过捕获门限则认为粗捕获成功。根据上述基于概率统计的最小序列法,大于捕获门限的序列可以保证不会存在比特跳变。在此基础上对峰值均值比值最大者所在的1ms序列继续进行步长逐级逼近的精捕获。
7)在精捕获阶段,输入序列为在粗捕获阶段码相位和载波频率已知的1ms序列,采用多级步长,在上一级捕获步长范围内进行频率遍历。例如粗捕获阶段采用步长为500Hz的遍历,则在已经确定500Hz的载波频率范围内通过100Hz和10Hz两级步长可以将载波频率的误差缩减到10Hz以内。具体过程示例如图4所示。
3.基于NH-Pre组合码的NH码剥离方法
北斗D1导航电文NH码的周期为1个导航信息位的宽度(20ms),NH码1比特宽度则与扩频码周期相同。在捕获阶段获得精确的码相位和载波频率后,可以在扩频码的起点处进行周期为1ms的跟踪,避免NH码跳变对跟踪环路造成影响。通过码跟踪环和载波跟踪环分别剥离扩频码和载波后,得到导航电文和NH码的组合码,采用NH码和帧同步码的组合码在帧同步环节对NH码进行剥离。图5所示为NH码剥离和子帧同步的具体流程图。
北斗D1导航电文的子帧长度为6s,每一子帧开始的第1~11比特为帧同步码(Pre码),其值为“11100010010”,长度为220ms。第一比特上升沿为秒前沿,用于时标同步。将220ms的帧同步码与11个周期的NH码进行相关运算,组成NH-帧同步组合码(NH-Pre码),帧同步码的搜索和NH码的剥离通过相关完成,输入为跟踪环路得到的序列和NH-Pre码。
同步头出现时相关性函数的输出为220,实际数据验证伪随机数据与NH-Pre组合码的相关结果最大为180,考虑到采样片有出错的可能,所以可以设置帧同步的门限值满足:
200<ThresholdFrame synchronization<220
相关性函数输出高于门限值则认为捕获到同步头,一个子帧的长度为6s,所以帧同步和NH码的剥离可以在跟踪环路开始6s内完成,NH码的起点确定之后,通过滑动相关可以剥离掉跟踪结果中的NH码,NH码的剥离可以与跟踪环路同步进行。如果在6秒内出现了“伪同步头”,即有多个相关值超过了门限值,则以相关值所在位置为起点,分别寻找6000ms处是否也有同步头出现,两个长度为220ms随机数据刚好与帧同步码相同且相隔6000ms的概率为:
(0.511×2)2=9.5367×10-7
这个概率已经足够小。因此若可以找到,则确认为起点处为子帧起点,否则不是子帧起点。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下还可以作出若干改进,这些改进也应视为本发明的保护范围。