Comment détecter les pics dans MATLAB

Les fonctions MATLAB peuvent trouver des pics, également appelés maxima locaux.

Étape 1

Définit une source d'informations en important des données dans MATLAB. Par exemple, créez une onde sinusoïdale avec un bruit aléatoire:

mon_signal = péché (0: 0.1: 10) + rand (1 101);

Étape 2

Recherchez des pics dans votre signal à l'aide de la méthode d'interpolation quadratique de "findpeaks ():"

[peak_value, peak_location] = findpeaks (mon_signal);

Étape 3

Recherchez les pics d'une hauteur minimale à l'aide du paramètre "minpeakheight". La hauteur est un scalaire de valeur réelle qui fait référence à la valeur de données minimale des pics autorisés:

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

Étape 4

Recherchez les pics séparés par une distance minimale à l'aide du paramètre "minpeakdistance". La valeur est le nombre minimum d'index entre les pics du vecteur "my_signal" et doit être un entier:

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

Étape 5

Recherchez uniquement les pics dépassant une certaine limite à l'aide du paramètre "Seuil". Il s'agit d'une échelle de valeur réelle qui fait référence à la différence minimale autorisée entre le pic et les points d'information adjacents:

[peak_value, peak_location] = findpeaks (mon_signal, 'seuil', 0.5);

Étape 6

Recherchez uniquement un certain nombre de pics à l'aide du paramètre "npeaks". La valeur doit être un entier:

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

Étape 7

Correction de la liste renvoyée par les pics à l'aide du paramètre "sortsr". Les valeurs autorisées sont "ascend" (ascend), "descend" (descend) et "none" (aucune):

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