Algorytm uśredniania pomiarów?

0

Na podstawie odczytów z pewnego czujnika dostaję informację o orientacji, czyli dane w zakresie od 0 do 360 stopni włącznie. Chciałbym te dane jakoś uśredniać, filtrować. Docelowo pomiary będę wykonywał co 5ms. W przypadku gdy czujnik zwraca wartości około 180 stopni nie będzie problemu z uśrednianiem. Np. mamy 5 próbek:
178, 181, 182, 180, 179, uśredniając to dostaniemy na wyjściu 180.

Co w przypadku gdy pomiary oscylują na granicy 0 stopni i 359?
Np. 0, 359, 1, 2, 358. Po uśrednieniu dostaniemy 144 czyli wartość nieprawdziwą.

Istnieje jakaś sztuczka aby móc poprawnie uśredniać takie pomiary?

3

Możesz zrobić np. tak:
'' sum_i_from_1_to_N sin(a[i])
a = arctangent ---------------------------
sum_i_from_1_to_N cos(a[i])''

https://en.wikipedia.org/wiki/Mean_of_circular_quantities
http://catless.ncl.ac.uk/Risks/7.44.html#subj4

Google: average wrapping values, dostajesz bazylion wyników :)

0

Dzięki, tego szukałem właśnie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1