Bardzo dokładnie badam kwestię dokładności / rssi / bliskości z iBeacons i naprawdę myślę, że wszystkie zasoby w Internecie (blogi, posty w StackOverflow) źle to rozumieją.
davidgyoung (zaakceptowana odpowiedź,> 100 głosów za) mówi:
Zwróć uwagę, że termin „dokładność” oznacza tutaj odległość w metrach.
Właściwie większość ludzi tak mówi, ale nie mam pojęcia, dlaczego! Z dokumentacji bardzo jasno wynika, że CLBeacon.pracent:
Wskazuje poziomą dokładność jednej sigmy w metrach. Ta właściwość służy do rozróżniania sygnałów nawigacyjnych o tej samej wartości bliskości. Nie używaj go do określenia dokładnej lokalizacji latarni. Wartości dokładności mogą się zmieniać z powodu zakłóceń RF.
Powtórzę: dokładność jednej sigmy w metrach . Wszystkie 10 najważniejszych stron w Google na ten temat ma termin „jedna sigma” tylko w cytowaniu z dokumentów, ale żadna z nich nie analizuje tego terminu, co jest kluczowe dla zrozumienia tego.
Bardzo ważne jest wyjaśnienie, czym właściwie jest dokładność jednej sigmy . Następujące adresy URL na początek: http://en.wikipedia.org/wiki/Standard_error , http://en.wikipedia.org/wiki/Uncertainty
W świecie fizycznym, kiedy wykonujesz jakiś pomiar, zawsze otrzymujesz inne wyniki (z powodu szumu, zniekształceń itp.) I bardzo często wyniki tworzą rozkład Gaussa. Istnieją dwa główne parametry opisujące krzywą Gaussa:
- średnia (co jest łatwe do zrozumienia, jest to wartość, dla której występuje szczyt krzywej).
- odchylenie standardowe, które określa, jak szeroka lub wąska jest krzywa. Im węższa krzywa, tym lepsza dokładność, ponieważ wszystkie wyniki są blisko siebie. Jeżeli krzywa jest szeroka i nie stroma, oznacza to, że pomiary tego samego zjawiska bardzo się od siebie różnią, więc pomiar ma złą jakość.
jedna sigma to inny sposób opisania, jak wąska / szeroka jest krzywa gaussa.
Mówi się po prostu, że jeśli średnia pomiaru wynosi X, a jedna sigma to σ, to 68% wszystkich pomiarów będzie znajdować się między X - σ
a X + σ
.
Przykład. Mierzymy odległość i otrzymujemy rozkład Gaussa. Średnia to 10m. Jeśli σ wynosi 4 m, oznacza to, że 68% pomiarów miało miejsce między 6 m a 14 m.
Gdy mierzymy odległość za pomocą radiolatarni, otrzymujemy RSSI i wartość kalibracji 1 metra, co pozwala nam mierzyć odległość w metrach. Ale każdy pomiar daje inne wartości, które tworzą krzywą Gaussa. I jedna sigma (i dokładność) to dokładność pomiaru, a nie odległość!
Może to być mylące, ponieważ kiedy odsuwamy latarnię dalej, jedna sigma faktycznie rośnie, ponieważ sygnał jest gorszy. Ale przy różnych poziomach mocy latarni możemy uzyskać zupełnie inne wartości dokładności bez faktycznej zmiany odległości. Im wyższa moc, tym mniej błędów.
Jest post na blogu, który dokładnie analizuje sprawę: http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/
Autor postawił hipotezę, że dokładność to tak naprawdę odległość. Twierdzi, że latarnie od Kontakt.io są wadliwe, ponieważ zwiększając moc do wartości maksymalnej wartość celności była bardzo mała dla 1, 5, a nawet 15 metrów. Przed zwiększeniem mocy dokładność była dość bliska wartościom odległości. Osobiście uważam, że to poprawne, bo im wyższy poziom mocy, tym mniejszy wpływ zakłóceń. I to dziwne, dlaczego beacony Estimote nie zachowują się w ten sposób.
Nie mówię, że mam 100% racji, ale poza tym, że jestem programistą iOS, mam dyplom z elektroniki bezprzewodowej i uważam, że nie powinniśmy ignorować terminu „jedna sigma” z dokumentacji i chciałbym rozpocząć dyskusję na ten temat.
Możliwe, że algorytm dokładności Apple'a po prostu zbiera ostatnie pomiary i analizuje ich rozkład gaussowski. I tak wyznacza dokładność. Nie wykluczałbym możliwości, że używają akcelerometru formularza informacyjnego do wykrywania, czy użytkownik się porusza (i jak szybko), aby zresetować poprzednie wartości odległości dystrybucji, ponieważ z pewnością uległy zmianie.