реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Обработка экспериментальных данных, Поиск особых точек в зашумлённых экспериментальных данных
Lyubimov
сообщение Apr 16 2011, 04:58
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 16-04-11
Пользователь №: 64 408



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

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

Периоды последовательностей в общем случае не известны, съём сигнала идёт с определённым временным шагом.

На иллюстрациях красным обозначено то, что надо найти, стрелки указывают на ось абсцисс, линии на ось ординат

Иллюстрации

Сообщение отредактировал Lyubimov - Apr 16 2011, 04:58
Прикрепленные файлы
Прикрепленный файл  BTI_coarse1.bmp ( 794.23 килобайт ) Кол-во скачиваний: 61
Прикрепленный файл  BTO_coarse1.bmp ( 787.3 килобайт ) Кол-во скачиваний: 26
Прикрепленный файл  BTR_coarse1.bmp ( 783.32 килобайт ) Кол-во скачиваний: 26
Прикрепленный файл  kMaxIn1.bmp ( 1019.58 килобайт ) Кол-во скачиваний: 21
Прикрепленный файл  kMaxOut1.bmp ( 786.26 килобайт ) Кол-во скачиваний: 24
Прикрепленный файл  BTR_fine1.bmp ( 784.16 килобайт ) Кол-во скачиваний: 18
 
Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 16 2011, 08:47
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Lyubimov @ Apr 16 2011, 08:58) *
Здравствуйте, специалисты по цифровой обработке сигналов
Можно услышать ваше мнение по моей задаче. Пока не знаю в какую сторону двигаться, может быть кто-то подскажет


Для начала определитесь, что именно вам нужно: обработать сигнал эксперимента, или обработать сигнал в реальном времени, выделив начало заранее неизвестной последовательности? Если обработка эксперимента, как написано в теме - то начало можно выделить легко, в обратном времени, рассматривая последовательность задом наперед и выделив период сначала по большим импульсам.


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Lyubimov
сообщение Apr 16 2011, 09:48
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 16-04-11
Пользователь №: 64 408



Цитата(Oldring @ Apr 16 2011, 14:47) *
Для начала определитесь, что именно вам нужно: обработать сигнал эксперимента, или обработать сигнал в реальном времени, выделив начало заранее неизвестной последовательности? Если обработка эксперимента, как написано в теме - то начало можно выделить легко, в обратном времени, рассматривая последовательность задом наперед и выделив период сначала по большим импульсам.

Данные обрабатываются не в реальном времени.
А какие методы используются для определения периода сигнала?
И как можно избавиться от шума, если есть возможность получить шумовую последовательность?

Я вначале просто хотел продифференцировать сигнал, а потом выделить найти максимумы, но похоже это неправильно.

Тоесть получается последовательность действий следующая:
1. Каким-либо образом избавиться от шума
2. Каким-либо образом найти период последовательности
3. Согласно периоду обрабатывать данные, связанные с амплитудой (начало возрастания, максимальное значение, разница между соседними импульсами)
Go to the top of the page
 
+Quote Post
Oldring
сообщение Apr 16 2011, 09:56
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 041
Регистрация: 10-01-05
Из: Москва
Пользователь №: 1 874



Цитата(Lyubimov @ Apr 16 2011, 13:48) *
1. Каким-либо образом избавиться от шума
2. Каким-либо образом найти период последовательности
3. Согласно периоду обрабатывать данные, связанные с амплитудой (начало возрастания, максимальное значение, разница между соседними импульсами)


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

Дифференцирование усилиивает шум, с вашим шумом на некоторых графиках оно не поможет.

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


--------------------
Пишите в личку.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Apr 16 2011, 10:20
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



честно говоря первое что пришло в голову- это фильтрация по скорости нарастания:
если модуль разности in[i] - in[i-1] больше заданной величины, то out[i] = in[i]. иначе out[i] = in[i-1].
но я не специалист по ЦОС sm.gif
Для того, чтобы заинтересовать больше людей, можете выложить данные в каком-нибудь популярном формате, который легко втянуть в матлаб, например. Мне больше всего CSV нравится, хоть в ексель, хоть в матлаб, хоть текстовым редактором посмотреть можно.
Go to the top of the page
 
