pickpeaks(V,select,​display)

Find peaks in data using a scale-space approach. It is efficient and requires very few parameters.
2,6K Downloads
Aktualisiert 20. Jan 2015

Lizenz anzeigen

-------------------------------------------------------------
Scale-space peak picking
------------------------
This function looks for peaks in the data using scale-space theory.
input :
* V : data, a vector
* select : either:
- select >1 : the number of peaks to detect
- 0<select<1 : the threshold to apply for finding peaks
the closer to 1, the less peaks, the closer to 0, the more peaks
* display : whether or not to display a figure for the results. 0 by
default
* ... and that's all ! that's the cool thing about the algorithm =)
outputs :
* peaks : indices of the peaks
* criterion : the value of the computed criterion. Same
length as V and giving for each point a high value if
this point is likely to be a peak
The algorithm goes as follows:
1°) set a smoothing horizon, initially 1;
2°) smooth the data using this horizon
3°) find local extrema of this smoothed data
4°) for each of these local extrema, link it to a local extremum found in
the last iteration. (initially just keep them all) and increment the
corresponding criterion using current scale. The
rationale is that a trajectory surviving such smoothing is an important
peak
5°) Iterate to step 2°) using a larger horizon.

At the end, we keep the points with the largest criterion as peaks.
I don't know if that kind of algorithm has already been published
somewhere, I coded it myself and it works pretty nice, so.. enjoy !
If you find it useful, please mention it in your studies by referencing
the following report:

@techreport{liutkus:hal-01103123,
TITLE = {{Scale-Space Peak Picking}},
AUTHOR = {Liutkus, Antoine},
URL = {https://hal.inria.fr/hal-01103123},
TYPE = {Research Report},
INSTITUTION = {{Inria Nancy - Grand Est (Villers-l{\`e}s-Nancy, France)}},
YEAR = {2015},
MONTH = Jan,
HAL_ID = {hal-01103123},
}

running time should be decent, although intrinsically higher than
findpeaks. For vectors of length up to, say, 10 000, it should be nice.
Above, it may be worth it though.
---------------------------------------------------------------------
(c) Antoine Liutkus, 2015
---------------------------------------------------------------------

Zitieren als

Antoine Liutkus (2026). pickpeaks(V,select,display) (https://de.mathworks.com/matlabcentral/fileexchange/42927-pickpeaks-v-select-display), MATLAB Central File Exchange. Abgerufen.

Kompatibilität der MATLAB-Version
Erstellt mit R2009b
Kompatibel mit allen Versionen
Plattform-Kompatibilität
Windows macOS Linux
Version Veröffentlicht Versionshinweise
1.6.0.0

updated the script for compatibility with earlier matlab versions

1.5.0.0

added reference in description

1.4.0.0

Added a reference to research report to cite for this technique.

1.3.0.0

Several bugfixes and improvements to handle large datasets.

1.0.0.0