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
9906
Москва
Я бы попробовал что-то вроде медианной фильтрации. А потом смотрел бы на скачки фильтрованного сигнала.

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


30/01/09
7068
Попробовать перейти от исходного ряда $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
9906
Москва
мат-ламер в сообщении #1547771 писал(а):
Попробовать перейти от исходного ряда $x_i$ к ряду, составленного из последовательных разностей $y_i=x_{i+1}-x_i$ , и следить за большими выбросами.


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

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


21/01/09
3925
Дивногорск
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
3925
Дивногорск
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
3925
Дивногорск
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
3925
Дивногорск
Шум надо понимать не гауссовский?

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


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

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

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


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

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


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

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

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

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

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



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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