MATLAB is een technisch softwarepakket dat gebruikt kan worden voor signaalverwerking en analyse. Een gebruikelijke procedure bij signaalanalyse is piekdetectie, of het vinden van lokale maxima - waarden die groter zijn dan aangrenzende gegevenspunten - binnen een signaal met ruis. Het is meestal nodig om de piekdetectie te beperken tot lokale maxima van een bepaalde breedte -- duur wanneer het signaal zich in het tijdsdomein bevindt -- evenals een bepaalde hoogte of grootte.
Stap 1
Definieer een gegevensbron door gegevens in MATLAB te importeren. Maak bijvoorbeeld een sinusgolf met willekeurige ruis:
mijn_signaal = sin (0:0.1:10) + rand (1.101);
Stap 2
Vind pieken in uw signaal met behulp van de kwadratische interpolatiemethode van "findpeaks()":
[piekwaarde, pieklocatie] = vindpieken (mijn_signaal);
Stap 3
Zoek naar pieken met een minimale hoogte met behulp van de parameter "minpeakheight". De hoogte is een reële waarde scalair die verwijst naar de minimale gegevenswaarde van toegestane pieken:
[peak_value, peak_location] = findpeaks(my_signal,'minpeakheight',2.5);
Stap 4
Zoek naar pieken gescheiden door een minimale afstand met behulp van de parameter "minpeakdistance". De waarde is het minimum aantal indices tussen pieken in de "my_signal" vector, en moet een geheel getal zijn:
[peak_value, peak_location] = findpeaks(my_signal,'minpeakdistance', 5);
Stap 5
Zoek alleen naar pieken boven een bepaalde drempel met behulp van de parameter "drempel". Dit is een reële waarde scalair die verwijst naar het minimaal toegestane verschil tussen piek- en aangrenzende gegevenspunten:
[peak_value, peak_location] = findpeaks(my_signal,'threshold',0.5);
Stap 6
Vind alleen een bepaald aantal pieken met behulp van de parameter "npeaks". De waarde moet een geheel getal zijn:
[peak_value, peak_location] = findpeaks(my_signal,'npeaks', 5);
Sorteer de geretourneerde lijst met pieken met behulp van de parameter "sortstr". Toegestane waarden zijn "ascend", "descend" en "none":
[peak_value, peak_location] = findpeaks(my_signal,'sortstr','ascend');