周跳探测——LLI

周跳探测——LLI周跳探测 LLI llignss

大家好,欢迎来到IT知识分享网。

前言


周跳探测是卫星定位解算中非常重要的数据预处理步骤,基本上把周跳问题处理好,整个数据干净了,后面的模糊度固定就能省事不少,因此,把相关的方法整理一下,以后看到有新的论文方法也记录下来,不断提高自己的水平。

一、LLI标志

LLI(Loss of Lock Indicator)表示失锁标识符,它的范围为0~7,转化为二进制格式000-111,即有3个bit位。其中bit 0和bit 1仅用于相位。

官方解释:【北斗/全球卫星导航系统(GNSS)接收机数据自主交换格式】

rtklib中代码和增加AS探测代码如下:

/* detect cycle slip by LLI --------------------------------------------------*/ static void detslp_ll(rtk_t *rtk, const obsd_t *obs, int i, int rcv) { 
     uint32_t slip,LLI; int f,sat=obs[i].sat; trace(4,"detslp_ll: i=%d rcv=%d\n",i,rcv); for (f=0;f<rtk->opt.nf;f++) { 
     //------没有载波数据和标志为0,或者前后历元时间间隔大--------------- if ((obs[i].L[f]==0.0&&obs[i].LLI[f]==0)|| fabs(timediff(obs[i].time,rtk->ssat[sat-1].pt[rcv-1][f]))<DTTOL) { 
     continue; } /* restore previous LLI */ if (rcv==1) LLI=getbitu(&rtk->ssat[sat-1].slip[f],0,2); /* rover */ else LLI=getbitu(&rtk->ssat[sat-1].slip[f],2,2); /* base */ /* detect slip by cycle slip flag in LLI */ if (rtk->tt>=0.0) { 
     /* forward */ if (obs[i].LLI[f]&1) //------bit0为1,表明当前历元可能发生了周跳----------- { 
     errmsg(rtk,"slip detected forward (sat=%2d rcv=%d F=%d LLI=%x)\n", sat,rcv,f+1,obs[i].LLI[f]); } slip=obs[i].LLI[f]; } else { 
     /* backward */ if (LLI&1)//-----------前一历元bit0位为1,表明前一历元发生可能发生了周跳 { 
     errmsg(rtk,"slip detected backward (sat=%2d rcv=%d F=%d LLI=%x)\n", sat,rcv,f+1,LLI); } slip=LLI; } /* detect slip by parity unknown flag transition in LLI */ //----(LLI&2)&&!(obs[i].LLI[f]&2)--前一历元bit1 位为1并且当前历元bit1位不为1; //----(!(LLI&2)&&(obs[i].LLI[f]&2) ----前一历元bit1 位为0且当前历元bit1位为1; //----即前后历元的bit1位不相同,表明可能发生了半周跳。 if (((LLI&2)&&!(obs[i].LLI[f]&2))||(!(LLI&2)&&(obs[i].LLI[f]&2))) { 
     errmsg(rtk,"slip detected half-cyc (sat=%2d rcv=%d F=%d LLI=%x->%x)\n", sat,rcv,f+1,LLI,obs[i].LLI[f]); slip|=1;//将slip的bit0位置为1; } //表示为反欺骗(AS)下的观测值(可能会受到噪声增加的影响) if(obs[i].LLI[f]&0x04) { 
     slip|=1;//将slip的bit0位置为1; } /* save current LLI */ if (rcv==1) setbitu(&rtk->ssat[sat-1].slip[f],0,2,obs[i].LLI[f]); else setbitu(&rtk->ssat[sat-1].slip[f],2,2,obs[i].LLI[f]); /* save slip and half-cycle valid flag */ rtk->ssat[sat-1].slip[f]|=(uint8_t)slip; rtk->ssat[sat-1].half[f]=(obs[i].LLI[f]&2)?0:1; } } 

理论上只要板卡足够好,它自身的LLI标志就能把载波数据的周跳、半周跳告知你,就不需要其他探测方法了。LLI的是从信道方面探测周跳的,效果应该比我们从数据方法探测周跳更灵敏。

有的板卡或许LLI探测太灵敏了,把没有问题的数据也当作周跳进行标志,可能会导致观测数据不足,故有时会把LLI周跳探测方法关闭。 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132293.html

(0)
上一篇 2025-08-01 16:45
下一篇 2025-08-01 17:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信