Tecnología

Inicio

Cómo detectar el pico en MATLAB

Cómo detectar el pico en MATLAB


MATLAB es un paquete de software técnica que se puede utilizar para el procesamiento y análisis de señales. Un procedimiento común en el análisis de la señal es la detección de pico, o la búsqueda de máximos locales - los valores mayores que los puntos de datos adyacentes - dentro de una señal ruidosa. Por lo general es necesario limitar la detección de pico para los máximos locales de una cierta anchura - duración cuando la señal está en el dominio del tiempo -, así como una cierta altura o magnitud.

Instrucciones

1 Definir una fuente de datos mediante la importación de datos en MATLAB. Por ejemplo, crear una onda senoidal con ruido aleatorio:

my_signal = sen (0: 0,1: 10) + rand (1.101);

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

[Peak_value, peak_location] = findpeaks (my_signal);

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

[Peak_value, peak_location] = findpeaks (my_signal, 'minpeakheight', 2,5);

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

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

5 Buscar sólo los picos por encima de un umbral determinado utilizando el parámetro de "umbral". Este es un escalar de valor real que se refiere a la diferencia mínima permitida entre el pico y los puntos de datos adyacentes:

[Peak_value, peak_location] = findpeaks (my_signal, 'umbral', 0,5);

6 Encuentra sólo un cierto número de picos utilizando el parámetro "npeaks". El valor debe ser un número entero:

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

7 Ordenar la lista devuelta de picos utilizando el parámetro "sortstr". Los valores permitidos son "subir", "descender" y "ninguno":

[Peak_value, peak_location] = findpeaks (my_signal, 'sortstr', 'ascender');