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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Найти экстремумы функции с гармонической составляющей, как сделать красиво?
alexunder
сообщение Jul 28 2015, 13:33
Сообщение #1


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Добрый день.

Есть некий медленно меняющийся сигнал, отягощенный влиянием гармонической составляющей с переменным периодом (см картинку).
Прикрепленное изображение


хочется найти все локальные экстремумы такого сигнала. Пока что делаю так. Выбираю окно размером с период гармонической составляющей и уже в нем нахожу экстремумы. Зная закон изменения периода гарм. функции, изменяю размер окна для поиска.
Есть ли более "красивый" способ решить эту задачу?
Спасибо.


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jul 28 2015, 13:44
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(alexunder @ Jul 28 2015, 16:33) *
Есть ли более "красивый" способ решить эту задачу?
Спасибо.

В точке локального минимума (и максимума) производная непрерывной функции равна нулю.
Go to the top of the page
 
+Quote Post
alexunder
сообщение Jul 28 2015, 14:04
Сообщение #3


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(Tanya @ Jul 28 2015, 15:44) *
В точке локального минимума (и максимума) производная непрерывной функции равна нулю.

Конечно! Спасибо!


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
serjj
сообщение Jul 28 2015, 14:05
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



в матлабе вот так можно
Код
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

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

Сообщение отредактировал serjj - Jul 28 2015, 14:07
Go to the top of the page
 
+Quote Post
iiv
сообщение Jul 28 2015, 16:59
Сообщение #5


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(alexunder @ Jul 28 2015, 19:33) *
хочется найти все локальные экстремумы такого сигнала. Пока что делаю так. Выбираю окно размером с период гармонической составляющей и уже в нем нахожу экстремумы. Зная закон изменения периода гарм. функции,

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

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

загоняете оцифрованную функцию в вектор v_1, сдвигаете этот вектор на 1 вниз, сохраняя в v_2, и так далее столько раз, сколько у Вас синусов.
Подрезаете сверху и снизу вектора, чтобы одинаковое количество элементов было, и строите матрицу. Находите у нее правый сингулярный вектор, соответствующий минимальному сингулярному числу. Записываете элементы этого вектора в виде коэффициентов полинома и находите корни. Они все - Ваши периоды деленные на шаг дискретизации. Зная периоды, наименьшими квадратами находите амплитуды и фазы. Дальше - аналитически ищите все корни и решение у Вас на ладони.

Выглядит страшно, но зная лапак + мапл или математику, можно за несколько часов сделать и запрограммировать. В МК, на который лапак не компилится, реализовать будет ужасно сложно, думаю, что практически невозможно, в этом случае, остается только первый, не элегантный, метод.
Go to the top of the page
 
+Quote Post
Santik
сообщение Jul 29 2015, 05:59
Сообщение #6


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

Группа: Участник
Сообщений: 87
Регистрация: 30-03-12
Из: Мирный (Якутия)
Пользователь №: 71 096



Для начала я бы избавился от низкочастотной составляющей простейшим ФВЧ :-)
Go to the top of the page
 
+Quote Post
alexunder
сообщение Jul 29 2015, 06:40
Сообщение #7


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Дамы и господа,

виноват, не упомянул, что работаю с дискретным массивом данных. В самом начале там очень мало точек на период сигнала, т.е. прикладываться там Ньютоном не к чему. Пробовал дифференцировать данные еще до совета Татьяны, но опять-таки из-за малого кол-ва точек на период искать прохождение через 0 приходится "руками". И почему-то я думал, что есть какой-то красивый способ из области мат. физики чтоб получить все и сразу. Спасибо, что развеяли мои надежды.

iiv,
попробую, если будет возможность провести измерения с бОльшим разрешением.

serjj,
я понял, поиск по разнице в знаке. Спасибо.

Santik,
мне как раз и требуется получить красивую кривую этого НЧ сигнала, вычислив локальное среднее на базе амплитуды гармонического сигнала (да, именно так, всевозможные сглаживания применять нельзя).


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
Santik
сообщение Jul 29 2015, 06:55
Сообщение #8


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

Группа: Участник
Сообщений: 87
Регистрация: 30-03-12
Из: Мирный (Якутия)
Пользователь №: 71 096



Если я правильно понял, Вас интересует зависимость fвч(t). Рекомендую непрерывный вейвлет- анализ.
Смотреть здесь.
Если НЧ нужна составляющая - то ФНЧ можно применить.
Непонятно о каких сглаживаниях Вы говорите....

Сообщение отредактировал Santik - Jul 29 2015, 06:59
Go to the top of the page
 
