DCB改正——关于spp

重点讨论北斗的卫星定位情况

选用wuh22021年12月1日的观测文件,对北斗的B1CB2a两个频点改正

        else if (sys==SYS_CMP) { /* B1-B2 改为 B1C-B2a */
            /*必须精密轨道和钟差一起,不然会出现错误*/
            if (opt->sateph==EPHOPT_PREC) {
                gamma=SQR(FREQL1/FREQL5);
                gamma1=SQR(FREQ1_CMP)/(SQR(FREQ1_CMP)-SQR(FREQ3_CMP));
                gamma2=SQR(FREQ3_CMP)/(SQR(FREQ1_CMP)-SQR(FREQ3_CMP));
                if (obs->code[0]==CODE_L1P||obs->code[0]==CODE_L1D||obs->code[0]==CODE_L1X)
                    P1-=(nav->cbias[obs->sat-1][3])-gamma1*nav->cbias[obs->sat-1][6];  /* C1*(C2I->C6I)+(C1X->C6I) B1C */
                if (obs->code[1]==CODE_L5D||obs->code[1]==CODE_L5P||
                    obs->code[1]==CODE_L5X)
                    P2-=nav->cbias[obs->sat-1][3]-gamma1*nav->cbias[obs->sat-1][6]-nav->cbias[obs->sat-1][0]; /* C1*(C2I->C6I)-(C1X->C5X)+(C1X->C6I) B2a */
                return ((P2-gamma*P1)/(1.0-gamma));
            }
            else {
                gamma=SQR(FREQL1/FREQL5);
                if (obs->code[0]==CODE_L2I||obs->code[0]==CODE_L2Q||obs->code[0]==CODE_L2X) b1+=gettgd(sat, nav, 0); /* TGD_B1I */
                else if (obs->code[1]==CODE_L7I||obs->code[1]==CODE_L7Q||obs->code[1]==CODE_L7D||obs->code[1]==CODE_L7P) b2+=gettgd(sat, nav, 1); /* B2I */
                else if (obs->code[0]==CODE_L1D||obs->code[0]==CODE_L1P||obs->code[0]==CODE_L1X||obs->code[0]==CODE_L1S) b1+=nav->cbias[sat-1][3]; /* C1X->C6I B1C */
                else if (obs->code[1]==CODE_L5D||obs->code[1]==CODE_L5P||obs->code[1]==CODE_L5X) b2+=nav->cbias[sat-1][3]-nav->cbias[sat-1][0];  /* C1X->C5X C1X->C6I B2a */
                //else b1=gettgd(sat,nav,2)+gettgd(sat,nav,4); /* TGD_B1Cp+ISC_B1Cd */
                //b2=gettgd(sat,nav,1); /* TGD_B2I/B2bI (m) */
                else { b1 = 0; b2 = 0; }
                return ((P2-gamma*P1)-(b2-gamma*b1))/(1.0-gamma);
            }
        else if (sys==SYS_CMP) { /* B1I/B1Cp/B1Cd */
            if (opt->sateph == EPHOPT_PREC) {
                gamma1=SQR(FREQ1_CMP) / (SQR(FREQ1_CMP) - SQR(FREQ3_CMP));
                gamma2=SQR(FREQ3_CMP) / (SQR(FREQ1_CMP) - SQR(FREQ3_CMP));
                if (obs->code[0]==CODE_L1P||obs->code[0]==CODE_L1D||obs->code[0]==CODE_L1X)
                    b1=(nav->cbias[obs->sat-1][3])-gamma1*nav->cbias[obs->sat-1][6];  /* C1*(C2I->C6I)+(C1X->C6I) B1C */
                return P1+b1;
            }
            else {
                if (obs->code[0]==CODE_L2I||obs->code[0]==CODE_L2Q||obs->code[0]==CODE_L2X) b1+=gettgd(sat,nav,0); /* TGD_B1I */
                else if (obs->code[0]==CODE_L7I||obs->code[0]==CODE_L7Q||obs->code[0]==CODE_L7D||obs->code[0]==CODE_L7P) b1+=gettgd(sat, nav, 1); /* TGD_B2I/B2b */
                else if (obs->code[0]==CODE_L1D||obs->code[0]==CODE_L1P||obs->code[0]==CODE_L1X) b1+=nav->cbias[sat-1][3]; /* C1X->C6I B1C */
                else if (obs->code[0]==CODE_L5D||obs->code[0]==CODE_L5P||obs->code[0]==CODE_L5X)
                {
                    //if (obs->code[0]==CODE_L5D) b1+=nav->cbias[sat-1][3]; /* C1X->C6I B2a */
                    //else if (obs->code[0]==CODE_L5P) b1+=nav->cbias[sat-1][3]; /* C1X->C6I B2a */
                    if (obs->code[0] == CODE_L5X) b1+=nav->cbias[sat-1][3]-nav->cbias[sat-1][3]; /* C1X->C6I-C1X->C5X B2a */
                }
                //else b1=gettgd(sat,nav,2)+gettgd(sat,nav,4); /* TGD_B1Cp+ISC_B1Cd */
                else b1 = 0;
                return P1-b1;
            }

双频组合和单频定位的改正,对于DCB的读取已经有所说明。
结果分析:

改正前
在这里插入图片描述
改正后
在这里插入图片描述
上述的异常现象,是因为粗差探测时选取的阈值太小导致的,后续改进,改进后也能提高dcb改进的定位精度。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值