J'étudie en profondeur la question de la précision / rssi / proximité avec iBeacons et je pense vraiment que toutes les ressources sur Internet (blogs, messages dans StackOverflow) se trompent.
davidgyoung (réponse acceptée,> 100 votes positifs) dit:
Notez que le terme «précision» ici est iOS parle pour la distance en mètres.
En fait, la plupart des gens disent cela mais je ne sais pas pourquoi! La documentation indique très clairement que CLBeacon.proximity:
Indique la précision horizontale d'un sigma en mètres. Utilisez cette propriété pour différencier les balises ayant la même valeur de proximité. Ne l'utilisez pas pour identifier un emplacement précis pour la balise. Les valeurs de précision peuvent fluctuer en raison des interférences RF.
Permettez-moi de répéter: une précision sigma en mètres . Les 10 premières pages de google sur le sujet ont le terme «un sigma» uniquement dans des citations de documents, mais aucune d'entre elles n'analyse le terme, qui est essentiel pour comprendre cela.
Il est très important d'expliquer ce qu'est en fait une précision sigma . URL suivantes pour commencer: http://en.wikipedia.org/wiki/Standard_error , http://en.wikipedia.org/wiki/Uncertainty
Dans le monde physique, lorsque vous effectuez des mesures, vous obtenez toujours des résultats différents (à cause du bruit, de la distorsion, etc.) et très souvent les résultats forment une distribution gaussienne. Il existe deux paramètres principaux décrivant la courbe de Gauss:
- signifie (ce qui est facile à comprendre, c'est la valeur pour laquelle le pic de la courbe se produit).
- l'écart type, qui indique la largeur ou l'étroitesse de la courbe. La courbe la plus étroite, meilleure est la précision, car tous les résultats sont proches les uns des autres. Si la courbe est large et non raide, cela signifie que les mesures du même phénomène diffèrent beaucoup les unes des autres, donc la mesure est de mauvaise qualité.
un sigma est une autre façon de décrire à quel point la courbe gaussienne est étroite / large.
Il dit simplement que si la moyenne de mesure est X, et qu'un sigma est σ, alors 68% de toutes les mesures seront comprises entre X - σ
et X + σ
.
Exemple. Nous mesurons la distance et obtenons une distribution gaussienne en conséquence. La moyenne est de 10 m. Si σ vaut 4m, cela signifie que 68% des mesures étaient comprises entre 6m et 14m.
Lorsque nous mesurons la distance avec des balises, nous obtenons RSSI et une valeur d'étalonnage de 1 mètre, qui nous permettent de mesurer la distance en mètres. Mais chaque mesure donne des valeurs différentes, qui forment une courbe gaussienne. Et un sigma (et la précision) est la précision de la mesure, pas la distance!
Cela peut être trompeur, car lorsque nous éloignons la balise, un sigma augmente en fait parce que le signal est pire. Mais avec des niveaux de puissance de balise différents, nous pouvons obtenir des valeurs de précision totalement différentes sans changer réellement la distance. Plus la puissance est élevée, moins il y a d'erreur.
Il existe un article de blog qui analyse en profondeur la question: http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/
L'auteur émet l'hypothèse que la précision est en fait la distance. Il affirme que les balises de Kontakt.io sont défectueuses parce qu'il a augmenté la puissance à la valeur maximale, la valeur de précision était très petite pour 1, 5 et même 15 mètres. Avant d'augmenter la puissance, la précision était assez proche des valeurs de distance. Personnellement, je pense que c'est correct, car plus le niveau de puissance est élevé, moins les interférences ont un impact. Et il est étrange que les balises Estimote ne se comportent pas de cette façon.
Je ne dis pas que j'ai raison à 100%, mais en plus d'être développeur iOS, j'ai un diplôme en électronique sans fil et je pense que nous ne devrions pas ignorer le terme "one sigma" de la documentation et j'aimerais commencer la discussion à ce sujet.
Il est possible que l'algorithme de précision d'Apple ne recueille que des mesures récentes et en analyse la distribution gaussienne. Et c'est ainsi qu'il définit la précision. Je n'exclurais pas la possibilité qu'ils utilisent l'accéléromètre de formulaire d'information pour détecter si l'utilisateur se déplace (et à quelle vitesse) afin de réinitialiser les valeurs de distance de distribution précédentes, car elles ont certainement changé.