第二章:定位原理基础

做定位开发这些年,我见过太多人一上来就调代码、改参数,结果漂移问题越改越乱。为什么?说白了,就是没搞懂GPS到底是怎么算出位置的。这一章,咱们把地基打牢。

2.1 GPS卫星定位的基本原理

GPS系统由三部分组成:太空段(卫星)、控制段(地面站)和用户段(你的接收机)。卫星在天上飞,接收机在地上跑,怎么知道你在哪?

核心思路其实很简单:测距。卫星不断广播自己的位置和精确的时间戳,接收机收到信号后,算出信号从卫星飞到接收机花了多少时间,乘以光速,就得到了距离。

关键公式:

距离 = 光速 × 时间差

光速 ≈ 3×10⁸ m/s,时间差精度要到纳秒级。

嗯,这里要注意:卫星上的原子钟非常准,但接收机上的晶振就廉价多了。所以接收机算出来的时间差,其实包含了接收机自身的时钟误差。这就是为什么我们需要至少4颗卫星——3颗解位置,1颗解时间。

我个人习惯把GPS定位比作「问路」:你问一个人「我在哪」,他告诉你他的位置和你们之间的距离,你只能画一个圆。问两个人,两个圆相交于两点。问三个人,三个圆交于一点——那就是你的位置。

2.2 三边测量法

三边测量法,说白了就是「三个圆相交于一点」的数学实现。但实际工程中,这三个圆几乎不可能完美交于一点,因为测量误差无处不在。

我记得有一次在楼宇密集的CBD做测试,接收机报出来的位置在马路对面。我一看原始数据,三颗卫星的伪距残差都偏大。这就是典型的「三边不交于一点」——数学上叫最小二乘解。

实际算法流程是这样的:

1. 接收机捕获至少4颗卫星的信号
2. 提取每颗卫星的星历(位置)和伪距
3. 建立方程组:
   (x - x₁)² + (y - y₁)² + (z - z₁)² = (ρ₁ - c·Δt)²
   (x - x₂)² + (y - y₂)² + (z - z₂)² = (ρ₂ - c·Δt)²
   (x - x₃)² + (y - y₃)² + (z - z₃)² = (ρ₃ - c·Δt)²
   (x - x₄)² + (y - y₄)² + (z - z₄)² = (ρ₄ - c·Δt)²
4. 用牛顿迭代法或最小二乘法求解
5. 输出经纬度、高度和时间

你想想看,4个方程解4个未知数(x, y, z, Δt),理论上刚好。但实际中卫星数量越多,冗余度越高,定位越稳。我建议至少保证6颗以上可见星,否则漂移概率会明显上升。

避坑指南:

我曾经在山区测试,只搜到4颗卫星,结果定位误差超过100米。后来加了外置天线,搜到8颗星,误差降到5米以内。记住:卫星数量不是越多越好,但少于6颗就要警惕了。

2.3 定位误差来源

误差从哪来?我把它分成三大类:卫星端、传播路径、接收机端。下面这张图能帮你快速建立全局认知:

GPS定位误差来源全景图 卫星端误差 传播路径误差 接收机端误差 星历误差(卫星轨道偏差) 卫星钟差(原子钟漂移) 选择性可用性(SA,已关闭) 电离层延迟(白天最严重) 对流层延迟(水汽影响) 多路径效应(高楼反射) 接收机钟差(晶振不准) 热噪声(信噪比低) 天线相位中心偏差 典型误差范围:1-15米(无差分修正时)

下面我挑几个重点展开说说:

2.3.1 电离层延迟

这是最大的误差源,白天能贡献5-15米的误差。电离层里的自由电子会减慢GPS信号的传播速度,让接收机误以为卫星更远。双频接收机可以校正这个误差,但单频机就只能靠模型估算。

我做过一个对比实验:同一台单频接收机,中午测的误差8米,凌晨测的只有3米。为什么?因为太阳辐射减弱了,电离层活动变弱。所以如果你做高精度定位,尽量避开中午时段。

2.3.2 多路径效应

信号打到高楼、水面、金属表面再反射到接收机,反射路径比直射路径长,导致测距偏大。这是城市峡谷里漂移的元凶之一。

⚠️ 特别注意:

多路径效应不是随机噪声,它是系统性偏差。你站在原地不动,多路径误差可能一直往同一个方向偏。我曾经在玻璃幕墙大楼下测试,定位点稳定地偏了20米——稳定,但错了。

2.3.3 卫星几何分布(DOP值)

这个很多人忽略。卫星在天上的分布越分散,定位精度越高。如果所有卫星都挤在头顶一小片区域,误差会被放大好几倍。DOP值(精度衰减因子)就是衡量这个的指标。

DOP值 等级 对定位的影响
< 2 优秀 误差放大倍数很小,定位很稳
2 - 4 良好 日常使用没问题
4 - 6 中等 开始出现明显漂移
6 - 10 较差 定位不可靠,建议等待
> 10 极差 基本不可用

我建议你在调试时,把DOP值也打印出来。如果定位漂移的同时DOP值很高,那问题大概率出在卫星几何分布上,而不是算法问题。

2.4 小结

这一章我们聊了GPS定位的底层逻辑:卫星发信号,接收机算距离,三边交会定位置。误差来源很多,但最核心的是电离层延迟、多路径效应和卫星几何分布。搞懂这些,你再看漂移问题,就不会一头雾水了。

下一章,咱们直接上手分析实际漂移案例,看看这些理论误差是怎么在真实数据里表现出来的。

一句话总结:

GPS定位不是「卫星告诉你你在哪」,而是「你根据卫星的位置和信号到达时间,自己算出来你在哪」。误差不可避免,但理解来源就能对症下药。

可可精品资料库