传感器基础(GNSS):GPS/北斗信号结构、伪距与载波相位、单点定位与RTK、多路径效应

各位同学,今天我们来啃一块硬骨头——GNSS传感器。说实话,很多做导航调参的朋友,一提到卫星定位就觉得“不就是收个经纬度嘛”。但实际调参时,你会发现那些飘来飘去的定位点、突然跳变的航向角,背后全是今天要讲的东西在作怪。

我个人习惯把GNSS比作一个“超级计时器”。它不直接告诉你“你在哪”,而是告诉你“信号飞了多久”。你想想看,从两万公里外的卫星,到你的接收机天线,这中间发生了什么?嗯,这就是我们这节要拆解的核心。

4.1 信号结构:卫星到底在发什么?

GPS和北斗的信号结构,说白了就是三样东西:载波、测距码和导航电文。我刚开始接触时,总觉得这三者是分开的,后来在项目里用示波器抓了一次中频信号才明白——它们是叠在一起的。

  • 载波(Carrier):GPS的L1频段是1575.42MHz,北斗的B1I是1561.098MHz。这就是信号的“卡车”,负责把信息从卫星运到地面。
  • 测距码(PRN码):每个卫星有唯一的伪随机码。接收机通过本地复现这个码,跟收到的码做相关,算出信号传播时间。
  • 导航电文(Navigation Message):包含卫星星历、钟差、电离层参数。没有这个,你就算出了伪距也不知道卫星在哪。

关键点:测距码的码片速率决定了测距的理论精度。GPS的C/A码码片速率1.023MHz,理论测距精度约3米。北斗的B1I码速率2.046MHz,精度略高。但注意,这只是“码相位”的精度,不是最终定位精度。

我在项目中遇到过一件事:某次用低成本接收机,发现定位结果在开阔天空下也有2-3米的跳变。排查了半天,发现是接收机内部的码跟踪环路带宽设得太宽,把噪声也跟进去了。调窄带宽后,跳变降到了0.5米以内。这就是信号结构直接影响调参的典型案例。

4.2 伪距与载波相位:两个测距手段

伪距和载波相位,是GNSS定位的两把尺子。一把是“米级”的钢卷尺,一把是“毫米级”的游标卡尺。但游标卡尺有个毛病——你不知道它量了多少整圈。

伪距(Pseudorange)

伪距的原理很简单:信号传播时间 × 光速。但为什么叫“伪”?因为传播时间里包含了卫星钟差、接收机钟差、电离层延迟、对流层延迟……说白了,你测出来的距离不是真距离,是“伪”的。

伪距方程:
ρ = r + c·(δt_u - δt_s) + I + T + ε

其中:
ρ  - 伪距观测值
r  - 卫星到接收机的几何距离
c  - 光速
δt_u - 接收机钟差
δt_s - 卫星钟差
I  - 电离层延迟
T  - 对流层延迟
ε  - 测量噪声

调参小技巧:伪距的测量噪声一般在0.5-3米之间。如果你在静态测试时看到伪距残差超过5米,先检查天线有没有被遮挡,再检查接收机设置里的“最小仰角”是不是设得太低(比如低于10度)。

载波相位(Carrier Phase)

载波相位测量的是接收机复现载波与卫星发射载波之间的相位差。GPS L1的波长约19cm,所以相位测量精度可以到毫米级。但问题来了——相位差只能测出不足一整周的小数部分,整周数N是未知的。这就是著名的“整周模糊度”问题。

我曾经在无人机项目里吃过这个亏。飞机起飞前初始化RTK,整周模糊度固定了,定位精度2cm。飞了5分钟后,信号短暂失锁,再锁定后整周模糊度变了,定位直接跳了20cm。嗯,这就是载波相位最头疼的地方——周跳。

避坑指南:我曾经在车载测试中,因为接收机动态太大(急转弯),导致载波相位环路失锁。后来我把接收机里的“载波跟踪环路带宽”从15Hz调到了25Hz,失锁概率明显下降。但带宽调大也会引入更多噪声,这是个trade-off。

