計算公式:
d = 10^((abs(RSSI) - A) / (10 * n))
其中:
d - 計算所得距離
RSSI - 接收信號強度(負值)
A - 發射端和接收端相隔1米時的信號強度
n - 環境衰減因子
計算公式的代碼實現
- (float)calcDistByRSSI:(int)rssi { int iRssi = abs(rssi); float power = (iRssi-59)/(10*2.0); return pow(10, power); }
傳入RSSI值,返回距離(單位:米)。其中,A參數賦了59,n賦了2.0。
由於所處環境不同,每台發射源(藍牙設備)對應參數值都不一樣。按道理,公式里的每項參數都應該做實驗(校准)獲得。
當你不知道周圍藍牙設備准確位置時,只能給A和n賦經驗值(如本例)。
原文:http://blog.csdn.net/njchenyi/article/details/46981423