alexunder 4 28 июля, 2015 Опубликовано 28 июля, 2015 · Жалоба Добрый день. Есть некий медленно меняющийся сигнал, отягощенный влиянием гармонической составляющей с переменным периодом (см картинку). хочется найти все локальные экстремумы такого сигнала. Пока что делаю так. Выбираю окно размером с период гармонической составляющей и уже в нем нахожу экстремумы. Зная закон изменения периода гарм. функции, изменяю размер окна для поиска. Есть ли более "красивый" способ решить эту задачу? Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 28 июля, 2015 Опубликовано 28 июля, 2015 · Жалоба Есть ли более "красивый" способ решить эту задачу? Спасибо. В точке локального минимума (и максимума) производная непрерывной функции равна нулю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 28 июля, 2015 Опубликовано 28 июля, 2015 · Жалоба В точке локального минимума (и максимума) производная непрерывной функции равна нулю. Конечно! Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 28 июля, 2015 Опубликовано 28 июля, 2015 (изменено) · Жалоба в матлабе вот так можно j = 0; for k=2:length(x)-1 if sign(x(k+1)-x(k)) != sign(x(k)-x(k-1)) extr(j) = k; j = j + 1; end end математический принцип вам верно сказали, но т.к. аналитически функция неизвестная, то нужен численный метод. Ну и это не будет работать в случае, если в сигнал добавить шум, нужно его сначала как-то фильтровать, у схемы будет более высокий порядок просто, который будет зависеть от сигнал-шума. Изменено 28 июля, 2015 пользователем serjj Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
iiv 29 28 июля, 2015 Опубликовано 28 июля, 2015 · Жалоба хочется найти все локальные экстремумы такого сигнала. Пока что делаю так. Выбираю окно размером с период гармонической составляющей и уже в нем нахожу экстремумы. Зная закон изменения периода гарм. функции, найдите первый, например, максимум, потом от него вправо одномерной минимизацией минимум, потом снова максимум. Идея примерно такая, делаете два мааааленьких шажка право, про длину который Вы точно будете уверены, что за экстремум не убежите, по ним считаете первую и вторую производную, и дальше бежите Ньютоном, возможно с релаксацией. Если нет дельта функций и очень не линейных зависимостей, то сойдетесь очень быстро. Если у Вас функция - суть сумма двух-трех синусов и косинусов, с заранее неизвестными фазами, амплитудами и периодами, и шума нет, или почти нет, можно сделать еще элегантнее: загоняете оцифрованную функцию в вектор v_1, сдвигаете этот вектор на 1 вниз, сохраняя в v_2, и так далее столько раз, сколько у Вас синусов. Подрезаете сверху и снизу вектора, чтобы одинаковое количество элементов было, и строите матрицу. Находите у нее правый сингулярный вектор, соответствующий минимальному сингулярному числу. Записываете элементы этого вектора в виде коэффициентов полинома и находите корни. Они все - Ваши периоды деленные на шаг дискретизации. Зная периоды, наименьшими квадратами находите амплитуды и фазы. Дальше - аналитически ищите все корни и решение у Вас на ладони. Выглядит страшно, но зная лапак + мапл или математику, можно за несколько часов сделать и запрограммировать. В МК, на который лапак не компилится, реализовать будет ужасно сложно, думаю, что практически невозможно, в этом случае, остается только первый, не элегантный, метод. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santik 0 29 июля, 2015 Опубликовано 29 июля, 2015 · Жалоба Для начала я бы избавился от низкочастотной составляющей простейшим ФВЧ :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 29 июля, 2015 Опубликовано 29 июля, 2015 · Жалоба Дамы и господа, виноват, не упомянул, что работаю с дискретным массивом данных. В самом начале там очень мало точек на период сигнала, т.е. прикладываться там Ньютоном не к чему. Пробовал дифференцировать данные еще до совета Татьяны, но опять-таки из-за малого кол-ва точек на период искать прохождение через 0 приходится "руками". И почему-то я думал, что есть какой-то красивый способ из области мат. физики чтоб получить все и сразу. Спасибо, что развеяли мои надежды. iiv, попробую, если будет возможность провести измерения с бОльшим разрешением. serjj, я понял, поиск по разнице в знаке. Спасибо. Santik, мне как раз и требуется получить красивую кривую этого НЧ сигнала, вычислив локальное среднее на базе амплитуды гармонического сигнала (да, именно так, всевозможные сглаживания применять нельзя). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santik 0 29 июля, 2015 Опубликовано 29 июля, 2015 (изменено) · Жалоба Если я правильно понял, Вас интересует зависимость fвч(t). Рекомендую непрерывный вейвлет- анализ. Смотреть здесь. Если НЧ нужна составляющая - то ФНЧ можно применить. Непонятно о каких сглаживаниях Вы говорите.... Изменено 29 июля, 2015 пользователем Santik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
serjj1333 0 29 июля, 2015 Опубликовано 29 июля, 2015 · Жалоба мне как раз и требуется получить красивую кривую этого НЧ сигнала, вычислив локальное среднее на базе амплитуды гармонического сигнала (да, именно так, всевозможные сглаживания применять нельзя). А в чём проблема применять фильтрацию? Медианное сглаживание с окном большим периода гармонического сигнала + скользящее среднее или просто узкополосный ФНЧ, который отрежет гармоническую составляющую? У вас есть априорные данные о соотношении частот НЧ и ВЧ составляющих в сигнале? Если да, то не виже никаких проблем с фильтрацией, т.к. сигналы разесены по частоте. Если же априорных данных нет, то можно посмотреть в сторону BSS (blind signal separation). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 29 июля, 2015 Опубликовано 29 июля, 2015 · Жалоба Есть некий медленно меняющийся сигнал, отягощенный влиянием гармонической составляющей с переменным периодом (см картинку). Что означает "переменный период"? Такого не бывает. Если Вы знаете (априорно), что мешающая Вам компонента описывается некоторой формулой с параметрами, то и нужно ее подогнать так, чтобы производная меняла знак один раз - на пике медленной составляющей функции. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santik 0 29 июля, 2015 Опубликовано 29 июля, 2015 · Жалоба Что означает "переменный период"? Такого не бывает.... Бывает. Пример - ЛЧМ (линейная частотная модуляция) Модель: do i=1,NN t=(i-1)/Fd FXSw(i)=sin(Pi2*(F1*t-F2*t*t/(2*T0)))+10*(1-cos(Pi2*1.*t)) end do Картинка Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tanya 4 29 июля, 2015 Опубликовано 29 июля, 2015 · Жалоба Бывает. Пример - ЛЧМ (линейная частотная модуляция) Нет, не бывает... Математика - это такая конвенциональная игра. Конвенция это запрещает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 29 июля, 2015 Опубликовано 29 июля, 2015 · Жалоба Запутал я всех капитально. Извините. Нет, не бывает... Математика - это такая конвенциональная игра. Конвенция это запрещает. Все намного проще, приведенные данные - спектральный отклик фотосенсора, имеющего буферный слой SiO2 на поверхности. Из-за слоя SiO2 возникает паразитная интерференция, которая зависит от длины волны. Решил задачу нахрапистым способом, как советовал serjj, сохраняя индекс экстремума если есть разница в знаке между соседними точками. Только я добавил в этот цикл условие, что ширина окна между экстремумами может варьироваться линейно в зав-ти от длины волны. Задача чисто инженерная. Вот результат: исходные данные (красная линия), среднее значение (черная линия и точка) и массив экстремумов (синие звездочки). Еще раз прошу извинить что отнял ваше время. Спасибо за советы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Santik 0 29 июля, 2015 Опубликовано 29 июля, 2015 (изменено) · Жалоба Ниччо не понял... Фильтрация Модель + Фильтр Чебышева 2 рода 6-го порядка А если всё-таки нужно смотреть как меняется частота ВЧ составляющей - это уже надо непрерывный вейвлет-анализ :-) Изменено 29 июля, 2015 пользователем Santik Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 29 июля, 2015 Опубликовано 29 июля, 2015 · Жалоба Ниччо не понял... "НЧ-составляющая" на моей картинке - типичный спектральный отклик матрицы кремниевого фотосенсора. Исследуемый образец имеет довольно толстый слой SiO2 поверх Si. Границы воздух-SiO2 и SiO2-Si образует таким образом интерферометр Фабри-Перо, который в зависимости от длины волны либо усиливает либо ослабляет световой сигнал (интерференция), поглощаемый кремниевым фотодиодом. А если всё-таки нужно смотреть как меняется частота ВЧ составляющей - это уже надо непрерывный вейвлет-анализ :-) звучит серьезно, если шеф одобрит, буду изучать вейвлет-анализ :)) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться