第2章 RSSI定位原理:信号强度与距离关系

各位同学,今天我们来聊聊RSSI定位。说实话,这是蓝牙定位里最基础、也是最容易上手的方法。我最早接触蓝牙定位时,就是从RSSI开始的。那时候觉得,信号强度嘛,离得近就强,离得远就弱,多简单。但实际做起来,坑还真不少。

2.1 信号强度与距离的关系

先说说基本原理。RSSI的全称是Received Signal Strength Indicator,也就是接收信号强度指示。在理想环境下,信号强度会随着距离的增加而衰减。这个衰减规律,可以用一个简单的公式来描述:

RSSI = A - 10n × log10(d)

其中:

  • A:距离发射器1米处的参考信号强度(单位dBm)
  • n:路径损耗指数(环境相关)
  • d:距离(单位米)

举个例子。假设A = -59dBm,n = 2.0(自由空间),那么距离10米时:

RSSI = -59 - 10 × 2.0 × log10(10) = -59 - 20 = -79dBm

嗯,这里要注意。这个公式看着简单,但实际用起来,A值和n值都不是固定的。我在项目中遇到过,同一个蓝牙信标,放在会议室和放在仓库里,测出来的参数完全不一样。所以,环境校准是必须的

关键点:RSSI与距离不是线性关系,而是对数关系。这意味着,距离越远,RSSI的变化越不敏感。说白了,你离信标1米和2米时,RSSI变化很明显;但离20米和21米时,几乎看不出区别。

2.2 路径损耗模型

刚才说的公式,其实就是一个简化的路径损耗模型。实际应用中,我们常用的模型有几种:

模型名称 适用场景 特点
自由空间模型 开阔室外 n=2.0,理想情况
对数距离模型 室内一般环境 n=2.5~4.0,最常用
衰减因子模型 复杂室内 考虑墙壁、楼层衰减

我个人习惯用对数距离模型。为什么?因为它简单,而且效果还不错。你想想看,室内环境里,信号穿过一堵墙大概衰减10~15dB,穿过一层楼板衰减20~30dB。这些数据,我都是实测出来的。

这里分享一个我踩过的坑。有一次做商场室内定位,我直接用了自由空间模型,结果定位误差大得离谱。后来才发现,商场里到处都是金属货架和玻璃幕墙,信号反射得一塌糊涂。所以,选模型一定要看实际环境

实用技巧:如果你不确定用哪个模型,可以先在目标环境里采集一些RSSI数据,然后用最小二乘法拟合出n值。这样得到的模型,比任何理论模型都准。

2.3 三边定位算法

有了RSSI和距离的关系,我们就可以做定位了。三边定位,说白了就是几何问题。已知三个信标的坐标,以及到它们的距离,求你的位置。

数学上,这需要解一个方程组:

(x - x1)² + (y - y1)² = d1²
(x - x2)² + (y - y2)² = d2²
(x - x3)² + (y - y3)² = d3²

其中(x,y)是待求位置,(x1,y1)等是信标坐标,d1等是测得的距离。

实际代码实现时,我一般用最小二乘法来解。因为RSSI测距有误差,三个圆往往不会交于一点。最小二乘法能找到一个误差最小的点。

// 伪代码示例:三边定位的最小二乘解法
function trilateration(beacons) {
    // beacons: [{x, y, distance}, ...]
    // 构建矩阵A和向量b
    // 求解 (A^T * A) * x = A^T * b
    // 返回 (x, y)
}

我曾经在一个工厂项目里用过这个算法。当时要求定位精度在3米以内,我用了4个信标做冗余,效果还不错。但要注意,信标的几何布局很重要。如果三个信标排成一条直线,那定位精度会非常差。

避坑指南:我曾经把三个信标放在同一条走廊上,结果定位结果总是在走廊两侧来回跳。后来改成三角形布局,问题就解决了。信标之间的夹角最好在60°~120°之间。

2.4 RSSI的局限性

说了这么多,我得泼点冷水。RSSI定位,其实有很多局限性。我总结了几点:

  • 多径效应:信号反射、折射会导致RSSI波动。我在一个金属加工车间测过,同一位置1秒内RSSI能跳变10dB以上。
  • 人体遮挡:人体含水量高,对2.4GHz信号衰减很大。你拿着手机转身,RSSI就能变化5~8dB。
  • 温度湿度:空气湿度大时,信号衰减会增加。夏天和冬天,同一个位置的RSSI能差3~5dB。
  • 硬件差异:不同厂家的蓝牙芯片,发射功率和接收灵敏度都不一样。我对比过Nordic和TI的芯片,同样距离下RSSI能差4dB。

所以,RSSI定位的典型精度是多少?说实话,在室内环境下,能做到3~5米已经很不错了。如果你想要亚米级精度,那得考虑其他技术,比如后面要讲的AoA/AoD。

总结一下:RSSI定位适合对精度要求不高的场景,比如区域判断、人流统计。如果你要做精确导航,那还是老老实实上UWB或者蓝牙5.1的测向技术吧。

好了,这一章就讲到这里。下一章我们会聊蓝牙5.0的广播扩展,那才是真正有意思的东西。