Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.149.214.32] |
|
Страницы: (2) 1 [2] все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Да, я уже понял что забыл про среднее арифметическое Извиняюсь за глупость)
|
Сообщ.
#17
,
|
|
|
столкнулся с такой же проблемой при разработке метеостанции. данные об угле валятся каждые 5 секунд, и в т.ч. сколько отсчетов поступит к моменту отправки пакета (например на народный мониторинг) в общем тоже не известно. Пришел к такому способу усреднения: первый отсчет берется за базу. при поступлении следующего вычисляется дельта (разница) нового угла от базы и суммируется с предыдущими дельтами. Текущий средний угол получается суммой базы и среднего по дельтам. При вычислении разницы углов учитывается минимальное расстояние по кругу - то есть считаем разницу по часовой и разницу против часовой. Берем с наименьшим модулем. Так для примера 315 315 45 получим направление 345. При поступлении данных это выглядит как
315 - > база 315, дельта 0, отсчетов 1 315 - > дельта 0, отсчетов 2 - текущий угол 315 + 0/2 45 -> дельта по часовой ((360-315)+45 = 90) дельта против часовой (360-90=270) берем 90 - текущий угол 315 + 90/3 = 345 ... и так до момента фиксации пакета к отправке, дальше с начала |
Сообщ.
#18
,
|
|
|
dvz
А не проще сразу хранить текущий средний и количество имеющихся отсчётов? И соответственно при поступлении нового отсчёта пересчитывать текущее среднее (новое = предыдущее + дельта / кол.отсчётов)? При одном отсчёте в 5 секунд до значимой ошибки ждать придётся хренову тучу лет... |
Сообщ.
#19
,
|
|
|
Раз подняли ветку, пусть тут будет ссылка на статью Circular Values Math and Statistics
В частности, автор приводит расчет усреднения, свободный от недостатка векторного подхода, когда average(0+0+90)=atan(1/2)~25 градусов вместо 30 (сам не пробовал, чего-то у него функция возвращает set) |
Сообщ.
#20
,
|
|
|
MBo
Все три обсуждения в теме рассматривают задачу случайного направления при фиксированной точке измерения. Векторный же подход к усреднению - это совершенно иная задача. Добавлено dvz Хотя подумал - на реальных данных подход вполне себе, а вот на модельных может и косяка дать... Простейший пример - это отсчёты 0, 0 и 180... и вот что будет в итоге - 120 или 240,- я лично фиг знает. |