2. 定位系统基础

做定位这行,天天跟卫星打交道。但说实话,很多人用了好几年,对头顶上这些卫星到底怎么工作的,还是一知半解。

我记得刚入行那会儿,总觉得卫星定位就是“天上掉坐标”。后来被一次漂移问题折磨了整整两周,才老老实实把原理啃了一遍。嗯,今天我就用最直白的方式,把这四大系统讲清楚。

2.1 四大系统,一个道理

GPS、BDS(北斗)、GLONASS、Galileo,名字不同,但核心逻辑一模一样。说白了就是:卫星告诉你它在哪,它啥时候发的信号,你收到信号后算时间差,然后解出自己的位置。

你想想看,这跟“听声辨位”一个道理。你听到雷声,数几秒后听到,就知道雷离你多远。卫星也一样,只不过它发的是无线电波,速度是光速。

系统 所属国家 卫星数量(约) 轨道高度 特点
GPS 美国 31 20200 km 最成熟,全球覆盖
BDS 中国 35 21500 km 有地球静止轨道卫星,亚太地区优势明显
GLONASS 俄罗斯 24 19100 km 高纬度地区表现好
Galileo 欧盟 26 23222 km 精度高,民用信号免费
我的习惯: 做多模定位时,我一般优先用 GPS + BDS 组合。北斗在亚太地区信号质量确实好,尤其在城市峡谷场景下,能多锁定 2-3 颗星,漂移概率明显下降。

2.2 卫星到底在发什么?

卫星每时每刻都在广播。广播的内容,专业叫法叫导航电文。这里面包含三样核心信息:

  • 星历:卫星自己的精确位置和速度。说白了就是“我在哪”。
  • 历书:所有卫星的粗略轨道参数。帮你快速搜星用的。
  • 时间戳:信号发出的精确时间。这是定位的关键。

我遇到过不少新手,以为定位不准是算法问题。查了半天,最后发现是星历过期了。嗯,这里要注意:星历的有效期只有 2-4 小时。冷启动时如果星历太老,定位精度会差得离谱。

2.3 定位的数学本质

别怕,我不跟你推公式。你只要记住一句话:定位就是解四元方程组。

为什么是四元?三个坐标(x, y, z)加上一个时间误差。所以理论上,你至少需要4颗卫星才能定位。

核心逻辑:

每颗卫星给你一个方程:
卫星位置(已知) + 信号传播时间(测量值) = 你的位置(未知)

4颗卫星 = 4个方程 = 解出4个未知数(x, y, z, 时间误差)

我曾经在项目里犯过一个低级错误:只搜到3颗星,就强行定位。结果位置跳了上百米。后来才明白,3颗星只能做2D定位,高度是假设的,稍微一动就飘。

2.4 信号频率与多普勒效应

卫星信号频率,各家不太一样:

  • GPS:L1(1575.42 MHz)、L2(1227.60 MHz)、L5(1176.45 MHz)
  • BDS:B1(1561.098 MHz)、B2(1207.14 MHz)、B3(1268.52 MHz)
  • GLONASS:L1(1602 MHz 附近,频分多址)
  • Galileo:E1(1575.42 MHz)、E5(1191.795 MHz)

这里有个有意思的现象——多普勒效应。卫星高速运动,你收到的信号频率会偏移。我刚开始做接收机时,发现锁频环老是失锁,后来一查,是多普勒频移没补偿好。

避坑指南: 我曾经在高速移动场景下(比如高铁),因为没做多普勒补偿,导致信号频繁失锁。后来加了频率跟踪环路,才稳住。如果你做车载定位,这个一定要处理。

2.5 四大系统的差异与互补

每个系统都有自己的脾气。我简单总结一下:

  • GPS:老大哥,稳定。但单系统在城市里容易“断粮”。
  • BDS:亚太地区信号强,尤其有地球静止轨道卫星,遮挡环境下优势明显。
  • GLONASS:高纬度地区表现好,但频分多址导致接收机设计复杂一点。
  • Galileo:精度高,民用信号免费,但卫星数量还没完全到位。

我个人建议:能做多模就做多模。单系统定位,在城市里漂移是常态。多模融合后,可用卫星数量翻倍,定位稳定性和精度都会上一个台阶。

2.6 一张图看懂卫星定位流程

下面这张图,是我自己画的卫星定位核心流程。你把它记住,后面讲漂移原因时,你就知道问题出在哪个环节了。

卫星定位核心流程 卫星定位核心流程 卫星广播 导航电文 信号传播 接收机捕获 伪距测量 星历解析 卫星位置计算 用户位置解算 误差来源:电离层延迟 | 对流层延迟 | 多径效应 | 卫星钟差 | 接收机噪声 最终输出:经纬度 + 高度 + 时间

2.7 为什么了解这些能帮你解决漂移?

你想想看,漂移的本质是什么?是定位结果和真实位置之间的偏差。而这个偏差,就来自上面流程中的每一个环节。

  • 卫星广播环节:星历误差、卫星钟差
  • 信号传播环节:电离层延迟、对流层延迟、多径效应
  • 接收机环节:噪声、天线设计、算法缺陷

后面几章,我会一个一个拆开来讲。但今天这一章,你得先把基础打牢。尤其是那张流程图,我建议你多看几遍。定位漂移的根因,十有八九都能在那张图上找到对应位置。

我的经验: 每次遇到漂移问题,我第一件事就是打开接收机的原始观测数据,看伪距残差。如果残差大,先查信号传播路径;如果残差小但位置跳,多半是算法或星历问题。这个排查思路,就是基于今天讲的这个流程。