RTCM3.3电文信号,消息类型GPS MSM4的解码

本文章尽可能详细地阐述RTCM电文GPS MSM4消息伪距和信噪比数据的解码流程,初学者,如有错误欢迎批评指正。介绍使用的数据来源于论文[2]。

目录

1. 综述

2. 电文结构

3. 可变长度消息

 3.1 消息头

3.1.1 读取Message number 

3.1.2 解读卫星标志表

 3.1.3 解读信号标志表

 3.1.4 得到信号位图表

3.2 卫星数据

3.3 信号数据


推荐文章:

(20条消息) RTKLIB之RTCM解析_伊伊_f-CSDN博客_rtklib中rtcm

(19条消息) RTCM格式解析_测量员小李的博客-CSDN博客_rtcm数据格式

(19条消息) 图解crc校验,crc8, crc16, crc32, crc24 用 c语言和python实现_hellomyself的专栏-CSDN博客_crc24校验

参考文献:

[1]于晓东, 吕志伟, 王兵浩,等. DGNSS数据传输格式RTCM3.2的介绍及解码研究[J]. 全球定位系统, 2015, 40(3):5.

[2]李珊珊, 杨泳, 徐开俊,等. 差分数据通信格式RTCM3.2解码算法研究[J]. 中国民航飞行学院学报, 2019(3):6.

相关文档(必备):

RTCM STANDARD 10403.3 Differential GNSS Services

RTCM文件阅读工具:

Notepad++以及它的HEX-Editor插件

1. 综述

初始电文数据:

解码后的数据:

RTCM的初始电文如图所示,它实际上是一串二进制数据,此处以16进制展示。其中,每一个字符(16进制数)占4bits,如“D”所占的比特数为4,将其转换为二进制为1101,每一个二进制数占一个bit,如“1”占的比特数为1。

电文被分为许多连续的数据字段,每个字段所占的比特数不同,需要根据协议逐一解读。

2. 电文结构

即看到“D3 00”就意识到这是一条电文的开头,0xA7对应的十进制为167,那么该电文接下来的长度为“167对数据”(为了便于理解,我将‘43’称为一对数据,一对数据包含两个16进制数,每个占4bits,一对数据占8bits。注意!!!文章的例子中将CRC去掉了,实际情况应再加上3对数据:24/8=3)

 现在引导字、保留字、消息长度解读完成。

3. 可变长度消息

  1. 消息头
  2. 卫星数据
  3. 电文数据

 3.1 消息头

包含该条消息的所有信息,如下图所示:

DF NUMBER部分的详细信息在RTCM协议中Data Field Table查看。

最后一个字段长度为卫星数和信号数的乘积,即X=Nsig*Nsat 。

3.1.1 读取Message number 

读取Message number字段,即前12bits,“43 2”的十进制为1074

 查找RTCM协议Message Type Table,找到Message Type为1074的行,得知1074对应的消息类型为GPS MSM4。

3.1.2 解读卫星标志表

逐个字段继续去读,直到GNSS Satellite Mask字段,结合GPS Satellite ID mapping,对电文进行解读

 解码方式表中第一行为16进制数(电文中的数),第二行灰色部分为GNSS Satellite Mask字段,为二进制,占了64位,第三行为卫星ID。若某一位为“1”则说明观测到了该卫星,为“0”反之。省略的部分都是0。卫星数Nsat=10。

 3.1.3 解读信号标志表

方法与卫星标志表类似,信号数Nsig=2。

文章的解码结果中信号类型为C1、P2,是因为W码一般只是根据Z技术恢复的一种P码,所以习惯上称为P码。

 3.1.4 得到信号位图表

它是一个二维表,它的大小为Nsig*Nsat,

信号位图表按列为单位,卫星ID升序排列。信号位图表确定了不同类型观测值的排列顺序,后续解读也按照这个顺序。

 至此,消息头解读完成。紧接着连接卫星数据和信号数据。 

3.2 卫星数据

解码方式都是一致的,但是要注意电文里每一个字段都是连续的(即比特也连续),根据字段所占的字节数截取相应的一截,再转换为十进制。

3.3 信号数据

信号数据中解码后的数据排列顺序:

根据下式可以求得伪距:

载噪比/信噪比数据直接读取即可。

最后总结一下解码流程:

  1. 读取引导”D3 00”找到电文开头位置
  2. 读取消息头:从可变长度消息消息头中读取Message Type,在RTCM协议Message Type Summary中找到对应的数字,确定消息类型;然后读取消息头中的卫星标志表(Satellite Mask)和信号标志表(Signal Mask),以确定信号数据中观测值的排列顺序和位置(所在的位数);
  3. 找到该消息类型Content(内容表),查看该消息类型包含哪些数据字段(Data Field)
  4. RTCM协议中查Data Field Table查看内容表中每个数据字段各自所占的位数
  5. 读取卫星数据、信号数据:根据每个数据字段所占的位数,按为单位逐个字段地去解码电文。

  • 21
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
RTCM 3.3是实时差分数据的标准电文格式。RTCM是Real-Time Control and Monitoring的缩写,3.3代表标准的版本号。差分数据电文是用于GPSGNSS测量的实时差分校正数据的传输格式。 RTCM 3.3差分数据电文包含了卫星测量和校正信息。具体而言,它包括了接收器接收到的卫星观测量数据,比如伪距和载波相位观测值。同时,它也包含了基准站所测量到的卫星观测量数据,这些数据经过了精确的校正。 差分数据电文的目的是提供精确的位置修正信息,以提高GPSGNSS测量的精度。接收器通过接收基准站发送的电文,使用其中的校正数据对接收到的卫星观测数据进行计算和修正。通过使用差分数据电文进行差分校正,可以将GPSGNSS测量的定位精度提高到厘米级甚至更高的精度。 RTCM 3.3差分数据电文具有扩展性和灵活性,可以根据不同的需求进行定制。它可以包括不同类型的卫星信号观测量数据和校正数据,如L1/L2或L5频段的伪距和载波相位观测量数据。此外,差分数据电文中还可以包含其他附加信息,如接收器状态、天线高度和信噪比等。 总之,RTCM 3.3差分数据电文是用于GPSGNSS测量的实时差分校正数据的传输格式,提供了卫星观测量数据和校正数据,用于提高定位精度。它的扩展性和灵活性使得可以根据需求进行定制,并且可以包含其他附加信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值