Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите алгоритм сравнения формы кривой / 16 сообщений из 16, страница 1 из 1
19.05.2012, 22:37
    #37802366
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
Всем привет! Пишу на C# модуль расширения для анализа входных данных контроля технологического процесса. На вход постоянно поступает множество каналов с данными. Данные представляют собой синусоиды, прямоугольные и другие разнообразные кривые. По выбору пользователя некоторые данные агрегируются, и пользователь может повесить при достижении каких-то параметров event. Все это обслуживалось одним программистом, который постоянно допиливал на ходу этот код.

Предыдущая версия была написана макаронами из if и switch/case, разумеется. Этот весьма запутанный код усилиями дежурного программиста ловил 80% событий. В новой версии требуется повысить точность определения входных данных и одновременно упростить процесс работы с этим кодом.

Поскольку система работает в интенсивном режиме, определение формы кривой выглядит весьма непростой задачей, однако можно задействовать потоки. Хотелось бы найти наиболее легковесное решение, которое бы выбирало из потока данных пусть не все пакеты, а часть и проводило анализ кривой, точнее массива точек.

Прошу помочь с поиском алгоритма сравнения двух массивов точек, первый массив из входного потока, а второй эталонный. Алгоритм должен определять именно форму кривой вне зависимости от конкретных параметров. То есть если амплитуда составляет 30%, то такая кривая должна определиться при разных масштабах.

Спасибо за подсказку.
...
Рейтинг: 0 / 0
19.05.2012, 23:26
    #37802413
Графические сообщения.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
FFT (-;
...
Рейтинг: 0 / 0
19.05.2012, 23:56
    #37802445
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
skole,

Правильно ли я понял: у Вас есть некие сигналы и их эталоны (т.е. эталон синусоиды, меандров всяческих и пр.), Вам необходимо определить какому из эталонов полученные сигналы лучше соответствует?

Покажите пример сигналов и эталонов.
...
Рейтинг: 0 / 0
20.05.2012, 00:37
    #37802470
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
Формы сигналов очень разнообразные, трудно сказать каких больше. Кроме того, пользователь (дежурный по смене) может выбрать любое сочетание датчиков в зависимости от требований технологического процесса. Все сигналы очень сильно различаются по частоте и амплитуде, более того их значения дрейфуют, и пользователь должен иметь возможность поднять событие при определенных значениях.

Стабильны только формы сигналов, поэтому пришла в голову мысль сравнивать форму.
...
Рейтинг: 0 / 0
20.05.2012, 00:49
    #37802479
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
skole Все сигналы очень сильно различаются по частоте и амплитуде


Т.е. сигналы (квази)периодические?


Стабильны только формы сигналов, поэтому пришла в голову мысль сравнивать форму.
[/quot]

А что Вы понимаете под "формой сигнала"?
...
Рейтинг: 0 / 0
20.05.2012, 00:56
    #37802484
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
Условно в сигналах можно выделить циклы: начало, развертывание, завершение.
...
Рейтинг: 0 / 0
20.05.2012, 00:57
    #37802486
ZyK_BotaN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
skole,

спектральный анализ не поможет?
...
Рейтинг: 0 / 0
20.05.2012, 00:59
    #37802487
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
skoleУсловно в сигналах можно выделить циклы: начало, развертывание, завершение.

А потом все повторяется?
...
Рейтинг: 0 / 0
20.05.2012, 01:05
    #37802491
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
Если кто знаком с электроникой, могу привести аналог поведения триггера Шмитке. То есть у нас есть порог срабатывания и гистерезис возврата. Но здесь немного сложнее, трешхолд не имеет постоянного значения во времени, то есть где-то нужно чтобы срабатывало при 5, а где-то при 9 относительно кривой например.
...
Рейтинг: 0 / 0
20.05.2012, 01:07
    #37802493
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
x1ca4064А потом все повторяется?
Да, потом все повторяется. Данные берутся с датчиков оборудования, которое имеет ограниченное количество состояний.
...
Рейтинг: 0 / 0
20.05.2012, 01:19
    #37802498
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
skolex1ca4064А потом все повторяется?
Да, потом все повторяется. Данные берутся с датчиков оборудования, которое имеет ограниченное количество состояний.

Тогда можно попробовать вычислить период сигнала по максимуму автокорреляции, соответствующим образом отмасштабировать и искать среди эталонов.
...
Рейтинг: 0 / 0
20.05.2012, 01:57
    #37802515
skole
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
К сожалению массивы, на входе я принимаю массивы точек, всегда различаются. Датчики генерят одну кривую, а количество точек разное. Поэтому и требуется сравнение формы, т.к. это единственный стабильный показатель. К слову сказать все простые решения уже перепробованы, матрица дает лучший результат, но мой вариант непозволительно долог.
...
Рейтинг: 0 / 0
20.05.2012, 03:35
    #37802537
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
skoleК сожалению массивы, на входе я принимаю массивы точек, всегда различаются. Датчики генерят одну кривую, а количество точек разное.


Можно интерполировать и привести к одному кол-ву

Поэтому и требуется сравнение формы, т.к. это единственный стабильный показатель.


Что такое "форма"?


К слову сказать все простые решения уже перепробованы, матрица дает лучший результат, но мой вариант непозволительно долог.

А что за матрица?
...
Рейтинг: 0 / 0
20.05.2012, 11:27
    #37802605
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
Графические сообщения.FFT (-;
Я бы тоже насчёт него подумал в первую очередь.
...
Рейтинг: 0 / 0
20.05.2012, 12:13
    #37802640
S.G.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
ShSergeГрафические сообщения.FFT (-;
Я бы тоже насчёт него подумал в первую очередь.+1

skole ,
посмотрите здесь
и в частности здесь
...
Рейтинг: 0 / 0
23.05.2012, 15:03
    #37808045
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите алгоритм сравнения формы кривой
skole,

Приводим все кривые к стнадартному виду.
Тоесть ширина и высота одинаковые.

После чего считаем среднеквадратичное отклонение или без квадрата.
Вот и все ).
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Подскажите алгоритм сравнения формы кривой / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]