使用 Kontakt SDK,我实现了一个简单的应用程序来监视和测距我所在区域的 Kontakt 信标。我注意到检测到的信标的报告距离波动很大(例如,信标实际上在 10 米处,但它返回时为 2 米,并且可能会在距离上跳得很远),即使信标不是那么远。我浏览了文档并在信标硬件端(tx 功率/频率)、SDK 端(扫描模式和相关)尝试了所有不同的变量,并尝试了多种设备——我所做的似乎都没有提高准确性。只是想知道是否有人可以为我指明正确的方向,说明可能是什么问题。
我知道信标信号会因接收设备本身的环境和硬件等诸多因素而有很大差异;但是,当似乎没有办法获得一致的距离信息时,我不知道如何创建基于与信标的准确接近度的用户体验?
我们将不胜感激任何类型的指导、意见或建议。谢谢。
最佳答案
如果您在 Android 中实现,由于 android 中缺少降噪算法,您将面临这种剧烈波动的问题。但同样你可以检查 IOS,结果会更好,因为 IOS 支持降噪算法。现在,根据从信标接收到的 RSSI/距离值,您可以做 3 件事 -
a) 自行为您的应用实现降噪算法。 (我认为这是一个艰难的过程。)
b) 为您收到的值实现高斯滤波器。我的意思是将您从信标接收到的所有 RSSI/距离值存储在数组列表中,每 10 个值按升序排序,排除 3 个最小值和 3 个最大值,其余 4 个值计算平均值和平均值将是你的最终值(value)。 (这是简单且可靠的解决方案。)
c) 为您收到的值实现卡尔曼滤波器。这是迄今为止最好的过滤器。然而,它比高斯滤波器更难实现,但该滤波器的结果是最好的。
您可以从上面选择任何解决方案:)
关于android - 联系信标 : Inconsistent and unreliable results when determining beacon distance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33621732/