+Quote Post
Lyubimov
сообщение Apr 16 2011, 11:01
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 16-04-11
Пользователь №: 64 408



CSV, это данные в кавычках, разделённые запятыми? В принципе не проблема сделать такую таблицу

Спасибо, буду пробовать синтезировать НЧ фильтр

А как-нибудь можно просто вычесть шумы, если знаешь его амплитуду и частоту съёма сигнала?

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

Сообщение отредактировал Lyubimov - Apr 16 2011, 11:03
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Apr 16 2011, 11:18
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Lyubimov @ Apr 16 2011, 14:01) *
CSV, это данные в кавычках, разделённые запятыми? В принципе не проблема сделать такую таблицу

еще проще, просто данные в строку через запятую. кавычки это в особо извращенных случаях. Новый набор данных (скажем, новый входной массив, другое измерение) начинается с новой строки. например
1,2,3,4,6.4,55.9,222.1,20,3.8e-9,17
например, ексель такое и читать умеет и генерить такие файлы из любого своего формата.
очень классный формат если не знаете кто потребитель данных или нет четких указаний на формат. всегда легко конвертируется во что попало. sm.gif
собственно первоисточник:
Common Format and MIME Type for Comma-Separated Values (CSV) Files (RFC 4180)

А про остальное не скажу, потому что не знаю.
Go to the top of the page
 
+Quote Post
Lyubimov
сообщение Apr 16 2011, 14:32
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 16-04-11
Пользователь №: 64 408



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

А возможно использовать автокорреляцию для выявления периода?
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Apr 16 2011, 19:32
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Lyubimov @ Apr 16 2011, 17:32) *
К сожалению не смог найти текстовые данные, надо будет потом ещё экспериментов провести. Хотя не думаю, что кто-то захочет производить с ними какие-либо манипуляции

Ну, зря вы так. с данными иногда интересно поиграться. Вдруг у кого-то из профи найдется лишняя минутка и они просто походя решат вашу проблему. Игры-то тут очень простые, если данные есть и знаешь или догадываешься где копать. Я ( но я не профи в ЦОС) бы например тоже с удовольствием покрутил хоть на пример изучения матаппарата на конкретной задаче.
Go to the top of the page
 
+Quote Post
Lyubimov
сообщение Apr 17 2011, 02:34
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 16-04-11
Пользователь №: 64 408



Цитата(Ruslan1 @ Apr 17 2011, 01:32) *
Ну, зря вы так. с данными иногда интересно поиграться. Вдруг у кого-то из профи найдется лишняя минутка и они просто походя решат вашу проблему. Игры-то тут очень простые, если данные есть и знаешь или догадываешься где копать. Я ( но я не профи в ЦОС) бы например тоже с удовольствием покрутил хоть на пример изучения матаппарата на конкретной задаче.

А сколько примерно отчётов надо? Я обычно 999 делал.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Apr 17 2011, 03:08
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Цитата(Oldring @ Apr 16 2011, 12:47) *
Для начала определитесь, что именно вам нужно: обработать сигнал эксперимента, или обработать сигнал в реальном времени, выделив начало заранее неизвестной последовательности?
Олдринг, зачем расползаться мыслию по древу? Вам предоставлены данные эксперимента; скажите, вы получили их в реальном времени или нет?
Что вы вообще подразумеваете под "реальным временем"?

Цитата(Oldring @ Apr 16 2011, 13:56) *
Лучше это делать итеративно. Избавляться от шума, определять период и определять последовательность амплитуд. Натягивая нелинейную модель на данные, подбирая параметры, так, чтобы, например, среднеквадратичное отклонение смоделированного сигнала от измеренного оказалось минимальным, можно с различными весами в различных точках, чтобы игнорировать точки переходов, где модель ненадежна. У вас модель сигнала нелинейная, поэтому общих методов нет, нужно искать, какие приемы работают для ваших данных хорошо.

