Cómo detectar picos en MATLAB

Las funciones MATLAB pueden encontrar picos, también conocidos como máximos locales.
Por chris daniels

Paso 1

Define una fuente de información importando datos en MATLAB. Por ejemplo, crea una onda senoidal con ruido aleatorio:

my_signal = sin(0:0.1:10) + rand(1,101);


Paso 2

Encuentra picos en tu señal usando el método de interpolación cuadrática de "findpeaks():"

[peak_value, peak_location] = findpeaks(my_signal);


Paso 3

Busca picos de una altura mínima usando el parámetro "minpeakheight". La altura es un escalar de valor real que se refiere al valor mínimo de datos de los picos permitidos:

[peak_value, peak_location] = findpeaks(my_signal,'minpeakheight',2.5);


Paso 4

Busca picos separados por una distancia mínima usando el parámetro "minpeakdistance". El valor es el número mínimo de índices entre picos en el vector "my_signal" y debe de ser un entero:

[peak_value, peak_location] = findpeaks(my_signal,'minpeakdistance',5);


Paso 5

Busca solo picos sobre cierto límite usando el parámetro "Threshold" (Límite). Esta es una escala de valor real que se refiere a la diferencia mínima permitida entre el pico y los puntos de información adyacente:

[peak_value, peak_location] = findpeaks(my_signal,'threshold',0.5);


Paso 6

Encuentra solo un número de picos usando el parámetro "npeaks". El valor debe de ser un entero:

[peak_value, peak_location] = findpeaks(my_signal,'npeaks',5);


Paso 7

Arregla la lista devuelta de picos usando el parámetro "sortsr". Los valores permitidos son "ascend" (ascender), "descend" (descender) y "none" (ninguno):

[peak_value, peak_location] = findpeaks(my_signal,'sortstr','ascend');