一种高灵敏度的卫星导航精捕方法与流程

文档序号:19608440发布日期:2020-01-03 13:49阅读:541来源:国知局

本发明属于一种卫星导航接收机信号处理方法,具体涉及一种高灵敏度的卫星导航精捕方法。



背景技术:

卫星导航系统(北斗、gps、glonass等)是一种高精度的导航定位系统。卫星接收机通过接收天线接收卫星信号对卫星信号进行下变频处理,然后对下变频信号进行基带数字信号处理,经过导航解算处理后,可以给出精确的经度、纬度、高度、速度及时间等信息。目前卫星导航广泛的运用在军事及民用领域。

基带数字信号处理主要包括对卫星信号的捕获、跟踪等功能。由于算法限制,捕获灵敏度一般要远低于跟踪灵敏度,使得提高对卫星导航信号的捕获能力变得至关重要。在捕获卫星信号时,特别是长码捕获时,具备精捕功能更是必不可少的。一个好的精捕方法占用fpga资源量极少,但能很大的减小虚警概率,提高牵引成功率。

目前广泛使用的精捕方法均为通过采用1ms(最小单元的相关运算)相干积分及多次非相干积分来提高精捕灵敏度,这种方法带来的问题如下:

(1)需要用长时间的非相干积分才能达到比较高的灵敏度;

(2)长时间的非相干积分无法满足高动态场景的卫星信号捕获;

(3)长时间的非相干积分捕获时间较长。



技术实现要素:

本发明的目的是提供一种高灵敏度的卫星导航精捕方法,通过提高相干积分时间,在提高精捕灵敏度的同时,不增加捕获时间,且满足高动态需求。

本发明是这样实现的,一种高灵敏度的卫星导航精捕方法,包括以下步骤:

步骤1:产生通道本地码、设置载波频率;

步骤2:产生i、q两路混频结果;

步骤3:i、q两路信号与本地码进行多路短时相关运算;

步骤4:储存多路相关运算结果;

步骤5:短时相关结果与数据跳变系数进行相关运算;

步骤6:相关运算结果进行fft;

步骤7:fft结果进行求模运算并输出捕获结果。

所述的步骤1包括以下操作:

根据粗捕得到的码相位置入跟踪通道,通过停止通道码发生器来延时通道码相位(长码为置时间到相关芯片等待芯片产生码),将本地码调整到超前粗捕结果l个码片;

根据粗捕得到多普勒频率f0,并将f0置入跟踪通道,将对应跟踪通道的载波频率调整为f(本地载波初始频率)+f0,同时产生相应频率的i、q两路正交载波信号。

所述的步骤2包括以下操作:

将i、q两路正交载波信号与中频信号进行相关运算,产生i、q两路混频信号。

所述的步骤3包括以下操作:

对跟踪通道输出的本地码进行n路码片延迟,产生n路并行码输出,将n路并行码与输入的i、q两路信号进行相关运算,并将n路并行相关结果分别进行n路短时累加,最后将n路短时累加结果延迟输出。

所述的步骤4包括以下操作:

每次acc_complete(该信号为第一路短时相关完成标志)为高后输出n组短时相关结果到ram中,n个时钟后完成该次写操作,一次捕获进行m次写操作,ram深度为m*n。

所述的步骤5包括以下操作:

将ram中缓存的短时相关结果与事先预存在rom中的数据跳变系数进行对应相乘,产生新的短时相关结果。

所述的步骤6包括以下操作:

将步骤5相关运算完的数据进行fft运算,每次捕获共进行p*n次q点fft运算(其中q大于等于m)。

所述的步骤7包括以下操作:

对fft结果进行求模运算,并比较出最大值并保持最大值对应的捕获码相位值及多普勒频率值。

所述的步骤3中的对跟踪通道输出的本地码进行n路码片延迟,产生n路并行码输出,将n路并行码与输入的i、q两路信号进行相关运算,并将n路并行相关结果分别进行n路短时累加,最后通过n路短时相关完成标记控制n路短时累加结果延迟输出。

所述的步骤5中的将ram中缓存的短时相关结果与事先预存在rom中的数据跳变系数进行对应相乘,产生新的短时相关结果。

本发明的优点是,(1)采用一种延迟输出相关结果的并行相关+fft的方法(见步骤3),很大的节省多路相关完成后需要锁存相关值的寄存器,从而减少了占用fpga的逻辑资源,从而减小了系统功耗;(2)使用了一种从rom读取数据跳变系数与相关结果相乘的方法(见步骤5),消除了卫星信号数据跳变或nh码跳变等对相关长度的限制影响,从而提高数据和伪码相。

具体实施方式

下面结合具体实施例对本发明进行详细介绍:

本发明的原理是:对跟踪通道输出的本地码进行n路码片延迟,产生n路并行码输出,将n路并行码与输入的基带信号进行相关运算,并将n路并行相关结果分别进行n路短时累加,最后将n路短时累加结果延迟输出,并与rom中读出的数据跳变系数相乘,进行fft变换并将变换结果取模比较最大值,最后将最大值及最大值对应的码相位和多普勒频率锁存。本发明的方法具体包括以下步骤:

步骤1:产生通道本地码、设置载波频率

根据粗捕得到的码相位调整跟踪通道,调整跟踪通道是通过暂停通道码发生器的运行来延时通道码相位(长码为置时间到相关芯片等待芯片产生码),最终将本地码调整到超前粗捕结果l个码片。

通过粗捕得到了载波多普勒频率f0,将f0换算成本地压控振荡器增量置入跟踪通道的压控震荡器来调整跟踪通道的载波频率,经过通道调整后的载波频率调整为f(本地载波初始频率)+f0,同时产生相应频率的i、q两路正交本地载波信号。

