|
Усреднение периодической величины |
|
|
|
Nov 24 2011, 18:47
|
Группа: Участник
Сообщений: 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). Алгоритм нужен для целочисленного МК, желательно простой арифметическо-логический. Какие есть варианты решения этой проблемы?
|
|
|
|
|
 |
Ответов
|
Nov 25 2011, 07:54
|

Эксперт
    
Группа: Свой
Сообщений: 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 градусов, то от них всё равно нельзя избавиться любым способом
|
|
|
|
|
Nov 25 2011, 13:16
|

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

|
QUOTE (GetSmart @ Nov 25 2011, 12:53)  Воруют © Перельман и китайцы  PS. Это там деление, или мне показалось?  Это там остаток по модулю 360. Сначада интервал был 0-360. Вычисляем то что там написано Х. В этой точке делаем на круге разрыв. Т.е. все последующие значения фазы приводятся к интервалу [X-360, Х] и тупо суммируются. Здесь, есть конечно неустойчивость к забитости первой точки помехой - вдруг она ляжет криво по отношению к среднему. Собственно разрыв на круге нужно сделать бы в точке среднего, но оно нам как раз неизвестно заранее Поэтому действительно как-то так QUOTE (Alexey Lukin @ Nov 25 2011, 11:17)  Есть способ лучше: построить гистограмму углов, сгладить её круговой свёрткой и найти максимум. Он даст "основной угол". А затем все значения углов из несглаженной гистограммы суммируются относительно "основного угла".
|
|
|
|
|
Nov 25 2011, 13:49
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

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

Эксперт
    
Группа: Свой
Сообщений: 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 + пара арифметических операций
|
|
|
|
|
Nov 25 2011, 14:54
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(fontp @ Nov 25 2011, 19:35)  Если это так, то значит не понял Вашу довольно мутную фразу Бывает. Написав сразу оптимизированный алгоритм, забыл раскрыть тему в камментах. На английском  Цитата(fontp @ Nov 25 2011, 19:35)  А почему жесть? Если напрягают вычисления можно взять очень грубую гистограмму. Можно и свертку не делать. На этом этапе нужно всего лишь определить среднее грубо, чтобы знать где окружность разрезать Это непонятно. Определить нужно минимум сглаженной функции на круговой гистограмме. И если делать свёртку, то кол-во только умножений будет (кол-во всего углов)*(кол-во элементов гистограммы). Причём реальный минимум может оказаться там, где элемент на гистограмме пустой. А как это всё оптимизировать и угрубить без ущерба - не очень ясно. Возьмём например 5 элементов 0,90,180,270 и 45.
Сообщение отредактировал GetSmart - Nov 25 2011, 17:24
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|