从 RSSI 和 TxPower 计算距离的正确方法

Correct way of calculating distance from RSSI and TxPower

我正在为 RSSITxPower 值使用 AltBeacon 库。

RSSI = -90 TxPower = -83

我发现计算距离是使用这个公式完成的:

d = 10 ^ ((TxPower -Rssi) / 10n) (n ranges from 2 to 4)

所以在我的例子中是 (n = 2):

d = 10 ^ (7 / 10 * 2) = 2.2387211385683394

是我计算正确还是这个公式有问题?另外,如果有更好的计算距离的公式,是否可以得到一个可以用于学士论文的参考?

有两种方法可以得出公式:使用 (1) 科学或 (2) 工程学。

科学的方法是尝试理解RSSI与距离的关系理论,并根据理论和实验得出一个预测它的公式。根据其他人的工作,类似于您所展示的路径损耗公式是正确的方法。

但是,这假设 完美 条件和数据(RSSI 测量)不受不相关因素的影响,信号损失理论给了我们方程式。这些因素包括 A/D RSSI 传感器中的转换器误差和偏差、每个蓝牙无线电信道上天线灵敏度的变化,以及许多其他因素。

由于很难甚至不可能想出一个科学的公式来解释所有这些并发症,一个常见的工程方法是绘制 RSSI 与距离的曲线,看在曲线上找到形状相似的数学曲线,然后 运行 进行回归以得出将数据拟合到该数学曲线的公式。然后可以使用该公式将 RSSI 转换为距离。

采用这种方法,理论并不重要,重要的是使用公式预测距离的能力。我在第一个 iPhone 和支持 BLE 的 Nexus 4 上使用了这种技术,并提出了 this formula 它并不完美,并且在不同的 phone 模型上效果不佳。但它比科学建议的路径损耗公式更有效,可能是因为它考虑了路径损耗公式没有考虑的其他现实世界因素。为获得最佳结果,运行 在每个 device/beacon 对中你自己的回归。

无论您使用什么公式,请理解随着信噪比变弱以及障碍物和多路径的影响变得更加深远,您离得越远,距离估计值就越差。期望在 1-3 米处有合理的结果,而在 10m 和 30m 之间几乎没有辨别能力。