我正在非常彻底地调查iBeacons的准确性/ rssi /邻近性问题,我确实真的认为Internet上的所有资源(博客,StackOverflow中的帖子)都会出错。
davidgyoung(接受的答案,> 100赞)说:
请注意,此处的“准确性”一词是iOS表示的距离(以米为单位)。
实际上,大多数人都这么说,但我不知道为什么!文档非常清楚地表明CLBeacon.proximity:
表示以米为单位的一个西格玛水平精度。使用此属性可以区分具有相同接近度值的信标。不要使用它来标识信标的精确位置。精度值可能会由于RF干扰而波动。
让我重复一遍:以米为单位的一个西格玛精度。google上有关该主题的所有10个顶级页面仅在文档中引用了“一个西格玛”一词,但是没有一个分析该词,这是理解这一点的核心。
重要的是要说明什么实际上是一个西格玛精度。以下网址入手: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开发人员之外,我还拥有无线电子学学位,并且我认为我们不应该忽略文档中的“一个西格玛”一词,我想开始对此进行讨论。
Apple的准确性算法可能只是收集最近的测量值并分析它们的高斯分布。这就是它设置准确性的方式。我不会排除他们使用信息形式的加速度计来检测用户是否在移动(以及移动速度)以重置先前的分配距离值的可能性,因为它们肯定已经改变了。