本发明涉及卫星导航技术领域,特别涉及的是最高速度极大的弹载接收机对gnss信号的自适应变搜索范围的快速捕获方法。
背景技术:
gnss(globalnavigationsatellitesystem)是全球导航卫星系统的简称,其定位原理是接收多颗卫星的信号,经过载波解调、伪码解扩、电文解码后获取导航电文,从中提取出星历信息,计算出卫星的发射时间、位置、速度、伪距等观测量,进而计算接收机所处位置与速度。与惯性导航相比,卫星导航具有不随时间发散的优点,因而,随着飞行时间及射程的不断增长,定位精度要求的不断提高,导弹越来越依赖于卫星/惯性的组合导航方式。
实现gnss定位的首要条件是完成对卫星信号的捕获,即获取该卫星信号的伪码相位、多普勒频移等信息,以此初始化跟踪环路,实现信号的稳定跟踪及后续解算步骤。多个通道的并行捕获,涉及较多并行运算,因而通常采用fpga实现。而对于功能高度集成化的弹载信息处理平台,fpga除了实现卫星导航相关功能外,还要完成信息解算、信号收发、通讯接口控制等功能,为捕获模块分配的逻辑资源有限。在此情况下,基于分段累加+dft的快捕方法是一种合适的频域并行搜索方法,dft运算时涉及的加法,乘法运算则通过分时复用加法器,乘法器实现,可以节省大量fpga资源,同时,相比传统的时域串行搜索法,该方法耗时极短,兼顾了导弹加速度的影响。
导弹的最大飞行速度极高,由此带来的多普勒频移很大,因此,相比于普通的低速接收机,弹载接收机在gnss信号捕获设计时面临以下几个难点:
(1)若搜索范围设置不当,未覆盖导弹运动产生的最大多普勒频移,由于频谱混叠效应,捕获模块将给出错误的频率信息,导致环路无法工作;
(2)在采用分段累加+dft的快捕方法时,频率分辨率被限制有上限,以免超出锁频环牵引能力,暗含了对数据存储长度的约束;dft运算时采用分时复用法,每累加出一个点,就要进行与该点相关的dft加/乘运算,且必须在下个点计算完成之前释放所占用的加/乘法器,由此暗含了对数据存储长度与累加点数的约束;两个约束条件决定了最大频率搜索范围,然而,导弹的高速性使得最大多普勒超出了该范围,需采用合理的设计方法解决;
(3)导弹在飞行时会由于滚转及俯仰造成天线指向的改变,引起对某些卫星的暂时失锁,需设计合理的捕获策略,优先对这些卫星进行捕获。
自适应可变搜索范围的gnss信号快捕技术,主要是针对弹载信息处理高度集成化造成的fpga资源相对有限、导弹动态大造成的捕获时间裕度小、导弹最大速度极高造成的多普勒频移超出现有框架下的最大搜索范围条件下gnss信号的快捕进行的。目前国内大多数研究均在单纯的卫星接收机上进行,与本发明搭载的弹载综合信息处理平台不同,不受fpga资源的限制,且研究方向大都集中于引入各种辅助信息来缩短捕获时间,避免重复搜索等,不适用本发明所处的使用场景。
技术实现要素:
本发明所要解决的技术问题是:克服现有框架限制,提供一种自适应可变搜索范围的gnss信号快速捕获方法,具有兼顾fpga资源消耗少、捕获范围宽、捕获时间短的特点。
为解决上述问题,本发明提出了一种自适应可变搜索范围的gnss信号快速捕获方法,包括以下步骤:
s1.根据实际定位解算情况,将待捕获卫星划分为失锁重捕、曾捕获、未捕获三种状态,并实时估算卫星信号在接收机上的多普勒频移;
s2.优先展开对失锁重捕状态卫星的捕获,将卫星号、多普勒频移送入捕获模块,使能捕获;
s3.其次展开对曾捕获状态卫星的捕获,将卫星号、多普勒频移送入捕获模块,使能捕获;
s4.最后展开对未捕获状态卫星的捕获,将卫星号、多普勒频移送入捕获模块,使能捕获;
s5.按照给定的卫星号与多普勒频移,结合预先设置的两种捕获模式:1、范围为
进一步,所述步骤s1中,待捕获卫星的状态详细定义如下:
失锁重捕状态:接收机处于定位状态,时间信息有效,且该卫星最后一次参与定位时刻距当前时刻不超过10s;
曾捕获状态:接收机处于定位状态,时间信息有效,该卫星不属于失锁重捕状态,但其星历已被存储,且仍在有效期内;
未捕获状态:既不属于失锁重捕也不属于曾捕获状态的卫星。
进一步,所述步骤s1中,卫星信号在接收机上的多普勒频移估算方法如下:
失锁重捕卫星:
其中,fe为多普勒频移,c为光速,fg为载波频率,x,y,z与vx,vy,vz分别为当前时刻接收机在efec坐标系下的位置与速度;xr,yr,zr与vxr,vyr,vzr分别为该卫星最近一次参与定位时,在efec坐标系下的位置与速度;
曾捕获卫星:
其中,xt,yt,zt与vxt,vyt,vzt为根据存储的星历信息与当前时间t,所估计的该卫星的位置与速度;
未捕获状态:若接收机当前处于定位状态,则
否则,fe=0(4)
进一步,所述步骤s5中,包含以下步骤:
s51.判断fe的大小,若处于
s52.对输入的i、q两路零中频信号进行降速处理,得到与伪码速率一致的ic、qc零中频数据,该步骤始终执行;
s53.实时存储ic、qc数据。若st=1,存储tcoh·l长度数据,l为一个伪码周期(1ms)的码片数,tcoh为以ms为单位的数据累加时间,并末尾补0得到共
s54.将搜索码相位phase初始化为0,以phase为初相,读取存储在本地的该卫星伪码,之后与ica、qca相关累加,得到解扩后的d或
x(n)=iacum(n)+j·qacum(n)n=0:1:n-1(6)
s55.步骤s54中每得到一个累加值x(n),进行一次dft所需运算。所有dft运算结束后,更新最大幅值及相关信息;
s56.循环执行s53~s55步骤,直至将步骤s54中的搜索码相位phase由0~l-1遍历完毕,同时得到dft平均幅值。若sd为0,转入s57,否则,转入s58;
s57.若最大幅值与平均幅值的比值超过该模式的门限,则判定该卫星捕获完成,等待下次捕获指令并送出相关信息;若未超过门限,将st取反,sd置为1,重新执行s53~s56步骤;
s58.若最大幅值与平均幅值的比值超过该模式的门限,则判定该卫星捕获完成,等待下次捕获指令并送出相关信息;若未超过门限,表明对该颗卫星的捕获失败,等待下次捕获指令。
进一步,所述步骤s5中,频率分辨率计算方法为:
更进一步,所述步骤s54中,数据累加时间tcoh与n的选取方法为:
已知导弹最大速度为vd且可近似视作在地表飞行(相对于卫星轨道高度),则最大多普勒频移可估算如下:
其中,vg为卫星平均速度估计值,re为地球半径,取6378km,rs为卫星轨道距地心的估计距离;
已知锁频环牵引范围为±fll,由:“高频搜索范围须大于最大多普勒;频率最大模糊度(frh的一半,即frl)须小于锁频环牵引范围;tcoh应使比特翻转概率小于预定值σ;m不小于n”四方面进行约束:
frh<fll(9)
f(tcoh)<σ(10)
m≥n(11)
其中,f(tcoh)为由tcoh引起的比特翻转概率函数,在以上四项约束下,根据情况选取合适的tcoh与n值。
更进一步,所述步骤s55中,包含以下步骤:
s551.设置深度为n的rom,存入周期为n的sin、cos两路信号,组成用于dft运算时所需的各频率基波信号:
同时设置深度为n的双口ramr与rami,用于存储dft计算时的实部与虚部值。
s552.将rom读地址addr初始化为0,若st=1,则地址步长索引index初始化为0,若st=0,则将index初始化为
s553.累加值x(n)来临时,开始进行运算:读取rom中相应数据romcos(addr)/romsin(addr)与x(n)作复数乘运算。
s554.下个时钟上升沿来临时,rom读地址进行更新:addr=(addr+index)mod(n),mod为取余操作。
s555.循环执行s553~s554步骤。若st=1,则执行n次,n个时钟后,得到n个复数乘积:
若st=0,则执行
s556.读取双口ramr与rami中存储的累加结果
s557.循环执行s553~s556步骤n次,得到了最终的dft计算结果x(k)k=0:1:n-1(st=1时)/
s558.更新dft平均幅值amean,并计算该次dft结果的最大幅值,若大于之前的记录值,则更新最大幅值amax、多普勒频移(与双口ram地址对应)、搜索码相位。
附图说明
图1是本发明实施例的频率搜索范围示意图;
图2是本发明实施例的低频搜索模式下的dft计算流程图;
图3是本发明实施例的高频搜索模式下的dft计算流程图。
具体实施方式
下面结合附图对本发明的具体实施方式做更详尽的说明。
如图1所示,本发明预置了两种捕获模式:低频搜索范围模式与高频搜索范围模式。其中,低频模式最终给出n点频率信息;高频模式给出
在检测到当前的跟踪通道有空闲时,则启动捕获流程,将待捕获卫星按失锁重捕、曾捕获、未捕获的状态,优先级由高到低排列,其卫星号与多普勒频移估算值被送入捕获模块;
若频移估算值位于低频搜索范围内,则置st为1,否则置st为0,同时,置sd信号为0。
将输入的零中频数据i、q作降速处理,首先,设置固定步长的伪码nco,步长为
其次,在fc_en无效时将i、q进行累加,fc_en有效时将累加结果输出并清除累加器,得到与伪码速率一致的降速后ic、qc数据。
存储待分析数据,设置深度为
以fs速率将数据从ram中再次读出,若st=1,则依次读出全部d点数据;若st为0,则依次读出前
与此同时,根据卫星号,把搜索码相位phase初始化为0,以其为初相(rom读地址),将存储在本地rom中的该卫星伪码循环读出;
将本地伪码与读出的ic、qc数据做分段相关累加。若st=1,则每
x(n)=iacum(n)+j·qacum(n)n=0:1:n-1(1)
对x(n)进行dft运算,分析频率信息,在深度为n的rom中存入周期为n的sin,cos两路信号,组成运算时所需的各频率基波信号;同时设置深度为n的双口ramr与rami,用于存储计算时的实部与虚部结果;
rom的读地址addr初始化为0,若st为1,则地址步长索引index初始化为0,若st为0,则index初始化为
例如当前已将第n+1个累加值x(n)计算出,则读取rom的数据romcos(addr)/romsin(addr)与x(n)作复数乘运算;
下个时钟上升沿来临时,将rom读地址进行更新:addr=(addr+index)mod(n),mod为取余操作;
循环计算上一步,若st为1,则执行n次;若st为0,则执行
读取ramr与rami中存储的累加结果
以上六步循环执行n次后,得到了全部的累积结果x(n)n=0:1:n-1以及其n点dft计算结果x(k)k=0:1:n-1(st=1时);
计算所有
以上十二步循环执行l次后,所有码相位0:1:l-1被遍历完毕,得到所有n·l个
st=1时,若amax>tdl·amean,其中,tdl为低频范围模式的捕获判别门限,则宣告该卫星捕获成功,并等待下次捕获命令,否则,将st取反,sd取1,开启高频捕获流程;st=0时,除门限tdh外,其余步骤相同;
若sd=1时,仍未捕获成功,则宣告对该卫星的捕获失败。开启对下一颗待捕获卫星的捕获流程,直至所有通道均为非空闲状态。
本发明未详细阐述的部分属于本领域的公知技术。本发明的实施例虽然结合附图描述如上,但是本领域普通技术人员可以在所述权利要求的范围内做出变动和修改。