4.3 单点定位与RTK:精度差在哪?

单点定位(SPP)和RTK(实时动态差分定位),本质区别在于“用了什么观测值”以及“怎么消除误差”。

对比项 单点定位(SPP) RTK(实时动态差分)
观测值 伪距 载波相位 + 伪距
精度 2-5米(开阔天空) 1-3厘米(固定解)
误差消除 模型改正(电离层、对流层) 差分消除(基准站与流动站共同误差)
整周模糊度 不需要解算 需要固定为整数
收敛时间 即时 10-60秒(取决于环境)
依赖 单台接收机 基准站 + 数据链路

你想想看,单点定位为什么只能到米级?因为伪距噪声本身就米级,再加上电离层延迟在白天可以到10-15米,模型改正只能消掉60-80%。而RTK通过差分,把电离层、对流层、卫星钟差这些共同误差几乎全消掉了,剩下的就是载波相位的毫米级噪声和整周模糊度。

核心逻辑:RTK的精度天花板,取决于整周模糊度能否正确固定。固定了就是厘米级,没固定(浮点解)就是分米级甚至米级。调参时,重点关注“固定率”——如果固定率低于80%,检查基准站坐标是否准确、数据链路是否稳定、流动站附近是否有强多路径。

4.4 多路径效应:看不见的干扰源

多路径效应,说白了就是卫星信号不只有直射路径,还有反射路径。反射信号比直射信号晚到一点点,叠加在一起,让接收机测出的伪距和载波相位都变了味。

我在一个港口自动化项目里被多路径折磨过。龙门吊周围全是金属结构,反射信号满天飞。RTK固定率从平时的95%掉到了40%,定位偶尔跳半米。后来我们在天线下面加了一个扼流圈,又把接收机里的“多路径抑制”功能打开,固定率才回到85%。

多路径的影响

  • 伪距:多路径延迟可达10-20米,导致定位出现系统性偏差。
  • 载波相位:多路径引起的相位误差一般在1-5cm,但足以让整周模糊度固定失败。
  • 信号强度:反射信号与直射信号干涉,导致载噪比(C/N0)波动,严重时信号失锁。

怎么应对多路径?

  1. 天线选型:用扼流圈天线或抗多路径天线。扼流圈能抑制低仰角反射信号。
  2. 安装位置:天线尽量远离金属平面、水面、玻璃幕墙。我建议至少保持1米以上的净空。
  3. 接收机设置:打开多路径抑制算法(比如Strobe Correlator、MEDLL)。代价是会增加一点点噪声。
  4. 仰角截止:把最小仰角从5度提高到15度。低仰角卫星更容易被反射。

避坑指南:我曾经在测试中发现,同一台接收机在同一个位置,上午和下午的多路径表现完全不同。为什么?因为卫星几何变化了,反射路径也跟着变。所以评估多路径影响时,至少要测24小时。

GNSS定位核心逻辑框架 GPS/北斗卫星 卫星信号发射 载波 + 测距码 + 电文 信号传播路径 电离层延迟 → 对流层延迟 → 多路径效应 → 信号衰减 接收机天线 信号跟踪与解调 伪距 / 载波相位 单点定位(SPP) 差分改正(RTK) 整周模糊度固定 最终输出:经纬度 + 高程 + 精度因子

这张图把GNSS定位的完整链路串起来了。从卫星发射信号,经过大气传播和各种误差污染,到接收机跟踪解调出伪距和载波相位,最后通过不同的定位算法输出坐标。你调参时遇到的每一个问题,几乎都能在这条链路上找到根因。

个人经验:我建议你在做导航调参前,先把接收机的原始观测值(伪距、载波相位、C/N0)录下来,用RTKLIB或自写脚本分析一遍。看看伪距残差有多大、载波相位有没有周跳、C/N0有没有异常波动。这一步做好了,后面调参就是“对症下药”,而不是“瞎蒙”。