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

 
 
> Усреднение периодической величины
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
Ответов
fontp
сообщение Nov 25 2011, 07:54
Сообщение #2


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (Brains @ Nov 24 2011, 21:47) *
Вариант перехода к формату -180->0->+180 уже рассматривался, и он имеет такую же проблему при усреднении, возникающую в окрестностях 180 градусов (-179,+179 после усреднения дает 0 вместо 180).
Алгоритм нужен для целочисленного МК, желательно простой арифметическо-логический.
Какие есть варианты решения этой проблемы?


Можно разрыв арктангенса сделать на противоположной стороне круга по отношению к текущим данным, т.е.
например к первому отсчету
fi0 + 180 % 360
а все другие значения приводить уже к этому новому интервалу (который определяется точкой разрыва) и просто суммировать.

Если есть такие сильные помехи, что выбивают угол больше чем на 180 градусов, то от них всё равно нельзя избавиться любым способом
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 25 2011, 09:53
Сообщение #3


.
******

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



Цитата(fontp @ Nov 25 2011, 12:54) *
Можно разрыв арктангенса сделать на противоположной стороне круга по отношению к текущим данным, т.е.
например к первому отсчету
fi0 + 180 % 360
а все другие значения приводить уже к этому новому интервалу (который определяется точкой разрыва) и просто суммировать.

Воруют ©
Перельман и китайцы sm.gif

PS. Это там деление, или мне показалось? sm.gif

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


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
fontp
сообщение Nov 25 2011, 13:16
Сообщение #4


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (GetSmart @ Nov 25 2011, 12:53) *
Воруют ©
Перельман и китайцы sm.gif

PS. Это там деление, или мне показалось? sm.gif


Это там остаток по модулю 360.
Сначада интервал был 0-360. Вычисляем то что там написано Х. В этой точке делаем на круге разрыв.
Т.е. все последующие значения фазы приводятся к интервалу [X-360, Х] и тупо суммируются.
Здесь, есть конечно неустойчивость к забитости первой точки помехой - вдруг она ляжет криво по отношению к среднему. Собственно разрыв на круге нужно сделать бы в точке среднего, но оно нам как раз неизвестно заранее

Поэтому действительно как-то так
QUOTE (Alexey Lukin @ Nov 25 2011, 11:17) *
Есть способ лучше: построить гистограмму углов, сгладить её круговой свёрткой и найти максимум. Он даст "основной угол". А затем все значения углов из несглаженной гистограммы суммируются относительно "основного угла".

Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 25 2011, 13:49
Сообщение #5


.
******

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



Цитата(fontp @ Nov 25 2011, 18:16) *
Это там остаток по модулю 360.

То есть остаток по модулю имеем без деления? Как-то с полуслова Вы меня не понимаете.
ТС-у делить в напряг. Он же написал.


Цитата(fontp @ Nov 25 2011, 18:16) *
Сначада интервал был 0-360. Вычисляем то что там написано Х. В этой точке делаем на круге разрыв.
Т.е. все последующие значения фазы приводятся к интервалу [X-360, Х] и тупо суммируются.
Здесь, есть конечно неустойчивость к забитости первой точки помехой - вдруг она ляжет криво по отношению к среднему. Собственно разрыв на круге нужно сделать бы в точке среднего, но оно нам как раз неизвестно заранее

Я так и не понял, чем это отличается от предложенного мной?

Цитата
Поэтому действительно как-то так

А свёртка это вообще жесть. Причём свёртка будет каждого элемента в гистограмме. Хотя результат вобщем достоверный. Но сложение векторов в декартовых координатах будет явно проще.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
fontp
сообщение Nov 25 2011, 14:35
Сообщение #6


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (GetSmart @ Nov 25 2011, 16:49) *
А свёртка это вообще жесть. Причём свёртка будет каждого элемента в гистограмме. Хотя результат вобщем достоверный. Но сложение векторов в декартовых координатах будет явно проще.


А почему жесть? Если напрягают вычисления можно взять очень грубую гистограмму. Можно и свертку не делать. На этом этапе нужно всего лишь определить среднее грубо, чтобы знать где окружность разрезать

QUOTE (GetSmart @ Nov 25 2011, 17:30) *
в самом первом моём посте.
Это и есть взять ближайшее в окресности +-180 от текущего.


Если так - то извиняйте. Если это так, то значит не понял Вашу довольно мутную фразу

QUOTE (GetSmart @ Nov 25 2011, 17:30) *
Сразу оптимизированно без делений и модулей. А потом контролировать текущий аккум как раз чтобы не приходилось делать лишние деления. Как и просил ТС


Уже объяснял, что нет никаких там делений. Взять по модулю 360 - это 2 if (в контексте + 180 даже 1). И где бы окружность не разрезать, приведение к любому интервалу это 2 if + пара арифметических операций
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Nov 25 2011, 14:54
Сообщение #7


.
******

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



Цитата(fontp @ Nov 25 2011, 19:35) *
Если это так, то значит не понял Вашу довольно мутную фразу

Бывает. Написав сразу оптимизированный алгоритм, забыл раскрыть тему в камментах. На английском sm.gif


Цитата(fontp @ Nov 25 2011, 19:35) *
А почему жесть? Если напрягают вычисления можно взять очень грубую гистограмму. Можно и свертку не делать. На этом этапе нужно всего лишь определить среднее грубо, чтобы знать где окружность разрезать

Это непонятно. Определить нужно минимум сглаженной функции на круговой гистограмме. И если делать свёртку, то кол-во только умножений будет (кол-во всего углов)*(кол-во элементов гистограммы). Причём реальный минимум может оказаться там, где элемент на гистограмме пустой. А как это всё оптимизировать и угрубить без ущерба - не очень ясно. Возьмём например 5 элементов 0,90,180,270 и 45.

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


--------------------
Заблуждаться - Ваше законное право :-)
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
- - Brains   ЦитатаВо-первых, "кастинг" должен быть и...   Nov 24 2011, 21:28
|- - GetSmart   Цитата(Brains @ Nov 25 2011, 02:28) А эту...   Nov 24 2011, 21:33
|- - GetSmart   Цитата(Brains @ Nov 25 2011, 02:28) Про э...   Nov 25 2011, 21:28
|- - 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
- - 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 Текстовая версия Сейчас: 18th July 2025 - 22:34
Рейтинг@Mail.ru


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