ARMA和运行平均滤波器背后的理论,是否有任何替代算法来计算信号RSSI的距离?

时间:2016-05-23 09:51:26

标签: filtering signal-processing ibeacon altbeacon android-ibeacon

我可以看到Android Bacon Library有两种测量距离的算法:运行平均滤波器和ARMA滤波器。

这些与库的实现有何关系(除了使用过滤器的公式)? 我在哪里可以找到一些有关这些的背景信息来解释它背后的理论? 是否有任何已知的替代算法可以研究和尝试用于测量距离?

1 个答案:

答案 0 :(得分:4)

对BLE信标进行距离估计有两个基本步骤。

  1. 收集RSSI样本

  2. 将RSSI样本转换为距离估计值。

  3. 这两个步骤都有不同的算法。 ARMA和运行平均滤波器是用于收集RSSI样本的两种不同算法。

    了解信标以周期性速率发送数据包,通常为每秒1-10次。这些数据包中的每一个在被电话接收时都会有自己的信号电平测量,称为RSSI。由于无线电噪声和测量误差,每个RSSI样本存在大量差异,这可能导致距离估计的大幅度波动。因此,通常您需要采用多个RSSI样本并将它们平均以减少此错误。

    运行平均算法只需要20秒的样本(默认情况下,时间段是可配置的),抛出RSSI读数的最高和最低10%并取平均值剩余。 这与iOS平均样本的方式类似,因此出于跨平台兼容性原因,它是库的默认算法。但它有一个缺点,即距离估计落后于,告诉你手机相对于信标的平均值是10秒前。这可能不适用于手机相对于信标移动的用例。

    ARMA(自回归移动平均线)算法对较旧样本的更新近样本进行统计加权,导致距离估计值更少延迟。但它的行为可能有点不确定,并且在不同的无线电条件下会受到更多不同的性能

    哪种算法适合您取决于您​​的使用案例。测试两者以确定哪种方式对您来说效果更好通常是最好的方法。虽然还有其他可能的数据收集算法,但这些算法只是内置于库中的两种算法。由于它是开源的,因此欢迎您创建自己的源代码并将其作为拉取请求提交。

    对于第2步,还有许多可能的算法。最常见的两种是曲线拟合公式和路径损耗公式。曲线拟合公式是库默认值,路径损耗替代方法仅在正在开发的库的分支中可用。欢迎使用后者,但需要从源代码构建库。同样,作为一个开源库,欢迎并鼓励您开发自己的替代算法。