GNSS差分码偏差(DCB,Differential Code Bias),有时也称IFB(Inter-Frequency Bias),是由不同类型的GNSS信号在卫星和接收机不同通道产生的时间延迟(硬件延迟/码偏差)差异,按照频率相同或者不同又可以细分为频内偏差(Intra-Frequency Bias)和频间偏差(Inter-Frequency Bias)。

我们以L1频点为例,把L1的卫星钟差为基准,L2的卫星钟差为:
δ2sat=δ1sat+(b2sat−b1sat)=δf1sat+DCB12sat\delta _2^{sat} = \delta _1^{sat} + (b_2^{sat} - b_1^{sat}) = \delta _{f1}^{sat} + DCB_{12}^{sat}δ2sat​=δ1sat​+(b2sat​−b1sat​)=δf1sat​+DCB12sat​
其中δ\deltaδ 为卫星钟差,b为该卫星的硬件延迟,该表示为L1L2频点的DCB。

我们对无电离层组合的钟差考虑
δIFsat=f12δ1sat−f22δ2satf12−f22=f12δ1sat−f22(δ1sat−DCB12sat)f12−f22=δ1sat−f22DCB12satf12−f22\delta _{IF}^{sat} = {{f_1^2\delta _1^{sat} - f_2^2\delta _2^{sat}} \over {f_1^2 - f_2^2}} = {{f_1^2\delta _1^{sat} - f_2^2(\delta _1^{sat} - DCB_{12}^{sat})} \over {f_1^2 - f_2^2}} = \delta _1^{sat} - {{f_2^2DCB_{12}^{sat}} \over {f_1^2 - f_2^2}}δIFsat​=f12​−f22​f12​δ1sat​−f22​δ2sat​​=f12​−f22​f12​δ1sat​−f22​(δ1sat​−DCB12sat​)​=δ1sat​−f12​−f22​f22​DCB12sat​​
对于个别系统来说,习惯性把f22DCB12satf12−f22{{f_2^2DCB_{12}^{sat}} \over {f_1^2 - f_2^2}}f12​−f22​f22​DCB12sat​​看作TGD。
GPS广播星历中的钟差都是基于无电离层组合的钟差,故钟差关系为
δ1sat=δIFsat−TGD=δIFsat+f22DCB12satf12−f22\delta _1^{sat} = \delta _{IF}^{sat} - TGD = \delta _{IF}^{sat} + {{f_2^2DCB_{12}^{sat}} \over {f_1^2 - f_2^2}}δ1sat​=δIFsat​−TGD=δIFsat​+f12​−f22​f22​DCB12sat​​δ2sat=δIFsat−(f1f2)2TGD=δIFsat+f12f12−f22DCB12sat\delta _2^{sat} = \delta _{IF}^{sat} - {\left( {{{{f_1}} \over {{f_2}}}} \right)^2}TGD = \delta _{IF}^{sat} + {{f_1^2} \over {f_1^2 - f_2^2}}DCB_{12}^{sat}δ2sat​=δIFsat​−(f2​f1​​)2TGD=δIFsat​+f12​−f22​f12​​DCB12sat​
**需要注意的:**在DCB改正的时候都是基于什么频点,改正过程中频点的基准要确定。

上述讨论的时频率之间的DCB,在系统中还与不同的码(通道)有关,例如C1和P1码之间DCBP1C1DCB_{P1C1}DCBP1C1​

几种常用的频点转换公式

rtklib提供的DCB读取并未涉及到对标准格式(2016年后)的读取,通过格式说明编写了以下的DCB读取,格式中实际上提供了DSB、OSB、ISB三种偏差改正信息,只读取了DSB。

    while (fgets(buff,sizeof(buff),fp)) {if (strstr(buff, "-BIAS/SOLUTION ")) break;setstr(Dsbias, buff + 24, 10);if      (strstr(Dsbias,"C1C  C1W") || strstr(Dsbias, "C1X  C5X")) type=1;else if (strstr(Dsbias,"C2C  C2W") || strstr(Dsbias, "C1P  C5P")) type=2;else if (strstr(Dsbias,"C2W  C2S") || strstr(Dsbias, "C1D  C5D")) type=3;else if (strstr(Dsbias, "C2W  C2L") || strstr(Dsbias, "C1X  C6I")) type = 4;else if (strstr(Dsbias, "C2W  C2X") || strstr(Dsbias, "C1P  C6I")) type = 5;else if (strstr(Dsbias, "C1C  C2W") || strstr(Dsbias, "C1D  C6I")) type = 6;else if (strstr(Dsbias, "C1C  C5Q") || strstr(Dsbias, "C2I  C6I")) type = 7;else if (strstr(Dsbias, "C1C  C5X") || strstr(Dsbias, "C1X  C7Z")) type = 8;else if (strstr(Dsbias, "C1W  C2W") || strstr(Dsbias, "C1X  C8X")) type = 9;if (!type) continue;setstr(str1, buff + 11, 3);  setstr(str2, buff + 15, 4);if ((cbias=str2num(buff,82,9))==0.0) continue;if (sta&&(!strcmp(str1,"G")||!strcmp(str1,"R") || !strcmp(str1, "E") || !strcmp(str1, "C") || !strcmp(str1, "J"))) { /* receiver DCB */for (i=0;i<MAXRCV;i++) {if (!strcmp(sta[i].name,str2)) break;}if (i<MAXRCV) {p=strchr(syscodesbias, str1[0]);j=(int)(p-syscodesbias);nav->rbias[i][j][type-1]=cbias*1E-9*CLIGHT; /* ns -> m */}}else if ((sat=satid2no(str1))) { /* satellite dcb */nav->cbias[sat-1][type-1]=cbias*1E-9*CLIGHT; /* ns -> m */}}

