Hvordan oppdage Peak i MATLAB

Hvordan oppdage Peak i MATLAB


MATLAB er et teknisk programvarepakke som kan brukes for signalbehandling og analyse. En vanlig prosedyre i signalanalyse er toppdeteksjon, eller finne lokale maksima - verdier større enn tilstøtende datapunkter - innen en støyende signal. Det er vanligvis nødvendig å begrense toppdeteksjons til lokale maksima av en viss bredde - varighet når signalet er i tidsdomenet - så vel som en viss høyde eller størrelse.

Bruksanvisning

1 Definer en datakilde ved å importere data inn i MATLAB. For eksempel opprette en sinuskurve med tilfeldig støy:

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

2 Finn topper i signalet ved hjelp av kvadratisk interpolasjon metoden for "findpeaks ()":

[Peak_value, peak_location] = findpeaks (my_signal);

3 Søk etter toppene i en minimumshøyde ved hjelp av "minpeakheight" parameter. Høyden er en reell verdi skalar som refererer til den minste dataverdien av tillatte topper:

[Peak_value, peak_location] = findpeaks (my_signal, 'minpeakheight', 2,5);

4 Søk etter topper atskilt med en minimumsavstand ved hjelp av "minpeakdistance" parameter. Verdien er minimum antall indekser mellom toppene i "my_signal" vektor, og må være et heltall:

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

5 Søk bare etter topper over en viss terskel ved bruk av "terskel" parameter. Dette er en reell verdi skalar som refererer til minstekravet til forskjellen mellom topp og tilstøtende datapunkter:

[Peak_value, peak_location] = findpeaks (my_signal, 'terskel', 0,5);

6 Finn bare et visst antall topper med "npeaks" parameter. Verdien må være et heltall:

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

7 Sorter returnert liste over topper med "sortstr" parameter. Tillatte verdier er "stige", "ned" og "ingen":

[Peak_value, peak_location] = findpeaks (my_signal, 'sortstr', 'stige');