(一)GPS基础原理
GPS,全称Global Positioning System,已经广泛应用于我们的日常生活中了,现在的智能手机里都会自带GPS定位功能。这是一个美国的全球定位系统,虽然我们现在也有北斗了,但毕竟GPS搞的早,所以先从它开始研究起。
整个GPS系统分三大部分:地面站、卫星和接收机。
地面站负责监控。它们通过接收、测量各个卫星信号,计算卫星的运行轨道,并将卫星的运行轨道信息发射给卫星,让卫星去转播。
卫星负责向地面发射信号,为广播形式。
接收机接收卫星信号,从卫星信号中获取卫星的运行轨道等信息,通过计算来确定自身的位置。
地面站和卫星都是由美国控制的,我们能控制的只有接收机。
定位的基本原理其实很简单,中学几何知识就够了。把接收机抽象成一个质点X,三个卫星抽象成质点X,Y,Z,如果A到X,Y,Z的距离分别为rx,ry,rz,分别以X,Y,Z为圆心,以rx,ry,rz 为半径作3个球面,3个球面相交于两点,其中一点就是接收机所在位置(因为接收机肯定在地面附近,根据计算结果很容易排除另一点)。
那rx,ry,rz 这几个距离怎么知道呢?很简单,利用公式:距 离 = 速 度 × 时 间。
卫星发射信号到接收机,速度为光速是已知的,所以我们只要知道信号从卫星到接收机跑的时间有多长就可以了。这个时间长度就是接收到信号的时间减去发射信号时的时间。接收到信号的时间接收机自然是知道的,发送信号的时间可以根据信号内容算出来,那么时间长度就可以算出来了,于是距离可知。
这里还有一个问题,因为各种原因,接收机的时间和GPS卫星的时间通常不同步,于是在计算时间时会多一个未知数钟差,所以我们需要再多一颗卫星,4颗卫星4个方程,解出4个未知数。
至此,若用方程来表示,设接收机的位置坐标为(x, y, z),卫星位置坐标分别为(xn, yn, zn), n = 1, 2, 3, 4,卫星到接收机的距离分别为r1, r2, r3, r4,c为光速,δt为钟差,则有以下方程组:
这就是GPS定位的基本原理。
(二)GPS时间
前面GPS基础原理中提到了一个钟差的概念,并没有细说。
时间是一个相对的概念,最简单的例子:你的手表的时间和我的手表的时间可能是不一样的,那不一样就会有问题,我说的8点上班和你认为的8点上班就不是同一个时刻了,于是你上班就可能会迟到。同理,GPS卫星的时间和接收机的时间也不一样,于是在利用时间来算距离的时候就会有很大的误差,所以我们要统一时间。
为了统一时间,人类做了很多的努力,建立了多个不同的时间系统。有以地球自转为基础的世界时(UT),有以原子钟为基础的国际原子时(TAI),还有两者折中的协调世界时(UTC)。目前,几乎所有国家的标准时间都采用协调世界时。
然而GPS系统并没有采用协调世界时,而是建立了其专用的GPS时间系统(GPST)。
GPS时间是连续的。
GPS时间用星期数(周数)和周内秒来表示时间。
GPS时间的秒长由地面站的原子钟和卫星的原子钟的观测量综合得出。
GPS时间的零时刻与协调世界时的1980年1月6日(是个星期天)零时刻同步。
GPS时间落后国际原子时19秒加一个秒内偏差。美国会控制GPS时间使这个秒内偏差小于1微秒,一般在几百纳秒之内。
需要注意的是每颗GPS卫星都有自己的卫星时间,每颗卫星都是按照自己本身的时钟在运行,而由GPS地面站来保证卫星时间与GPS时间之间的差异小于1微秒。在卫星播发的导航电文中,在遥测字(TLW: Telemetry Word)和交接字(HOW: HandOver Word)中与时间相关的数据都是基于卫星时间,而其他的数据都是基于GPS时间。
GPS时间与协调时的差异参数由导航电文给出,在导航电文第4子帧第18页。这些参数由地面站负责更新,至少每6天更新一次,否则准确性会随时间流逝而下降。
卫星时间与GPS时间的差异参数也由导航电文给出,在导航电文第1子帧。
这样GPS时间和卫星时间还有协调时三者就联系起来了,可以互相推导出来。还有一个接收机时间是独立于这三者的,所以存在一个接收机时间与GPS时间的钟差未知数。
时间关系确定,误差保持在一定范围,就可以用于计算距离,进而定位,这就是GPS的基本原理。
(三)GPS坐标系
定位就需要坐标,坐标当然是相对坐标系而言的,我们描述一个物体的位置,首先就需要建立坐标系。
按大类来分,坐标系可以分为惯性坐标系和非惯性坐标系。惯性坐标系是在空间静止或者做匀速直线运动的坐标系,其他都是非惯性坐标系。
GPS涉及到的坐标系大体有五个,在说这五大坐标系之前,我们需要先了解一些基本概念。
基本概念
地极(Polar):地球自转轴与地球表面的两个交点,北边的叫北极,南边的叫南极。
赤道面(Equator Plane):通过地心并于地球自转轴垂直的平面。
赤道(Equator):赤道面与地球表面相交的大圆。
天球(Celestial Sphere):天文学概念,指一个以地心为中心,半径为任意长的假想球体。其目的是将天体沿观测者视线投影到球面上,以便于研究天体及其相互关系。
黄道(Ecliptic):太阳中心在天球上视运动的轨迹。即地球绕太阳公转的轨道平面与地球表面相交的大圆。
黄赤交角(Ecliptic Obliquity):黄道面与赤道面的夹角,约23.5°。
春分点(Vernal Equinox):黄道与赤道有两个交点,其中太阳投影沿黄道从南向北通过赤道的点,称为春分点,另一点为秋分点。
岁差(Axial Precession ):地球自转轴长期进动,引起春分点沿黄道西移,致使回归年短于恒星年的现象。周期约为25800年。主要有日月岁差和行星岁差。
章动(Nutation ):月球在白道上运行,白道与黄道相交成5°9′的角,月球围绕地球公转导致地球在公转轨道上左右摇摆,以18.6年为周期,这种现象称为章动。
极移(Polar Wandering ):地球自转轴相对于地球并不固定,这种运动称地极移动,简称极移。
子午面:(Meridian Plane):包含地球自转轴的平面。
本初子午面(Prime Meridian Plane):通过英国伦敦格林尼治天文台与地球自转轴构成的平面,是地球上计算经度的起始经线。
有了这些基本概念后,就可以进一步了解五大坐标系了。
地心惯性坐标系(ECI: Earth Centered Inertial)
地心惯性坐标系是太阳系内的一个惯性坐标系,不随地球而转动,也不受地球、太阳运行的章动和岁差的影响。
坐标原点位于地心;X轴位于赤道平面内,指向某一特定年(历元时刻)的太阳春分点位置;Z轴指向那一年地球北极的平均位置处;Y轴位于赤道平面内,与X轴垂直,且与X、Z轴构成右手直角坐标系。
由于采用的历元时间不同,可以有各种不同的地心惯性坐标系,目前国际上通用的地心惯性坐标系是J2000历元坐标系,它是以公元2000年的春分点为基准的历元坐标系。
地心地固直角坐标系(ECEF: Earth Centered Earth Fixed)
地固坐标系固定在地球上而随地球一起在空间做公转和自转运动,因此地球上任一固定点在地球坐标系的坐标就不会由于地球旋转而变化。
坐标原点位于地心;X轴指向参考子午面与地球赤道的交点;Z轴与地球自转轴重合并指向地球北极;Y轴位于赤道平面内,与X轴垂直,且与X、Z轴构成右手直角坐标系。
因为有极移,所以采用了协议地极,以1900年到1905年间的地极实际位置的平均值作为基准点。
大地坐标系:也叫经纬高坐标系(LLA: Longitude Latitude Altitude)
也是地固坐标系。坐标原点位于地心。
基于基准椭球体(基准椭球体是定义的与地球几何最吻合的椭球体)。
大地纬度 ϕ phiϕ 是过该点的基准椭球面法线与赤道面的夹角。纬度值在-90°到+90°之间。北半球为正,南半球为负。
大地经度 λ lambdaλ 是过该点的子午面与本初子午面之间的夹角。经度值在-180°到+180°之间。
大地高度 h hh 是过该点到基准椭球面的法线距离,基准椭球面以内为负,以外为正。
站心坐标系:也叫东北天坐标系(ENU: East North Up)
是以观测站为原点的坐标系,主要用于了解以观察者为中心的其他物体运动规律。
三个坐标轴分别指向相互垂直的东向、北向和天向,因而又称东北天坐标系。
可用于计算卫星在用户处的观测向量、仰角和方位角。
WGS-84: World Geodetic System-1984 Coordinate System
是一个地心地固直角坐标系。
坐标原点为地心,Z轴指向国际时间服务机构(BIH)1984年定义的协议地球极(CTP: Conventional Terrestrial Pole)方向,X轴指向本初子午面和CTP赤道的交点,Y轴与Z轴、X轴垂直构成右手坐标系。
GPS广播星历是以WGS-84坐标系为基准的。
最后列举一下坐标之间的转换关系。
LLA => ECEF
其中e是椭球偏心率,N是基准椭球体的卯酉圈曲率半径。若基准椭球体长半径为a,短半径为b,则:
ECEF => LLA
CEF => ENU 和 ENU => ECEF
用户到卫星的观测向量 [Δx Δy Δz] T是卫星位置与用户位置的差,其变换到ENU坐标系可通过两次旋转得到。
第一次旋转将ECEF绕Z轴旋转λ+90°,第二次选择绕新的X轴旋转90°−ϕ。于是得到坐标变换矩阵:
而用户到卫星的观测向量在ENU坐标系中表示为:
由上式可得:
有了用户到卫星的观测向量,我们就可以计算该卫星相对用户的方位角和仰角了。仰角θ是高出水平面的角度:
方位角α是观测向量在水平面内的投影指的方位,以北向为0度顺时针为正,即:
(四)GPS信号结构
GPS信号结构可以分为三层:载波;伪码;数据码。
载波
载波是三层里的基础,伪码和数据码都是调制在载波上才能发送。GPS有两个载波频率,L1和L2,L1为1575.42MHz,L2为1227.60MHz。我们常用的主要是L1载波。根据频率,我们可以算出L1载波的波长:
伪码
伪码主要有两个作用:一是用来实现码分多址,二是用来测距。GPS系统其实就是一个基于码分多址(CDMA)的扩频系统。GPS使用的伪码有两种,一种是公开的C/A码,一种是特许用户才能用的P(Y)码(Y码就是加密的P码,所以算成一种)。在此我们不管P(Y)码,因为我们用不了,以后我们只谈C/A码。
C/A码是长度为1023个码片(chip)的金码(Gold Code)。金码是一种组合码,由一对级数相同的m序列线性组合而成,很适用于多址扩频的通信系统。它有着良好的自相关和互相关特性,即自相关函数幅值大大高于互相关函数幅值。这个特性被用来识别不同的金码。C/A码自然也具有这个良好的特性。因此不同的卫星可以用不同的C/A码来区分。
一个C/A码长度是1023个码片,每1毫秒重复一次,因此其码率为1.023Mcps,一个码片的时间约为1 / ( 1.023M ) ≈ 977.5ns,将其乘以光速,得到1码片的长度约为293m。通过相关性的计算,可以得到当前C/A码的相位,于是可以进行粗略的测距计算,当然精度只有300m左右。
若需要更高精度的测距,则需要用到载波相位。由C/A码的码率可以计算出1码片时间L1载波重复1575.42 M / 1.023 M = 1540次。相当于可以在精度300m的基础上再提高1540倍,达到0.2m左右。当然这是理论值,还有很多其他因素的考虑,如钟差、大气延时等,以及载波相位的周整模糊度问题,这些我们以后再讲。
数据码
对每颗卫星来说,其C/A码是固定的,无法用于传递导航电文。为了能传递导航电文,GPS系统设计了数据码。
数据码的速率为50bps,即一个比特持续20ms,相当于每一比特C/A码重复20周。每个数据比特的发生沿都与C/A码的第一个码片的发生沿对齐。
数据码的内容就是导航电文,导航电文的内容下一篇再讲。
在发射信号的时候,数据码首先与伪码异或相加,其结果再通过双相移位键控(BPSK)对载波进行调制,然后发送出去。接收的时候正好相反。
至此,GPS信号结构就很清晰了,如下图所示:
(五)GPS导航电文
GPS的导航电文以帧的形式编排为比特流,每一帧为1500比特,这1500比特又分为5个子帧,每个子帧为300比特。每一子帧又分为10个字,每个字30为比特。发送时MSB在前。每一比特发送需要20ms,所以发送一帧需要30s。
每周开始的时候(周六半夜12点/周日凌晨0点),不管之前数据发到哪个子帧,从第一子帧重新开始发;第四、五子帧从第一页开始发。
对每一个子帧来说,其第一个字是遥测字(TLW: Telemetry Word),第二个字是交接字(HOW: HandOver Word),后8个字为数据。
遥测字
其结构如下图所示。其首8个比特为前导码(preamble),前导码固定为10001011。这个固定的前导码可以用来搜索、确定子帧的起始沿。第9位到第22位提供特许用户使用的数据,我们不用管。第23位为完好性状态指示标志(ISF:Integrity Status Flag),为1表示有发射的信号有增强的完好性保证,即更加靠谱。当然这个靠谱是有标准的,在GPS的接口说明文档里有详细数值指标,需要详细了解的可以去查阅。第24位保留。最后6位为奇偶校验码。
交接字
其结构如下图所示。第1到17比特为被截断的周内时(TOW: Time of Week),表示的是下一子帧起始沿的GPS时间,单位为6s,即变动1表示时间6s。第18位为警告标志,为1时非特许用户自行承担使用该卫星信息的风险。第19位为反电子欺骗措施(AS)标志,为1表示实施了该措施。第20位到22位为子帧ID,每一帧有5个子帧,ID为1~5。第23、24比特是通过求解得到的,目的是保证奇偶校验码的最后29、30比特为0。
数据字
对于数据字,各个子帧就不一样了,下面分子帧来讲。
第一子帧
第一子帧包含的数据有
周数(WN: Week Number):10位,最大值为1023,表示从GPS时间0时开始的第几周。因位数限制,最大表示范围只有约19.6年,于是每19.6年会翻转一次。最近一次翻转发生在今年4月6日。
L2载波上是否有P码和C/A码:2位,这个我们不管。
用户测距精度(URA: User Range Accuracy):4位,16个级别,数值越小,精度越高。
卫星健康状况:6位,其中1位为汇总是否有问题,5位具体表示是什么问题。
时钟数据的期号(IODC: Issue of Data, Clock):10位,同一期(同样)的时钟校正参数有着相同的期号,因此可用于确定时钟校正参数是否发生变化。
L2载波的P码上是否有导航电文:1位,这个我们不管。
预估群波延时(Estimated Group Delay Differential):8位,单频接收机用这个数据来校正电离层延时。
时钟校正参数:包含toc, af0, af1, af2。用于校正卫星时钟。卫星时钟在GPS时间为t时的卫星钟差Δts可以表示为:
第二、三子帧
第二子帧和第三子帧的数据合在一起可以提供一套卫星星历(Ephemeris)参数。
参数名 | 位数 | 含义 |
---|---|---|
t o e | 16 | 星历参考时间 |
sqrtA | 32 | 卫星轨道半长轴A的平方根 |
e | 32 | 卫星轨道偏心率 |
i0 | 32 | toe时的轨道倾角 |
ω | 32 | 近地点角距 |
M0 | 32 | toe时的平近点角 |
Δn | 16 | 卫星平均角速度校正值 |
i | 14 | 轨道倾角的变化率 |
Ω | 24 | 轨道升交点赤经的变化率 |
Cuc | 16 | 升交点角距余弦调和校正振幅 |
Cus | 16 | 升交点角距正弦调和校正振幅 |
Crc | 16 | 轨道半径余弦调和校正振幅 |
Crs | 16 | 轨道半径正弦调和校正振幅 |
Cic | 16 | 轨道倾角余弦调和校正振幅 |
Cis | 16 | 轨道倾角正弦调和校正振幅 |
除了星历参数以外,还有:
星历数据的期号(IODE: Issue of Data, Ephemeris):8位,可用于确定星历数据是否发生变化。它在第二和第三子帧中都有,方便尽快发现星历参数的变化。一般情况下,IODE的值与第一子帧中的IODC值的低8位应该相同,若不同,则发送的参数有变化,需要更新数据。
星历数据的有效期(Curve Fit Interval)指示标志:1位,为0表示4小时,为1表示4小时以上。
AODO(Age of Data Offset):5位无符号整数,其值需要乘于900,单位为秒。用于判断在第四子帧中的NMCT的有效时间,计算tNMCT,可以在众多卫星发送的NMCT中选取最新的值来使用。
第四、五子帧
第四子帧和第五子帧的数据量比较大,无法包含在一帧内,所以进行了分页,完整电文有25页,即需要25帧才能把完整的数据发送完。发送一帧是30s,所以完整电文发送完一遍需要750s,即12.5分钟。不过第四、五子帧的内容并不是定位所急需的,所以定位并不需要等这么久。
第四子帧和第五子帧包含的数据主要有:
Data ID 和 SV ID:主要用于指示该页表示的内容,若为星历数据,则SV ID是卫星PRN号。
所有卫星的历书(Almanac)参数
历书参数的内容包括:M
参数名 | 位数 | 含义 |
---|---|---|
toa | 8 | 历书参考时间 |
sqrtA | 24 | 卫星轨道半长轴A的平方根 |
e ee | 16 | 卫星轨道偏心率 |
δi | 16 | toa 时的轨道倾角 δ i = i 0 − 0.3 π |
Ω0 | 24 | 周内时为0时的轨道升交点赤经 |
ω | 24 | 近地点角距 |
M0 | 24 | toa时的平近点角 |
Ω | 16 | 轨道升交点赤经的变化率 |
af0 | 11 | 卫星时钟校正参数 |
af1 | 11 | 卫星时钟校正参数 |
卫星健康状况指示:对32颗卫星中的每颗卫星健康状态都有两处地方指示:一是在每一个含历书的页中;8位,其中3位为问题分类,5位具体表示是什么问题。
一是在第四、五子帧的第25页;6位,其中1位为汇总是否有问题,5位具体表示是什么问题。
反电子欺骗措施(AS: Anti-Spoof)标志:在第4子帧的第25页,对32颗卫星中的每颗卫星都有一个4位的标志,其中1位表示是否实施了该措施,3位表示具体配置。
历书参考周数WNa(Almanac Reference Week):8位,历书参考时间toa就是相对于WNa的,这样就可以确定历书参考时间。
UTC数据:GPS时间与协调时(UTC)的差异参数,位于第4子帧第18页。这些参数由地面站负责更新,至少每6天更新一次,否则准确性会随时间流逝而下降。
参数名 | 位数 | 含义 |
---|---|---|
A0 | 32 | 计算秒内时间偏差的系数 |
A1 | 24 | 计算秒内时间偏差的系数 |
ΔtLS | 8 | 因闰秒导致的时间差异 |
tot | 8 | UTC的参考时间 |
WNt | 8 | 基于UTC时间的周数 |
WNLSF | 8 | GPS周数 mod 256,指示闰秒的日期所在的周 |
DN | 8 | 相对WNLSF的天数,与WNLSF一起指示闰秒的日期 |
ΔtLSF | 8 | 发生润秒后取代ΔtLS用于计算 |
从GPS时间计算UTC时间的方法为:
其中tE为GPS时间,而ΔtUTC 为
电离层延时校正参数:位于第4子帧第18页,有8个参数α0,α1,α2,α3,β0,β1,β2,β3,每个8位,用于电离层延时的校正。
特殊信息:第4子帧的第17页。可以包含22个的8位ASCII码,用于传递一些特殊信息。
伪距校正值(NMCT: Navigation Message Correction Table):位于第4子帧第13页,包含一个2位的可用性指示(AI: Availability Indicator)和30个6位的ERD(Estimated Range Deviation)值。
AI指示校正值是否加密,普通用户和特许用户是否可用。
30个ERD存放卫星ID 1~31中除了自己的其余30个卫星的ERD值,按ID号升序排列。每个ERD为6位,一位符号位,5位数据,LSB相当于0.3m。
使用方法为:
其中PRc为ERD校正后的伪距,RPR是ERD校正前的。
星历和历书的比较
两者都是用开普勒轨道参数来表示,都用于描述卫星在各个时刻的空间位置和运动速度。
星历有效期短,只有4小时;历书有效期长达半年。
星历参数多,历书参数少。
星历参数中有摄动校正量,而历书没有,因为历书有效期长,不适用。
星历参数精度高,历书参数精度低。
星历参数与历书参数是由地面站独立推算的,因此它们的参数值有可能不同。
一颗卫星只播发自己的星历,但是会播发所有卫星的历书。
根据星历计算得到的卫星位置和速度值相当准确,可以直接用于定位与定速;根据历书计算的结果准确度不高,一般只能用于卫星信号的搜索和捕获。
编辑:黄飞
评论
查看更多