首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蓝牙RSSI值波动

蓝牙RSSI值波动
EN

Stack Overflow用户
提问于 2020-04-14 22:44:41
回答 3查看 780关注 0票数 1

我正在尝试使用RSSI值在家里创建一个定位系统。

我使用neXenio库作为基础,我所做的唯一更改是实现了对数据库的日志记录:https://github.com/neXenio/BLE-Indoor-Positioning

我使用了4台Minewi7的信标,它们目前设置为仅以300ms的速度播放iBeacon类型的广告。它们位于一个方形的房间和十字型布局中,每个信标间隔约2.2米。除了普通的起居室家具外,没有明显的障碍物。对于每一次测试,我会把手机放在房间的中央,一次收集大约10-15分钟的数据。数据被发送到数据库,供我查看。

我遇到的问题是信号强度一直都有很大的波动,以至于数据基本上无法使用。Graphs from a typical test run

当手机完全静止时,会有这么大的区别吗?我希望信号传播的本质会有一些细微的不同,但不会有这么大的差异。

这是意料之中的,还是可以通过某种方式加以改进?如果这是预期的,那么我将不得不考虑结合一些其他传感器数据来帮助提高准确性。

谢谢

编辑:

在运行了更多的测试之后,我比较了一段时间内的值(我之前只比较了rssi、距离和mac地址)。这导致发现了一种辅音振荡模式Newest test run

这也引出了这个叠加问题:Is there an explanation for the regular oscillation experienced in Bluetooth RSSI

如果我只做iBeacon类型的广告,那么这不适用吗?但这似乎很奇怪,它是如何匹配我的问题。

EN

回答 3

Stack Overflow用户

发布于 2020-04-15 03:36:10

RSSI值波动很大,您对此无能为力。不幸的是,采用的速度一直很慢。

票数 1
EN

Stack Overflow用户

发布于 2020-04-21 14:06:52

你不能用当前使用的设备做很多事情。即使你静态地稳定信号,在移动过程中也会有很多噪声。您可以尝试:

  • 将信号加厚到100毫秒。幸运的是,这将影响电池消耗,
  • BLE在3个通道(37,38,39)上传输数据包。天线概率不是调到所有3个相同的。

稳定rssi信号的方法有很多。如果你对这个话题感兴趣,我建议你看看下面的文章:

https://scholar.google.com/scholar?hl=pl&as_sdt=0%2C5&q=stabilization+rssi+method&btnG=

在我看来,这种方法对你最有用:

https://www.wouterbulten.nl/blog/tech/kalman-filters-explained-removing-noise-from-rssi-signals/ https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5461075/

您可能还会对AoA和AoD方法感兴趣:

https://www.bluetooth.com/blog/new-aoa-aod-bluetooth-capabilities/

我希望这将是有用的。

票数 1
EN

Stack Overflow用户

发布于 2020-08-09 10:39:38

它的实践方法,我尝试并实现了,我得到了适当的结果,所以这就是为什么要写这个解决方案。如果可能的话,尝试同样的方法。我在一个BLE路由器和一个信标标签上实现了它。我需要做最多3米的计算,意味着3*3.2英尺。I在没有使用卡尔曼滤波器的情况下将波动最小化。

对于上面的实现,我们需要经历如下步骤:

步骤1.将信标标签保持在1米的距离处,取rssi的最大读数为10,并将其存储在一个excel中。

步骤2.保持信标标签在2米的距离,取rssi的最大读数10次,并将其存储在第二个excel中。

现在你有3个excel。取一个excel,观察RSSI值,计算其中位数。同样的事情也需要为另外两个excel计算。

我的Becon标签频率是4 dbm。我从上面的excel中得到了RSSI的读数,如下所示:

来自一个excel:-58

来自两个excel:-64来自第三个excel:-70

如你所见,当我改变计量器,差值为6。,

现在我使用上面的结果来写逻辑,比如如果值在-58到-64之间波动,那么它就表示为1M,2m和3m也是如此。但这不是正确的计算方法。

所以我把日志用在

计算介于-58到-64之间的值

结果= log(rssi*-1,58)。即58为碱基。

实际距离=结果*1(米)*3.2(英尺)

对于2米的情况相同,但对于2米的原木,底数是64

结果= log(rssi*-1,64)。即以64为基数。

实际距离=结果*2(米)*3.2(英尺)

3米相同,但3米长的原木底部为70

结果= log(rssi*-1,70)。即以70为碱基。

实际距离=结果*3(米)*3.2(英尺)

这可以通过编程来完成。对于rssi信号的稳定性,我得到了正确的结果。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61210451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档