[1] GPS卫星信号技术:载波与其调制、解调 - 知乎
[2] 全球定位系统(GPS)军码协议有多复杂,为什么没法破解? - 知乎
[3] 深入理解Android:Wi-Fi、NFC和GPS卷(完整版) · 看云
[4] GNSS差分定位 - 知乎
[5] NTRIP 配置及部分基础知识扫盲 - 知乎
[6] Ntrip通讯协议怎么样? - 知乎
GPS信号主要由下面信号组成:
卫星信号的所有成分均是基于一个基准频率倍频或分频生成,该基准频率由卫星上的原子钟直接产生,频率为。
测距码和导航电文,都属于低频信号,为了让GPS信号能顺利的发送到地面接收机,将低频信号加到高频载波上,地面接收机接收到GPS信号后经过调制解调后可成功分离出低频的测距码和导航电文。
载波是基准频率经过倍频后产生的信号,L1频段的中心频率为,L2频段的中心频率是, L5频段的中心频率为。
测距码是用来测量卫星和接收器之间距离的一种信号。测距码其实是一种经过精心设计的伪随机噪声码(Pseudo-Random Noise,PRN)又称为伪随机码或者伪码。
测距码分为C/A码和P码。
C/A码码长,即1023个码元,
C/A码的时钟频率为,
所以每一位码元宽度为,
每一位的距离是,
重复周期为,
数据传输速率为。
P码码长,即个码元,
P码的时钟频率为,
所以每一位码元宽度为,
每一位的距离是,
重复周期为,
数据传输速率为。
理想情况下,在数字信号处理后,测距的精度能达到码元宽度的1%,所以C/A码的测距精度大概是,P码的测距精度大概是。
利用测距码进行距离距离的方法称为伪距法,卫星和接收机基于绝对时间和卫星编号生成PRN,在相同的算法下,对比卫星生成的PRN和接收机生成的PRN,得出一个时隙,再乘以光速c,就可以得出这个卫星信号从卫星发射到接收机经过的理想距离。
导航电文的格式:
其基本单位为帧,一帧包含1500bit,传输速度为50bps,故一帧的传输时间为30秒。
一个完整的GPS导航电文由25帧组成,共37500比特,故全部传输完它们共需12.5分钟。
在子帧1~3包含了某颗卫星自己的GPS时间和星历数据,所以最不理想的情况下,30秒时间接收机就能获取到该颗卫星的星历数据了。
星历和历书的区别在于,星历参数比历书参数的精度更高。星历可用于计算位置,历书可用于推算卫星大致位置。
三位坐标系中,理想情况下,三颗GPS卫星可以计算出接收机的位置,为了解决GPS卫星间时钟不同步问题,引入第四课卫星。
这个计算出来的位置,还是属于理想状态——接收机的时钟是精准的。那如果考虑接收机的时间误差呢?
基于以上内容,得出:
其中,表示接收机得到GPS信号传输时间,为真实的信号传输时间,为接收机的时间误差,PSR表示伪距,R表示实际距离,c表示光速。
基于上面,我们得到下面这张图:
我们将接收机实际的位置表示为,位置估算点表示为,卫星的位置表示为,并且有下面关系:
基于上面两个公式,我们最终经过一系列计算,将收敛到期望误差,例如0.1m,即可将三个数值带回到上面的公式中,即可得到接收机的位置了。
从接收机发起定位,开始接收GPS信号开始,到计算出来位置,这期间经历的时间,我们称之为首次定位时间(Time To First Fix,TTFF)。
TTFF的值因不同的启动模式,通常表现也不同。启动模式分为下面3个:
1)cold(冷启动):没有之前的位置信息,没有星历,没有时间的估算。
冷启动是指在一个陌生的环境下启动GPS直到GPS和周围卫星联系并且计算出坐标的启动过程。以下几种情况开机均属冷启动:1、初次使用时;2、电池耗尽导致星历信息丢失时;3、关机状态下将接收机移动1000公里(这里我们认为1000公里范围内处于同一片天空下)以上距离。也就是说冷启动是通过硬件方式的强制性启动,因为距离上次操作GPS已经把内部的定位信息清除掉,GPS接收机失去卫星参数,或者已经存在的参数和实际接收到卫星参数相差太多,导致导航仪无法工作,必须从新获得卫星提供的坐标数据。
2)warm(温启动):有历书信息,大致的位置和时间可知,没有星历信息。
温启动是指距离上次定位时间超过2个小时的启动,搜星定位时间介于冷启动和热启动之间。如果您前一日使用过GPS定位,那么次日的第一次启动就属于温启动,启动后会显示上次的位置信息。因为上次关机前的经纬度和高度已知,但由于关机时间过长,星历发生了变化,以前的卫星接收不到了,参数中的若干颗卫星已经和GPS接收机失去了联系,需要继续搜星补充位置信息,所以搜星的时间要长于热启动,短于冷启动。
3)hot(热启动):有星历信息,大致的时间和位置可知,通常比温启动的时间和位置信息精确。
热启动是指在上次关机的地方没有过多移动启动GPS,但距离上次定位时间必须小于2个小时,通过软件的方式,进行一些启动前的保存和关闭等准备工作后的启动。因此,热启动是最快的。
TTFF时间过长,对用户的实际体验很差。
因此,有个跨时代的技术AGPS引入,解决了TTFF时间过长的问题。
大幅度缩减TTFF的技术是辅助全球卫星定位系统(Assisted Global Positioning System,AGPS)。
原理:接收机通过移动蜂窝网络去下载最新的星历、历书、时钟等辅助数据。
有了辅助数据后,相应的TTFF就能在很短的时间内计算出来了。
AGPS有两种辅助方式:
(1)MSA(Mobile Station Assited):接收机将接收到的GPS信号发送到基站,由基站完成位置计算后,将位置发送给接收机。
(2)MSB(Mobile Station Based):接收机从基站下载辅助数据,接收机解析GPS信号并计算出位置。
目前,基本上使用的方式都是MSB。
AGPS的核心技术是OMA-SUPL协议,后面会单独介绍(SUPL协议_阅后即奋的博客-CSDN博客_supl协议)。
此外,需要注意的是,AGPS并不是网络定位。
AGPS是一种辅助GPS定位的手段,它是通过移动网络下载卫星的星历、历书等数据来达到快速定位的目的。AGPS用于下载数据而不是用于定位。
网络定位是将周边的基站信息、wifi信息作为参数,发送到网络位置供应商的数据库中进行查询,然后由网络位置供应商返回一个网络位置给到用户,其定位源是周围的基站和路由器。
底层计算出位置后,需要将位置呈现给用户。常见的表达方式是经纬度加精度,以一个圆的形式表示用户当前的位置,表示用户在这个圆内的任意一点都是有可能的。
上述的表述是很简单的,我们还需要更专业的表示。
NMEA-0183是美国国家海洋电子协会(National Marine Electronics Association,NMEA)为海用电子设备制定的标准格式。GPS接收机可按照该标准定义的格式输出诸如定位时间、纬度、经度、高度、定位所用卫星数、DOP值等很多信息。
DOP(Dilution Of Precision,精度衰减因子)描述了卫星空间分布情况对定位计算的影响,DOP值越小,表示定位质量越高。
现在我们平时使用过程中,基本上都是使用NMEA来表示位置。
NMEA协议的内容不用全部掌握,我们只要记住重点的几个就行了。
(1) GGA - 全球定位系统定位数据,包含时间位置信息
本语句包含使用单一卫星导航系统 GPS/GLONASS/Galileo/BDS 的测时、定位相关数据。
与之相近的,还有一个GLL,表示地理位置—纬度/经度
(2) GSA – GNSS 精度因子(DOP)与有效卫星
本语句包含 GNSS 接收机工作模式、GGA 或 GNS 语句报告的导航解算中用到的卫星以及精度因子(DOP)的值。
(3) GSV - 可视的 GNSS 卫星
本语句包含可视的卫星数、卫星标识号、仰角、方位角、载噪比。每次传送最多为 4 颗卫星,传送
的语句总数和传送的语句号在前两个字段中显示。
(4) RMC - 推荐的最少专用 GNSS 数据
本语句由 GNSS 导航接收机提供的时间、日期、位置、航迹向和速度数据。本语句的传送间隔不
超过 2s,且当目的地航路点有效时,随 RMB 语句一起发送。
我只罗列了4个,其他的没有写,有想要了解的,可以去阅读美国国家海洋电子协会 0183 协议(4.10 版),也可阅读北斗官网提供的文档——《北斗/全球卫星导航系统(GNSS)接收机 导航定位数据输出格式》。其他的一些文档,都可以在北斗标准里面去参阅。
之前讲的定位内容,都基本上属于理想状态,实际上,在定位过程中,有很多的干扰源会导致误差增加,比如卫星钟差、电离层干扰、对流层干扰、接收机自身的误差等。
GPS增强系统是用于减少这些干扰带来的误差,包括SBAS(Satellite-Based Augmentation System,星基增强系统)和DGPS(Differential Global Positioning System,差分GPS)。
SBAS也是由卫星组成的系统,可以播发修正数据,它还能监测GPS或其他GNSS卫星的情况以加强信号的可靠性和安全性。
虽然每个单独的SBAS只能覆盖一定的范围,但通过RTCA(Radio Technical Commission for Aeronautics,航空无线电技术委员会) DO-229C协议,SBAS之间的数据能够保证兼容性。
DGPS可以理解为地基增强系统,其原理如下:
人们事先把GPS接收机放在位置已精确测定的点上,这些点叫基站。基站的接收机通过接收GPS卫星信号,测得并计算出它们到卫星的伪距,将伪距和已知的精确距离相比较,求得该点在GPS系统中的伪距测量误差。然后这些基站再将这些误差作为修正值以标准数据格式通过播发台向周围空间播发。在基站附近的DGPS用户一方面接收GPS卫星信号进行测距,同时它接收来自基站的误差修正信息,并以此来修正定位结果,从而提高定位精度。
根据差分基站发送的信息方式可以将差分GPS分为三类:
(1)位置差分:即通过基准站位置的误差来修正,这是最简单的一种,任何一种GPS接收机均可改装和组成这种差分系统,基站将定位的坐标与已知坐标的误差发送出去由用户接收并修正。这种差分的先决条件是基准站和用户站观测同一组卫星,适合用户在基站100km之内的情况。位置差分并不常用。
(2)伪距差分:即通过基准站到各个卫星的误差来修正。这是应用最广的一种差分,在基准站上,观测所有卫星,根据基准站已知坐标和各卫星的坐标,求出每颗卫星每一时刻到基准站的真实距离。再与测得的伪距比较,得出伪距改正数,将其传输至用户接收机,提高定位精度。这种差分,能得到米级的定位精度。
(3)相位差分:实时动态载波相位技术,又称RTK(Real-time Kinematic),是实时处理两个测站载波相位观测量的差分方法。即是将基准站采集的载波相位发给用户接收机,进行求差解算坐标。由于载波的精度远高于其内容(C/A码速率是1.023MHz,一个码的长度为977.5ns,即293米,而载波的速率是1575.42MHz,一个载波的长度是635ps,即19厘米),载波相位差分可使定位精度达到厘米级甚至毫米级。大量应用于动态需要高精度位置的领域。载波相位差分有整周模糊度的问题(伪距差分也有,需要伪距重构,但是比相位差分简单)。
CORS(Continuously Operating Reference Station)网络改变了传统的RTK测量作业方式。
传统的RTK测量作业方式是用户架设基准站,然后移动站接收基准站的校正信息,提高精度。
而CORS则可以建立一个庞大的基准站网络(目前千寻有2500+基准站),并通过互联网传输这些基准站的校准信息,用户只需要登录帐号(收费)即可获得这些信息并进行校准。而因为有更多的基准站,精度也有所提高。
RTCM(Radio Technical Commission for Maritime,国际海运事业无线电技术委员会)SC 104(Special Committee 104)定义了DGPS修正数据的格式。
NTRIP(Networked Transport of RTCM via Internet Protocol),基于互联网的RTCM格式信息的网络传输协议。是在互联网上进行RTK数据传输的协议,是CORS所使用的协议之一。
有四个主要组成部分:
服务端读取源端设备数据, 发送至差分数据中心, 客户端连接汇总端获取差分数据, 用于校正。汇总端可将多个服务端数据汇总为一个虚拟基站, 也可以不汇总。
9、资料推荐
[1] GPS Essentials of Satellite Navigation Compendium