Sådan registreres højdepunkt i MATLAB

MATLAB er en teknisk softwarepakke, der kan bruges til signalbehandling og analyse. En almindelig procedure i signalanalyse er spidsdetektering eller at finde lokale maksima - værdier større end tilstødende datapunkter - inden for et støjende signal. Det er normalt nødvendigt at begrænse spidsdetektering til lokale maksima af en bestemt bredde - varighed når signalet er i tidsdomænet - såvel som en bestemt højde eller størrelse.

Trin 1

Definer en datakilde ved at importere data til MATLAB. Opret f.eks. En sinusbølge med tilfældig støj:

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

Trin 2

Find toppe i dit signal ved hjælp af den kvadratiske interpolationsmetode "findpeaks ()":

[peak_value, peak_location] = findpeaks (my_signal);

Trin 3

Søg efter toppe med en minimumshøjde ved hjælp af parameteren "minpeakheight". Højden er en reel værdiansat skalar, der refererer til minimumsværdien af ​​tilladte toppe:

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

Trin 4

Søg efter toppe adskilt af en minimumsafstand ved hjælp af parameteren "minpeakdistance". Værdien er det mindste antal indekser mellem toppe i "my_signal" -vektoren og skal være et heltal:

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

Trin 5

Søg kun efter toppe over en bestemt tærskel ved hjælp af parameteren "tærskel". Dette er en reelt vurderet skalar, der refererer til den mindste tilladte forskel mellem top- og tilstødende datapunkter:

[peak_value, peak_location] = findpeaks (mit_signal, 'tærskel', 0,5);

Trin 6

Find kun et bestemt antal toppe ved hjælp af parameteren "npeaks". Værdien skal være et heltal:

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

Sorter den returnerede liste over toppe ved hjælp af parameteren "sortstr". Tilladte værdier er "ascend", "descend" og "none":

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