LINUX.ORG.RU

История изменений

Исправление Sadler, (текущая версия) :

Для пиков, имхо, можно было элементарно пройтись по сигналу (скользящее окно), считая для каждого отсчёта изменение относительно предыдущего. И получить простой фильтр вида

for (int i=1;i<len;i++) { k = 0.99*k + 0.01*abs(x[i]-x[i-1]); if (k>X) dosomething(); }
А порог уже задавать для k. Конечно, это примитивно, но обычно этого достаточно.

Исправление Sadler, :

Для пиков, имхо, можно было элементарно пройтись по сигналу (скользящее окно), считая для каждого отсчёта изменение относительно предыдущего. И получить простой фильтр вида

for (int i=1;i<len;i++) k = 0.99*k + 0.01*abs(x[i]-x[i-1]); if (k>X) dosomething();
А порог уже задавать для k. Конечно, это примитивно, но обычно этого достаточно.

Исходная версия Sadler, :

Для пиков, имхо, можно было элементарно пройтись по сигналу (скользящее окно), считая для каждого отсчёта изменение относительно предыдущего. И получить простой фильтр вида

for (int i=1;i<len;i++) k = 0.99*k + 0.01*abs(x[i]-x[i-1]); if (k>X) dosomething();
А порог уже задавать для k.