我正在计算距离Kontakt信标的距离: RSSI(dBm)= -10n log10(d)+ A. 我设置n = 2,这是在自由空间。 A应该在1米距离处接收RSSI。
导致以下计算方法:
private double getDistance(double rssi) {
// TODO Auto-generated method stub
return Math.pow(10.0,((rssi-(-54.0))/-25.0));
}
-54是我在1米处测量的平均值之一。信标设置为TxPower 4dB。任何人都做了更多的测试,以找出kontakt信标1米距离的理想值?或者任何改进的公式?
祝你好运
答案 0 :(得分:2)
在开发Android Beacon Library时,我们从类似的公式开始,但发现我们通过做最佳拟合功率曲线得到了更好的BLE信标效果。我们提出的论坛在此详细描述:https://stackoverflow.com/a/20434019/1461050
该公式针对Nexus 4进行了优化。由于每个Android设备都有不同的天线增益,因此需要针对每个设备调整常量。您可以详细了解此流程here.
同样重要的是要了解由于无线电噪声,RSSI从一个读数到下一个读数会有相当大的波动,因此如果将多个读数平均在一起,则可以获得更好的结果。 Android Beacon Library默认采用最近30秒的读数,抛出最高和最低10%,并使用剩余的平均值。该库的最新版本还实现了ARMA filter,在某些情况下可以提供更好的结果。