Next: EPICMP(1) Up: WFDB Applications Guide Previous: EDF2MIT(1)On This Page


edr - derive a respiration signal from an ECG


edr -r record -i annotator [ options ... ]


edr derives a sample of a respiratory signal for each QRS complex in the input ECG, by measuring the mean electrical axis (in two-channel mode) or the projection of that axis onto the lead axis (in single-channel mode). See the references below for details of the algorithm.

edr reads the signal and annotation files specified by record and annotator, and writes another annotation file, which is a copy of the input annotation file except that the num field of each beat annotation is replaced by an EDR sample.

If the beat annotations are not located at the QRS peaks, it will be necessary to set the window limits (the offsets relative to the annotations between which the raw measurements for the EDR are taken), using the -d option. By default, edr behaves as if the option -d -0.04 0.04 has been given (in other words, measurements are taken over an 80 ms window beginning 40 ms (.04 seconds) before the annotation, and ending 40 ms after the annotation); this default is reasonable if the QRS annotations have been placed on or near the QRS peaks or centroids. If edr is supplied with annotations generated by sqrs, or another method that places the annotations near the PQ junction (the beginning of the QRS complex), the option -d 0 0.08 is recommended.

For ECGs sampled at relatively low rates (e.g., 100-128 Hz, as is common for many long-term ECG recordings), it may be advantageous to base the EDR on the T-wave rather than the QRS complex, by choosing a window such as -d -0.08 0.28 or -d -0.12 0.32 (for annotations placed at the QRS peaks or PQ junctions respectively), since this permits an axis estimation based on a larger number of samples. Note that the use of a negative value for dt1, as in these examples, allows the beginning of the EDR measurement window to be placed after the QRS annotation.

Options include:

-d dt1 dt2
Set the EDR measurement window relative to QRS annotations (defaults: dt1 = 0.04 (seconds before annotation), dt2 = 0.04 (seconds after annotation).
-f time
Begin at the specified time (default: the beginning of the record).
Print a usage summary.
-o ann
Use ann as the output annotator name (default: edr).
-s signal-list
Analyze only the signals named in the signal-list (one or more input signal numbers, separated by spaces; default: analyze signals 0 and 1). If the signal-list contains more than two signals, only the first two are analyzed.
-t time
Stop at the specified time.
Verbose mode: print individual measurements.


It may be necessary to set and export the shell variable WFDB (see setwfdb(1) ).


   edr -r 100 -i atr -f 0 -t 5:0

This command creates an annotation file named edr.100, containing a copy of the reference (atr) annotation file for the first five minutes of record 100, with EDR measurements for each annotated beat in the num fields of the output annotation file.


edr is available as part of PhysioToolkit under the GPL (see SOURCE below).

See Also

plt(1) , rdann(1) , setwfdb(1)
Moody GB, Mark RG, Zoccola A, Mantero S. Derivation of respiratory signals from multi-lead ECGs. Computers in Cardiology 12:113-116 (1985; available at )
Moody GB, Mark RG, Bump MA, et al. Clinical validation of the ECG-derived respiration (EDR) technique. Computers in Cardiology 13:507-510 (1986; available at )


George B. Moody (


Table of Contents

Up: WFDB Applications Guide

Please e-mail your comments and suggestions to, or post them to:

MIT Room E25-505A
77 Massachusetts Avenue
Cambridge, MA 02139 USA

Updated 8 March 2019