2、GNSS基础原理:GPS/北斗/GLONASS/Galileo系统简介、卫星定位基本原理、伪距与载波相位

各位好,欢迎来到第二章。上一章我们聊了定位漂移到底有多烦人,这一章咱们得把地基打牢——GNSS到底是怎么工作的?

说实话,我入行头两年,一直觉得GNSS就是个黑盒子,天线一接,经纬度就出来了。直到有一次在楼宇密集的CBD做路测,定位点满街乱跳,我才意识到:不懂原理,你连问题都描述不清楚。好,咱们开始。

2.1 四大全球卫星导航系统

目前全球有四个GNSS系统在运行。我习惯把它们分成两代:GPS和GLONASS是80后,北斗和Galileo是90后、00后。

系统 所属国家 卫星数量(约) 轨道高度 特点
GPS 美国 31颗 20,200 km 最成熟,民用L1频段
北斗 中国 30颗(含5颗GEO) 21,528 km + 35,786 km 有短报文通信能力
GLONASS 俄罗斯 24颗 19,130 km 频分多址,抗干扰稍好
Galileo 欧盟 24颗(在轨) 23,222 km 民用信号精度高,免费
我的习惯:做多模接收机时,我一般优先配GPS+北斗。GLONASS在城市峡谷里表现不错,但频分信号处理稍复杂。Galileo的E1信号和GPS L1C有互操作设计,未来会是主流。

2.2 卫星定位基本原理

说白了,GNSS定位就是三件事:测距、解方程、修正误差。

你想想看,如果你知道一颗卫星的位置,又知道它到你接收机的距离,那你就在以卫星为球心的球面上。三颗卫星,三个球面交于一点——理论上就定位了。但实际中,接收机时钟和卫星时钟不同步,所以需要第四颗卫星来解出钟差。

这就是经典的四星定位原理。方程组长这样:

ρ_i = sqrt((x - x_i)² + (y - y_i)² + (z - z_i)²) + c * Δt

其中:
ρ_i —— 第i颗卫星的伪距测量值
(x_i, y_i, z_i) —— 第i颗卫星的位置(从星历解算)
(x, y, z) —— 接收机位置(待求)
Δt —— 接收机钟差(待求)
c —— 光速

四个方程,四个未知数(x, y, z, Δt),迭代求解。嗯,这里要注意:卫星位置不是固定的,它们以约3.9 km/s的速度飞过天空,所以每毫秒位置都在变。

关键认知:GNSS定位的本质是测距,不是测角。所有漂移问题,根源都在距离测量上出了偏差。

2.3 伪距与载波相位

这是本章的重头戏。GNSS接收机有两种测距方式,我当年刚接触时也迷糊了好一阵。

2.3.1 伪距(Code Pseudorange)

伪距,就是接收机通过比对卫星发出的伪随机码和自己本地生成的码,算出信号传播时间,再乘以光速得到距离。

为什么叫「伪」?因为这里面包含了钟差、大气延迟、多径等各种误差。说白了,它不是真实几何距离,而是「带误差的距离」。

  • 优点:无模糊度,直接得到绝对距离
  • 缺点:精度低,民用码精度约3-5米
  • 典型应用:单点定位、冷启动
我曾经踩过的坑:有一次在隧道口做测试,伪距突然跳了十几米。排查了半天,发现是信号刚恢复时,码环还没锁定稳,相关器峰值偏移导致的。后来我养成了习惯——伪距输出一定要加锁定状态标志位,不能直接用。

2.3.2 载波相位(Carrier Phase)

载波相位测量的是接收机本地振荡器与卫星载波信号之间的相位差。因为载波波长很短(L1约19 cm),所以理论上精度可以达到毫米级。

但问题来了——相位测量只能测到不足一个波长的小数部分,整周数(N)是未知的。这就是著名的整周模糊度问题。

Φ = ρ + c * (Δt - δt) + λ * N + ε

其中:
Φ —— 载波相位观测值(以米为单位)
λ —— 载波波长
N —— 整周模糊度(整数)
ε —— 其他误差项

你看,多了个N。解出N的过程,就是模糊度固定。一旦固定了,精度就能从米级跳到厘米级。

对比项 伪距 载波相位
测量精度 分米~米级 毫米~厘米级
模糊度 无 有(整周模糊度N)
周跳 无 容易发生
抗多径能力 较弱 较强
典型应用 导航、定位 RTK、精密定位
我的经验:做RTK算法时,我习惯先用伪距做浮点解,再用LAMBDA方法固定模糊度。伪距质量直接影响固定成功率——伪距噪声大的时候,固定率能从95%掉到60%。所以别小看伪距,它是载波相位的基础。

2.4 本章知识体系

下面这张图,是我自己梳理的GNSS定位知识框架。每次带新人,我都会先让他们看这张图——搞清楚每个模块在干什么,漂移问题出在哪一环。

GNSS定位知识体系 四大卫星导航系统 GPS · 北斗 · GLONASS · Galileo 两种基本观测值 伪距(Code Pseudorange) 载波相位(Carrier Phase) 定位方法 单点定位(SPP) 伪距解算,精度3~10m 差分定位(DGNSS) 伪距差分,精度0.5~3m RTK / 精密定位 载波相位,精度cm级 主要误差源(漂移根源) 卫星钟差 · 轨道误差 · 电离层 · 对流层 · 多径 · 接收机噪声 理解误差源 → 才能对症下药解决漂移

从这张图可以看得很清楚:系统层提供信号,观测层提取距离,方法层解算位置,误差层决定精度。漂移问题,本质上就是误差层里的某个因素在作怪。