Simple Peak Detector

used for identifying peaks in time-series experimental data

Updated 29 Dec 2021

The detect_peaks algorithm uses rising and falling counters to assign a risingState with user-provided thresholds. Rising count is independent of falling count. A peak is detected when enough rising counts, then falling counts have successfully been detected.
The detect_peaks_with_rise algorithm is the same as detect_peaks except an additional constraint is added before detection. The total rise from the previous peak must be greater than a certain percentage of the total data range. This reduces chances of multiple unwanted repeated peaks. Drops in the data since the last detected peak is incorporated.
A simple Infinite Impulse Repsonse (IIR) filter is included and helpful with noisy data but not always necessary.
Four experimental datasets are provided that illlustrate both algorithms:
  1. sinuisoidal, or periodic
  2. constant but noisy data with 3 successive peaks
  3. rising, stair-step sequence A
  4. rising, stair-step sequence B
MATLAB Release Compatibility
Created with R2021a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

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

Start Hunting!