1、GPS 卫星信号
GPS 卫星信号是 GPS 卫星向广大用户发送的 PSK 调制波,利用该信号,用户可以实时、全天候的实现三维导航和定位。调制信号包括测距码和数据码,载波属于 L 波段,系统时钟基准频率为10.23MHz,利用频率综合器可以产生系统所需要的各种频率,图 2.1 总结了 GPS 卫星信号成分和它们所对应的频率。
GPS 使用 L 波段,两种载波对应波长分别为λ1 =19.03cm 和λ2=24.42cm,频率间隔为 347.82 MHz,选择两个载波的目的在于测量出或消除掉由电离层引起的延迟误差。
测距码目前包括 C/A 码(Coarse/Acquisition)和 P 码(Precise),它们均属于伪随机码(Pseudo Random Noice—PRN),由 m 序列发生器产生。伪随机码具有良好的自相关特性,在 GPS 系统中用于识别不同 GPS 卫星发出的信号,并提供无模糊度的测距数据。
2、C/A码与P码
1. C/A 码
C/A 码是用于分址、搜捕卫星信号和粗测距。C/A 码是具有一定抗干扰能力的明码,提供给民用。它是由两个 10 级反馈移位寄存器相结合而产生的。两个移位寄存器于每星期日子夜零时,在置“1”脉冲的作用下全部处于“1”状态,同时在 1.023MHz 时钟的驱动下,两个移位寄存器分别产生两个伪随机码序列G1(t) 和G2(t) ,他们的码长均为10N =2 −1 =1023 周期为 1ms。G2(t) 的输出不是该移位寄存器的最后一个存储单元,而是选择G2(t) 序列中的某两个存储单元的输出进行模2 相加后输出,由此得到一个与G2(t) 平移等价的伪随机码序列,然后与G1(t) 序列模 2 加,便得到结构不同的 C/A 码序列,亦称为 GOLD 码。由于2G(t) 的码元共有1023 位,故G2(t) 可能有 1023 种平移等价序列,这 1023 种平移等价序列与G1(t) 模2 相加,可能产生 1023 种 m 序列,这些不同结构的伪随机码,称为一组 C/A 码。
从这些伪随机码序列中选择不同的码序列以 PRN1,PRN2…命名不同的 GPS卫星,这样就使得不同的 GPS 卫星采用结构相异的 C/A 码。这组 C/A 码的码长、周期和数码均相同。即:
- 码长: N = 2 10 − 1 = 1023 b i t {N =2^{10} −1 =1023 bit } N=210−1=1023bit
- 码元宽度: t 0 = 1 / f = 0.97752 μ s {t_0=1/f=0.97752 μs} t0=1/f=0.97752μs (相应距离约为 293.1m)
- 周期: T = N t 0 = 1 m s { T=Nt_0=1ms} T=Nt0=1ms
- 数码率:
1.023
M
b
i
t
/
s
{1.023Mbit/s}
1.023Mbit/s
由于 C/A 码长度很短,易于捕获,所以 C/A 码除了作为粗测距码外,还作为GPS 卫星信号的捕获码。通过 C/A 码捕获卫星后,即可获得导航电文,通过导航电文的提供的信息,并由此过渡到捕获 P 码。C/A 码的码元宽度较大,假如两个序列的码元对齐误差为 1 / 10 − 1 / 100 {1/10-1/100} 1/10−1/100,则此时相应的测距误差约为 29.3~2.93m,由于其精度较低,故 C/A 码也称为粗码。美国军方没有限制全球 GPS 用户对 C/A 码的使用。
2. P 码
P 码是用于精密测距的伪随机码,其产生的基本原理与 C/A 码相似,但其发生电路是采用两组各由两个 12 级反馈移位寄存器构成的,反馈移位寄存器驱动时钟频率为 10.23 MHz,其电路结构复杂,具体线路设计细节目前尚属保密。
与 C/A 码相比 P 码周期就显得非常长,大约 38 周才重复一次(码长为
2.35
×
1
0
14
b
i
t
{2.35×10 ^{14} bit}
2.35×1014bit)。在实际应用中将 P 码周期分为 37 个部分,每一部分都是一个结构相异周期相同的 P 码序列,其中 5 个 P 码序列分给地面监控站使用,32 个 P 码序列分别命名不同的 GPS 卫星,以此实现码分多址。这样就保证了 GPS 正常工作的唯一性。并规定每星期六子夜零点使 P 码序列置全“1”状态作为起始点,经过一周后(
6187104
×
1
0
6
{6187104 ×10^6 }
6187104×106码元),再回到初态。若仍采用采用 C/A 码的搜索方式是无法实现 P 码的捕获,因此,一般都是首先捕获 C/A 码,然后根据导航电文中给出的有关信息捕获 P 码。
由于 P 码的码元宽度是 0.098 μs ,相当于 29.3m 的电波传送距离,假如两个序列的码元对齐误差为 1/10~1/100,则此时相应的测距误差约为 2.93~0.293m,仅为 C/A 码的 1/l0。 美国政府规定,P 码专为美国军方使用,商业用户只提供 C/A 码定位方式。为了防止非特许用户使用 P 码进行精密导航定位,P 码被加密成为 Y 码,这就是美国政府实施的 A-S(Anti-Spoofing)技术。当实施 A-S 技术时,绝对禁止非特许使用 P 码进行实时定位,在这种情况下,开发研究无码接收机、平方技术、Z 跟踪技术,以便充分挖掘 GPS 信息资源就成了一项具有重大实用价值的工作。
3、GPS 卫星的导航电文
导航电文,是指包含导航信息的数据码(或 D 码)。导航信息是指:卫星星历、卫星工作状态、卫星历书、时间系统、星钟的改正参数、轨道摄动改正参数,大气折射的改正参数、遥测码以及由 C/A 确定 P 码的交换码等。是用户用来定位和导航的基础。
导航电文是二进制编码文件,按规定的格式组成数据帧,按帧向外播发。每帧导航电文被分为 5 个子帧,每个子帧长度为 300bit,播送速率为 50bit/s。子帧 1包含四个时钟修正量;子帧 2 和 3 包含星历常数,每颗卫星只发送本身的卫星轨道参数,这 3 个子帧的内容每 30s 重复一次,每小时更新一次。子帧 4 包含导航信息和卫星健康状态信息;子帧 5 包含星座历书,历书类似于星历,但包含较少的常数,因而不如星历定义的轨道精确,第 4, 5 子帧各有 25 页。于是,子帧 1、2、3 和子帧 4、5 的每一页,均构成一个主帧,实际上完整的导航电文总共占有 25 帧,共有 375,000bit,因此,需要 12.5 分钟才能够广播完星座中所有其它卫星的历书。 GPS 卫星天线发射的信号,是将导航电文 D 码经过两级调制后的信号。第一级调制是将低频的 D 码分别调到高频的 C/A 码和 P 码,实现对 D 码的伪随机码扩频。第二级是将第一级调制的组合码在分别调制到两个载波频率(
L
1
{L_1}
L1和
L
2
{L_2}
L2)上,最后卫星向地面发射两种已调波。
若以
S
L
1
(
t
)
{S_{L_1}(t)}
SL1(t)和
S
L
2
(
t
)
{S_{L_2}(t)}
SL2(t) 分别表示载波
L
1
{L_1}
L1和
L
2
{L_2}
L2 的已调波,经过二级调制后的 GPS 卫星发射信号,可表示为:
式中:
A
P
{A_P}
AP为调制在
L
1
{L_1}
L1 上的 P 码振幅;
B
P
{B_P}
BP 为调制在
L
2
{L_2}
L2 上的 P 码振幅;
P
i
(
t
)
{P_i(t)}
Pi(t) 为第 i颗卫星发射的 P 码;
D
i
(
t
)
{D_i(t)}
Di(t) 为第 i 颗卫星发射的导航电文;
A
c
{A_c}
Ac 为调制在
L
1
{L_1}
L1 上的 C/A码振幅;
C
i
(
t
)
{C_i(t)}
Ci(t)为第 i 颗卫星发射的 C/A 码;
ω
1
{ \omega_1}
ω1为载波
L
1
{L_1}
L1 的角频率;
ω
2
{ \omega_2}
ω2 为载波
L
2
{L_2}
L2 的角频率;
φ
1
{\varphi_1}
φ1为载波
L
1
{L_1}
L1的初始相位
φ
2
{\varphi_2}
φ2 为载波
L
2
{L_2}
L2 的初始相位。
4、卫星位置计算
GPS 导航定位是以卫星为已知的基准点,通过测量站星间的距离,采用距离交汇的原理,解算用户的位置。因此,用户接收机在取得导航电文中的轨道参数后,就要首先计算卫星的位置。为了解算测站点的坐标,需要知道在同一坐标系中站星间的距离和卫星位置,所以需要多次计算卫星的位置,本节将介绍如何用广播星历卫星在观测瞬间的位置。
根据广播星历中卫星电文提供的轨道参数按一定的公式可计算出观测瞬间GPS 卫星在地固系的位置。由于广播星历精度不高,故此处卫星位置计算采用简 略方法。首先按“二体问题”公式计算轨道参数;然后根据导航电文给出的轨道 摄动参数,进行摄动修正,计算修正后的轨道参数,再计算卫星在轨道坐标系的坐标;最后,顾及地球自转的影响,将轨道坐标系转换为 WGS-84 坐标系。
- 计算卫星的平均角速度
n
{n}
n
星历参考时刻 t o e {t_{oe}} toe 的卫星的平均角速度 n 0 {n_0} n0 :
n 0 = G M A 3 {n_0=\sqrt{\frac{GM}{A^3}}} n0=A3GM
式中 GM 为万有引力常数 G 与地球质量 M 之乘积,A 的值由卫星的星历参数给出。
n 0 {n_0} n0 加上广播星历中给定的摄动参数 Δ n {\Delta n} Δn 可得到卫星的平均角速度 n {n} n。
n = n 0 + Δ n {n=n_0+\Delta n} n=n0+Δn - 计算归化时间
Δ
t
{\Delta t}
Δt
电文给出的 GPS 卫星轨道参数是对应于参考时刻 t o e {t_{oe}} toe的,为求得观测历元 t 时刻的轨道参数,必须先求出观测历元 t 相对于参考历元 t o e {t_{oe}} toe 的的时间差 Δ t {\Delta t} Δt 。
Δ t = t − t o e {\Delta t=t-t_{oe}} Δt=t−toe
式中 Δ t {\Delta t} Δt 称为归化时间。 t o e {t_{oe}} toe由星历参数提供,t 为接收该星历电文时的接收机上的GPS 时间。 - 计算观测时刻的平近点角
M
{M}
M
M = M 0 + n Δ t {M=M_0+n\Delta t} M=M0+nΔt
式中 M 0 {M_0} M0由星历参数给出,是参考时刻 t o e {t_{oe}} toe的平近点角。 - 计算偏近点角
E
{E}
E
E = M + e s i n E {E=M+esinE} E=M+esinE
式中 e 由星历给出,上式要进行迭代计算。 - 计算卫星的地心矢径
r
0
{r_0}
r0
r 0 = a ( 1 − e s i n E ) {r_0=a(1-esinE)} r0=a(1−esinE) - 计算真近点角
f
{f}
f
t a n ( f 2 ) = ( 1 + e 1 − e ) 1 2 t a n ( e 2 ) {tan(\frac{f}{2})=(\frac{1+e}{1-e})^{\frac{1}{2}}tan(\frac{e}{2})} tan(2f)=(1−e1+e)21tan(2e)
通过求反三角函数,解 f {f} f。 - 计算升交点角距
φ
0
{\varphi_0}
φ0
φ 0 = ω + f {\varphi_0= \omega+f} φ0=ω+f
式中 ω { \omega} ω为轨道近地点角距,由星历提供。 - 计算摄动改正项:
{ δ u = C u s s i n 2 φ 0 + C u c c o s 2 φ 0 δ r = C r s s i n 2 φ 0 + C r c c o s 2 φ 0 δ i = C i s s i n 2 φ 0 + C i c c o s 2 φ 0 \begin{cases} \delta_{u}=C_{us}sin2\varphi_0+ C_{uc}cos2\varphi_0\\ \delta_{r}=C_{rs}sin2\varphi_0+ C_{rc}cos2\varphi_0\\ \delta_{i}=C_{is}sin2\varphi_0+ C_{ic}cos2\varphi_0 \end{cases} ⎩⎪⎨⎪⎧δu=Cussin2φ0+Cuccos2φ0δr=Crssin2φ0+Crccos2φ0δi=Cissin2φ0+Ciccos2φ0
式中 C u s , . . . , C i c {C_{us},...,C_{ic}} Cus,...,Cic由卫星星历提供。 - 计算经过摄动改正的升交点角距
φ
{\varphi}
φ,卫星的矢径 r 和轨道倾角 i
{ φ = φ 0 + δ u r = r 0 + δ r i = i 0 + δ i + i Δ t \begin{cases} \varphi=\varphi_0+\delta_u\\ r=r_0+\delta_r\\ i=i_0+\delta_i+i\Delta t \end{cases} ⎩⎪⎨⎪⎧φ=φ0+δur=r0+δri=i0+δi+iΔt - 计算卫星在轨道直角坐标系中的坐标
{ x 0 = r s i n φ y 0 = r c o s φ z 0 = 0 \begin{cases} x_0=rsin\varphi\\ y_0=rcos\varphi\\ z_0=0 \end{cases} ⎩⎪⎨⎪⎧x0=rsinφy0=rcosφz0=0 - 计算观测时刻升交点经度
L
{L}
L
L = Ω 0 + ( Ω − ω i e ) Δ t − ω i e t o e {L=\Omega_0+(\Omega-\omega_{ie})\Delta t-\omega_{ie}t_{oe}} L=Ω0+(Ω−ωie)Δt−ωietoe
式中 ω i e = 7.292115 ∗ 1 0 − 5 ( r a d / s ) {\omega_{ie}=7.292115*10^{-5}(rad/s)} ωie=7.292115∗10−5(rad/s), Ω 0 {\Omega_0} Ω0 和 Ω {\Omega} Ω可由卫星星历给出。 - 计算卫星在 WGS-84 坐标系中的位置
[ X Y Z ] = [ x c o s ( L ) − y c o s ( i ) s i n ( L ) x c o s ( L ) + y s i n ( i ) s i n ( L ) y s i n L ] { \left[ \begin{matrix} X \\ Y \\ Z \end{matrix} \right]=\left[ \begin{matrix} xcos(L)-ycos(i)sin(L)\\ xcos(L)+ysin(i)sin(L)\\ ysinL \end{matrix} \right] } ⎣⎡XYZ⎦⎤=⎣⎡xcos(L)−ycos(i)sin(L)xcos(L)+ysin(i)sin(L)ysinL⎦⎤
应该说明的是,以上所有计算,其时间均为统一的 GPS 时,卫星位置计算只考虑了地球自转的影响,没有顾及章动、岁差和极移等影响,因而是不严密的。但对广播星历来说,对其精度没有什么影响,而且计算简单。