蓝牙 RSSI 中出现的规律振荡是否有解释?

2023-12-05

我正在使用 kontakt.io 蓝牙 eddystone UID 信标和使用 alt-beacon 库的 Android 应用程序(在三星 Galaxy S5 上运行,尽管我怀疑这是否相关)。

我已经在不同条件下进行了一系列试验,并正在努力确定通过多个信标信号的三边测量进行高精度跟踪的可行性。

我多次注意到 Android 设备检测到信标 RSSI 的定期振荡。

这是更极端的例子之一。正如您所看到的,感知信号强度(RSSI)在 3 个不同的 RSSI 级别之间波动,每 5 秒切换一次(~-75dBm, ~-90dBm, ~-85dBm).

RSSIvsTime graph

绘制的信标距离设备 2.5 m,信标和设备之间没有障碍物。该信标以及同时测试的其他信标均设置为最小广告间隔和最大 TxPower。我不会声称测试环境周围的条件是理想的(例如,靠着玻璃墙),但它们是恒定的,环境中几乎没有移动。

我最初的想法是蓝牙的跳频,但经过进一步调查,跳频频率为 1600/s。我或我的同事的另外两个理论是 1:来自该区域的多个蓝牙信标的奇怪干扰,或 2:信标中的自适应信号强度,但信标中似乎没有逻辑(并且有该解释没有意义的其他原因)


我相信你所看到的实际上是基于在三个 BLE 广告通道 37/38/39 中每个通道上看到不同的典型 RSSI 级别。

我对广告和扫描流程的理解如下:

  1. 广告设备将在所有三个广告渠道上发送每个广告。

  2. 当扫描设备处于扫描模式时,一次将仅扫描三个广告频道之一。它将按照设备特定的时间间隔(范围从 2.5 毫秒到 10,240 毫秒)在这些通道之间切换。显然,在此间隔期间的任何检测都将针对扫描仪所在的通道。

从图中可以看出,Galaxy S5 在单个通道上扫描的时间处于该限制的上限范围内——每次大约 10 秒。我之前在三星设备上测试检测到的 BLE 广告 RSSI 级别时注意到了这一点。这是我在 Galaxy S6 Edge 上制作的图表,显示了类似的模式。请注意,RSSI 范围的常见三个频带表明了三个通道。 X 轴的单位是秒,表明频道在您看到的相似周期内发生变化。在我的图表中,每次测量的噪声都较大,可能是因为我在 5m 的两倍距离处进行了测量。

BLE RSSI vs. Time

我发现这篇论文很好地解释了广告和发现过程:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4327007/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

