2014 dxdy logo

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

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


Правила форума


Посмотреть правила форума



Начать новую тему Ответить на тему На страницу 1, 2  След.
 
 Разбить зашумленный сигнал на области с линейными значениями
Сообщение02.02.2022, 13:16 


11/08/18
363
Добрый день,

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

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

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

Посоветуйте, пожалуйста!

Спасибо!

Картинка начала сигнала (сам сигнал около $10^{10}$ точек содержит, первые 150 тысяч точек)
Изображение
далее увеличенный какой-то региончик
Изображение
и уже совсем увеличенный региончик
Изображение

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение02.02.2022, 20:01 
Заслуженный участник
Аватара пользователя


11/03/08
10033
Москва
Я бы попробовал что-то вроде медианной фильтрации. А потом смотрел бы на скачки фильтрованного сигнала.

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение02.02.2022, 20:27 
Заслуженный участник
Аватара пользователя


30/01/09
7143
Попробовать перейти от исходного ряда $x_i$ к ряду, составленного из последовательных разностей $y_i=x_{i+1}-x_i$ , и следить за большими выбросами.

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение02.02.2022, 20:47 


11/08/18
363
Спасибо большое, Евгений Машеров, за совет!

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

Тут в чем проблема. Если я точно знаю, что на отрезке $[a,b]$ у меня с лева и справа - разные сегменты, и их точно два, то перебор по аппроксимации МНК на два сегмента дает очень хорошие результаты. И медианные фильтрации именно тут тоже очень хорошо работают, я пробовал и так и так, и обычные МНК и медианная фильтрация + МНК хорошо работают. Вот если в этом отрезке у меня их больше двух разных сегментов, все становится плохо.

В том случае, когда у меня много сегментов с постоянными значениями работает метод кластеризации всех точек по их значениям и последующей сортировки, но иногда у меня бывают линейные сегменты, и тут все идет юзом.

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение02.02.2022, 21:29 
Заслуженный участник
Аватара пользователя


11/03/08
10033
Москва
мат-ламер в сообщении #1547771 писал(а):
Попробовать перейти от исходного ряда $x_i$ к ряду, составленного из последовательных разностей $y_i=x_{i+1}-x_i$ , и следить за большими выбросами.


Это для поиска линейно возрастающих или убывающих участков, сводя задачу к поиску постоянных участков. Для поиска постоянных скорее вредно.

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 00:35 
Аватара пользователя


21/01/09
3929
Дивногорск
ilghiz в сообщении #1547721 писал(а):
далее увеличенный какой-то региончик
Изображение

На этой картинке до 5,9е+0,7 один регион, далее до 6,2е+0,7 другой, затем вернулся первый?

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 02:38 


11/08/18
363
Александрович в сообщении #1547796 писал(а):
На этой картинке до 5,9е+0,7 один регион, далее до 6,2е+0,7 другой, затем вернулся первый?

Спасибо за комментарий!

Не, я под регионами понимал совсем другие диапазоны, 5.725e+07 : 5.74e+07 - это константа порядка 2500, далее 5.74e+07 : 5.765e+07 - тут либо один регион с линейной составляющей от 1400 до 800, либо два региона с константами 1400 и 800. У меня по физике большая часть - это константные регионы, но есть регионы, когда происходит переходный процесс и два константных региона сливаются в один линейный. Мне хотелось бы как-то поточнее поизучать такие регионы, но все автоматические разбивки дают разные результаты, поэтому я пытаюсь хоть как-то мысли в кулак собрать и сделать это все автоматически.

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

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 04:12 
Аватара пользователя


21/01/09
3929
Дивногорск
ilghiz, а если бы не было шумов, как бы выглядела кривая?

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 10:30 


11/08/18
363
Александрович в сообщении #1547803 писал(а):
ilghiz, а если бы не было шумов, как бы выглядела кривая?

Большей частью кусочно-постоянные регионы, а в некоторых случаях - кусочно-линейные. Разрывы (бесконечная производная) есть практически всегда между регионами, по крайней мере между кусочно-постоянными. Вот сами регионы по их длине (я имею ввиду по $x$ координате) отличаются в несколько раз и у меня нет априорной информации о том на сколько длинный или короткий регион тут имеется.

Также очень не хотелось бы хранить все данные, то есть я могу хранить скользящее окно примерно на тысячу регионов, но число регионов у меня довольно большое. Всреднем около 10-50 тысяч регионов в секунду получается и хочется на лету проводить гарантированную разбивку, а данные надо часами обрабатывать.

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 11:58 
Аватара пользователя


21/01/09
3929
Дивногорск
ilghiz в сообщении #1547721 писал(а):
и уже совсем увеличенный региончик
Изображение

Если представить кривую как меандр со скважностью 1,33, то в обработке нуждается как верхний, так и нижний уровни?

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 13:43 


11/08/18
363
Александрович в сообщении #1547826 писал(а):
Если представить кривую как меандр со скважностью 1,33, то в обработке нуждается как верхний, так и нижний уровни?

Спасибо за комментарий!

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

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

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 13:45 
Аватара пользователя


21/01/09
3929
Дивногорск
Шум надо понимать не гауссовский?

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 14:00 


11/08/18
363
Александрович в сообщении #1547844 писал(а):
Шум надо понимать не гауссовский?

Верно! Обычно в нем после Фурье есть несколько довольно высокочастотных гармоник, а в некоторых случаях - это линейная комбинация нескольких $\frac{sin(x)}{x}$ с разными частотами и амплитудами. Когда в руках есть вычлененный регион, то работать с каждым регионом довольно легко. Полуавтоматически вычленить у меня получается, грубо говоря, я делаю пробный вариант вычленения, а потом, если вижу, что где-то не правильно угадал и алгоритм меньше регионов нашел, то руками добавляю и перезапускаю, тогда все хорошо. Но я не могу сидеть в самом приборе и так делать на лету. :-(

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 14:14 
Аватара пользователя


21/01/09
3929
Дивногорск
Как я понимаю на каждой полке (нижней и верхней) всего один переход от одного региона к другому?

 Профиль  
                  
 
 Re: Разбить зашумленный сигнал на области с линейными значениями
Сообщение03.02.2022, 15:54 


11/08/18
363
Александрович в сообщении #1547851 писал(а):
Как я понимаю на каждой полке (нижней и верхней) всего один переход от одного региона к другому?

Спасибо за комментарий!

С верхней - да, один регион обычно (хотя по физике сигнала я даже это не могу гарантировать), а с нижней - там 2-3 региона может быть, или кусочно-линейный блок, хотя часто тоже бывает один кусочно-постоянный регион. Бывает, что у верхней полки размах значений существенно больше, чем разница в полках, то есть берешь среднее, - оно около 2000 для верхней и 800 для нижней, а значения верхней часто доходят до 500 и наоборот.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: gogoshik


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group