如何计算信标和Android设备之间更准确的距离?

时间:2017-06-28 08:41:38

标签: android ibeacon eddystone indoor-positioning-system

我尝试使用RSSI和TxPower计算从信标到Android设备的距离,但波动非常高。那么如何获得更稳定的距离呢?我试过下面给出的代码片段:

  public  double calculateAccuracy(int txPower, double rssi) {
        if (rssi == 0) {
            return -1.0;
        }
        double ratio = rssi * 1.0 / txPower;
        if (ratio < 1.0) {
            return Math.pow(ratio, 10);
        } else {
            double accuracy = (0.89976) * Math.pow(ratio, 7.7095) + 0.111;
            return accuracy;
        }
    }

1 个答案:

答案 0 :(得分:0)

这个问题没有简单的答案,因为rssi确实波动很大,特别是在较远的距离。蓝牙内置频道切换加剧了这种情况。每个通道返回不同的平均RSSI。

您可以做的最好的事情是在一段时间内尽可能多地平均rssi测量值,这对您的用例来说是合理的。您可以使用简单的算术平均值或更复杂的统计过滤器,但之间的差异并不显着。

将信标的广告费率设置得尽可能高以获得更多统计样本也很有用,并将发射机强度设置得尽可能高,因为较大的信噪比会减少rssi中的差异。< / p>