天天看點

GPS從入門到放棄(九) --- 僞距與載波相位

GPS從入門到放棄(九) — 僞距與載波相位

在第一篇GPS基礎原理講過GPS的基本原理,要實作定位,需要知道衛星的位置和衛星到接收機的距離。衛星位置我們根據導航電文可以推算出來(參考GPS衛星位置解算),剩下的就是距離了。

GPS接收機對每顆衛星都可以産生兩個基本距離測量值:僞距和載波相位,下面先分别說,再結合起來說。

僞距(Pseudo Range)

僞距就是接收機到衛星之間的大概距離。之是以稱之為僞距,是因為其不是真實距離,與真實距離之間有各種各樣的誤差。本來根據衛星信号的發射時間 t s t_s ts​ 與接收機收到信号的接收時間 t u t_u tu​ 可以得到信号的傳播時間,再乘以信号的傳播速度光速 c c c 就可以得到接收機到衛星的距離;但是我們知道衛星時鐘和接收機鐘存在鐘差,而且還有大氣層等其他因素的影響,是以這樣直接測得的距離不等于接收機到衛星的真實距離,隻能稱之為僞距 ρ \rho ρ :

ρ = c ( t u − t s ) \rho = c(t_u-t_s) ρ=c(tu​−ts​)

假設真實距離為 r r r,接收機與 GPS 時間的鐘差為 δ t \delta_t δt​,衛星與 GPS 時間的鐘差為 δ t , s \delta_{t,s} δt,s​,再考慮到信号在傳播過程中經過大氣層的延時,假設因大氣電離層導緻的延時為 I I I,因大氣對流層導緻的延時為 T 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[(tu​−δt​)−(ts​−δt,s​)−I−T−ϵ]

于是可得:

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 r+c⋅δt​=ρ+c⋅δt,s​−cI−cT−cϵ

該式右邊可以認為都是已知量,其中 I I I 和 T T T 都有相應的模型, δ t , s \delta_{t,s} δ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} r=(x−xs​)2+(y−ys​)2+(z−zs​)2

其中 ( x s ,   y s ,   z s ) (x_s,\ y_s,\ z_s) (xs​, ys​, zs​) 為衛星位置坐标,

于是有

( 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 (x−xs​)2+(y−ys​)2+(z−zs​)2

​+c⋅δt​=ρ+c⋅δt,s​−cI−cT−cϵ

這就是更加嚴格準确的GPS定位基本方程,包含 ( x ,   y ,   z ,   δ t ) (x,\ y,\ z,\ \delta_t) (x, y, z, δt​) 四個未知數,針對四顆衛星觀測就可以得到4個方程的方程組,可以與第一篇中最後給出的方程組對比一下。

那這個僞距觀測量 ρ \rho ρ 我們怎麼來得到呢?一般來說,可以由接收機通過觀測得到。根據僞距計算公式 ρ = c ( t u − t s ) \rho = c(t_u-t_s) ρ=c(tu​−ts​), t u t_u tu​是接收機時間,接收機是知道的,是以我們隻需要求出 t s t_s ts​ 就可以了。

t s t_s ts​ 是衛星發送信号的時間,可由接收機接收到的導航電文結合跟蹤的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 ts​=TOW+(30w+b)×0.02+(n+1023CP​)×0.001

其中 T O W TOW TOW 為導航電文交接字中GPS時間; w w w 為目前子幀中,接收機已接收到的完整的字的個數; b b b 為目前字中,接收機已接收到的完整的比特的個數; n n n 為目前比特中,接收機已接收到的完整的C/A碼的個數; C P CP CP 為目前C/A碼中,接收機已接收到的碼片的個數。要注意,這個 t s t_s ts​ 是用衛星時鐘的。

一般接收機對C/A碼相位的跟蹤精度可以達到碼片的1% ~ 2%,一個碼片是300m左右,于是僞距精度可以達到3 ~ 6m左右。

載波相位(Carrier Phase)

除了通過僞距來測距之外,載波相位也可以用來測距。

我們知道L1載波的的頻率為1575.42MHz,波長約為19cm。如果我們能測量出傳播路徑上兩點之間的相位差,那麼這兩點間的距離就可以求出來。假設 ϕ u \phi_u ϕu​為接收機複制的衛星載波信号的相位, ϕ s \phi_s ϕs​為接收機接收到的衛星載波信号的相位,則載波相位測量值(相位差)為

ϕ = ϕ u − ϕ s \phi = \phi_u - \phi_s ϕ=ϕu​−ϕs​

因為載波的波長很短,遠遠小于接收機到衛星的距離,信号傳到地球中間過程可能産生整數個(N個)周期的差别,這個 N 我們稱之為周整模糊度。設波長為 λ \lambda λ,接收機與衛星之間的距離為 r r r,則有

ϕ = λ − 1 r + N \phi = \lambda^{-1} r + N ϕ=λ−1r+N

若再考慮大氣電離層導緻的延時 I I I、大氣對流層導緻的延時 T T T、接收機鐘差 δ t u \delta t_u δtu​、衛星鐘差 δ t s \delta t_s δts​、以及其他各種未考慮到的因素及噪聲的導緻的相位差 ϵ ϕ \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 ϕ=λ−1[r+c(δtu​−δts​−I+T)]+N+ϵϕ​

如果知道僞距 ρ \rho ρ,我們可以用僞距來粗略估算周整模糊度 N,方法為:

N = [ ϕ − ρ λ ] N = \left[\phi - \frac{\rho}{\lambda} \right] N=[ϕ−λρ​]

其中,“[ ]”表示取整運算。當然,因為僞距的精度有限,是以得到的 N 的誤差也比較大,可以達到幾十周之多。

僞距和載波相位結合

從前面的介紹可以看出,僞距精度不如載波相位高,但是僞距可以實作絕對定位,而載波相位有一個未知的周整模糊度,無法實作絕對定位,如果能把兩者結合起來,必然能達到更好的效果。

一種結合的方法是用載波相位來平滑僞距。設 ρ k \rho_k ρk​ 為 k時刻的僞距測量值, ϕ k \phi_k ϕk​ 為 k時刻的載波相位測量值, ρ s , k \rho_{s,k} ρ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})] ρs,k​=M1​ρk​+MM−1​[ρs,k−1​+λ(ϕk​−ϕk−1​)]

其中 M M M 為平滑時間常數, M M M 值越大,平滑僞距結果就越依賴于載波相位變化量,也就越平滑。