The rssi which I receive is inaccurate

手机与各个ibeacon设备的放置位置如图所示
The location of the mobile phone and each ibeacon device is shown in the figure


我编写的Android程序接收到的信息如下表所示
the information which i receive from my android program as follows(if you want research source code, please contact me)

各设备之间也无明显的遮挡物,得出来的rssi却不尽人意
There is no obvious shelter between the devices, but the RSSI is not satisfactory
远的4,5不说,我希望至少近的2,3能测得准一点,请问有什么办法吗?
regardless of 4,5, I hope at least 2, 3 can be measured accurately, what can I do?
我使用的rssi转换distance的公式是
public double getDistance(int measuredPower, double rssi) {
if (rssi >= 0) {
return -1.0;
}
if (measuredPower == 0) {
return -1.0;
}
double ratio = rssi * 1.0 / measuredPower;
if (ratio < 1.0) {
return Math.pow(ratio, 10);
} else {
double distance= (0.42093) * Math.pow(ratio, 6.9476) + 0.54992;
return distance;
}
}

由于蓝牙属于2.4GHz高频信号,在实际环境极易受到影响和干扰,因此波动较大属于正常现象。直接用于测距精度较低

但距离较近应该还是可以得到个大概的吧,请问有什么办法呢?比如调整ibeacon姿态或者其他的