Дифференцирование усилиивает шум, с вашим шумом на некоторых графиках оно не поможет.

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

Бред.

..............................
Уважаемый Lyubimov.
Неплохо бы выкладывать картинки в пожатом формате. Хотяб освойте png, если с потерями ужимать неохота.
Задачу вашу решим, будьте в надёже. Только сформулировать её попробуйте строже и понятнее для непосвящённых.
Для начала, попробуйте её описать подробно и не торопясь. Правильная формулировка - это половина решения sm.gif

ЗЫ. Скажите, о форме изходных импульсов а-приори что известно? Я вижу результат некой НЧ фильтрации невесть чего. Описать можете?


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Lyubimov
сообщение Apr 17 2011, 06:13
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 16-04-11
Пользователь №: 64 408



Сохранил в png

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

Для этого на клапан последовательно через определённые промежутки времени подаются воздействия с различной длительностью. Например от 3.10 мс до 0.60 мс с шагом в 0.2 мс.
При этом снимаются показания датчика давления обычно с периодом в 10 мс

Необходимо найти точку, где давление начало расти (графики 1, 3, 4), снижаться (график 2). Определить максимальное давление (график 5), максимальную разницу между давлениями (график 6).

Известно то, что, например, через каждые 5 с отправляется команда подать импульс определённой длительности на клапан. Наверное можно принять эту информацию за период сигнала.

Можно просто замерить шум с датчика давления, когда давление не меняется

Графики расположены слева направо, сверху вниз
1, 2
3, 4
5, 6

Есть пороговые величины давления при достижении которых считается, что давление начало расти.

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

Я иду в правильном направлении?

Сообщение отредактировал Lyubimov - Apr 17 2011, 06:16
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение


Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
e-serg
сообщение Apr 19 2011, 14:50
Сообщение #13


Частый гость
**

Группа: Участник
Сообщений: 97
Регистрация: 24-07-08
Из: Иркутск
Пользователь №: 39 180



Цитата(Lyubimov @ Apr 17 2011, 15:13) *
Я иду в правильном направлении?

Наверно в правильном.
Как вариант, работаем с векторами, один элемент указывает на позицию в исходной последовательности(время события)
из данных открытия клапана, выделяем отсчеты с датчика давления.
окно можно сделать чуть уже рабочего цикла клапана.
по данным проходим медианным фильтром, убираем случайные помехи от склейки. (он в какой-то мере ФНЧ)
потом ФНЧ.
на полученной кривой ищем нужные участки.
надо учитывать задержки, чтоб поточнее вернуться к позиции на исходном графике.
Go to the top of the page
 
+Quote Post
Stanislav
сообщение Apr 23 2011, 04:08
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 4 363
Регистрация: 13-05-05
Из: Москва
Пользователь №: 4 987



Простите, появляюсь здесь редко.
Задался вопросом: как бы я решал эту задачу сам...
Значится, так...
Изходя из условий, Вам требуется вычислить точку производной роста некой огибающей функции. То есть, превышение некого порога её второй производной.
С моей точки зрения, формальный путь решения задачи заключается в следующем:
1. По заданной последовательности, находите сплайн-аппроксимацию заданной фунуции, обеспечивающей ей достаточное "сглаживание". Для уменьшения количества вычислений можно вместо "импульсов" подставить их осреднённые значения.
2. Найти вторую производную функции, полученной путём сплайн-сглаживания.
3. Сравнить её с порогом.

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


--------------------
Самонадеянность слепа. Сомнения - спутник разума. (с)
Go to the top of the page
 
+Quote Post
Lyubimov
сообщение Apr 24 2011, 05:52
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 56
Регистрация: 16-04-11
Пользователь №: 64 408



Большое спасибо всем за помощь
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 15th June 2025 - 17:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01526 секунд с 7
ELECTRONIX ©2004-2016