2014-11-25 6 views
0

Я использую iBeacon от Radius Networks. На данный момент я пытаюсь рассчитать расстояние между устройством Android и тегом RadBeacon с помощью RSSI. Подобно тому, как Дэвид Янг упомянул here, у устройств Android есть другая антенна. Мой опыт со следующей Forumla не очень хорошо в сочетании с моим Nexus 7.RadBeacon Измерение расстояния между метками

protected static double calculateAccuracy(int txPower, double rssi) { 
    if (rssi == 0) { 
    return -1.0; // if we cannot determine accuracy, return -1. 
    } 

    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; 
    } 
} 

Кто-нибудь может предоставить мне другую формулу для вычисления расстояния или некоторых данных измерения/расстояния RSSI для различных расстояний?

ответ

0

Вы можете получить наилучшие результаты для конкретного устройства, измерив RSSI на разных расстояниях и сделав регрессию против вышеуказанной формулы, чтобы найти коэффициенты для наилучшего соответствия. Вы можете ознакомиться с подробным описанием рекомендуемых расстояний здесь:

http://altbeacon.github.io/android-beacon-library/distance-calculations.html

Вы можете импортировать данные в R (свободный статистический вычислительное программное обеспечение) и использовать функцию NLS (нелинейными наименьших квадратов), чтобы соответствовать данные с кривой мощности. Здесь уравнение мощности кривой: функция (x, b0, b1, b2) {b0 + b1 * (x^b2)}

Функция nls решает для коэффициентов b0, b1 и b2, которые используются в формула A, B и C.

Вот учебник по аппроксимации кривой в R для получения дополнительной информации:

http://www.walkingrandomly.com/?p=5254

Смежные вопросы