Filter löschen
Filter löschen

Detecting peaks with a specified range of amplitudes?

2 Ansichten (letzte 30 Tage)
HC98
HC98 am 9 Feb. 2023
Kommentiert: Luca Ferro am 27 Feb. 2023
Say i have a signal with range betwene [-3, 3] and I want to locate peaks within an amplitude range of say [0, 1], how might I do this? I.e., detect peak amolitudes within a given boundary of allowed amplitude values?

Antworten (1)

Luca Ferro
Luca Ferro am 9 Feb. 2023
Bearbeitet: Luca Ferro am 9 Feb. 2023
if you need the range [0 1] just filter it out of the resulting vector afterwards, for example.
[pks,locs] = findpeaks(PeakSig,x); %peakSgn = the signal you want to analyze, x = the linspace you are working on
upperBound= locs > 0;
lowerBound= locs < 1;
peaksInRange= locs.*upperBound.*lowerBound
or more in a more compact way:
[pks,locs] = findpeaks(PeakSig,x); %peakSgn = the signal you want to analyze, x = the linspace you are working on
peaksInRange= (locs > 0 & locs < 1).*locs;

Produkte


Version

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by