next up previous
Up: Spectral Analysis of Heart Previous: Acknowledgements


DeBoer RW, Karemaker JM, Strackee J.
Spectrum of a series of point events, generated by the integral pulse frequency modulation model.
Med Biol Eng Comput 1985; 23:138-142.

Berger RD, Akselrod S, Gordon D, Cohen RJ.
An efficient algorithm for spectral analysis of heart rate variability.
IEEE Trans Biomed Eng 1986; BME-33:900-904.

Moody GB.
ECG-based indices of physical activity.
In Computers in Cardiology 1992. Los Alamitos: IEEE Computer Society Press, 1992; 403-406.

Albrecht P, Cohen RJ.
Estimation of heart rate power spectrum bands from real-world data: dealing with ectopic beats and noisy data.
In Computers in Cardiology 1988. Los Alamitos: IEEE Computer Society Press, 1989; 311-314.

Birkett CL, Kienzle MG, Myers GA.
Interpolation over ectopic beats increases low frequency power in heart rate variability spectra.
In Computers in Cardiology 1991. Los Alamitos: IEEE Computer Society Press, 1992; 257-259.

Klieger RE, Miller JP, Bigger JT, Moss AJ, and the Multicenter Post-Infarct Research Group.
Decreased heart rate variability and its association with increased mortality after acute myocardial infarction.
Am J Cardiol 1987; 59:256-263.

Lomb NR.
Least-squares frequency analysis of unequally spaced data.
Astrophysics and Space Science 1976; 39:447-462.

Jones RH.
Fitting a continuous-time autoregression to unevenly sampled discrete data.
In Findley DF (ed.), Applied Time Series Analysis II. New York: Academic Press; 1981.

Burr RL, Cowan MJ.
Autoregressive spectral models of heart rate variability.
J Electrocardiology 1992; 25(Suppl.):224-233.

Press WH, Rybicki GB.
Fast algorithm for spectral analysis of unevenly sampled data.
Astrophysical J 1989; 338:277-280.

Press WH, Teukolsky SA, Vetterling WT, Flannery BP.
Numerical Recipes in C: the Art of Scientific Computing.
Second edition. Cambridge Univ Press, 1992.
549-558 [FT], 572-575 [AR], 575-584 [Lomb].

Moody GB, Mark RG, Zoccola A, Mantero S.
Derivation of respiratory signals from multi-lead ECGs.
In Computers in Cardiology 1985. Los Alamitos: IEEE Computer Society Press, 1986; 113-116.

The C program below generates an instantaneous heart rate (HR) signal suitable for Lomb PSD estimation. Its input should be a two-column list of beat arrival times (in seconds) and beat type codes (1 for normal beats, any other value for other types of beats). The output contains a subset of the beat arrival times, with a sample of the HR signal (in units of beats per minute) following each time. The scanf and printf statements may be replaced if different input or output formats are required.

Note that this algorithm aggressively rejects intervals likely to be outliers (whether due to ectopic beats, falsely detected beats, missed beats, or simply mismeasured beat arrival times). When used to derive a Lomb PSD estimate, this strategy works well, and permits robust derivation of spectra even from highly corrupted time series.

When deriving FT or AR spectra, less stringent criteria must be used, since the cost of deleting samples is high (either they must be replaced, or the entire time series must be discarded).

#include <stdio.h>
#include <math.h>
#define NORMAL 1
#define OTHER  2
#define TOL   10    /* tolerance (bpm) */

    double ihr, ihrp, mhr = 70., t, tp;
    int b, bp = OTHER;

    while (scanf("%lf%d", &t, &b) == 2) {
        if (b == NORMAL) {
            ihr = 60./(t - tp);
            mhr += (ihr - mhr)/10.;
            if (bp == NORMAL &&
                fabs(ihr - ihrp) < TOL &&
                fabs(ihr - mhr) < TOL)
                printf("%g %g\n", tp, ihr);
            bp = NORMAL;
            tp = t;
            ihrp = ihr;
            bp = OTHER;

George B. Moody\\
MIT Room E25-505A, Cambridge, MA 02139 USA.\\

next up previous
Up: Spectral Analysis of Heart Previous: Acknowledgements
George B. Moody 2002-04-22