+Quote Post
serjj
сообщение Jul 29 2015, 06:56
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 527
Регистрация: 4-06-14
Из: Санкт-Петербург
Пользователь №: 81 866



Цитата
мне как раз и требуется получить красивую кривую этого НЧ сигнала, вычислив локальное среднее на базе амплитуды гармонического сигнала (да, именно так, всевозможные сглаживания применять нельзя).


А в чём проблема применять фильтрацию? Медианное сглаживание с окном большим периода гармонического сигнала + скользящее среднее или просто узкополосный ФНЧ, который отрежет гармоническую составляющую? У вас есть априорные данные о соотношении частот НЧ и ВЧ составляющих в сигнале? Если да, то не виже никаких проблем с фильтрацией, т.к. сигналы разесены по частоте. Если же априорных данных нет, то можно посмотреть в сторону BSS (blind signal separation).
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jul 29 2015, 07:29
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(alexunder @ Jul 28 2015, 16:33) *
Есть некий медленно меняющийся сигнал, отягощенный влиянием гармонической составляющей с переменным периодом (см картинку).

Что означает "переменный период"? Такого не бывает. Если Вы знаете (априорно), что мешающая Вам компонента описывается некоторой формулой с параметрами, то и нужно ее подогнать так, чтобы производная меняла знак один раз - на пике медленной составляющей функции.
Go to the top of the page
 
+Quote Post
Santik
сообщение Jul 29 2015, 08:00
Сообщение #11


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

Группа: Участник
Сообщений: 87
Регистрация: 30-03-12
Из: Мирный (Якутия)
Пользователь №: 71 096



Цитата(Tanya @ Jul 29 2015, 10:29) *
Что означает "переменный период"? Такого не бывает....

Бывает. Пример - ЛЧМ (линейная частотная модуляция)
Модель:
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
Картинка
Go to the top of the page
 
+Quote Post
Tanya
сообщение Jul 29 2015, 08:22
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(Santik @ Jul 29 2015, 11:00) *
Бывает. Пример - ЛЧМ (линейная частотная модуляция)

Нет, не бывает... Математика - это такая конвенциональная игра. Конвенция это запрещает.
Go to the top of the page
 
+Quote Post
alexunder
сообщение Jul 29 2015, 08:56
Сообщение #13


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Запутал я всех капитально. Извините.

Цитата(Tanya @ Jul 29 2015, 10:22) *
Нет, не бывает... Математика - это такая конвенциональная игра. Конвенция это запрещает.

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

Решил задачу нахрапистым способом, как советовал serjj, сохраняя индекс экстремума если есть разница в знаке между соседними точками. Только я добавил в этот цикл условие, что ширина окна между экстремумами может варьироваться линейно в зав-ти от длины волны. Задача чисто инженерная. Вот результат:
исходные данные (красная линия), среднее значение (черная линия и точка) и массив экстремумов (синие звездочки).
Прикрепленное изображение


Еще раз прошу извинить что отнял ваше время. Спасибо за советы.


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
Santik
сообщение Jul 29 2015, 09:09
Сообщение #14


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

Группа: Участник
Сообщений: 87
Регистрация: 30-03-12
Из: Мирный (Якутия)
Пользователь №: 71 096



Ниччо не понял...
Фильтрация
Прикрепленное изображение

Модель + Фильтр Чебышева 2 рода 6-го порядка
А если всё-таки нужно смотреть как меняется частота ВЧ составляющей - это уже надо непрерывный вейвлет-анализ :-)

Сообщение отредактировал Santik - Jul 29 2015, 09:14
Go to the top of the page
 
+Quote Post
alexunder
сообщение Jul 29 2015, 09:24
Сообщение #15


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(Santik @ Jul 29 2015, 11:09) *
Ниччо не понял...

"НЧ-составляющая" на моей картинке - типичный спектральный отклик матрицы кремниевого фотосенсора. Исследуемый образец имеет довольно толстый слой SiO2 поверх Si. Границы воздух-SiO2 и SiO2-Si образует таким образом интерферометр Фабри-Перо, который в зависимости от длины волны либо усиливает либо ослабляет световой сигнал (интерференция), поглощаемый кремниевым фотодиодом.

Цитата(Santik @ Jul 29 2015, 11:09) *
А если всё-таки нужно смотреть как меняется частота ВЧ составляющей - это уже надо непрерывный вейвлет-анализ :-)

звучит серьезно, если шеф одобрит, буду изучать вейвлет-анализ sm.gif)


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 12:59
Рейтинг@Mail.ru


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