一种新的北斗信号二次捕获算法
技术领域
本发明涉及北斗卫星信号捕获方法,具体为一种新的北斗信号二次捕获算法。
背景技术
北斗卫星导航系统(BeiDou Navigation Satellite System,BDS)中需要长时间的积分来获得较高的灵敏度,而BDS二代中新型扩频码的采用给接收机的设计带来了新的挑战,新型扩频码采用二次编码与主码的分层结构,这种结构大大限制了导频通道相干积分时间的增加。
BDS接收机的信号处理包括三个阶段:捕获、跟踪和位置,速度,时间(Position Velocity Time,PVT)解算。接收机通过捕获可以粗略地估算信号多普勒频偏和扩频码相位,跟踪阶段更加精准地同步多普勒频偏与码相位,进而提取导航电文和伪距信息,最终解算出PVT信息。随着BDS新技术的不断应用,未来接收机将面临复杂环境(如深山、峡谷、城市、室内)的严峻挑战。因此,接收机的捕获部分必须精心设计,确保在微弱信号环境下正常工作。事实上,捕获的目的是搜索所有可见卫星,并确定不同卫星扩频码(PRN码)相位。
接收信号与相应的本地载波和扩频码(PRN码)副本做相关运算,如果相关值超过提前设定的阈值,则捕获卫星成功,同时得到多普勒频偏和PRN码相位。通过在不同的载频和码相位上进行重复搜 索,直到搜索到所有可见卫星。一般相关时间为单PRN码周期,如果需要提高接收机的灵敏度,单周期的相关时间是不够的。因此,可以叠加不同码周期的相关结果来提高灵敏度,分为相干积分(即平方之前求和)和非相干累加(平方之后求和)。在低信噪比的环境中,相干积分比非相干累加效果要好。关于这两种方法已经有文章见诸于报,本文不再赘述。对于传统GPS的L1信号,可以通过简单的方法克服导航电文数据位翻转,实现相干积分。然而,BDS二代中扩频码特殊的编码结构需要在捕获时考虑所有可能的二次编码NH码相位组合,致使相干积分的实现难度变大。
随着BDS二代的广泛使用,如何增加相干积分时间已成为研究热点。在[2]中作者讨论了一种树形结构的长时间相干积分方法,主要原理是:在指定长度的二次编码码片上尝试所有可能的相位组合来增加相干积分时间,这种方法虽然一定程度上提高了灵敏度,但相位组合的数量是按照二次编码码片数呈指数增长,因而只适用于较短的二次编码捕获,而且没有获取码相位。因此本文提出了一种新的算法,在一个PRN码周期上并行搜索PRN码相位,在整个NH码周期上进行并行二次搜索NH码相位,提高灵敏度的同时也捕获了NH码相位。
发明内容
本发明为了解决BDS二代中扩频码特殊的编码结构大大限制了导频通道相干积分时间的增加的问题,提供了一种新的北斗信号二次捕获算法。
本发明是采用如下的技术方案实现的:一种新的北斗信号二次捕 获算法,包括以下步骤:
步骤一:BDS接收机接收到的RF信号经过射频前端放大、下变频和数字化后得到中频信号;
步骤二:对中频信号每隔1ms选取信号,一共选取m组作为输入信号,m可任意选定;
步骤三:设定多普勒频偏,生成1ms扩频码作为本地扩频码;
步骤四:将m组输入信号分别与经过本地副载波调制的本地扩频码进行一个周期的循环相乘,而后将乘积进行NSP点的累加得到相关输出,Nsp是一周期本地扩频码的样点数;
步骤五:相关输出经过Ns=20次的串行捕获,得到串行捕获结果;
步骤六:选取20ms本地二次编码补20ms零构成本地备用二次编码,本地备用二次编码经过FFT变换后取复共轭得到本地二次编码复共轭信号;
步骤七:将串行捕获结果经FFT变换后与本地二次编码复共轭信号相乘,相乘结果经IFFT变换到时域得到时域信号;
步骤八:将时域信号与设定的门限阈值进行比较,检测是否捕获到卫星信号,若时域信号没有超过阈值则将在下一个多普勒频偏上重复步骤三到步骤八,直到捕获到卫星信号或者搜索完所有的可能多普勒频偏。
本发明提出一种基于串并结合的北斗分层编码信号的捕获算法。本充分利用二次编码的特性搜索PRN码和二次编码的码相位和多普勒频偏。积分时间不再局限在一个主码周期内而是扩展到几个主码周 期,在算法复杂度合理上升的同时提高了捕获灵敏度。而且为了在信号足够强的情况下减少捕获时间,算法采用大频偏搜索步长先捕获主码相位而后进行二次编码的精细搜索,因此能够实现快速捕获强信号。
附图说明
图1是本发明的串并结合北斗卫星信号捕获流程图。
图2是本发明北斗信号捕获装置的结构图。
具体实施方式
一种新的北斗信号二次捕获算法,包括以下步骤:
步骤一:BDS接收机接收到的RF信号经过射频前端放大、下变频和数字化后得到中频信号IF,X(nTs);
步骤二:对中频信号IF,X(nTs)每隔1ms选取信号,一共选取m组作为输入信号;
步骤三:设定多普勒频偏,生成1ms扩频码作为本地扩频码;
步骤四:将m组输入信号分别与经过本地副载波调制的本地扩频码进行一个周期的循环相乘,而后将乘积进行NSP点的累加得到相关输出yp(k),Nsp是一周期本地扩频码的样点数;
步骤五:相关输出yp(k)经过Ns=20次的串行捕获,得到串行捕获结果ysc,Ns是本地二次编码的码片数;
步骤六:选取20ms本地二次编码补20ms零构成本地备用二次编码,本地备用二次编码经过FFT变换后取复共轭得到本地二次编码复共轭信号;
步骤七:将串行捕获结果ysc经FFT变换后与本地二次编码复共 轭信号相乘,相乘结果经IFFT变换到时域得到时域信号
步骤八:将时域信号与设定的门限阈值进行比较,检测是否捕获到卫星信号,若时域信号没有超过阈值则将在下一个多普勒频偏上重复步骤三到步骤八,直到捕获到卫星信号或者搜索完所有的可能多普勒频偏。
具体实施时,接收机接收到的卫星信号经过射频前端放大、下变频、数字化后得到中频信号IF,X(nTs),中频信号表达式如下:
IF,X(nTs)=A[Sx(nTs-τ)ej2π(fIF+fd)nTs]+ηIF(nTs)---(1),]]>
其中Ts是采样周期;fIF是中心频率;τ是PRN码相位;fd是多普勒频偏;ηIF是高斯白噪声;X是任意北斗卫星信号(i.e.B1,B2);SX(t)是低通信号:sX(t)=sX,I(t)+jsX,Q(t)(2),现只考虑导频通道,公式(1)可以改写为:
τIF,XPilot(nT)=-AsX,Q(nT-τ)sin(2π(fIF+fd)nTs)---(3),]]>
串行搜索就是将中频信号IF,X(nTs)与经过本地副载波调制的本地扩频码进行一个PRN码周期的循环相乘,而后将乘积进行Nsp点的累加,其中Nsp是一周期PRN码的样点数,同相和正交分量共同组成FFT部分的输入,上述过程的累加结果yp(k)可以表示为:
yp(k)=yI(k)+jyQ(k),k∈1,2,...,Nsc (4),其中
yI(k)=A2RX,p(τ^)sin(πfdTint)πfdTintcos(eφ)sc(k-τ0)+ηI---(5),]]>
yQ(k)=A2RX,p(τ^)sin(πfdTint)πfdTintsin(eφ)sc(k-τ0)+ηQ---(6),]]>
其中,是第X路卫星信号的自相关函数;和fd是中频信号相对于本地扩频码的相位延迟与多普勒频偏;Tint是积分时间;eφ是载波频率误差;sc(t)是二次编码序列,τ0是二次编码码相位;ηI和ηQ分别为能量为的高斯噪声;k是一个主码周期上的样点数,k∈{1,2,...,Nsc}。
需要指出,这些相关计算的结果都与本地副载波有关。一旦本地副载波与中频信号同步时,所有的功率将被集中在同相部分。然而,由于本地副载波和中频信号之间的相位漂移,能量将分配在同相和正交分量。Ns是二次编码的码片数,将存储Ns次的串行捕获结果ysc作为FFT部分的输入,串行捕获结果ysc表达式如下:
ysc=[yp(1),yp(2),...,yp(Ns)] (7),为了捕获二次编码采用FFT单元进行搜索,FFT单元的输出ysc随后与本地二次编码FFT变换的复共轭相乘,乘积经过IFFT变换到时域,时域信号表达式如下:
yf(τ^,τ0,fd)=ANsRX,p(τ^)RX,s(τ0)sin(πfdTint)πfdTint+ηf---(8),]]>其中RX,s(τ0)是二次编码的自相关函数,ηf是能量为的高斯白噪声。时域信号yf与设定的阈值进行比较来确定检测概率和虚警概率。如果时域信号yf超过阈值则可得到二次编码码相位τ0和多普勒频偏fd以及PRN码相位τ。若输出结果没有超过阈值则搜索机构将在下一个多普勒频偏上重复上述搜索过程,直到搜索到信号或者搜索完所有的可能频偏,进入下一颗卫星信号的搜索中。