PPG Systolic Peak and Valley Detection

Peak and valley detection algorithms identify systolic maxima (peaks) and pulse onset minima (valleys/feet) in PPG waveforms, providing the fundamental fiducial points for heart rate computation, interbeat interval extraction, and all downstream morphological analysis.

Simple peak detection applies a local maximum search within sliding windows, accepting peaks that exceed a minimum amplitude threshold and minimum inter-peak distance (refractory period). Adaptive thresholding adjusts both amplitude and timing thresholds based on running statistics of recent peak amplitudes and intervals, accommodating slow changes in signal amplitude from vasomotor variation and postural changes.

First-derivative zero-crossing methods detect peaks as points where the first derivative transitions from positive to negative, and valleys as negative-to-positive transitions. This approach is amplitude-independent and works well when the signal-to-noise ratio is adequate. Second-derivative methods identify peaks as points of maximum negative curvature (most concave-down), which is more noise-robust but can shift the detected peak position slightly from the true amplitude maximum.

Multi-scale peak detection operates at multiple temporal scales simultaneously: coarse scale identifies approximate beat locations, fine scale refines timing to sample-level accuracy. This hierarchical approach improves robustness during artifacts where single-scale detection may produce both missed and false detections. Combining peak detection with template matching (detecting the template-correlated maximum rather than the amplitude maximum) further improves accuracy during noisy segments, achieving F1 > 0.97 on standard PPG benchmarks.

Frequently Asked Questions

What refractory period should be used for PPG peak detection?

200–300 ms (corresponding to maximum heart rate 200–300 bpm) prevents dicrotic notch and noise spike double-detection. For adult monitoring, 300 ms is standard. For neonatal PPG, reduce to 200 ms to accommodate higher heart rates.

How do you handle missed peaks in PPG?

Search-back algorithms (as in Pan-Tompkins) lower the detection threshold and re-scan the interval when no peak is found within 150% of the expected R-R interval. Alternatively, interpolation-based approaches estimate the missing IBI from surrounding intervals.

Is peak or valley timing more accurate for IBI?

Valley (onset/foot) timing is more consistent for IBI measurement because the pulse onset is sharper and less affected by amplitude variation. Peak timing is simpler to detect but introduces IBI error from amplitude-dependent peak broadening during vasodilation.

Related Algorithms