Jak wykryć piki w MATLAB

Funkcje MATLAB mogą znaleźć szczyty, zwane również lokalnymi maksimami.

Krok 1

Definiuje źródło informacji poprzez import danych do MATLAB. Na przykład utwórz falę sinusoidalną z przypadkowym szumem:

my_signal = sin (0: 0.1: 10) + rand (1101);

Krok 2

Znajdź szczyty sygnału za pomocą metody interpolacji kwadratowej "findpeaks ():"

[peak_value, peak_location] = findpeaks (my_signal);

Krok 3

Poszukaj pików minimalnej wysokości za pomocą parametru "minpeakheight". Wysokość jest skalarem rzeczywistej wartości, która odnosi się do minimalnej wartości danych dozwolonych szczytów:

[wartość_pikr., lokalizacja_zamknięcia] = findpeaks (my_signal, 'minpeakheight', 2.5);

Krok 4

Poszukaj pików oddzielonych minimalną odległością za pomocą parametru "minpeakdistance". Wartość to minimalna liczba indeksów między pikami w wektorze "my_signal" i musi być liczbą całkowitą:

[wartość_pikr, lokalizacja_piksu] = findpeaks (my_signal, 'minpeakdistance', 5);

Krok 5

Wyszukuj tylko piki powyżej określonego limitu, używając parametru "Próg". Jest to rzeczywista skala wartości, która odnosi się do minimalnej różnicy dozwolonej między szczytem a sąsiednimi punktami informacyjnymi:

[wartość_procesu, lokalizacja_piksu] = findpeaks (my_signal, 'threshold', 0.5);

Krok 6

Znajdź tylko kilka pików za pomocą parametru "npeaks". Wartość musi być liczbą całkowitą:

[wartość_pikr., lokalizacja_pionu] = findpeaks (my_signal, 'npeaks', 5);

Krok 7

Napraw listę zwróconą ze szczytów, używając parametru "sortsr". Dopuszczalne wartości to "wznoszenie się" (wznoszenie), "schodzenie" (schodzenie) i "brak" (brak):

[wartość_pikra, lokalizacja_piksu] = findpeaks (my_signal, 'sortstr', 'ascend');