2. 测距原理与误差源:TOF/TDOA测距原理、信号传播模型、多径效应与NLOS误差
聊UWB定位漂移,绕不开测距原理。很多人一上来就调滤波参数、改算法权重,结果漂移照旧。为什么?因为根子在测距这一步就歪了。我见过不少项目,折腾半天发现是TOF/TDOA选型就没选对。
这一节,我们把测距的底牌翻出来看看。
2.1 TOF测距:简单直接,但坑不少
TOF,全称Time of Flight,飞行时间法。说白了就是测信号从A到B飞了多久,乘以光速,距离就出来了。
公式很简单:
d = c × (T_round - T_reply) / 2
其中T_round是总往返时间,T_reply是标签收到信号到回复的延迟。除以2是因为信号走了个来回。
单边双向测距(SS-TWR)是最基础的实现。标签发一个poll包,基站回一个response包,标签算时间差。
但这里有个大坑——时钟不同步。标签和基站的晶振频率不可能完全一样,哪怕差个几十ppm,测距误差就会随距离线性增长。我记得有个项目,标签和基站距离50米,实测误差飙到1.2米,查了半天就是晶振偏差闹的。
双边双向测距(DS-TWR)就是来救场的。它多了一次往返,用三个时间戳把时钟误差抵消掉。
核心结论:DS-TWR的测距精度比SS-TWR高一个数量级。只要功耗和时隙允许,我建议一律用DS-TWR。
2.2 TDOA测距:省带宽,但依赖同步
TDOA,Time Difference of Arrival,到达时间差。它不测绝对距离,而是测同一个信号到达不同基站的时间差。
公式长这样:
Δd = c × (T_A - T_B)
TDOA的好处是标签只需要发一次信号,基站们各自收。定位解算在服务器端完成,标签功耗低,系统容量大。
但代价是什么?基站之间必须严格时钟同步。误差1ns,距离就偏30cm。我见过一个仓库项目,基站用网线同步,结果线长不一样导致时钟偏差,定位直接飘了半米。
| 对比项 | TOF(DS-TWR) | TDOA |
|---|---|---|
| 测距方式 | 双向往返 | 单向到达时间差 |
| 时钟同步要求 | 低(算法自补偿) | 高(基站间需纳秒级同步) |
| 标签功耗 | 较高(需收发两次) | 低(只发不收) |
| 系统容量 | 中等 | 高 |
| 典型精度 | 10-30cm | 20-50cm |
我的经验:如果标签数量少(几十个以内)且对精度要求高,选TOF。如果标签上千个、需要低功耗,TDOA更合适。但TDOA的同步方案一定要做冗余设计,我曾经吃过一次亏,后来所有TDOA项目都加了GPS驯服时钟做备份。
2.3 信号传播模型:理想很丰满,现实很骨感
UWB信号在自由空间里传播,遵循路径损耗模型:
PL(d) = PL(d0) + 10 × n × log10(d/d0) + Xσ
n是路径损耗指数,自由空间里是2,室内环境通常2.5到4。Xσ是阴影衰落,服从正态分布。
但实际场景里,信号不会乖乖按这个模型走。墙壁、金属、人体都会造成衰减。我测过一个工厂车间,信号穿过两道铁皮墙后,衰减比模型预测多了15dB,测距直接跳变。
为什么会这样?因为UWB虽然带宽大、抗多径能力强,但它不是万能的。信号在非视距(NLOS)环境下,穿透损耗和折射会严重扭曲到达时间。
2.4 多径效应:UWB的天然优势与残留问题
多径效应,就是信号从发射端到接收端走了多条路。直射路径、反射路径、绕射路径混在一起。
传统窄带信号遇到多径基本就废了。但UWB脉冲宽度极窄(纳秒级),在时间上能把不同路径分开。接收机通过匹配滤波或相关检测,找到第一个到达的脉冲,那就是直射路径。
听起来很完美对吧?但实际没那么简单。
- 首径检测误差:当直射路径被遮挡,第一个到达的可能是反射路径,接收机就会锁定错峰。我遇到过在金属货架旁边定位,首径检测偏差了3ns,距离偏了将近1米。
- 能量泄漏:多径分量如果和直射路径时间间隔太近(小于脉冲宽度),接收机无法分辨,会合并成一个峰,导致时间戳偏移。
- 信道估计不准:有些算法依赖信道冲激响应(CIR)来识别多径,但CIR本身受噪声和干扰影响,估计不准反而引入误差。
避坑指南:我曾经在一个有大量金属货架的仓库里做UWB定位,首径检测频繁出错。后来加了一个基于CIR峰值陡峭度的置信度判断,只有陡峭度超过阈值的才认为是直射路径,否则丢弃该测距值。效果立竿见影,漂移减少了60%。
2.5 NLOS误差:定位漂移的头号元凶
NLOS,Non-Line-of-Sight,非视距。说白了就是标签和基站之间没有直射路径,信号必须穿透或绕射才能到达。
NLOS带来的误差有多大?我实测过一组数据:
| 场景 | LOS误差(cm) | NLOS误差(cm) | 误差倍数 |
|---|---|---|---|
| 空旷办公室 | 10-20 | — | — |
| 隔一堵砖墙 | — | 40-80 | 3-4倍 |
| 隔一堵混凝土墙 | — | 80-200 | 5-10倍 |
| 金属货架遮挡 | — | 100-300 | 8-15倍 |
NLOS误差为什么这么大?因为信号穿过障碍物时,传播速度变慢(介电常数导致),而且路径变长。接收机测到的时间比实际直射路径要长,算出来的距离就偏大。
更麻烦的是,NLOS误差不是随机的,它是有偏的——总是偏大。这就导致定位结果往远离基站的方向漂移。
关键认知:NLOS误差是UWB定位漂移最主要的来源。不解决NLOS问题,调再好的滤波算法也是治标不治本。
2.6 知识体系总览
下面这张图把本章的核心逻辑串起来了。你可以看到测距原理、信号传播、多径和NLOS是怎么一步步影响定位精度的。
2.7 小结
这一章我们把测距的底牌翻了个遍。TOF和TDOA各有优劣,选型要看场景。信号传播模型是理论参考,实际要留余量。多径效应UWB能扛一部分,但首径检测和NLOS才是真正的硬骨头。