android - iPhone和Android模拟信标在相同距离下RSSI差异很大
问题描述
我写了一个应用程序来检测信标并通过 RSSI 计算距离。当我使用 iPhone/android 模拟作为信标时,RSSI 会产生很大差异。比如我把 iPhone 放在离 BLEscanner 3M 远的地方,RSSI 是 -65。但在同一个地方,android 设备的 RSSI 将是-80 或更高。 有谁知道如何调整RSSI的差异?
解决方案
正如您所发现的,每种手机型号的蓝牙传输功率都略有不同。同样,每种手机型号的接收器灵敏度也略有不同。更改用于发送和接收的手机型号会影响您接收的 RSSI。
由于两个主要原因,您无法完全纠正这些差异:
- 还有许多其他因素会影响 RSSI,这些因素与手机型号无关(信号反射、空气或障碍物的衰减、手机壳的影响、附近拿着手机的手或其他人身体部位。)
- 关于手机在蓝牙发射功率和接收灵敏度方面的差异数据有限。
考虑到这些警告,谷歌确实创建了一个有限的校正因子数据集,作为其与苹果公司的冠状病毒接触者追踪工作的一部分。
你可以在这里阅读它是如何工作的
并在此处查看完整的校正数据集
基本思想是:
- 从上面的 CSV 数据集中为您的测试设置获取两个值:
在下面的等式中,使用传输电话型号的“tx”列值作为其“TX_Power”。对接收电话使用“RSSI_correction”列值。
- 然后将它们代入这个方程:
Attenuation = TX_power - (RSSI_measured + RSSI_correction)
- 产生的衰减值是发射器和接收器之间的校正信号损耗(以 dB 为单位测量,可用类似于 RSSI),可用作距离公式的输入。
推荐阅读
- machine-learning - ValueError:检查目标时出错:预期dense_3的形状为(1,)但得到的数组形状为(11,)
- c++ - 如何正确搜索 4 x 4 2d 矩阵中的值?
- mathjax - mathjax 3 的配置问题
- function - 在 QUERY 函数中包含标准 Google 表格函数时的语法是什么?
- excel - 创建一个按钮,如果按下则将值添加到单元格
- c# - 是否建议将大型字典拆分为多个部分?
- javascript - Puppeteer 抛出“节点不可见...”错误
- jquery - 使用 jQuery 迭代 .getJSON 响应
- sql - OVER 和多列分区而不重置总数
- php - (“SQLSTATE [HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:NO)”)