Heart Rate Analysis Laboratory
This page is designed to help people interested in examinning and/or analyzing
heart rate data, specifically RR interval data. A summary of the different types
of experiments and analyses one can do can be found in
Putting your heart into physics, which is published in AJP:
P.B. Siegel, A. Urhausen, J. Sperber, and W. Kindermann, Am. J. Phys. 72, 324-332 (March 2004),
as well as
Nonstationary time series analysis of heart rate variability,
P.B. Siegel, J. Sperber, W. Kindermann, and A.
Urhausen, Los Alamos Preprint Archive: Quantitative Biology QM/0410010 (Oct 2004).
The data that is analyzed is a series of successive "RR intervals". The RR interval is
the time between the "R" peaks (in an EKG) of successive heart beats. The RR interval
is simply the time between successive heart beats. One can measure the RR interval to an accuracy
of a milli-sec, and is usually recorded to this accuracy. The data we analyze is in the format
of a text file, which is a list of the RR interval times in units of msec. This is the file
format that is saved by Polar's RS800 heart rate monitor, and we show some sample data below.
- Basic RR interval Analyzer (reads CRLF for new line);
Use rrbasic_LF for reading LF for new line.
To analyze 4 consecutive beats use rrbasic4_LF:
One can use these programs to calculate the
average heart rate, beat to beat variability, and the Respiratory Sinus Arrhythmia (RSA) amplitude.
- Choose a *.txt file with the browse button, then upload the file. The RR interval in msec is displayed
as a function of beat number.
- The blue cursor is the starting beat, and the red cursor is the ending beat for the analysis. Use the
"starting beat" and "total beat" buttons to select the window for the analysis. The corresponding beat
number and RR interval times are displayed.
- One can pan across the data by using the "pan" buttons. The button "xmax=100" ("xmax=800") will
display 100 (800) beats across the horizontal axis.
- The "Average Stats" button will calculate the average heart rate, the average RR interval time,
the standard deviation of the RR interval times (in msec), and the average square of the beat-to-beat change for
the "beat window" which starts at the red and ends at the blue cursor.
- To measure the RSA amplitude, enter the number of breathing periods in the beat window, which
will determine your estimate of the breathing rate. Then
click the "analyze" button. A window will open up with the results. The breathing rates and
corresponding RSA amplitudes will be listed, centered around the breathing rate you choose. You
should see a peak at the subjects breathing rate. If there is no peak, then choose a different
number of breathing periods and try again. The program uses a discrete fourier analysis to determine
the RSA amplitudes.
- FFT analyzer (CRLF files)
(for LF files use rrfft_LF):
One can use this program to perform a FFT on the RR interval data.
- Upload the data to be analyzed as in rrbasic. The pan button, cursors and "ave stats" function as in
- For the analysis, you can choose do analyze either n=64, n=128, or n=256 beats by clicking on
one of the "total beats" buttons.
- To perform a FFT (Fast Fourier Transform) click on "analyze", and a graph of the FFT will be
displayed below the button.
- The graph is the amplitude of the FFT versus frequency, with all of the n/2 amplitudes displayed.
The extreme right point has a frequency of 1/2 (beats-1).
- The green line corresponds to a frequency of 0.15 Hz, measured in real time. The "Low Freq Var"
is the sum of the amplitudes with frequency less than 0.15 Hz (the green line). The "High Freq Var" is the sum
of the amplitudes with frequency greater than 0.15 Hz. The "Total Var" is the sum of the two, and
should be roughly equal to the standard deviation.
- To calculate the "low frequency power", just square the amplitudes. It is believed that the
high frequency variability is related to the parasympathetic, and the low frequency to the
- metro12b: metro12 is a wav file to assist the subject in controlled
breathing at 12 breaths/min. The file produces "beeps" with increasing the decreasing pitch. The subject
should breath in with the increasing pitched tones, and breath out with the decreasing pitched tones.
The breathing rate is 12 breaths/min, which is a rate well suited to measure the parasympathetic influcence
on the heart rate. It is believed that the RSA at 12 breaths/min is roughly proportional to the parasympathetic
- Sample 1: The subject breaths controlled at 12 breaths/min by listening to
the file metro12b.wav above. The subject starts in the lying position, and at around beat number 470 the subject
stands. Lying, the heart rate is around 63 beats/min and the RSA amplitude is around 108 msec.
Standing, the heart rate increased to around 78 beats/min and the RSA amplitude decreased to around 44 msec.
The data is consistent with a reduction of the parasympathic influence when changing from the lying to standing
position. The reduction of the parasympathetic influence increased the heart rate and reduced the
- Sample 2: Here the subject starts in the lying position, then stands at around
beat number 450. The subject is not trying to breath at 12 breaths/min, but is breathing naturally.
Eventhough breathing is not controlled, the RSA is clearly seen in the lying position. The difference between
lying and standing is also clearly seen. Lying, the heart rate is around 55 beats/min and the RSA amplitude
around 90 msec for 10 breaths/min. Standing, the heart rate is around 80 beats/min and the RSA amplitude around 12 msec
for 13 breaths/min. As in the controlled breathing case, the reduction of the parasympathetic influence
increased the heart rate and reduced the RSA amplitude.
Siegel's home page
Physics Home page |
College of Science