Kako zaznati vrh v MATLAB-u

MATLAB je tehnični programski paket, ki se lahko uporablja za obdelavo in analizo signalov. Pogost postopek pri analizi signala je zaznavanje vrhov ali iskanje lokalnih maksimuma - vrednosti, večjih od sosednjih podatkovnih točk - znotraj hrupnega signala. Običajno je treba zaznavanje vrhov omejiti na lokalne maksimume določene širine - trajanje, ko je signal v časovni domeni - pa tudi določeno višino ali velikost.

Korak 1

Določite vir podatkov z uvozom podatkov v MATLAB. Na primer, ustvarite sinusni val z naključnim šumom:

moj_signal = sin (0: 0,1: 10) + rand (1,101);

2. korak

Poiščite vrhove v svojem signalu s pomočjo metode kvadratne interpolacije "findpeaks ()":

[peak_value, peak_location] = findpeaks (moj_signal);

3. korak

Poiščite vrhove najmanjše višine s parametrom "minpeakheight". Višina je skalar realne vrednosti, ki se nanaša na najmanjšo vrednost podatkov dovoljenih vrhov:

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

4. korak

Poiščite vrhove, ločene z najmanjšo razdaljo, s parametrom "minpeakdistance". Vrednost je najmanjše število indeksov med vrhovi v vektorju "my_signal" in mora biti celo število:

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

5. korak

Poiščite samo vrhove nad določenim pragom s parametrom "prag". To je skalar realne vrednosti, ki se nanaša na najmanjšo dovoljeno razliko med najvišjimi in sosednjimi podatkovnimi točkami:

[peak_value, peak_location] = findpeaks (moj_signal, 'prag', 0,5);

6. korak

Poiščite le določeno število vrhov s pomočjo parametra "npeaks". Vrednost mora biti celo število:

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

Vrnjeni seznam vrhov razvrstite s parametrom "sortstr". Dovoljene vrednosti so "naraščajoče", "padajoče" in "nič":

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