Библиотека маяков Android позволяет различными способами отфильтровывать шум из измерений силы сигнала маяка Bluetooth LE, чтобы оценки расстояния были как можно более точными.
Для большинства пользователей не имеет значения, какой из этих механизмов вы используете для фильтрации RSSI, как вы уже видели, они все работают одинаково. Различия между фильтрами имеют значение в основном для движущихся маяков. Каждый фильтр будет вводить «задержку» в оценке расстояния, когда маяк движется.
Краткое резюме:
RunningAverageRssiFilter (по умолчанию): принимает среднее значение за последние 20 секунд измерений RSSI для одного маяка. Для движущихся маяков это означает, что оценка расстояния покажет вам, где был маяк (в среднем) за последние 20 секунд, что для маяков, движущихся по прямой линии, там, где это было 10 секунд назад. Интервал усреднения 20 секунд по умолчанию настраивается. Это значение по умолчанию, потому что оно похоже на работу Apple CoreLocation, поэтому полезно для кросс-платформенной совместимости.
ArmaRssiFilter : Алгоритм авторегрессии скользящего среднего статистически взвешивает более поздние выборки в большей степени, чем более старые выборки, что приводит к меньшему отставанию в оценках расстояния. Но его поведение может быть немного неопределенным и может меняться в зависимости от условий радиосвязи.
KalmanFilter : Реализация не включена в библиотеку, хотя для одного имеется запрос Feature . Теоретически, фильтр Калмана использует статистическую прогностическую модель, чтобы попытаться определить разницу между шумом и сигналом и отфильтровать шум. Существует много вариантов фильтров Калмана, и разные варианты могут быть лучше или хуже при уменьшении шума в определенных условиях.