周跳探测——多普勒积分

前言

在没有周跳的情况下,历元间多普勒的积分值就等于载波相位的变化值。其优点在于,只需要单频数据就可以进行周跳检测。(在动态定位中,多普勒不准确,不适用。。。)

一、公式推导

多普勒周跳探测的原理如下:
在这里插入图片描述在这里插入图片描述

除了可以对单个卫星进行探测外,式(6)还可以在星间做二次差,消除接收机钟跳的影响。

二、rtklib中代码

/* detect cycle slip by doppler and phase difference -------------------------*/
static void detslp_dop(rtk_t *rtk, const obsd_t *obs, const int *ix, int ns,
                       int rcv, const nav_t *nav)
{
    int i,ii,f,sat,ndop=0;
    double dph,dpt,lam,thres,mean_dop=0;
    double dopdif[MAXSAT][NFREQ], tt[MAXSAT][NFREQ];

    trace(4,"detslp_dop: rcv=%d\n", rcv);
    if (rtk->opt.thresdop<=0) return;  /* skip test if doppler thresh <= 0 */

    /* calculate doppler differences for all sats and freqs */
    for (i=0;i<ns;i++)
	{
        ii = ix[i];
        sat=obs[ii].sat;

        for (f=0;f<rtk->opt.nf;f++)
		{
            dopdif[i][f]=0;tt[i][f]=0.00;
            if (obs[ii].L[f]==0.0||obs[ii].D[f]==0.0||rtk->ssat[sat-1].ph[rcv-1][f]==0.0) continue;
            if ((tt[i][f]=fabs(timediff(obs[ii].time,rtk->ssat[sat-1].pt[rcv-1][f])))<DTTOL) continue;
            if ((lam=sat2freq(obs[ii].sat,obs[ii].code[f],nav))<=0.0) continue;

            /* calc phase difference and doppler x time (cycle) */
            dph=obs[ii].L[f]-rtk->ssat[sat-1].ph[rcv-1][f];//--------前后历元载波相减--------
            dpt=-obs[ii].D[f]*tt[i][f];//-------用前后多普勒相加再除以时间精度会更好------------
         
			//------博主PhD.Knight的博文【干货】提升RTK模糊度固定率的建议之周跳探测
			///------接收机钟跳处理-----------------------------------------
			int cj;
			cj = floor(fabs(dph*lam / CLIGHT) * 1000 + 0.5); // clock jump, integer ms
			if (cj != 0) continue;

			 /* ignore doppler sign due to inconsistencies in sign of doppler/phaserangerate msmts */
            dopdif[i][f]=(fabs(dph)-fabs(dpt))/tt[i][f];

            /* if not outlier, use this to calculate mean */
            if (fabs(dopdif[i][f])<3*rtk->opt.thresdop) {
                mean_dop+=dopdif[i][f];
                ndop++;
            }
        }
    }
    /* calc mean doppler diff, most likely due to clock error */
    mean_dop=ndop>0?mean_dop/ndop:0;

    /* set slip if doppler difference with mean removed exceeds threshold */
    for (i=0;i<ns;i++)
	{
        sat=obs[ix[i]].sat;

        for (f=0;f<rtk->opt.nf;f++)
		{
            if (dopdif[i][f]==0.00) continue;
            if (fabs(dopdif[i][f]-mean_dop)>rtk->opt.thresdop)
			{
                rtk->ssat[sat-1].slip[f]|=1;
                errmsg(rtk,"slip detected doppler (sat=%2d rcv=%d dL%d=%.3f off=%.3f tt=%.2f)\n",
                   sat,rcv,f+1,dopdif[i][f]-mean_dop,mean_dop,tt[i][f]);
            }
        }
    }
}

三、接收机钟跳官方方法

【北斗/全球卫星导航系统(GNSS)测量型接收机观测数据质量评估方法】
在这里插入图片描述在这里插入图片描述

<北斗/全球卫星导航系统(GNSS)测量型接收机观测数据质量评估方法>连接:

链接: http://www.beidou.gov.cn/yw/gfgg/202107/W020210721096053562295.pdf

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值