Be the first to rate this file! 20 Downloads (last 30 days) File Size: 3.16 KB File ID: #42927
image thumbnail

Find peaks using scale-space approach

by

 

02 Aug 2013 (Updated )

Find peaks in data using a scale-space approach. It is efficient and requires very few parameters.

| Watch this File

File Information
Description

-------------------------------------------------------------
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 =)

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, 2013
---------------------------------------------------------------------

MATLAB release MATLAB 7.9 (R2009b)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
05 Aug 2013

Several bugfixes and improvements to handle large datasets.

Contact us