Я дуже ретельно досліджую питання точності / rssi / близькості з iBeacons, і я дійсно думаю, що всі ресурси в Інтернеті (блоги, дописи в StackOverflow) помиляються.
davidgyoung (прийнята відповідь,> 100 нагород) говорить:
Зауважте, що термін "точність" тут iOS говорить на відстань у метрах.
Насправді, більшість людей це кажуть, але я поняття не маю чому! З документації дуже ясно, що CLBeacon.proximity:
Позначає горизонтальну точність однієї сигми в метрах. Використовуйте цю властивість для розмежування маяків з однаковим значенням близькості. Не використовуйте його для визначення точного місця розташування маяка. Значення точності можуть коливатися через радіоперешкоди.
Повторюсь: одна точність сигми в метрах . На всіх 10 найпопулярніших сторінках Google у цій темі є термін "одна сигма" лише у цитатах із документів, але жодна з них не аналізує термін, який є основним для розуміння цього.
Дуже важливо пояснити, що насправді одна сигма точність . Наступні URL-адреси для початку: http://en.wikipedia.org/wiki/Standard_error , http://en.wikipedia.org/wiki/Упевненість
У фізичному світі, коли ви робите деякі вимірювання, ви завжди отримуєте різні результати (через шум, спотворення тощо), і дуже часто результати утворюють Гауссова розподіл. Є два основні параметри, що описують криву Гаусса:
- середнє значення (яке легко зрозуміти, це значення, для якого відбувається пік кривої).
- стандартне відхилення, яке говорить про те, наскільки широка або вузька крива. Чим вужча крива, тим краща точність, тому що всі результати близькі один до одного. Якщо крива широка і не крута, то це означає, що вимірювання одного і того ж явища сильно відрізняються один від одного, тому вимірювання має погану якість.
одна сигма - це ще один спосіб описати, наскільки вузькою / широкою є гауссова крива.
Це просто говорить про те, що якщо середнє значення вимірювання дорівнює X, а одна сигма - σ, то 68% всіх вимірювань будуть між X - σ
і X + σ
.
Приклад. Ми вимірюємо відстань і отримуємо в результаті гауссова розподіл. Середнє значення - 10м. Якщо σ дорівнює 4м, то це означає, що 68% вимірювань були між 6м і 14м.
Коли ми вимірюємо відстань за маяками, ми отримуємо значення RSSI та калібрування 1 метра, які дозволяють вимірювати відстань у метрах. Але кожне вимірювання дає різні значення, які утворюють гауссова крива. І одна сигма (і точність) - це точність вимірювання, а не відстань!
Це може ввести в оману, тому що, коли ми рухаємо маяк далі, одна сигма насправді збільшується, оскільки сигнал гірший. Але при різних рівнях потужності маяка ми можемо отримати абсолютно різні значення точності, не змінюючи фактично відстань. Чим вище потужність, тим менше помилок.
Є запис у блозі, який ретельно аналізує питання: http://blog.shinetech.com/2014/02/17/the-beacon-experiment-low-energy-bluetooth-devices-in-action/
Автор має гіпотезу, що точність насправді відстань. Він стверджує, що маяки з Contact.io є несправними, оскільки він збільшував потужність до максимального значення, значення точності було дуже малим протягом 1, 5 і навіть 15 метрів. До збільшення потужності точність була досить близькою до значень відстані. Я особисто вважаю, що це правильно, адже чим вище рівень потужності, тим менший вплив перешкод. І дивно, чому маяки Естімота не так поводяться.
Я не кажу, що я на 100% прав, але окрім того, що я розробник iOS, я маю ступінь бездротової електроніки, і я думаю, що ми не повинні ігнорувати термін «одна сигма» у документах, і я хотів би почати обговорення цього питання.
Можливо, алгоритм Apple для точності просто збирає останні вимірювання та аналізує гауссова розподіл їх. І саме так воно встановлює точність. Я б не виключав можливості, що вони використовують акселерометр для форми інформації, щоб виявити, чи рухається користувач (і як швидко), щоб скинути попередні значення відстані розподілу, оскільки вони, безумовно, змінилися.