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');