DCB格式代码下载:https://download.csdn.net/download/weixin_44994338/19022518

rtklib学习——DCB改正相关推荐

  1. RTKLIB学习总结(二)时间系统、坐标系统

    上篇博客: RTKLIB学习总结(一)MarkDown.VS配置RTKLIB.矩阵.最小二乘和Kalman滤波基本函数 关于时间系统和坐标系统的算法概念也可以看RTKLIB的manual131面 一. ...

  2. GNSS 精密钟差产品介绍与DCB改正详解

    文章目录 前言 参考 前言 IGS 提供的 GNSS 轨道产品和钟差产品的解算基准并非完全一样, 对于精密产品,各 GNSS 系统的参考基准均为双频无电离层组合:对于广播星历,则区分 GPS 类卫星( ...

  3. GNSS TGD/DCB改正模型

    引言 GNSS中的硬件延迟是指不同类型的导航信号在卫星和接收机端不同通道产生的时间延迟不一致.上述不一致造成的差异通常被定义为码偏差(对测距码即伪距产生影响).DCB包括卫星端码偏差和接收机端码偏差, ...

  4. 开源GNSS软件RTKLIB学习总结(一)MarkDown、VS配置RTKLIB、矩阵、最小二乘和Kalman滤波基本函数

    本文从昨晚写到今天上午,比较粗糙,且因为本人对GNSS和RTKLIB掌握的还很少,可能错误比较多,各位可以批判着看. 一.前言 本人是导航工程大二的学生,计划读研读博当老师,可能要和GNSS打几十年的 ...

  5. RTKLIB学习资料(博客)

    GPS单点定位原理与C++程序实现(一)_WHU-学渣的博客-CSDN博客_单点定位 学习rtklib(一)_WHU-学渣的博客-CSDN博客_rtklib学习 学习rtklib(二)_WHU-学渣的 ...

  6. RTKLIB学习总结(七)GNSS观测量、Rinex文件读取

    文章目录 一.GNSS观测量及其误差 1.时间.伪距 2.载波相位测量值.多普勒频移.积分多普勒 二.Rinex文件概述 三.存信息的类型 1.开头的#define 2.卫星和卫星系统的表示 3.观测 ...

  7. RTKLIB学习总结(六)导航电文、卫星位置计算

    文章目录 一.导航电文 1.GNSS卫星信号的组成 2.导航电文的编排 3.遥测字(TLW) 4.交接字(HOW) 5.第一数据块 6.第二数据块 7.第三数据块 二.卫星钟差钟漂改正 1.时钟校正参 ...

  8. RTKLIB2.4.3中一些问题的修复---RTKLIB学习系列文章(二)

    RTKLIB2.4.3中一些问题的修复 1 RTKPLOT的Map View 和 NTRIP Browser无法正常工作 问题详情: 地图视图没有响应或在RTKLIB/bin/leaflet/leaf ...

  9. DCB改正——关于spp

    重点讨论北斗的卫星定位情况 选用wuh22021年12月1日的观测文件,对北斗的B1CB2a两个频点改正 else if (sys==SYS_CMP) { /* B1-B2 改为 B1C-B2a */ ...

最新文章

  1. Vuex-一个专为 Vue.js 应用程序开发的状态管理模式
  2. No module named 'tf_extended'
  3. C/S框架-发布和部署WebService
  4. 4.Android的学习(了解代码与部分配置)
  5. MySQL【案例讲解】分组查询
  6. 使用代码获得Hybris Commerce里显示的产品图片
  7. 备份图解 ---mysql 博客
  8. mysql 启动报错Can't connect to local MySQL server through socket '/data/mysql/mysql/mysql.sock'(111)...
  9. Spring:@Configuration和@Component的使用与区别
  10. 这不是我想要的Serverless
  11. php黑名单绕过,利用最新Apache解析漏洞(CVE-2017-15715)绕过上传黑名单
  12. 【每日算法Day 64】LeetCode 861. 翻转矩阵后的得分
  13. 小马 KMS10激活系统后的浏览器小尾巴分析与清除
  14. DM适配Python
  15. word2016版本解决脚注分栏情况
  16. 代码题--C++--小米--英文句子字符串反转
  17. Gentoo Ebuild 和 Overlay
  18. Mac-Windows下IDEA卡顿问题解决
  19. java简介,java特点,java应用领域
  20. 大数据基础习题(2)

热门文章

  1. 修建公路1:最小生成树(克鲁斯卡尔算法)
  2. 一体化供应链里的「京东答案」
  3. 查看是否是固态硬盘SSD
  4. 使用thop库对yolo等深度学习模型的FLOPS进行计算
  5. 抖音直播带货数据统计,直播带货要复盘哪些数据指标
  6. windows用运行命令启动程序
  7. int和Interger区别
  8. NDS游戏《马里奥与路易》的迷你游戏《打地鼠》,玩了一晚上
  9. office卸载重新安装,并安装mathtype7数学编辑公式
  10. c语言 由字符串转ASCII码