我发现了这个post,但我不知道我的理解是否正确,以及(如果我)遗失的地方: 我使用一个带有两个不同的lib的应用程序,一个带有sdk estimote,我正在尝试根据此公式计算距离,另一个使用lib Alt Beacon计算距离。
公式:
double getDistance(int rssi, int txPower) {
/*
* RSSI = TxPower - 10 * n * lg(d)
* n = 2 (in free space)
*
* d = 10 ^ ((TxPower - RSSI) / (10 * n))
*/
return Math.pow(10d, ((double) txPower - rssi) / (10 * 2));
}
Alt Beacon给我一个接近正确的值,但是当我根据我的理解尝试使用这个帖子的公式时,这个距离的值非常不同。
我的Estimote公式:
double getDistance(int rssi, int txPower) {
/*
* RSSI = TxPower - 10 * n * lg(d)
* n = 2 (in free space)
*
* d = 10 ^ ((TxPower - RSSI) / (10 * n))
*/
return Math.pow(10d, ((double) beacon.getMeasuredPower() - beacon.getRssi()) / (10 * 2));
}
样本信标estimote值:
beacon.getMeasuredPower() = -65
beacon.getRssi() = -66
Alt lib返回的距离值= + - 4米。
公式返回的距离值= + - 20米。
在公式中放置的实际数量是多少,以便我可以与信标保持距离,如果你可以在x,y平面上学习雷达。