Jak detekovat Peak v MATLABu

MATLAB je technický softwarový balíček, který lze použít pro zpracování a analýzu signálu. Běžným postupem v analýze signálu je detekce špiček nebo hledání místních maxim - hodnot větších než sousední datové body - v hlučném signálu. Obvykle je nutné omezit detekci špiček na lokální maxima určité šířky - trvání, když je signál v časové doméně - a také na určitou výšku nebo velikost.

Krok 1

Definujte zdroj dat importem dat do MATLABu. Například vytvořte sinusovou vlnu s náhodným šumem:

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

Krok 2

Najděte vrcholy signálu pomocí metody kvadratické interpolace metody "findpeaks ()":

[peak_value, peak_location] = findpeaks (my_signal);

Krok 3

Hledejte špičky minimální výšky pomocí parametru „minpeakheight“. Výška je skalár se skutečnou hodnotou, který odkazuje na minimální datovou hodnotu povolených špiček:

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

Krok 4

Vyhledejte vrcholy oddělené minimální vzdáleností pomocí parametru „minpeakdistance“. Hodnota je minimální počet indexů mezi vrcholy ve vektoru „my_signal“ a musí být celé číslo:

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

Krok 5

Vyhledávejte pouze vrcholy nad určitou prahovou hodnotou pomocí parametru „prahová hodnota“. Jedná se o skalár se skutečnou hodnotou, který odkazuje na minimální přípustný rozdíl mezi špičkovými a sousedními datovými body:

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

Krok 6

Pomocí parametru „npeaks“ najděte pouze určitý počet vrcholů. Hodnota musí být celé číslo:

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

Seřadit vrácený seznam vrcholů pomocí parametru "sortstr". Povolené hodnoty jsou „ascend“, „descend“ a „none“:

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