Skip to contents

Pan-Tompkins QRS detection: bandpass (5–15 Hz) -> differentiate -> square -> moving-window integration -> adaptive thresholding -> refinement against the raw ECG.

Usage

ecgdet(ecg, fs)

Arguments

ecg

Numeric vector (1-D ECG signal).

fs

Sampling frequency in Hz.

Value

List with filtered (raw ECG echoed), name, fs, n_samples, and extra (r_peaks = 1-based sample indices, n_peaks).

Details

Reference: Pan, J. & Tompkins, W.J. (1985) "A real-time QRS detection algorithm", IEEE Trans. Biomed. Eng. BME-32(3):230–236.

Examples

# \donttest{
set.seed(1)
fs <- 250
t <- seq(0, 4, by = 1 / fs)
ecg <- sin(2 * pi * 1.2 * t) + 0.1 * rnorm(length(t))
if (requireNamespace("signal", quietly = TRUE)) {
  res <- ecgdet(ecg, fs)
  res$extra$n_peaks
}
#> [1] 1
# }