2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Определение границ пика
Сообщение16.06.2018, 00:59 
Есть массив точек (красная линия), на нем могут быть пики, известно приблительное положение таких пиков, оно отмечено пунктиром(если пик не отмечен -- он нас не интересует), нужно подобрать алгоритм по нахождению приблизительных границ таких пиков. Пики можно приблизительно аппроксимировать гауссианой, но проблема в том гауссиана в нем может быть не одна(см. спойлер).

Также есть вспомогательные массивы(если помогут): желтая и синия линии.

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

Сплошными черными линиями я вручную отметил желаемые границы.
Изображение
Изображение

(еще пример)

Более сложный вариант
Изображение
Изображение


Позже постараюсь описать свои мысли.

 
 
 
 Re: Определение границ пика
Сообщение16.06.2018, 01:30 
Насколько я помню, Н.А.Топчило (возможно, Вам известный) что-то подобное делал, причем ровно для этой же задачи (и, наверное, даже того же инструмента). Вообще, пожалуй, в литературе это должно часто встречаться, поскольку для солнечной радиоастрономии ситуация совершенно типична.

 
 
 
 Re: Определение границ пика
Сообщение16.06.2018, 04:52 
Pphantom в сообщении #1320292 писал(а):
Насколько я помню, Н.А.Топчило (возможно, Вам известный) что-то подобное делал, причем ровно для этой же задачи (и, наверное, даже того же инструмента). Вообще, пожалуй, в литературе это должно часто встречаться, поскольку для солнечной радиоастрономии ситуация совершенно типична.

(Оффтоп)

Да, известный. Спасибо, я поинтересуюсь, но насколько мне известно Н.А. занимался ручной обработкой. Задача поиска пиков и определения их параметров, как мне кажется, типична скорее для гораздо более широкой области как обработка сигналов. Попробую поискать на эту тему работ. Вот, например, нагуглилась такая штука http://terpconnect.umd.edu/~toh/spectru ... rement.htm

 
 
 
 Re: Определение границ пика
Сообщение16.06.2018, 10:27 
В принципе, удалось придумать вариант. Это разделить задачу на две. Первая это нахождение огибающей baseline, а вторая (после вычета огибающей) уже собственно работа по нахождению пиков и их параметров в чистом виде. Если решить первую, то вторая уже становится классической с множеством публикаций и решений.

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

 
 
 
 Re: Определение границ пика
Сообщение16.06.2018, 12:34 
Аватара пользователя
Adventor
Судя по картинкам на них нет ничего общего. Это плохой знак: потребуется не одно решение, а дерево решений. Короче это ближе к машинному обучению нежели чем к ЦОС.

На вашем месте я бы для начала отфильтровал шумы. Берём +-200 отсчётов от предполагаемого пика далее удаляем постоянную составляющую. Для чего ищем среднее арифметическое и вычитаем его из каждого отсчёта. Затем стоит применить автомасштабирование. После применяем БПФ далее из анализа будет видно какой алгоритм придумать. Бокс фильтром $[1\;2\;3\;2\;1]$ сгладить шумы. Затем в цикле начиная с некоторой позиции идём по кривой ищем где она меняет знак у второй производной. Тем самым мы определим где у вас шумы. Далее используя найденную частоту, строим фильтр с минимизаций пульсаций. Отфильтровываем шумы и далее аппроксимируем гауссианой откуда берём ширину.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group