-
HRVTool – an Open-Source Matlab Toolbox forAnalyzing Heart Rate
Variability
Marcus Vollmer1,2
1 Institute of Bioinformatics, University Medicine Greifswald,
Germany2 German Centre for Cardiovascular Research (DZHK),
Greifswald, Germany
Abstract
Motivation: Many software tools for ECG processingare
commercial. New innovative and alternative featuresfor heart rate
variability analysis (HRV) and improvedmethods in ECG preprocessing
cannot be incorporated.Moreover, software manuals are lacking of
clarity and of-ten conceal the exact calculation methods that makes
clin-ical interpretation difficult, and reproducibility is
reduced.
Software description: HRVTool provides an open-source and
intuitive user-friendly environment for theHRV analysis in Matlab.
The software is availableat http://marcusvollmer.github.io/HRV and
supports theprocessing of ECG, pulsatile waveforms and RR
inter-vals from various sources (mat and text files containingraw
data, Polar, PhysioNet, Hexoskin, BIOPAC, Euro-pean Data Format,
ISHNE Holter Standard Format, andMachine-Independent Beat files).
An integrated heart beatdetector locates R peaks or pulse waves.
Visual inspection,and manual adjustments of beat locations are
possible andthe corresponding annotation file can be saved in a
stan-dard Matlab format or as a delimited text file. HRV
statis-tics are computed in a sliding window to evaluate the
alter-ation over time. HRV metrics can be exported. An anima-tion
of intervals supports pattern identification. Moreoverthe Matlab
class (HRV.m) includes functions for windowedHRV computation that
can be used for batch processing.
1. Introduction
Heart Rate Variability (HRV) analyzes the
physiologicalphenomenon of heart beat variation over time and is
usedto determine autonomic activity of the heart [1]. Disordersin
the regular heart rate as a result of disturbances in theelectrical
system of the heart are called arrhythmia. Expertcardiologists can
identify such a physiological variationof the heart rate by
analyzing the ECG leads (electrocar-diogram) and thereby diagnose
different cardiac disorders.In contrast to arrhythmia screening,
HRV as a measure ofneurovegetative activity is used in remedial
medicine forprognostic purposes, performance objectification and
risk
stratification for cardiovascular events. HRV biofeedbackmethods
are established and heart rate analysis and contin-uous assessment
of HRV as objective features are widelyused beyond the medical
environment, e.g. for assessingthe fitness status, physical and
mental stress level.
Many diverse HRV indices emerged and are usuallyclassified by
nature of processing (time-domain methods,spectral analysis,
geometric methods) and the range of ap-plication (short and
long-term HRV measures), see [1–3].Each of the methods have their
specific strength and weak-nesses in capturing different
characteristics of the inter-beat variations.
Important for valid HRV results is the quality of theECG and the
robust extraction of inter-beat intervals (IBIsor RR intervals)
because many indices are not robustly de-fined in such a way, that
wrong RR intervals do not distortthe overall analysis – although
there are some robust mea-sures such as rrHRV [4]. In general also
pulsatile measure-ments from a fingertip photoplethysmogram or
throughballistocardiography are suitable to extract IBIs.
Popular free HRV software libraries includes: Ku-bios [5],
PhysioNet Cardiovascular Signal Toolbox [6, 7],RHRV [8, 9],
ARTiiFACT [10], HRVAS [11], SinusCor[12], and hrvanalysis 1.
These software libraries usually consists of data im-port tools
with automated algorithms for IBI extraction.Modules for data
screening, manual adjustments, and datacleaning are integrated. HRV
indices are computed, re-sults are shown, and the exports made
available. The toolsdiffer in providing open access to the made
calculations,the usage of HRV indices, the filtering of IBIs for
robustmeasures, accepted data formats, the style of data
repre-sentation, and user-friendly handling [6].
Usually, new innovative and alternative features forheart rate
variability analysis and improved methods inECG preprocessing
cannot be incorporated. We also seedeficits that software manuals
are lacking of clarity and of-ten conceal the exact calculation
methods that makes clin-ical interpretation difficult, and
reproducibility is reduced.
1https://github.com/Aura-healthcare/hrvanalysis
Computing in Cardiology 2019; Vol 46 Page 1 ISSN: 2325-887X DOI:
10.22489/CinC.2019.032
http://marcusvollmer.github.io/HRV
-
In this paper we present an open-source and com-prehensive
Matlab class with transparent code for HRVanalysis and an
open-source intuitive user-interface forthe HRV analysis in Matlab
(HRVTool v1.04 updatedSep 1, 2019). The toolbox and its supporting
func-tions for data import and processing, except of BIOPACimport
functions by Jimmy Shen, are open-source li-censed under MIT
license and made freely available
athttps://github.com/MarcusVollmer/HRV, the project
pagehttp://marcusvollmer.github.io/HRV/, and Matlab Central.
2. Computational methodsData import and heart beat detection
Supported filetypes are listed in Table 1 and includes several
widely usedformats [13] and particular manufacturer formats.
Table 1. Table of supported filesDescription
HRM Polar filesMAT Matlab files containing waveforms or
RR intervals (in ms)TXT text files containing waveforms or
RR intervals (in ms)ECG PhysioNet files
(PhysioNet wfdb toolbox required)WAV Hexoskin filesEDF European
Data FormatACQ BIOPAC data (Source code of Jimmy Shen)ISHNE Holter
Standard Format
(ECG and annotation data)MIBMIBF
Machine Independent Beat file(GE Marquette holter format)
For EDF, MIB, ISHNE, and ACQ particular importfunctions exist in
the GitHub repository, that are com-mented and can be used for
batch processing. In case ofEDF files, all signals can be imported
as a Matlab structureor particular signals can be selected from a
drop-down list.HRVTool allows the import of existing annotation
files ofheart beat locations or runs a robust automated
detectionalgorithm [14] for the identification. Recommended
pa-rameters can be chosen from a drop-down list to allow
thedetection in human or animal (rat) ECGs or in pulsatilesignals
with fast (less accurate) or normal detection speed.Manual settings
can be added to qrs settings.mat.
HRV.m – a Matlab class for HRV analysis HRV.m con-stitutes an
extendable and transparent Matlab class with di-verse functions for
continuous HRV assessment. All avail-able methods listed in Table 2
uses matrix operations asfar as possible to obtain local HRV
measures from long se-quences of RR intervals. Missing values are
supported andno additional Matlab toolboxes are required.
Batch processing The sample batch function (availableon GitHub,
HRV sample batchjob.m) shows an ex-
Table 2. Table of available methods in HRV.mName DescriptionSDSD
Compute standard deviation of succes-
sive differencesSDNN Compute standard deviation of NN inter-
valsRMSSD Compute root mean square of successive
differencespNNx Probability of intervals greater xms or
smaller −xmspNN50 Probability of intervals greater 50ms or
smaller −50mstriangular val Compute Triangular Index and TINNTRI
Compute Triangular index from the inter-
val histogramTINN Compute TINN, performing Triangular
InterpolationDFA Perform Detrended Fluctuation AnalysisCD
Compute the Correlation DimensionApEn Approximate Entropyfft val
fun Spectral analysis of an IBI sequence
(LF,HF,ratio)fft val Continuous spectral analysis in a win-
dowed approach (LF,HF,ratio)returnmap val Results of the
Poincaré plot
(SD1,SD2,ratio)HR Compute the average heart raterrx Compute
relative RR intervalsrrHRV Compute HRV based on relative RR in-
tervalsRRfilter Remove artifacts from RR sequences us-
ing rrxpattern Recognition of patterns and regularities
in data
emplary workflow to process many recordings in a loop.It shows
how HRV measures are calculated from the HRVclass and stores
results in an Excel spreadsheet.
3. Software descriptionTo analyze HRV and for a better
understanding of the
cardiovascular activity, an open-source graphical user
in-terface (GUI) has been created with Matlab 2019a. TheGUI of
HRVTool is hard-coded and does not make useMatlab building apps
(GUIDE/App-Designer). All com-ponents can be modified without
asking. The softwarecomes with three different color schemes: dark
(de-fault), light, and user-specific. Own colors can be set inclr
user.mat.
The Interface The HRVTool GUI is a one-page screenand starts
initially with sample data, such as shown in Fig-ure 1. The menu
bar (from left to right) consists of iconsenabling the ‘Data
import’, ‘Saving of settings’ (appear-
Page 2
https://github.com/MarcusVollmer/HRVhttp://marcusvollmer.github.io/HRV/https://mathworks.com/matlabcentral/fileexchange/52787-marcusvollmer-hrv
-
ECG_I.wav
3540 3545 3550 35550
0.5
1
1.5
Wav
efor
m
ECG_I.wavSample ECG
0.67 0.73 0.81 0.88 0.92 0.85 0.86 0.84 0.81 0.73 0.68 0.66 0.67
0.68 0.73 0.79 0.87 0.91
4.8% 8.9% 10.6% 7.4% 4.8% -7.5% 0.5% -1.8% -3.8% -10.7% -6.1%
-2.9% 1.2% 1.2% 7.2% 8.2% 8.9% 4.4% 3.4% Filter
3540:3555P2
20
Impulse
Ignore beat
Remove
Add
Save annotations
HRV measures
global local footprint3540:3555
P2
3420:3435
P1
median
IQR
shift
rrHRV
Mean RR | HR
SDNN
RMSSD
pNN50
TRI
TINN
SD1 | SD2
SD1/SD2 ratio
LF | HF
LF/HF ratio
3.84
3.59
(+0.01,+0.01)
760 | 79
125.5
30.2
10.1
41.7
625
21.3 | 175.9
0.12
NaN | NaN
NaN
8.83
4.41
(+1.63,+1.35)
782 | 77
85.9
51.2
47.1
6.0
16
34.8 | 112.4
0.31
66.8 | 33.2
2.01
2.40
2.16
(+1.13,+1.03)
807 | 74
41.0
18.5
0.0
6.0
78
11.7 | 51.8
0.23
59.7 |40.3
1.48
-10 -5 0 5 10rr i-1 in %
-10
-5
0
5
10
rri i
n %
Local Return Map
1
2
3
4
5
6
7
8
9
10
11 12
1314
15
16
1RRrr
00:40 01:30 02:20 03:10time
0.4
0.6
0.8
1
1.2
sec
RR Tachogram
0.15 0.4Frequency (Hz)
Spectrum of RR Tachogram
LF/HF ratio = 1.261
LFnu55.76%
HFnu44.24%
globallocal
00:15 00:45 01:15 01:45 02:15 02:45 03:15
75
105
135
165
bpm
Segmentwise HRV analysis
P2P1 HFrrMedian
rrIQRRMSSDSD1/SD2
0.4 0.6 0.8 1 1.2
0.4
0.6
0.8
1
1.2
RR
i
Global Return map
2
4
6
8
60 0.75 visibility on/offLFHF TINN
HRVTool 1.04 | [email protected]
Figure 1. The graphical user interface of HRVTool with light
color scheme is divided into five segments: (top) RR intervalseries
or waveform with annotation editing, (middle-left) HRV results,
(middle-center) return map of selected RR intervalperiod with
option for real time animation of interval dynamics, (middle-right)
RR interval tachogram and spectral density,(bottom) time-course of
heart rate and HRV parameters and return map of entire IBIs with
option to mark outliers and toshow the related period of RR
intervals.
ance of the GUI), ‘Printing’, ‘Matlab property inspector’,‘Copy
to clipboard’ (of results in a Matlab matrix format),adjustment of
‘Font size’, selection of the ‘Color scheme’,and to set the ‘Record
title’. Furthermore, it is possible tosave the analysis as a pdf
figure, Matlab figure, png, matfile, or a csv file containing the
HRV results as given in thescreen (‘files/save as’).
The top module of the HRVTool shows the ECG, pulse,or IBIs in a
narrowed window. Buttons can be used fornavigation or the period of
interest can be directly enteredin the rightmost edit field above
the plot, either as SS:SSor HH:MM:SS..HH:MM:SS. The selected period
of datacan be named by entering a name in the first edit fieldabove
the plot. The name appears in the HRV measurestable (middle-left)
and in the segment-wise HRV plot atthe bottom. The y-axis can be
scaled automatically using
the leftmost button in the upper section. By default, RR
In-tervals or IBIs are filtered from noise, artifacts and
excep-tional beats using relative RR intervals [15]. The
intensitycan be changed (see ‘Filter’ manipulation right to the
timeseries plot). Non-used IBIs are displayed as ‘NaN’ and notused
in HRV calculations. Entering NaN in the filter editfield disables
the filtering of RR intervals.
Current IBIs are visualized in a local return map in themiddle
of the screen. A button will change the displayfrom relative to
absolute pairs of IBIs. There are buttonsto change the display
according to the needs, and the foot-print button will temporary
save the results of the selectedperiod to allow the direct
comparison with other periods.The footprint is illustrated as gray
dots and adds a separatecolumn in the left handed table with HRV
measures thatdenotes the characteristics of the footprint period.
Periodic
Page 3
-
rhythms in the IBIs (e.g. from respiratory sinus arrhyth-mia)
are usually visible here and complex rhythm patternscan be animated
by pressing the ‘play button’ in the rightupper corner of this
module (with speed edit field). Rightto the center the RR tachogram
and its spectral density isplotted. The spectrum uses the fast
Fourier transform onnon-filtered, spline-interpolated RR interval
series.
Time windowed analysis The widescreen plot on thebottom is
showing HRV measures computed from a fixednumber of beats in a
windowed approach. A fixed numberas given in the first edit field
stabilizes the level of impre-cision of HRV measures. The parameter
in the second editfield is the degree of overlapping windows (0.25
means25% overlapping, 0 means distinct periods). At each timepoint
only past RR intervals are used and the higher im-preciseness at
the beginning is highlighted through a redshaded ground in the
plot. The ‘visibility’ icon is here tohide and show certain
measures. The ‘pin’ icon enablesthe selection of named periods in
the experiment.
Manual correction of beat annotations HRVTool en-ables the
editing of annotation files. Several buttons on theright of the
upper plot allows the manual removal and in-clusion of beat
locations. Beats which should not be usedin the HRV analysis can
set to be ‘ignored’. All or justthe local beats can be aligned to
the close maximum orminimum peak. Final annotation files can be
saved in afree format (as mat, txt or csv files). It’s recommended
tovisually checking outliers in pairs of successive RR inter-vals
using the global return map in the bottom right plot bydouble
clicking the outlier after pressing the ‘pin’ icon.
4. SummaryHRVTool constitutes an intuitive easy-to-use
graphical
user interface with transparent methods and convenientways for
modification or to link and edit certain methodsin the HRV analysis
pipeline. Ignored beats, labels of pe-riods and GUI-related
properties can be saved at any timeto allow the continuation of the
manual HRV analysis. Forthis purpose a settings file will be
generated in the samedirectory as the input file. Moreover, batch
processing ispossible with the HRV class, supported by individual
func-tions for data import and heart beat detection.
References
[1] Malik M, Bigger JT, Camm AJ, Kleiger RE, Malliani A,Moss AJ,
Schwartz PJ. Heart rate variability. EuropeanHeart Journal
1996;17(3):354–381. ISSN 0195-668X.
[2] Smith AL, Owen H, Reynolds KJ. Heart rate variabilityindices
for very short-term (30 beat) analysis. Part 1: surveyand toolbox.
Journal of clinical monitoring and computing2013;27(5):569–576.
[3] Smith AL, Owen H, Reynolds KJ. Heart rate variabilityindices
for very short-term (30 beat) analysis. Part 2: vali-dation.
Journal of clinical monitoring and computing
2013;27(5):577–585.
[4] Vollmer M. A robust, simple and reliable measure of
heartrate variability using relative RR intervals. In Computing
inCardiology, volume 42. ISSN 2325-8861, 2015; 609–612.
[5] Tarvainen MP, Niskanen JP, Lipponen JA, Ranta-Aho
PO,Karjalainen PA. Kubios HRV – heart rate variabilityanalysis
software. Computer methods and programs inbiomedicine
2014;113(1):210–220.
[6] Vest AN, Da Poian G, Li Q, Liu C, Nemati S, Shah AJ,Clifford
GD. An open source benchmarked toolbox for car-diovascular waveform
and interval analysis. PhysiologicalMeasurement
2018;39(10):105004.
[7] Goldberger AL, Amaral LAN, Glass L, Hausdorff JM,Ivanov PC,
Mark RG, Mietus JE, Moody GB, Peng CK,Stanley HE. PhysioBank,
PhysioToolkit, and PhysioNet:Components of a new research resource
for complex phys-iologic signals. Circulation
2000;101(23):e215–e220.
[8] Rodrı́guez-Liñares L, Vila X, Mendez A, Lado M, OlivieriD.
RHRV: an R-based software package for heart rate vari-ability
analysis of ECG recordings. In 3rd Iberian Con-ference in Systems
and Information Technologies (CISTI2008). 2008; 565–574.
[9] Martı́nez CAG, Quintana AO, Vila XA, Touriño
MJL,Rodrı́guez-Liñares L, Presedo JMR, Penı́n AJM. Heart
ratevariability analysis with the R package RHRV.
Springer,2017.
[10] Kaufmann T, Sütterlin S, Schulz SM, Vögele C. ARTi-iFACT:
a tool for heart rate artifact processing and heartrate variability
analysis. Behavior research methods 2011;43(4):1161–1170.
[11] Ramshur JT. Design, evaluation, and application of
heartrate variability analysis software (HRVAS). Ph.D.
thesis,University of Memphis Memphis, TN, 2010.
[12] Bartels R, Neumamm L, Peçanha T, Carvalho ARS. Si-nusCor:
an advanced tool for heart rate variability analysis.Biomedical
engineering online 2017;16(1):110.
[13] Trigo JD, Alesanco Á, Martı́nez I, Garcı́a J. A reviewon
digital ECG formats and the relationships betweenthem. IEEE
Transactions on Information Technology inBiomedicine
2011;16(3):432–444.
[14] Vollmer M. Robust detection of heart beats using
dynamicthresholds and moving windows. In Computing in Cardiol-ogy
2014. ISSN 2325-8861, Sept 2014; 569–572.
[15] Vollmer M. Arrhythmia classification in long-term data
us-ing relative RR intervals. In 2017 Computing in
Cardiology(CinC), volume 44. IEEE, 2017; 1–4.
Address for correspondence:
Marcus Vollmer / [email protected] of
Bioinformatics / University Medicine GreifswaldFelix-Hausdorff-Str.
8 / 17475 Greifswald / Germany
Page 4
IntroductionComputational methods[-1.5em]Software
description[-1.75em]Summary[-1.5em]