реклама на сайте
подробности

 
 
> Усреднение периодической величины
Brains
сообщение Nov 24 2011, 18:47
Сообщение #1





Группа: Участник
Сообщений: 8
Регистрация: 16-09-09
Пользователь №: 52 413



Доброго дня, форумчане!

У меня есть периодическая величина, значение которой нужно усреднить средним арифметическим (X1+X2+..+Хn)/n - в простейшем случае (Х1+Х2)/2.
Величина - это угол сдвига фаз, меняющийся от 0 до 359 градусов. Измерение ведется путем захвата таймером интервала времени между фронтами прямоугольных импульсов. При условии синфазности сигналов (должно измеряться значение 0 градусов), появляется неразрешимая пока мною проблема: из-за джиттера, являющегося следствием шума на входе, начинается гонка фронтов сигналов, при этом я получаю захваченные таймером интервалы, соответствующие углу в градусах, к примеру в такой последовательности: 1, 359, 1, 359.... Если попытаться усреднить эту последовательность, то получится значение 180 градусов, вместо ожидаемого нуля.
Вариант перехода к формату -180->0->+180 уже рассматривался, и он имеет такую же проблему при усреднении, возникающую в окрестностях 180 градусов (-179,+179 после усреднения дает 0 вместо 180).
Алгоритм нужен для целочисленного МК, желательно простой арифметическо-логический.
Какие есть варианты решения этой проблемы?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Brains
сообщение Nov 24 2011, 21:28
Сообщение #2





Группа: Участник
Сообщений: 8
Регистрация: 16-09-09
Пользователь №: 52 413



Цитата
Во-первых, "кастинг" должен быть именно с аккумулятором. Во-вторых, сравнивать нужно модуль, то есть abs(acc/n - X), либо abs(acc-X*n). Обычно проще и быстрее умножать, чем делить.

Про это понял.

Цитата
В-третьих, нужно контролировать диапазон аккумулятора, чтобы он был диапазоне 0..360*n. Иначе корректировать на -360*n, либо на +360*n.


А эту фразу нет. Вы имеете ввиду, что после каждого прибавления (и увеличения n на единицу) в аккумуляторе должно быть число не больше чем 360*n ?



Цитата
А если после каждого добавление аккума алгоритм считает среднее значение от акка, то так будет даже проще. Защита от переполнения не понадобится.


Этого, к сожалению, достичь нельзя, нет ресурсов для деления на любое число, а потому рассчитываю n как степень двойки, подбираю разрядность аккума для худшего случая, и после накопления 2^n отсчетов делю аккум сдвигами.
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 25 2011, 21:28
Сообщение #3


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(Brains @ Nov 25 2011, 02:28) *
Про это понял.

Я кое-что не учёл.
Кроме "кастинга" со смещениями -360 и 0 нужно ещё +360. То есть из трёх углов берётся ближайший к текущему.

Это если первым (или текущим) будет угол >180, а новый появится допустим 0. В этом случае брать нужно угол 0+360.
И диапазон аккума лучше наверное держать в положительных числах.

Upd.
Лучше даже так.
Держать диапазон акка в -180..+179. А диапазон новых углов 0..359. Тогда "кастинг" будет только с двумя значениями - реальным и сдвинутым на -360.
Это значит, если первым был угол 200, то акк сразу скорректирует его в -160.

Сообщение отредактировал GetSmart - Nov 25 2011, 21:39


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Brains   Усреднение периодической величины   Nov 24 2011, 18:47
- - GetSmart   Вообще-то угол - это величина из двумерного простр...   Nov 24 2011, 19:30
- - Brains   ЦитатаПеред прибавлением очередного значения к сум...   Nov 24 2011, 20:10
|- - GetSmart   Цитата(Brains @ Nov 25 2011, 01:10) GetSm...   Nov 24 2011, 20:38
- - MKS   Можно от угла перейти к декартовым координатам (x,...   Nov 24 2011, 20:27
- - Brains   ЦитатаМожно от угла перейти к декартовым координат...   Nov 24 2011, 21:09
|- - GetSmart   Цитата(Brains @ Nov 25 2011, 02:09) Понят...   Nov 24 2011, 21:16
|- - GetSmart   Цитата(Brains @ Nov 25 2011, 02:28) А эту...   Nov 24 2011, 21:33
- - fontp   QUOTE (Brains @ Nov 24 2011, 21:47) Вариа...   Nov 25 2011, 07:54
|- - GetSmart   Цитата(fontp @ Nov 25 2011, 12:54) Можно ...   Nov 25 2011, 09:53
|- - fontp   QUOTE (GetSmart @ Nov 25 2011, 12:53) Вор...   Nov 25 2011, 13:16
|- - GetSmart   Цитата(fontp @ Nov 25 2011, 18:16) Это та...   Nov 25 2011, 13:49
|- - fontp   QUOTE (GetSmart @ Nov 25 2011, 16:49) Я т...   Nov 25 2011, 14:26
||- - GetSmart   Цитата(fontp @ Nov 25 2011, 19:26) Где вы...   Nov 25 2011, 14:30
|- - fontp   QUOTE (GetSmart @ Nov 25 2011, 16:49) А с...   Nov 25 2011, 14:35
|- - GetSmart   Цитата(fontp @ Nov 25 2011, 19:35) Если э...   Nov 25 2011, 14:54
- - Alexey Lukin   Есть способ лучше: построить гистограмму углов, сг...   Nov 25 2011, 08:17
- - Alexey Lukin   Сложность свёртки с окном Ханна — 7 умножени...   Nov 25 2011, 15:28
- - AndrewN   QUOTE (Brains @ Nov 24 2011, 22:47) У мен...   Nov 25 2011, 17:19
|- - Alexey Lukin   Цитата(AndrewN @ Nov 25 2011, 21:19) Форм...   Nov 25 2011, 17:31
|- - AndrewN   QUOTE (Alexey Lukin @ Nov 25 2011, 21:31)...   Nov 25 2011, 17:37
- - AndrewN   QUOTE (Brains @ Nov 24 2011, 21:47) Алгор...   Nov 25 2011, 20:09
|- - Alexey Lukin   Цитата(AndrewN @ Nov 26 2011, 00:09) Оста...   Nov 25 2011, 22:43
- - Brains   Спасибо всем участникам обсуждения темы! В об...   Nov 26 2011, 08:39
- - qxov   Можно перемножить два сигнала и считать скважность...   Nov 28 2011, 08:49


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01431 секунд с 7
ELECTRONIX ©2004-2016