• Регистрация
aBoomest
aBoomest +942.89
н/д

Как работает функция FindPeaks

05.04.2020

Добрый день.

Как работает функция FindPeaks? Прстой пример на картике. Два пика найдены. А вот пик между ними - нет?

Почему так?

Понятно, что эти две точки имеют одинаковую ординату. Но в реальной жизни же в этом мксте у функции явно максимум. Как выйти из такой ситуации? Есть красивые решения?

Теги

    05.04.2020

    Ответы

    • Павел Рословец
      Павел Рословец +239.28
      7.04.2020 09:42

      Здравствуйте. У функции findpeaks много параметров, поиграйтесь с ними. Например, можно затребовать определенное количество пиков ('NPeaks'):

      https://docs.exponenta.ru/signal/ref/findpeaks.html

      https://mathworks.com/help/signal/ref/findpeaks.html

      А может быть, для такого сигнала лучше подойдет функция islocalmax, там даже пример похожий есть:

      https://docs.exponenta.ru/matlab/ref/islocalmax.html

      https://mathworks.com/help/matlab/ref/islocalmax.html

      • Marat
        Marat+208.00
        7.04.2020 10:02

        Очень странно. Только что прогнал такие же данные через findpeaks без каких-либо дополнительных параметров - нормально нашёл пик посередине.

        x = 0:15;
        y = [0 0 3 5 7 2 1 4 4 0 8 3 3 2 2 1];
        plot(x,y)
        hold on
        [pks,locs] = findpeaks(y);
        plot(locs-1,pks,'v','MarkerFaceColor','r')
        hold off
        • Skankhunt42
          Skankhunt42+1.00
          7.04.2020 11:03

          MATLAB 2019b, скритп Марата находит средний пик. Может все дело в версии программы?

        • aBoomest
          aBoomest+942.89
          7.04.2020 14:57

          В R2009b не работает
          В R2016а работает

          проблема. Нужно на компе со старым матлабом. Попробую выкрутиться.

          Спасибо.

          PS: Пробовал заменить (вытащить из 2016 и вставить в 2009) - не пошло. Там много функций внутри которых  в старом матлабе нет.

          PSPS: Все ответы в тему. Спасибо. Как выбрать несколько лучших? ))

          • aBoomest
            aBoomest+942.89
            4.11.2020 08:33

            А хотябы на пальцах неи кто не в курсе хоть примерный алгоритм данной функции? Чисто ради понимания, не более.