GPS从入门到放弃(九) — 伪距与载波相位
在第一篇GPS基础原理讲过GPS的基本原理,要实现定位,需要知道卫星的位置和卫星到接收机的距离。卫星位置我们根据导航电文可以推算出来(参考GPS卫星位置解算),剩下的就是距离了。
GPS接收机对每颗卫星都可以产生两个基本距离测量值:伪距和载波相位,下面先分别说,再结合起来说。
伪距(Pseudo Range)
伪距就是接收机到卫星之间的大概距离。之所以称之为伪距,是因为其不是真实距离,与真实距离之间有各种各样的误差。本来根据卫星信号的发射时间
与接收机收到信号的接收时间
可以得到信号的传播时间,再乘以信号的传播速度光速
就可以得到接收机到卫星的距离;但是我们知道卫星时钟和接收机钟存在钟差,而且还有大气层等其他因素的影响,所以这样直接测得的距离不等于接收机到卫星的真实距离,只能称之为伪距
:
假设真实距离为
,接收机与 GPS 时间的钟差为
,卫星与 GPS 时间的钟差为
,再考虑到信号在传播过程中经过大气层的延时,假设因大气电离层导致的延时为
,因大气对流层导致的延时为
,其他各种未考虑到的因素及噪声的导致的延时为
,则:
于是可得:
该式右边可以认为都是已知量,其中
和
都有相应的模型,
也有模型在导航电文中(参考GPS导航电文)。而
其中
为卫星位置坐标,
于是有
这就是更加严格准确的GPS定位基本方程,包含
四个未知数,针对四颗卫星观测就可以得到4个方程的方程组,可以与第一篇中最后给出的方程组对比一下。
那这个伪距观测量 我们怎么来得到呢?一般来说,可以由接收机通过观测得到。根据伪距计算公式 , 是接收机时间,接收机是知道的,所以我们只需要求出 就可以了。
是卫星发送信号的时间,可由接收机接收到的导航电文结合跟踪的C/A码相位来确定。计算公式如下:
其中
为导航电文交接字中GPS时间;
为当前子帧中,接收机已接收到的完整的字的个数;
为当前字中,接收机已接收到的完整的比特的个数;
为当前比特中,接收机已接收到的完整的C/A码的个数;
为当前C/A码中,接收机已接收到的码片的个数。要注意,这个
是用卫星时钟的。
一般接收机对C/A码相位的跟踪精度可以达到码片的1% ~ 2%,一个码片是300m左右,于是伪距精度可以达到3 ~ 6m左右。
载波相位(Carrier Phase)
除了通过伪距来测距之外,载波相位也可以用来测距。
我们知道L1载波的的频率为1575.42MHz,波长约为19cm。如果我们能测量出传播路径上两点之间的相位差,那么这两点间的距离就可以求出来。假设
为接收机复制的卫星载波信号的相位,
为接收机接收到的卫星载波信号的相位,则载波相位测量值(相位差)为
因为载波的波长很短,远远小于接收机到卫星的距离,所以这个相位差中可能包含了 N 个完整的周期,这个 N 我们称之为周整模糊度。
设波长为
,接收机与卫星之间的距离为
,则有
若再考虑大气电离层导致的延时
、大气对流层导致的延时
、接收机钟差
、卫星钟差
、以及其他各种未考虑到的因素及噪声的导致的相位差
,则有
如果知道伪距
,我们可以用伪距来粗略估算周整模糊度 N,方法为:
其中,“[ ]”表示取整运算。当然,因为伪距的精度有限,所以得到的 N 的误差也比较大,可以达到几十周之多。
伪距和载波相位结合
从前面的介绍可以看出,伪距精度不如载波相位高,但是伪距可以实现绝对定位,而载波相位有一个未知的周整模糊度,无法实现绝对定位,如果能把两者结合起来,必然能达到更好的效果。
一种结合的方法是用载波相位来平滑伪距。设
为 k时刻的伪距测量值,
为 k时刻的载波相位测量值,
为 k时刻的平滑伪距,有:
其中
为平滑时间常数,
值越大,平滑伪距结果就越依赖于载波相位变化量,也就越平滑。