||
最前面要说的话:
本人博客才疏学浅,仅作为自己学习工作之余,记录所做过的工作之用。如果能帮到一些同学,那也是极好的- - 。
开源,分享经验,让生活工作更美好!!!!!!!!!
先来说一下搞这个的由头吧,当时公司让利用UBLOX提供的SBAS信息进行伪距定位。虽然UBLOX提供的伪距改正信息等精度比较差,但已经给出了相应卫星的改正数,用户只需解码UBLOX定义的文件格式,获得改正信息较为简单。但本着求根问底的心态,我就来看了一下DO-229D对SBAS的文件规定的格式说明。
待我弄明白流程,来写。其实,怎么利用SBAS信息的进行定位解算并不难,难就难读英文标准,看懂其编码格式,解码其中的信息!!!(英文不好 - -)
那么,就开始一起学习吧。慢慢更……………………
首先,我们可以去ftp://serenad-public.cnes.fr/Niveau0/SERENAD0/FROM_NTMF/MSG/
里面下载标准SBAS文件。需要注意的事情,目前有两种格式的SBAS文件可提供下载,而rtklib2.4.3仅能识别如下格式的数据:
GPS周 周内秒 SBAS卫星 type类型号:29*2个16进制数据
因此,直接观察数据就可以知道某一时刻发送了哪些类型的电文信息,根据O文件观测时刻匹配相应的SBAS信息,然后对SBAS信息解码就可以得到播发的改正数,最后进行定位解算。
然后,就可以正式进入解码阶段。当然,解码工作必须参考SBAS国际标准《DO-229D》。
上图可知道,SBAS可由上述63条电文组成。每条电文格式如下:
总共250bit,8bit(电文头01010011 10011010 11000110 轮换)+6bit(类型号type)+212(SBAS电文信息)+24bit(奇偶检验数)
这里,我们就可以正式进入解码工作了。
首先,提取6bit(类型号type)判断是1~63哪条电文信息;然后,根据每条电文的格式进行解码工作。
由于,63条电文真的太多,而且SBAS卫星是1s播发一条信息(1s播发一种TYEPE类型的),其中有好多也是空或无用的信息。下面,我们一起来学习一下常用的几条电文(短、长周期改正、电离层对流层改正、完备性信息等)
type=0
略
type=1
编码卫星PRN号,这个很简单。从第14位开始,只要二进制位为1时,记下当前的位置即为PRN号。
1~37GPS 38~61GLONASS……一次类推
type=2
type=3
type=4
type=5
type=2到type=5都是Fast Corrections Message Types,区别就是他们分别负责对不同的卫星进行改正。
type=2负责1-13号卫星 type=3负责14到26号卫星 type=4 27-39 type=5 40-51
type=6
type=7
type=9
type=18
优点复杂,不能一眼辨明,暂时没时间仔细研究
type=24
type=25
type=26
解码就简单的写到这里吧,详细的还得细读标准。
接下来的事情就是存储SBAS信息。
由于SBAS信息是1s发送一条message type,因此,每次只能存储一条message type,与此同时匹配观测文件的历元时间,一旦相差在1s以内,就可以利用已接收到的SBAS信息定位。
具体的解码代码和改正信息定位代码参照RTKLIB2.4.3中的代码就行了。
好吧,就到此为止吧,没那么多时间进行细致研究。不过,相信在深入研究DO229D之前,这个可以作为一个基础来方面学习。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-20 04:49
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社