1 GNSS概述
GNSS(Global Navigation Satellite System),是全球导航卫星系统的英文缩写,泛指所有的卫星导航系统,包括全球系统、区域系统的和增强系统。如美国GPS、俄罗斯Glonass、欧盟Galileo、中国北斗卫星导航系统,以及相关的增强系统,如美国的WAAS(广域增强系统)、欧洲的EGNOS(欧洲静地导航重叠系统)和日本的MSAS(多功能运输卫星增强系统)等,还涵盖在建和以后要建设的其他卫星导航系统。GNSS系统是个多系统、多层面、多模式的复杂组合系统,如下图所示。
GNSS全球导航卫星系统能在地球表面或近地空间的任何地点,为用户提供全天候的三维坐标、速度以及时间信息。由空间星座部分、地面控制部分和用户设备部分组成。
2 GNSS定位原理
地球表面的任何一个位置,都有它的三维坐标,也就是经度、纬度和高程。它头顶上的 GNSS 卫星,也有自己的三维坐标。我们把整个空间看成一个坐标系,可以画一个立方体。立方体的两个对角,分别是用户和卫星。卫星坐标(x',y',z')由地面控制部分测算,为已知量;用户坐标(x,y,z)为需要测算的未知量。根据几何知识可以计算卫星和用户之间的距离△L如下:
同时,卫星可以给用户终端发信号,信号的传输速度几乎等同于光速c。而卫星上面有精度极高的原子钟,所以知道自己的时间是t'。假设用户终端的时间是t,那么,卫星和用户之间的距离△L,又可以通过下面这个公式算出:
两个公式合并后,得如下公式:
最后这个公式里就有4个未知数:x,y,z,t。
当然这个公式是解不出来的,大家可以想想怎样才能解出这4个未知数呢?
方法很简单,就是再列三个公式!
也就是说,再找3个卫星的坐标值,组成4个四元方程,就OK了。
讲到这里,应该大家也就明白了为什么说GPS定位成功至少需要4颗星可用!
3 GNSS频段及双频GNSS
下图为全球GNSS频段信息表
简单了解一下就可以了,但需要知道普通的智能手机搭载的GPS都是单频GPS接收芯片,这里的单频一定是L1频段。
近几年也有很多双频GPS手机上市,双频GPS就是搭载了L1+L5两个频段的接收芯片。
那么,单频GPS和双频GPS到底有何区别?L5频段既然比L1更牛逼那为何不直接取代L1?请往下看!……
由前面GNSS定位伪码测算公式可以看出,GPS定位的关键是要获得用户和卫星之间的距离。而要计算距离,必须知道信号的传播时间,这一数据由用户(假设为手机)计算得出,关键就在于GPS信号发射后到达手机需要的时间是多少。而影响GPS信号到达手机的时间,最主要的一个因素就是该信号的所在频段带宽。
- L1频段带宽远小于L5频段
- 在目前市面上的手机中,绝大部分都使用的是L1频段1575.42MHz的GPS信号,它的带宽较小,只有1MHz。也就是一个最小周期的传输时间是1μS,乘以光速3*10e8 M/S就是300米。这就意味着,只使用L1频段进行定位,理论误差会达到半径300米的一个范围。必须结合多颗卫星的数据同时比对,才能减少误差到一个可以接受的范围。这也是为什么手机的“搜星”能力如此重要的原因。
-
-
而L5即1176.45MHz频段GPS信号的带宽高达10MHz,是L1频段的10倍,最小周期传输时间为0.1μs,单颗卫星定位测距误差也随之降至30米。
-
- 在目前市面上的手机中,绝大部分都使用的是L1频段1575.42MHz的GPS信号,它的带宽较小,只有1MHz。也就是一个最小周期的传输时间是1μS,乘以光速3*10e8 M/S就是300米。这就意味着,只使用L1频段进行定位,理论误差会达到半径300米的一个范围。必须结合多颗卫星的数据同时比对,才能减少误差到一个可以接受的范围。这也是为什么手机的“搜星”能力如此重要的原因。
L1频段信号易受到城市建筑干扰
手机除了从GPS卫星发射后经直线传播的信号外,还会接收到一个或多个经过周围地形反射后的信号。这样,手机接收的多个信号会叠加起来,导致距离最短的直射信号变得不明显,连续使用中的手机无法判断出哪条信号才是最接近真实定位的信号,从而降低了卫星和手机之间距离计算的准确度,严重时甚至会导致卫星信号“失踪”。
L5频段GPS信号不易受反射干扰,在高楼大厦等多径效应影响严重的场景中,L5频段信号波峰差异很明显,直射和反射很难叠加,从而提高定位精度。
L1频段GPS信号易受电离层影响
在空旷地带,定位不准的主要原因则是大气中电离层导致的GPS信号折射,从而增加传输时间。大气中电离层在太阳光的照射下充满了离子和电子,对GPS信号这种电磁波的影响严重。研究发现,电离层造成的折射效应与信号带宽的平方成反比。也就是说,带宽越低,电离层造成的影响越大。
而L5频段GPS信号受到电离层的影响是L1频段的百分之一。其次,由于电离层对L1、L5两个频段信号的影响不同,双频GPS设备可以不依赖于其他因素,通过对比两路信号的延迟,用计算来消除电离层带来的误差,将GPS定位精度进一步提高。
如下是小米8发布会宣传其双频GPS时,与其他单频GPS手机测试对比图
那么L5频段可以取代L1频段吗?目前来说肯定不能。
虽然L1频段有着众多劣势,但是它的低码率相较于L5频段要更容易被捕获,也就是说用L1频段来定位的时间要更短。如果只是使用L5频段的话,可能出现满天卫星但需要很长的时间才能定位的问题。
所以,用L1频率捕获信号节省时间,用L5频率来提高信号精度,才能获得更好的效果。
4 GNSS重要指标
衡量GNSS性能的指标有很多因素,比如搜星数量、接收灵敏度、信噪比、定位时间、定位精度、时间精度、时钟偏移量及功耗等。
概括起来最重要的有三个指标:速度、精度和灵敏度。
定位时间TTFF
GNSS定位时间(TTFF)分为冷启动、温启动及热启动定位时间。
冷启动(Cold Start):GPS接收机清空了所有历史信息并重启,然后它尝试定位并锁定卫星,由于没有先前信息,这将花去很长的时间。GPS接收机采用类似于轮询的方法,从所有的卫星中锁定信号,这将比事前知道该搜索哪些卫星要慢不少。这一类重新获取锁定要花最长的时间,一般冷启动TTFF在30S~60S。
冷启动条件:①初次使用时; ②电池耗尽导致星历信息丢失时;③关机状态下将接收机移动1000公里以上距离。
暖启动(Warm Start):GPS接收机保存有最后计算的卫星的位置、星历和UTC时间,但保存的内容不是当前可视卫星的数据。GPS接收机重启以后尝试去获得当前卫星和信号并计算其新位置。接收机基于其最后的位置和历书得以大概知道当前天空中的可视卫星。
暖启动条件:距离上次定位的时间超过两个小时的启动。
热启动(Hot Start):GPS接收机保存有其最后计算的可视卫星的位置、星历和UTC时间,在重启以后,GPS接收机以保存的上述内容为基础获取和计算当前卫星的最新位置,一般热启动TTFF小于5S。
热启动条件:距离上次定位的时间小于两个小时的启动。
定位精度
GNSS接收机输出的经纬度信息与当前实际地点经纬度信息的接近程度,主要测试GNSS接收机的时钟精度、抗干扰能力及接收机算法精度。测试方法一般如下:
第一种是将接收机放置到一个固定且已知经纬度信息的地点,接收机定位成功后返回的定位信息与之对比计算,即得出单点静态定位误差。这个方法一般要GNSS芯片厂商支持,因为他们一般会有这样一个已知经纬度信息的参考地点。
第二种就是用GPS信号发生器模拟经纬度信息,Cable先连接GPS天线或者用天线耦合方式测试手机定位成功且稳定后的经纬度,抓出NEMA Log的定位信息与之对比。
GNSS接收灵敏度是指GNSS接收机能够追踪到一个卫星的输入最小信号强度。
GNSS定位灵敏度是指GNSS接收机在工作时间内完成位置定位时天线端的最低信号强度。
手机GPS定位灵敏度测试一般是通过GPS信号发生器连接GPS天线,GPS信号发生器模拟卫星,逐步调节降低信号发生器的输入信号强度,直到手机刚好能定位成功的最低输入功率。
接收灵敏度则是处于能接收与接收不到信号的最低输入功率。
对于一般设备或者GPS测试软件所能看到的GPS信号强度是以信噪比CN0来衡量的,也就是GPS接收机通过NMEA LOG的相关语句输出的信噪比的值,一般在35~45;数值越大表示信号强度越好。
5 NMEA解析
NEMA,是美国国家海洋电子协会为统一海洋导航规范而制定的标准,该格式标准已经成为国际通用的一种格式,是GNSS接收机应当遵守的标准协议,也是目前GNSS接收机上使用最广泛的协议,大多数常见的接收机、数据处理软件、导航软件都遵守或者至少兼容这个协议。它其实就是GNSS接收机从底层输出的包含所有底层数据信息的一种报文。如右图,是在我自己手机上使用GNSS测试软件抓取到的NEMA LOG。
下面就逐条解析一下NEMA语句的含义!
$GPGGA:定位信息
$GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*hh<CR><LF>
<1> UTC时间,hhmmss(时分秒)格式
<2> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输)
<3> 纬度半球N(北半球)或S(南半球)
<4> 经度dddmm.mmmm(度分)格式(前面的0也将被传输)
<5> 经度半球E(东经)或W(西经)
<6> GPS状态:0=未定位,1=非差分定位,2=差分定位,6=正在估算
<7> 正在使用解算位置的卫星数量
<8> HDOP水平精度因子(0.5~99.9)
<9> 海拔高度(-9999.9~99999.9)
<10> 地球椭球面相对大地水准面的高度
<11> 差分时间(从最近一次接收到差分信号开始的秒数,如果不是差分定位将为空)
<12> 差分站ID号0000~1023(前面的0也将被传输,如果不是差分定位将为空)
$GNGSA:GNSS可用卫星信息(包含GPS、BD、GLONASS、GALILEO等所有星座系统)
$GNGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*<18><CR><LF>
<1> 模式2:M = 手动, A = 自动
<2> 模式1:定位型式1 = 未定位,2 = 二维定位,3 = 三维定位
<3> 第1信道正在使用的卫星PRN码编号
<4> 第2信道正在使用的卫星PRN码编号
<5> 第3信道正在使用的卫星PRN码编号
<6> 第4信道正在使用的卫星PRN码编号
<7> 第5信道正在使用的卫星PRN码编号
<8> 第6信道正在使用的卫星PRN码编号
<9> 第7信道正在使用的卫星PRN码编号
<10> 第8信道正在使用的卫星PRN码编号
<11> 第9信道正在使用的卫星PRN码编号
<12> 第10信道正在使用的卫星PRN码编号
<13> 第11信道正在使用的卫星PRN码编号
<14> 第12信道正在使用的卫星PRN码编号
<15> PDOP综合位置精度因子(0.5 - 99.9)
<16> HDOP水平精度因子(0.5 - 99.9)
<17> VDOP垂直精度因子(0.5 - 99.9)
<18> 校验值
$**GSA:各星座系统可用卫星信息
GPGSA为GPS可用卫星信息、GLGSA为GLONASS可用卫星信息
BDGSA为BD可用卫星信息、GAGSA为GALILEO可用卫星信息
QZGSA为QZSS可用卫星信息、PJGSA为IRNSS可用卫星信息
$**GSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17>*<18><CR><LF>
<1> 模式2:M = 手动, A = 自动
<2> 模式1:定位型式1 = 未定位,2 = 二维定位,3 = 三维定位
<3> 第1信道正在使用的卫星PRN码编号
<4> 第2信道正在使用的卫星PRN码编号
<5> 第3信道正在使用的卫星PRN码编号
<6> 第4信道正在使用的卫星PRN码编号
<7> 第5信道正在使用的卫星PRN码编号
<8> 第6信道正在使用的卫星PRN码编号
<9> 第7信道正在使用的卫星PRN码编号
<10> 第8信道正在使用的卫星PRN码编号
<11> 第9信道正在使用的卫星PRN码编号
<12> 第10信道正在使用的卫星PRN码编号
<13> 第11信道正在使用的卫星PRN码编号
<14> 第12信道正在使用的卫星PRN码编号
<15> PDOP综合位置精度因子(0.5 - 99.9)
<16> HDOP水平精度因子(0.5 - 99.9)
<17> VDOP垂直精度因子(0.5 - 99.9)
<18> 校验值
$**GSV:各星座系统可见卫星信息
GPGSV为GPS可见卫星信息、GLGSV为GLONASS可见卫星信息
BDGSV为BD可见卫星信息、GAGSV为GALILEO可见卫星信息
QZGSV为QZSS可见卫星信息、PJGSV为IRNSS可见卫星信息
$**GSV,<1>,<2>,<3>,<4>,<5>,<6>,<7>,...,<4>,<5>,<6>,<7>*<8><CR><LF>
<1> 总的GSV语句电文数
<2> 当前GSV语句号(第几条GSV语句)
<4> 卫星编号,01至<3> 可视卫星总数,00至12
<5> 卫星仰角,00至90度
<6> 卫星方位角,000至359度实际值
<7> 信噪比(C/No),00至99dB;无表未接收到讯号
<8> 校验值
注:每条**GSV语句最多包括四颗卫星的信息,其他卫星的信息将在下一条$**GSV 语句中输出
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*<13><CR><LF>
<1> UTC时间,hhmmss(时分秒)格式
<2> 定位状态,A=有效定位,V=无效定位
<3> 纬度ddmm.mmmm(度分)格式
<4> 纬度半球N(北半球)或S(南半球)
<5> 经度dddmm.mmmm(度分)格式
<6> 经度半球E(东经)或W(西经)
<7> 地面速率(000.0~999.9节)
<8> 地面航向(000.0~359.9度)
<9> UTC日期,ddmmyy(日月年)格式
<10> 磁偏角(000.0~180.0度,前导位数不足则补0)
<11> 磁偏角方向,E(东)或W(西)
<12> 模式指示(A=自主定位,D=差分,E=估算,N=数据无效)
<13> 校验和