ECG waveform generator for Matlab/Octave

The files ECGwaveGen.m and QRSpulse.m were contributed to PhysioNet by Floyd Harriott of Stellate Systems. ECGwaveGen generates a synthesized ECG signal with user-settable heart rate, signal duration, sampling frequency, QRS amplitude and duration, and T-wave amplitude; it uses QRSpulse to create premature beats followed by compensatory pauses. The algorithm is based in part on Ruha A and Nissila S, "A real-time microprocessor QRS detector system with a 1-ms timing accuracy for the measurement of ambulatory HRV", IEEE Trans Biomed Eng 44(3):159-167 (1997), in which the authors describe an artificial ECG signal based on the standard test waveforms specified in ANSI/AAMI EC13:1992 (American National Standard: Cardiac Monitors, Heart Rate Meters, and Alarms), available from AAMI. (Please note that the synthesized ECG is not intended to be highly realistic; the primary application is for testing the fidelity of analog signal-processing components of cardiac monitors and similar instruments, using an ECG-like signal with well-defined characteristics.)

EC13 also specifies the use of a specific set of non-synthesized waveforms, available in PhysioBank.

Potential users of ECGwaveGen may also wish to consider ECGSYN, which generates realistic ECG signals and provides a somewhat different set of capabilities.