我正在非常彻底地调查 iBeacons 的准确性/rssi/接近度问题,我真的认为互联网上的所有资源(博客、StackOverflow 中的帖子)都弄错了。
davidgyoung(接受的答案,> 100 票) 说:
请注意,这里的“准确度”一词是指 iOS 以米为单位的距离。
实际上,大多数人都这么说,但我不知道为什么!文档非常清楚地表明 CLBeacon.proximity:
以米为单位表示 1 sigma 水平精度。使用此属性来区分具有相同邻近度值的信标。不要用它来确定信标的精确位置。精度值可能会因射频干扰而波动。
让我重复一遍:以米为单位的 sigma 精度。谷歌关于该主题的所有 10 个热门页面都有术语“one sigma”,仅引用自文档,但没有一个分析该术语,这是理解这一点的核心。
非常重要的是解释什么是1 sigma 精度。以下 URL 开头:http://en.wikipedia.org/wiki/Standard_error,http://en.wikipedia.org/wiki/Uncertainty
在物理世界中,当您进行一些测量时,您总是会得到不同的结果(由于噪声、失真等),并且结果通常呈高斯分布。描述高斯曲线的主要参数有两个:
- 平均值(这很容易理解,它是曲线峰值出现的值)。
- 标准差,表示曲线的宽度或宽度。曲线越窄,精度越高,因为所有结果都彼此接近。如果曲线较宽且不陡峭,则表示同一现象的测量值相差很大,因此测量质量较差。
一个 sigma是描述高斯曲线的窄/宽的另一种方式。
它简单地说,如果测量的平均值是 X,一个 sigma是 σ,那么 68% 的测量值将介于X - σ
和之间X + σ
。
例子。我们测量距离并得到高斯分布。平均值为 10m。如果 σ 为 4m,则意味着 68% 的测量值在 6m 和 14m 之间。
当我们使用信标测量距离时,我们会得到 RSSI 和 1 米校准值,这使我们能够以米为单位测量距离。但每次测量给出不同的值,形成高斯曲线。一个西格玛(和精度)是测量的精度,而不是距离!
这可能会产生误导,因为当我们将信标移得更远时,一个 sigma实际上会增加,因为信号更差。但是对于不同的信标功率水平,我们可以在不实际改变距离的情况下获得完全不同的精度值。功率越高,误差越小。
有一篇博客文章彻底分析了这个问题:http: //blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/
作者有一个假设,即准确性实际上是距离。他声称 Kontakt.io 的信标是错误的,因为当他将功率增加到最大值时,1、5 甚至 15 米的精度值非常小。在增加功率之前,精度非常接近距离值。我个人认为是正确的,因为功率等级越高,干扰的影响就越小。奇怪的是,为什么 Estimote 信标不这样做。
我并不是说我 100% 正确,但除了作为 iOS 开发人员之外,我还拥有无线电子学学位,我认为我们不应该忽略文档中的“one sigma”术语,我想开始讨论它。
Apple 的准确性算法可能只是收集最近的测量值并分析它们的高斯分布。这就是它设置准确性的方式。我不排除他们使用信息表单加速度计来检测用户是否移动(以及移动速度有多快)以重置先前的分布距离值的可能性,因为它们肯定已经改变。