首页 > 解决方案 > 如何使用 rssi 和 tx_power 计算信标与信标接收器的距离

问题描述

我有 RSSI 和 TX_Power 来计算信标的距离,但问题是我没有得到准确的距离。

我尝试以下代码使用 txpower 和 RSSI 值查找距离。

import math
rssi= -61
txpower = -64    
if rssi == 0:
    print(-1)
else:
    ratio = rssi*1.0 / txpower
    if ratio < 1.0:
        ans= math.pow(ratio, 10)
        print(ans)
    else:
        ans2=(0.89976  (ratio ** 7.7095)) + 0.111
        print(ans2)

使用上面的公式,我得到的距离输出为 0.6187m,但 Beacon Scanner 应用程序显示 rssi= -61 和 txpower = -64 为 1.40m。

标签: python-3.xbluetooth-lowenergyibeaconbeaconrssi

解决方案


您并不能真正从 BLE RSSI 测量中获得良好的距离精度。有太多的变量需要应对:每个设备都不同,天线轮廓是奇怪的形状(因此相对旋转会产生巨大的影响),两端存在恒定且非正态分布的功率波动。

这是一篇关于缓解这些问题的一些尝试的有趣且相当近期的论文,但即便如此,准确性也不是很好,但这与您所需的应用有关:基于改进的 RSSI 距离模型的室内定位算法(2018 年)。李国权等。


推荐阅读