mhrv.hrv
¶
hrv_time()
¶

mhrv.hrv.
hrv_time
(nni, varargin)¶ Calculates timedomain HRV mertics from NN intervals.
 Parameters
nni – Vector of NNinterval dirations (in seconds)
varargin –
Pass in namevalue pairs to configure advanced options:
pnn_thresh_ms: Optional. Threshold NN interval time difference in milliseconds (for the pNNx HRV measure).
plot: true/false whether to generate a plot. Defaults to true if no output arguments were specified.
 Returns
Table containing the following HRV metrics:
AVNN: Average NN interval duration.
SDNN: Standard deviation of NN interval durations.
RMSSD: Square root of mean summed squares of NN interval differences.
pNNx: The percentage of NN intervals which differ by at least x (ms) (default 50) from their preceding interval. The value of x in milliseconds can be set with the optional parameter ‘pnn_thresh_ms’.
SEM: Standard error of the mean NN interval length.
hrv_freq()
¶

mhrv.hrv.
hrv_freq
(nni, varargin)¶ NN interval spectrum and frequencydomain HRV metrics This function estimates the PSD (power spectral density) of a given nninterval sequence, and calculates the power in various frequency bands.
 Parameters
nni – RR/NN intervals, in seconds.
varargin –
Pass in namevalue pairs to configure advanced options:
methods: A cell array of strings containing names of methods to use to estimate the spectrum. Supported methods are:
lomb
: Lombscargle periodogram.ar
: YuleWalker autoregressive model. Data will be resampled. No windowing will be performed for this method.welch
: Welch’s method (overlapping windows).fft
: Simple fftbased periodogram, no overlap (also known as Bartlett’s method).
In all cases, a window will be used on the samples according to the
win_func
parameter. Data will be resampled for all methods exceptlomb
. Default value is{'lomb', 'ar', 'welch'}
.time_intervals: specify the time interval vector tnn. If it is not specified then it will be computed from the nni time series.
power_methods: The method(s) to use for calculating the power in each band. A cell array where each element can be any one of the methods given in ‘methods’. This also determines the spectrum that will be returned from this function (pxx). Default: First value in
methods
.norm_method: A string, either
total
orlf_hf
. Iftotal
, then the power in each band will be normalized by the total power in the entire frequency spectrum. Iflf_hf
, then only for the LF and HF bands, the normalization will be performed by the (LF+HF) power. This is the standard method used in many papers to normalize these bands. In any case, VLF and userdefined custom bands are not affected by this parameter.band_factor: A factor that will be applied to the frequency bands. Useful for shifting them linearly to adapt to nonhuman data. Default: 1.0 (no shift).
vlf_band: 2element vector of frequencies in Hz defining the VLF band. Default: [0.003, 0.04].
lf_band: 2element vector of frequencies in Hz defining the LF band. Default: [0.04, 0.15].
hf_band: 2element vector of frequencies in Hz defining the HF band. Default: [0.15, 0.4].
extra_bands: A cell array of frequency pairs, for example
{[f_start,f_end], ...}
. Each pair defines a custom band for which the power and normalized power will be calculated.window_minutes: Split intervals into windows of this length, calcualte the spectrum in each window, and average them. A window funciton will be also be applied to each window after breaking the intervals into windows. Set to [] if you want to disable windowing. Default: 5 minutes.
detrend_order: Order of polynomial to fit to the data for detrending. Default: 1 (i.e. linear detrending).
ar_order: Order of the autoregressive model to use if
ar
method is specific. Default: 24.welch_overlap: Percentage of overlap between windows when using Welch’s method. Default: 50 percent.
win_func: The window function to apply to each segment. Should be a function that accepts one parameter (length in samples) and returns a window of that length. Default: @hamming.
plot: true/false whether to generate plots. Defaults to true if no output arguments were specified.
 Returns
hrv_fd: Table containing the following HRV metrics:
TOTAL_POWER: Total power in all three bands combined.
VLF_POWER: Power in the VLF band.
LF_POWER: Power in the LF band.
HF_POWER: Power in the HF band.
VLF_NORM: 100 * Ratio between VLF power and total power.
LF_NORM: 100 * Ratio between LF power and total power or the sum of LF and HF power (see ‘norm_method’).  HF_NORM: 100 * Ratio between HF power and total power or the sum of LF and HF power (see
norm_method
).LF_TO_HF: Ratio between LF and HF power.
LF_PEAK: Frequency of highest peak in the LF band.
HF_PEAK: Frequency of highest peak in the HF band.
BETA: Slope of loglog frequency plot in the VLF band.
Note that each of the above metrics will be calculated for each value given in
power_methods
, and their names will be suffixed with the method name (e.g. LF_PEAK_LOMB).pxx: Power spectrum. It’s type is determined by the first value in
power_methods
.f_axis: Frequencies, in Hz, at which pxx was calculated.
hrv_nonlinear()
¶

mhrv.hrv.
hrv_nonlinear
(nni, varargin)¶ Calcualtes nonlinear HRV metrics based on Poincaré plots, detrended fluctuation analysis (DFA) 2 and Multiscale Entropy (MSE) 3.
 Parameters
nni – RR/NN intervals, in seconds.
varargin –
Pass in namevalue pairs to configure advanced options:
mse_max_scale: Maximal scale value that the MSE will be calculated up to.
mse_metrics: Whether to output MSE at each scale as a separate metric.
sampen_r:
r
value used to calculate Sample Entropysampen_m:
m
value used to calculate Sample Entropyplot: true/false whether to generate plots. Defaults to true if no output arguments were specified.
 Returns
hrv_nl: Table containing the following HRV metrics:
SD1: Poincare plot SD1 descriptor (std. dev. of intervals along the line perpendicular to the line of identity).
SD2: Poincare plot SD2 descriptor (std. dev. of intervals along the line of identity).
alpha1: Loglog slope of DFA in the lowscale region.
alpha2: Loglog slope of DFA in the highscale region.
SampEn: The sample entropy.
 2
Peng, C.K., Hausdorff, J. M. and Goldberger, A. L. (2000) ‘Fractal mechanisms in neuronal control: human heartbeat and gait dynamics in health and disease, Selforganized biological dynamics and nonlinear control.’ Cambridge: Cambridge University Press.
 3
Costa, M. D., Goldberger, A. L. and Peng, C.K. (2005) ‘Multiscale entropy analysis of biological signals’, Physical Review E  Statistical, Nonlinear, and Soft Matter Physics, 71(2), pp. 1–18.
hrv_fragmentation()
¶

mhrv.hrv.
hrv_fragmentation
(nni, varargin)¶ Computes HRV fragmentation indices 1 of a NN interval time series.
 Parameters
nni – Vector of NNinterval dirations (in seconds)
 Returns
Table containing the following fragmentation metrics:
PIP: Percentage of inflection points.
IALS: Inverse average length of segments.
PSS: Percentage of NN intervals that are in short segments.
PAS: Percentage of NN intervals that are in alternation segments of at least 4 intervals.
 1
Costa, M. D., Davis, R. B., & Goldberger, A. L. (2017). Heart Rate Fragmentation: A New Approach to the Analysis of Cardiac Interbeat Interval Dynamics. Frontiers in Physiology, 8(May), 1–13.