HRV

Cardio.adaptiveHRVFilterFunction
adaptiveHRVFilter(signal::Vector{<:Real}; removeOutliers::Bool = true, replaceNonNormal::Bool = true, adaptiveControllingCoef::Real = 0.05, proportionalLimit::Real = 10/100, controllingFilterCoef::Real = 3, controllingBasicVariability::Real = 20, physiological_values::Tuple{Real, Real} = (200, 2000))

An adaptive filter for HRV data. Filters out nonphysiological beats in the RR series with the ability to replace them.

Based on: Wessel, N., Voss, A., Malberg, H., Ziehmann, Ch., Voss, H. U., Schirdewan, A., Meyerfeldt, U.,Kurths, J.: Nonlinear analysis of complex phenomena in cardiological data, Herzschr. Elektrophys., 11(3), 2000, 159-173, doi:10.1007/s003990070035.

Input

  • signal: HRV in ms

Keyword Arguments

  • removeOutliers: option if nonphysiological outliers shall be removed, defaults to true
  • replaceNonNormal: if true, non normal HRV values are replaced with a random value sampled from an adaptive interval to not falsely decrease variability.
  • physiological_values: Definition of the physiological value range, scheme: (min, max), defaults to (200, 2000)
  • adaptiveControllingCoef: Controlling coefficient for the adaptive mean, ∈ [0,1] and defaults to 0.05
  • proportionalLimit: Proportional limit for the exclusion rule, defaults to 10%
  • controllingFilterCoef: Filter coefficient in the final controlling procedure , defaults to 3
  • controllingBasicVariability: Basic variability in the controlling procedure to reduce filtering errors for time series with low variability, defaults to 20 ms

Return

Return value depends on keyword args

julia> adaptiveHRVFilter(signal)
source