LINUX.ORG.RU

[анализ] посоветуйте куда копать

 


0

1

1. есть у меня ворох цифр в столбик, из которых строится график вида (грубо):

   |
   |_      <------ 1
     '. 
       |
    _.'
   |       <------ 2
   |
   |

и очень мне интересно найти места перегибов, т.е. точки 1 и 2.

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

посоветуйте ключевых слов, может быть библиотеки/код, может быть теорию и авторов... что спросить у гугла?

зы. для !Ъ изобразил картинку, как это обычно выглядит: http://rastafarra.com/q.jpg

★★★★

Последнее исправление: Rastafarra (всего исправлений: 1)

1. Измеряй производную. Находи экстремумы(максимумы).

2. Измеряй дельту. if (dx > MAX_DX) then blablaebla

bk_ ★★
()

> Измеряй производную.

+1

Если есть шум (т.н. флуктуации, на которые внимания не надо обащать), то делай соответствующее сглаживание. И уже на сглаженном «графике» смотри производные.

rip86oz
()
Ответ на: комментарий от AlexCones

>производную вы не найдете.
Зато вы найдёте конечные разности. В численных методах (и матстатистике) они заменяют производные.

schizoid ★★★
()
Ответ на: комментарий от AlexCones

Если график задан не функцией, а рядом значений

Сплайн, а от него производную :-)

no-dashi ★★★★★
()

Хехе, задача не такая простая как тебе кажется. Спектроскописты на этом уже не одну собаку съели. Универсальныйх решений нет, как правило всё делают ручками. Задают кучу гауссианов и вариируют их параметры, что бы «подошло», метод обратной задачи, короче, только руками.

Наиболее достойный сюда инстумент для этих целей. Только за дэнги.

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

mi_estas
()

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

Читать Сергиенко (там про матлаб, но принцип-то общий).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от mi_estas

> Наиболее достойный сюда инстумент для этих целей

нихрена себе там дока. пошел читать.

еще интересные линки есть?

Rastafarra ★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

> поможет лапласиан гауссианы; еще можно пробежаться скользящей медианой или провести вейвлет-фильтрацию сигнала до дифференцирования.

либ/кода с этим делом никаких нет?

Rastafarra ★★★★
() автор топика
Ответ на: комментарий от Rastafarra

Я пользуюсь fftw3 - там Фурье быстрее, чем в GSL. Выполняется просто (делаем Фурье сигнала, Фурье фильтра, перемножаем полученные образы, делаем обратное Фурье).

Я делал с изображениями, вот построение фильтра, вот сам процесс фильтрации. Для 1D разница небольшая.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Rastafarra

Да, медиана там же, а одномерные вейвлеты есть в GSL.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от mi_estas

> Задают кучу гауссианов и вариируют их параметры, что бы «подошло», метод обратной задачи, короче, только руками.

я вот здесь, кстати, я подумал про слова «нейронные сети», но что и как применить не придумал. никто такого не делает?

Rastafarra ★★★★
() автор топика
Ответ на: комментарий от Rastafarra

Да ты сильно не обольшайся, там всё руками делать надо. Сама программа там деревянная. Лучше подумай о своих перегибах.

mi_estas
()
Ответ на: комментарий от Rastafarra

Нет. Конкретно для твоей задачи может подойти, для задач спектроскопии - нет.

mi_estas
()

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

psv1967 ★★★★★
()
Ответ на: комментарий от Eddy_Em

ну семён семёныч, ну кто ж так робiт?

// ÉÎÉÃÉÁÌÉÚÁÃÉÑ ÍÁÓÓÉ×Ï× ÓÉÎÕÓÏ× É ËÏÓÉÎÕÓÏ× ÕÇÌÏ× [-90,+180)
void init_sincos(int angles){
shty ★★★★★
()
Ответ на: комментарий от shty

Как-нибудь возьмусь - переведу все комментарии на английский.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

у тебя там кстати тоже баги в путях не мерянные. и вообще до этого нужно ещё догадаться, ховать koi8 в utf. =) ужасъ. не в пику сказано, но выбрось это ужасное поделие, именующее себя редактором. и переведи в utf. koi8 мёртв.

beastie ★★★★★
()
Ответ на: комментарий от Rastafarra

У geany есть баг: если первый файл он нормально открывает по пути в КОИ8, то второй и далее - фигвам. Поэтому пути приходится конвертировать в юникод. Первый файл он не открывает из-за этого, но дальше все ОК.

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.