步骤2:产生i、q两路混频结果:

将步骤1输出的i、q两路正交本地载波信号分别与射频前端经过数字信号处理的中频信号进行混频,产生i、q两路混频结果。

步骤3:i、q两路信号与本地码进行多路短时相关运算:

对步骤1跟踪通道输出的本地码进行n路码片延迟(一般n=2*l*tcode/tclk,其中tcode为一个码片的时长、tclk为工作时钟的周期),产生n路并行码输出,然后将n路并行码与输入的i、q两路信号进行相关运算,并将n路并行相关结果分别进行n路短时累加,最后通过n路短时相关完成标记控制n路短时累加结果延迟输出。

具体如下:

(1)当即时路(第1路未延迟)的相关结果每次累加到t0(ms)时长的最后1个工作时钟周期时,产生1个只有1个工作时钟周期高电平的累加完成信号acc_complete,当acc_complete为1时输出该即时路的累加结果,同时将累加值置为当前即时的相关值,开始进行下一轮累加运算;

(2)在acc_complete为高电平的后1个工作时钟周期,输出延迟1路的累加结果,同时将累加值置为当前延迟1路的相关值,开始进行下一轮累加运算;

(3)在acc_complete为高电平的后2拍,输出延迟2路的累加结果,同时将累加值置为当前延迟2路的相关值,开始进行下一轮累加;

(4)依此直到在acc_complete为高电平的后n-1拍,输出延迟n-1路的累加结果,同时将累加值置为当前延迟n-1路的相关值,开始进行下一轮累加;即完成了1次n路短时相关运算;

(5)在下1个acc_complete到来时进行上述同样操作,直到完成t1(ms)的相关运算(该操作进行m次,m×t0=t1,t0必须能整除1);

(6)通过(1)~(4)的方法,使n路的相关结果不是在同一个时刻计算完成,而是在acc_complete为高电平后的n个工作时钟依次每个时钟计算完一路的短时相关结果并将短时相关值到缓存到ram中(该短时相关结果只保存1个时钟后即开始参与下一次相关累加运算中,因此该值一旦输出即将其输入到ram中);acc_complete为高电平n个工作时钟后完成一次n路相关结果的输出;

(7)在下1个acc_complete到来时进行上述同样操作,直到完成t1(ms)的相关运算(该操作进行m次,m×t0=t1,t0必须能整除1)。

步骤4:储存多路相关运算结果

每次acc_complete为高的n个工作时钟内依次将步骤3输出的n组短时相关结果输入到ram中,n个时钟后完成该次写操作;一次捕获进行m次写操作,ram深度为m*n。

步骤5:短时相关结果与数据跳变系数进行相关运算

将ram中缓存的短时相关结果与事先预存在rom中的数据跳变系数进行对应相乘,具体如下:

(1)从ram中读取短时相关结果,同时从rom中循环读取预存的第一组数据跳变系数,ram和rom的读使能信号一致,每读m个数后停止读q-m个工作时钟。ram的读地址初始值为0,在读使能为高时一直加1,每次加到m*n-1即停止累加,地址置0;rom的读地址初始值为0,读使能为高时每1/t0个工作时钟地址一直加1,每次加到t1-1时地址置0,再重新开始加,按此操作循环n次。依此进行后,ram中n路短时相关结果根据从rom中循环读取的第1组对应的数据跳变系数进行正负判断,当为1时对相关结果取负输出,当为0时对相关结果取正输出;

(2)依次如(1)操作直到第p次,从ram中读取短时相关结果,同时从rom中循环读取预存的第p组数据跳变系数,ram和rom的读使能信号一致,每读m个数后停止读q-m个工作时钟。ram的读地址初始值为0,在读使能为高时一直加1每次加到m*n-1即停止累加,地址置0;rom的读地址初始值为(p-1)*t1,,读使能为高时每1/t0个工作时钟地址一直加1,每次加到p*t1-1时地址置0,再重新开始加,按此操作循环n次。依此进行后,ram中n路短时相关结果根据从rom中循环读取的第p组对应的数据跳变系数进行正负判断,当为1时对相关结果取负输出,当为0时对相关结果取正输出;

(3)rom缓存深度为t1*p,共产生p*n组相关结果,每组m个相关结果,其中以20ms长度的gps信号为例rom数据跳变系数设置方法如下(其它卫星信号依次拓展即可):将gps数据跳变的可能均考虑到,因为gps数据bit长为20ms,因此共20种可能,所以这里的t1等于20(1ms个数)、p等于20(数据跳变可能性),具体见表1。

表120ms长度的gps信号

步骤6:相关运算结果进行fft

对步骤5运算完的相关结果进行fft运算,每次捕获共进行p*n次q点fft运算(其中q大于等于m)。

步骤7:fft结果进行求模运算并输出捕获结果

对fft结果进行求模运算,并比较出p*n*q个fft输出结果的最大值,并保持最大值及最大值对应的码相位值及多普勒频率值。最后比较最大值与门限的大小,若最大值大于门限值,则进牵引,若最大值小于门限,则判断捕获失败。

在fpga上实现该算法,其中m=40,n=20,t1=10,t0=0.25,q=64。设置输入信号与码片相位差为1个时钟周期,输入信号与本地载波频率差为2000hz。通过modsim10.1a仿真可得,最后的捕获峰值为13894,捕获地址对应的用2进制表示为11’b00001100000,其中低6位代表多普勒频率对应频率为2000hz,高5位对应码片偏差为1。仿真结果与预置testbench的输入信号一致。

当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!
1