GPS从入门到放弃(九) --- 伪距与载波相位

GPS从入门到放弃(九) — 伪距与载波相位

在第一篇GPS基础原理讲过GPS的基本原理,要实现定位,需要知道卫星的位置和卫星到接收机的距离。卫星位置我们根据导航电文可以推算出来(参考GPS卫星位置解算),剩下的就是距离了。

GPS接收机对每颗卫星都可以产生两个基本距离测量值:伪距和载波相位,下面先分别说,再结合起来说。

伪距(Pseudo Range)

伪距就是接收机到卫星之间的大概距离。之所以称之为伪距,是因为其不是真实距离,与真实距离之间有各种各样的误差。本来根据卫星信号的发射时间 t s t_s 与接收机收到信号的接收时间 t u t_u 可以得到信号的传播时间,再乘以信号的传播速度光速 c c 就可以得到接收机到卫星的距离;但是我们知道卫星时钟和接收机钟存在钟差,而且还有大气层等其他因素的影响,所以这样直接测得的距离不等于接收机到卫星的真实距离,只能称之为伪距 ρ \rho
ρ = c ( t u t s ) \rho = c(t_u-t_s)
假设真实距离为 r r ,接收机与 GPS 时间的钟差为 δ t \delta_t ,卫星与 GPS 时间的钟差为 δ t , s \delta_{t,s} ,再考虑到信号在传播过程中经过大气层的延时,假设因大气电离层导致的延时为 I I ,因大气对流层导致的延时为 T T ,其他各种未考虑到的因素及噪声的导致的延时为 ϵ \epsilon ,则:
r = c [ ( t u δ t ) ( t s δ t , s ) I T ϵ ] r = c[(t_u-\delta_t)-(t_s-\delta_{t,s}) - I - T - \epsilon]
于是可得:
r + c δ t = ρ + c δ t , s c I c T c ϵ r + c\cdot\delta_t = \rho + c\cdot\delta_{t,s} - cI - cT -c\epsilon
该式右边可以认为都是已知量,其中 I I T T 都有相应的模型, δ t , s \delta_{t,s} 也有模型在导航电文中(参考GPS导航电文)。而
r = ( x x s ) 2 + ( y y s ) 2 + ( z z s ) 2 r = \sqrt{(x-x_{s})^2 + (y-y_{s})^2 + (z-z_{s})^2}
其中 ( x s ,   y s ,   z s ) (x_s,\ y_s,\ z_s) 为卫星位置坐标,
于是有
( x x s ) 2 + ( y y s ) 2 + ( z z s ) 2 + c δ t = ρ + c δ t , s c I c T c ϵ \sqrt{(x-x_{s})^2 + (y-y_{s})^2 + (z-z_{s})^2} + c\cdot\delta_t = \rho + c\cdot\delta_{t,s} - cI - cT -c\epsilon
这就是更加严格准确的GPS定位基本方程,包含 ( x ,   y ,   z ,   δ t ) (x,\ y,\ z,\ \delta_t) 四个未知数,针对四颗卫星观测就可以得到4个方程的方程组,可以与第一篇中最后给出的方程组对比一下。

那这个伪距观测量 ρ \rho 我们怎么来得到呢?一般来说,可以由接收机通过观测得到。根据伪距计算公式 ρ = c ( t u t s ) \rho = c(t_u-t_s) t u t_u 是接收机时间,接收机是知道的,所以我们只需要求出 t s t_s 就可以了。

t s t_s 是卫星发送信号的时间,可由接收机接收到的导航电文结合跟踪的C/A码相位来确定。计算公式如下:
t s = T O W + ( 30 w + b ) × 0.02 + ( n + C P 1023 ) × 0.001 t_s = TOW + (30w + b) \times 0.02 + (n + \frac{CP}{1023}) \times 0.001
其中 T O W TOW 为导航电文交接字中GPS时间; w w 为当前子帧中,接收机已接收到的完整的字的个数; b b 为当前字中,接收机已接收到的完整的比特的个数; n n 为当前比特中,接收机已接收到的完整的C/A码的个数; C P CP 为当前C/A码中,接收机已接收到的码片的个数。要注意,这个 t s t_s 是用卫星时钟的。

一般接收机对C/A码相位的跟踪精度可以达到码片的1% ~ 2%,一个码片是300m左右,于是伪距精度可以达到3 ~ 6m左右。

载波相位(Carrier Phase)

除了通过伪距来测距之外,载波相位也可以用来测距。

我们知道L1载波的的频率为1575.42MHz,波长约为19cm。如果我们能测量出传播路径上两点之间的相位差,那么这两点间的距离就可以求出来。假设 ϕ u \phi_u 为接收机复制的卫星载波信号的相位, ϕ s \phi_s 为接收机接收到的卫星载波信号的相位,则载波相位测量值(相位差)为
ϕ = ϕ u ϕ s \phi = \phi_u - \phi_s
因为载波的波长很短,远远小于接收机到卫星的距离,所以这个相位差中可能包含了 N 个完整的周期,这个 N 我们称之为周整模糊度。
设波长为 λ \lambda ,接收机与卫星之间的距离为 r r ,则有
ϕ = λ 1 r + N \phi = \lambda^{-1} r + N
若再考虑大气电离层导致的延时 I I 、大气对流层导致的延时 T T 、接收机钟差 δ t u \delta t_u 、卫星钟差 δ t s \delta t_s 、以及其他各种未考虑到的因素及噪声的导致的相位差 ϵ ϕ \epsilon_\phi ,则有
ϕ = λ 1 [ r + c ( δ t u δ t s I + T ) ] + N + ϵ ϕ \phi = \lambda^{-1}[r + c(\delta t_u-\delta t_s - I + T)] + N + \epsilon_\phi

如果知道伪距 ρ \rho ,我们可以用伪距来粗略估算周整模糊度 N,方法为:
N = [ ϕ ρ λ ] N = \left[\phi - \frac{\rho}{\lambda} \right]
其中,“[ ]”表示取整运算。当然,因为伪距的精度有限,所以得到的 N 的误差也比较大,可以达到几十周之多。

伪距和载波相位结合

从前面的介绍可以看出,伪距精度不如载波相位高,但是伪距可以实现绝对定位,而载波相位有一个未知的周整模糊度,无法实现绝对定位,如果能把两者结合起来,必然能达到更好的效果。
一种结合的方法是用载波相位来平滑伪距。设 ρ k \rho_k 为 k时刻的伪距测量值, ϕ k \phi_k 为 k时刻的载波相位测量值, ρ s , k \rho_{s,k} 为 k时刻的平滑伪距,有:
ρ s , k = 1 M ρ k + M 1 M [ ρ s , k 1 + λ ( ϕ k ϕ k 1 ) ] \rho_{s,k} = \frac{1}{M} \rho_k + \frac{M-1}{M} [\rho_{s,k-1} + \lambda(\phi_k - \phi_{k-1})]
其中 M M 为平滑时间常数, M M 值越大,平滑伪距结果就越依赖于载波相位变化量,也就越平滑。

发布了63 篇原创文章 · 获赞 16 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/tyst08/article/details/102975523