蓝牙 RSSI 中出现的规律振荡是否有解释? 的相关文章

  • 如何通过蓝牙将文件从Android发送到电脑

    任何人都可以给出蓝牙服务器客户端的工作示例 从Android到计算机 我想将数据从 Android 手机传输到 C 应用程序 现在我使用下面的 Android 代码 效果很好 但它仍然无法将数据传输到我的计算机 可能无法写入这些数据 任何人
  • 寻找另一部智能手机的笛卡尔坐标?

    考虑到我有两部智能手机 A 和 B 如果我拿着智能手机 A 有没有办法确定 B 相对于我自己的位置 所以如果我们有这张图片的情况 它会告诉我 B 位于位置 2 1 利用 WiFi 信号强度来获取位置等创造性方法更受欢迎 我还可以确定两部手机
  • 使用 Xamarin Android 连接到蓝牙扫描仪

    我正在开发一个项目 需要连接到蓝牙扫描仪 摩托罗拉 CS3070 我需要捕获输入流并使用它用扫描的条形码填充列表框 我尝试创建一个安全套接字并连接到它 但套接字无法连接 设备已打开并已配对 它充当物理键盘 如果光标位于可编辑字段中 则会填充
  • 如何通过蓝牙读取Leica DISTO的数据?

    我有一台 Leica DISTO D3a BT 它是一个测量设备 通过蓝牙发送测量结果 我编写了一些代码来获取蓝牙流 我收到了数据 但总是收到 错误 240 消息 这意味着 从用户手册来看 我不确认数据传输是否成功 我该怎么做 这是我的代码
  • 蓝牙文件发送

    我是蓝牙开发的新手 我发现了 32netfeet 现在我可以搜索附近的蓝牙设备并连接到它们 但如何发送文件 例如 SendTest txt 我尝试使用 OBEX 的 buttonclick 事件 但我不明白这是我的示例代码 using In
  • 连接关闭且应用程序终止后,BLE 堆栈反复重新连接到外设

    我有一个应用程序 它打开与 BLE 设备的短暂连接 执行一些特征读取和写入 然后断开并关闭连接 应用程序使用 autoReconnect false 并且设备未配对或绑定 我看到 Android 的一些非常奇怪的行为 它似乎反复且意外地重新
  • 没有 GameKit 的 iOS 蓝牙

    我已经知道使用 GameKit 我只能连接到运行相同应用程序的其他 iOS 设备 但我想连接到 Parallaz EasyBluetooth 芯片来发送和接收命令 因此我需要不同的解决方案 我想有一些针对越狱设备的库 但我不知道 你能给我一
  • 附近连接 2.0:混合不同策略?

    我一直在尝试新的安卓 附近连接 v2 0 https android developers googleblog com 2017 07 announcing nearby connections 20 fully htmlAPI 并对用于
  • 如何检查设备上是否启用了蓝牙

    我想检查设备上是否启用了蓝牙 以便应用程序可以在没有用户交互的情况下使用它 有什么办法可以做到这一点吗 我还可以分别检查蓝牙和蓝牙低功耗吗 我使用以下方法完成了此操作Radio class 检查蓝牙是否已启用 public static a
  • 在 Android 4.2.2 和 4.3 上关闭 BluetoothSocket 时出现致命信号 11 SIGSEGV

    我的应用程序在 Android 2 3 3 到 4 1 2 下运行良好 但自从 Android 4 2 2 和 Android 4 3 以来 我有一个 fatal signal 11 SIGSEGV at 0x00 当我关闭蓝牙插座时 我查
  • 使用Web蓝牙API时找不到移动设备

    我正在学习 Web 蓝牙 API 使用 google 开发控制台 我无法找到我的移动设备 还尝试了 github 上提供的演示 https github com WebBluetoothCG demos https github com W
  • 将 android 蓝牙客户端套接字连接到 ubuntu 服务器套接字时出现问题

    我正在编写一个 Android 应用程序 它应该通过蓝牙与服务器交换数据 服务器端位于运行 Ubuntu 的 PC 上 使用 bluez 库 用 C 或 C 编写 当我尝试连接到 PC 上的服务器套接字时 我的 Android 应用程序失败
  • 如何在 Swift 中使用 CoreBluetooth 更新 BLE 设备的电池电量?

    func peripheral peripheral CBPeripheral didDiscoverCharacteristicsFor service CBService error Error for c in service cha
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • BLE 堆栈的开源实现

    除了 BlueZ 和 Bluedroid 之外 还有其他 BLE 堆栈的开源实现吗 有几个开源 BLE 堆栈 NimBLE http mynewt apache org network ble ble intro Apache mynewt
  • 如何在蓝牙低功耗外设中正确设置日期和时间?

    我正在开发一个传感器设备和一个相应的 iOS 应用程序 它们将使用低功耗蓝牙进行通信 传感器设备需要在实时时钟中维护当前日期和时间 现在 如果我想尽可能地实现蓝牙标准服务 我很困惑在传感器设备中设置时间和日期的正确方法是什么 因为官方文档是
  • 如何在android中通过蓝牙向配对设备发送短信?

    在我的应用程序中 我想通过蓝牙发送和接收短信 我可以在列表视图中看到配对设备名称和地址的列表 但是当我尝试向配对设备发送文本时 什么也没有发生 在其他设备中没有收到文本 这是我向配对设备发送消息的代码 private void sendDa
  • React Native 模块中的 EADemo 永远不会收到委托方法handleEvent NSStreamEventOpenCompleted?

    我希望我有一个反应本机桥接模块 https facebook github io react native docs native modules ios html 线程 委托或生命周期问题 我不明白这些问题正在阻止接收委托方法调用 我需要
  • Android 中的 BLE Gatt onConnectionStateChanged 失败,状态为 257

    我正在开发一个同时连接到多个BLE设备的Android应用程序 之后我从这些设备永久读取特征 但过了一会儿 我在onConnectionStateChanged 函数中得到状态257 android文档没有解释错误的原因是什么 或者如何修复
  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828

随机推荐