Jump to content

    
Sign in to follow this  
deelan

Алгоритм поиска экстремума

Recommended Posts

Есть датчик, с которого снимается сигнал. Этот сигнал фильтруется (гифка прилагается), а затем осущетвляется поиск минимума для определения периодики процесса. Сигнал далек от идеального, поэтому нужен наиболее эффективный алгоритм поиска миимума. Суть вопроса сводится к следующему - нет ли в свободном распространении продвинутых алгоритмов поиска экстремумов? Моя реализация не всегда работает корректно.

Share this post


Link to post
Share on other sites

Есть датчик, с которого снимается сигнал. Этот сигнал фильтруется (гифка прилагается), а затем осущетвляется поиск минимума для определения периодики процесса. Сигнал далек от идеального, поэтому нужен наиболее эффективный алгоритм поиска миимума. Суть вопроса сводится к следующему - нет ли в свободном распространении продвинутых алгоритмов поиска экстремумов? Моя реализация не всегда работает корректно.

post-29198-1193655055_thumb.jpg

Edited by deelan

Share this post


Link to post
Share on other sites
А где обещанная гифка?

 

Сори, осталась в другом посте. Немного с нажатием кнопок переусердствовал.

 

Я не знаю как называется мой алгоритм. Что-то типаа pattern recognition. Ищу локальный минимум, а потом проверяю по его соседям (глубина, ширина). Самопал обыкновенный, однако дает достаточно хорошие результаты, но хочется большей точности.

 

post-29198-1193662016_thumb.jpg

Share this post


Link to post
Share on other sites

Для поиска экстремуму в зашумлённых данных есть ещё такая "стохастическая аппроксимация"

 

http://bse.sci-lib.com/article106594.html

 

Смесь Ньютона-Рафсона с тем фактом, что ряд

сумма a(n) расходится,

а сумма а(n)^2 сходится

Нужно много измерений

 

Может поможет.

 

ПС. Кажется метод Стронгина из той же оперы (?)

Share this post


Link to post
Share on other sites
Я не знаю как называется мой алгоритм. Что-то типаа pattern recognition. Ищу локальный минимум, а потом проверяю по его соседям (глубина, ширина). Самопал обыкновенный, однако дает достаточно хорошие результаты, но хочется большей точности.

post-29198-1193662016_thumb.jpg

 

pattern recognition - это "распозначание образов". Вы ищите локальные минимумы в сигнале, потом по расстоянию между найденными минимумами вычисляете оценку его периода? Или строите некоторую периодическую функцию, в которой период - настраиваемый параметр, а потом по результатам сравнения ее с записанным сигналом вычисляете требуемое значение периода по минимуму ошибки?

 

Если первый случай - Ваш, то вы придумали вполне работоспособный алгоритм. Его можно только модифицировать, аналогично "методу парабол", принятому при решении оптимизационных задач. Для этого, сначала Вы ищите точку локального минимума в дисретной записи данных. Потом находите две или больше точек, стоящих по разные стороны от локального минимума по временной шкале. Значения в этих точках должны быть гарантированно больше ликального минимума, а в промежутках между локальным минимумом и этими точками не должно быть других локальных минимумов. Потом по набору найденных точек строите аппроксимирующую параболу, и находите ее минимум. Это и будет уточненная оценка локального минимума.

Share this post


Link to post
Share on other sites

Экстремум в реальном времени нужно искать или сигнал записывается куда-то? Нужен просто математический алгоритм или алгоритм в приложении к какому-то микроконтроллеру? Если первое, то чем нахождение первой и второй производной не устраивает?

P.S. аттач не отображается.

Share this post


Link to post
Share on other sites
Guest TSerg

В общем случае ответа нет.

После предъявления статистических свойств полезного сигнала и помехи могут последовать рекомендации.

 

В самом примитивном случае: два фильтра, один для выделения основной частоты, второй для текущего среднего, т.е. НЧ фильтр с большой постоянной времени. Выходы сравниваются кросс-детектором.

Share this post


Link to post
Share on other sites
У меня первый сучай. Метод парабол - подойдет. Спасибо ;)

 

Только для определения периода процесса поиск экстремумов сигнала не есть наилучший метод. Другие методы, скорее всего, дадут заметный выигрыш в точности. Например, поиск первого максимума автокоррреляционной функции в заданном диапазоне смещений.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this