Cómo detectar picos en MATLAB (En 7 Pasos)

MATLAB es un paquete de software técnico que puede usarse para procesar y analizar señales. Un procedimiento común en el análisis de señales es la detección de picos, o el encontrar el máximo local (valores más grandes que los puntos de información adyacente dentro de una señal ruidosa). Es necesario, por lo general, limitar la detección de picos a la máxima local de una cierta anchura (duración cuando la señal está en el dominio del tiempo), así como cierta altura o magnitud.
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');