WFDB Software Package 10.6.2

File: <base>/app/README (6,051 bytes)
file: README		G. Moody	 1 June 1989
			Last revised:    8 June 2005

WFDB applications: programs for working with annotated signals
Copyright (C) 1989-2005 George B. Moody

These programs are free software; you can redistribute them and/or modify
them under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.

These programs are distributed in the hope that they will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
more details.

You should have received a copy of the GNU General Public License along with
these programs; if not, see <>.

You may contact the author by e-mail ( or postal mail
(MIT Room E25-505A, Cambridge, MA 02139 USA).  For updates to this software,
please visit PhysioNet (

This directory contains sources for the standard applications which come
with the WFDB software package.  Before attempting to compile these
programs, build and install the WFDB library (look in the `lib' directory
on the same level as this one).

If a `make' utility is available, follow the instructions in 'Makefile' to
compile and install these applications on your system.  If you do not have a
`make' utility, you will have to perform the installation manually; the
comments in 'Makefile' may be helpful in determining how to proceed.

You may wish to set the WFDB environment variable (the database path) before
using these applications.  Select and customize the appropriate script for
doing so from among the templates listed below.

For information about using these applications, look in the `doc' directory on
the same level as this one.  You can also obtain a brief usage summary for each
application by running it without any command-line arguments.

Before using any of the applications, you will need to have database files
for input.  The contents of the `data' directory, on the same level as this
one, will get you started if no others are available.

The following files will be found in this directory:

Makefile	`make' description file for compiling these applications using
		 ANSI/ISO standard C compilers on supported platforms	Used by ../configure to construct Makefile (comments only)
Makefile.tpl	Used by ../configure to construct Makefile (portable section)
README		this file
ann2rr.c	Converts an annotation file to an RR interval series
bxb.c		AAMI-standard beat-by-beat annotation comparator
calsig.c	Calibrates signals of a database record
cshsetwfdb	Template for C-shell WFDB path initialization script
ecgeval.c	Generates and runs ECG analyzer evaluation script
epic.c		AAMI-standard episode-by-episode annotation comparator
fir.c		General-purpose FIR filter
ihr.c		Generates a non-uniformly sampled heart rate signal from an
		 annotation file
mfilt.c		General-purpose median filter
mrgann.c	Merges a pair of annotation files, generating a third one
mxm.c		AAMI-standard measurement-by-measurement annotation comparator
nst.c		Mixes noise with ECGs for noise stress tests
plotstm.c	Produces a PostScript scatter plot of ST measurement errors
pscgen.c	Generate a 'pschart' script from an annotation file
pschart.c	Makes annotated `chart recordings' on PostScript devices	PostScript prolog file for use with `pschart'	Alternate prolog for printing 12-lead ECGs using `pschart'
psfd.c		Makes annotated `full-disclosure' plots on PostScript devices	PostScript prolog file for use with `psfd'
rdann.c		Reads annotations and prints them
rdsamp.c	Reads signals and prints them
rr2ann.c	Converts an RR interval series into an annotation file
rxr.c		AAMI-standard run-by-run annotation comparator
sampfreq.c	Prints the sampling frequency of a record
setwfdb		Template for Bourne/bash shell WFDB path initialization script
sigamp.c	Measures signal amplitudes
skewedit.c	Rewrites header files to correct for measured inter-signal skew
snip.c		Copies an excerpt of a database record
sortann.c	Rearranges annotations in canonical order
sqrs.c		Single-channel QRS detector (optimized for 250 samples/sec)
sqrs125.c	Variant of sqrs optimized for signals sampled at 125 Hz
sumann.c	Summarizes the contents of an annotation file
sumstats.c	Derives aggregate statistics from `bxb', `rxr', etc. output
tach.c		Generates a uniformly sampled heart rate signal from an
		 annotation file
wfdbcat.c	Copies a WFDB file to standard output
wfdbcollate.c	Collates multiple WFDB records into a multi-segment record
wfdbdesc.c	Describes signals based on header file contents
wfdbwhich.c	Finds a WFDB file and prints its pathname
wrann.c		Creates an annotation file from `rdann' output
wrsamp.c	Creates signal and header files by converting text input
xform.c		Sampling frequency, amplitude, and format converter

What next?

If you are interested in power spectral density estimation (e.g., for studying
heart rate variability), you may wish to compile and install the applications
in the `psd' directory at the same level as this one.  The `psd' applications
can process the text output produced by several of the applications in this
directory, including `rdsamp', `tach', and `ihr'.

If you have database records in a format that is not directly supported by the
WFDB library, or if you need to produce records in such formats, you may wish
to look for format-conversion programs in the `convert' directory on the same
level as this one.

Finally, you may also wish to compile the example programs from chapter 6 of
the WFDB Programmer's Guide, which can be found in the `examples' directory on
the same level as this one.

See the `README' files in the `psd', `convert', and `examples' directories for
further information.