前言
在没有周跳的情况下,历元间多普勒的积分值就等于载波相位的变化值。其优点在于,只需要单频数据就可以进行周跳检测。(在动态定位中,多普勒不准确,不适用。。。)
一、公式推导
多普勒周跳探测的原理如下:
除了可以对单个卫星进行探测外,式(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