2015-05-11 340 views
0

我以距離Kontakt信標的距離爲基礎計算: RSSI(dBm)= -10n log10(d)+ A 我設置n = 2,它位於空閒空間中。 A應該在1米距離內接收RSSI。RSSI到信標距離

通向下面的計算方法:

private double getDistance(double rssi) { 
    // TODO Auto-generated method stub 
    return Math.pow(10.0,((rssi-(-54.0))/-25.0)); 

} 

-54是平均值I meassured 1m處中的一個。信標被設置爲TxPower 4dB。有人做了更多的測試,找出kontakt信標在1米處距離的理想值嗎?或者任何改進的公式?

問候

回答

1

在開發Android Beacon Library,我們開始了類似的公式,卻發現我們得到的BLE信做一個最合適的功率曲線爲更好的結果。我們提出的論壇詳細描述如下:https://stackoverflow.com/a/20434019/1461050

該公式針對Nexus 4進行了優化。由於每個Android設備都有不同的天線增益,因此需要針對每個設備調整常量。您可以閱讀更多關於此過程的信息here.

瞭解RSSI由於無線電噪聲導致讀數波動很大也很重要,因此如果您將多個讀數平均在一起,則可以獲得更好的結果。默認情況下,Android Beacon庫採用最近30秒的讀數,拋出最高和最低10%,並使用剩餘值的平均值。最新版本的庫還實現ARMA filter,在某些情況下可以提供更好的結果。

+0

我已經看過所有這些文檔。我認爲你不想因爲高或低而拋高或低拋。您需要查看樣本中的所有值,以確切知道要拋出哪些點。我認爲你應該每隔一秒做一次,只保留高可靠性的樣品。然後在一段時間內對接受的手段/樣本進行移動平均。 mov avg也很受靜態測量誤差的影響,所以低通和移動平均值的結合可能是一個好主意。使用統計數據可以計算出標準偏差等參數 – snovva