Next: SIGNAME(1) Up: WFDB Applications Guide Previous: SIGAMP(1)On This Page


sigavg - calculate averages of annotated waveforms


sigavg -r record -a annotator [ options ... ]


A common problem in signal processing is to determine the shape of a recurring waveform in the presence of noise. If the waveform recurs periodically (for example, once per second) the signal can be divided into segments of an appropriate length (one second in this example), and the segments can be averaged to reduce the amplitude of any noise that is uncorrelated with the signal. Typically, noise is reduced by a factor of the square root of the number of segments included in the average. For physiologic signals, the waveforms of interest are usually not strictly periodic, however. sigavg averages such waveforms by defining segments (averaging windows) relative to the locations of waveform annotations.

sigavg requires a WFDB record containing any number of signals to be averaged, and an annotation file containing markers (fiducial points) that define a fixed point in the averaging window for each waveform. By default, all QRS (beat) annotations for the specified annotator are included in an average that begins 50 ms before the annotation and ends 50 ms after the annotation. The output is in text form, with times (in seconds, relative to the annotations) of each sample in the first column, and averages for each signal in the remaining columns.

Options include:

-d dt1 dt2
Set the measurement window relative to QRS annotations. Negative values correspond to offsets that precede the annotations. Defaults: dt1 = -0.05 seconds; dt2 = 0.05 seconds.
-f time
Begin at the specified time in record (default: the beginning of record).
Print a usage summary.
Read multifrequency records in high resolution mode (default: use low resolution mode).
-p type [ type ... ]
Include annotations of the specified types only (default: include all QRS annotations).
-t time
Process until the specified time in record (default: the end of the record).
Verbose mode: print column headings above measurements.
Set the baseline to zero before averaging.


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

See Also

calsig(1) , setwfdb(1) , sigamp(1)


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 10 June 2022