Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何利用RSSI改进蓝牙测距?_Android_Bluetooth_Bluetooth Lowenergy_Ibeacon_Rssi - Fatal编程技术网

Android 如何利用RSSI改进蓝牙测距?

Android 如何利用RSSI改进蓝牙测距?,android,bluetooth,bluetooth-lowenergy,ibeacon,rssi,Android,Bluetooth,Bluetooth Lowenergy,Ibeacon,Rssi,对于我的项目,我需要估计智能手机和蓝牙模块之间的距离。估计不一定要非常精确。我只需要确定距离,误差范围约为50cm 我测试了两个蓝牙模块的RSSI,距离步长为10厘米。我测量了每一步的RSSI 5次,得到了5次测量的平均值。平均值如下图所示: 红色和蓝色线条类似于两个蓝牙模块。你可以看到结果不是很线性的。其中一个原因是干扰,所以我寻找解决干扰问题的方法。我发现有两种方法: 信噪比(SNR): iBeacon信号强度(rssi)与校准发射机功率(txPower)之比。txPower是rssi距

对于我的项目,我需要估计智能手机和蓝牙模块之间的距离。估计不一定要非常精确。我只需要确定距离,误差范围约为
50cm

我测试了两个蓝牙模块的RSSI,距离步长为10厘米。我测量了每一步的RSSI 5次,得到了5次测量的平均值。平均值如下图所示:

红色和蓝色线条类似于两个蓝牙模块。你可以看到结果不是很线性的。其中一个原因是干扰,所以我寻找解决干扰问题的方法。我发现有两种方法:

  • 信噪比(SNR):

  • iBeacon信号强度(
    rssi
    )与校准发射机功率(
    txPower
    )之比。
    txPower
    rssi
    距离
    1米处的已知测量信号强度:

然而,我真的不明白如何使用上述技术来获得更高的准确性。对于信噪比,我需要噪声值,如何才能得到噪声值

对于比率
rssi
/
txPower
,我只需从模块测量
1米处的
rssi
即可获得
txPower
。所以我知道所有需要的值。但我不知道从现在起该怎么办。如何使用这些值获得更精确的距离估计


我还可以使用其他技术来提高准确性吗?

您正遇到这项技术的实际限制。在理想条件下,短距离(2米以下)而非长距离超过10米时,可以获得+/-50厘米的估计精度

我在这里写了一篇关于限制的博文:

要回答您的具体问题:

  • 不,没有实用的方法知道单个RSSI测量的哪一部分来自信号,哪一部分来自噪声。您可以对多个采样进行平均,如果发射机和接收机在采样间隔内保持静止,则可以部分消除噪声

  • 您询问的技术确实可以为您提供距离估计,但它们具有上述技术的局限性


  • 嗨,谢谢你的链接,非常有洞察力的信息。我测试了蓝牙模块的txRadio值,精确到59 dBm。我在您提供的链接中使用了示例代码,其准确性足以满足我的需要。但是,只有当蓝牙模块与手机之间没有任何连接时,才会出现这种情况。即使将我的手放在两者之间,也会引起几米的波动,而rssi值的波动要小得多。这与您的调查结果相符吗?是的,由于衰减,障碍物会导致不同的RSSI水平。你所描述的用手看到的东西似乎比我所看到的要多一些,但这肯定是可能的。