Forum: helpMonitor Forum | Start New Thread
|RE: Threshold limits in "FilterNIHR" [ reply ]|
By: Xose A. Vila on 2017-10-24 08:39
The filtering algorithm loops over the input sequence, accepting beats that fulfill the following conditions:
Difference in % between instantaneous heart rate at the present beat and the previous one must be less than ULAST
or difference in % between instantaneous heart rate at the present beat and the following one must be less than ULAST
or difference in % between instantaneous heart rate at the present beat and the mean value of the previous LONG heart rate values must be less than UMEAN
Additionally, a condition is imposed to guarantee that hear rate values are in a “physiologically acceptable range” that, for human people, we fixed in (MINBPM=25,MAXBPM=200)
We estimated appropriate values for ULAST, UMEAN and LONG parameters by processing dozens of records.These values are a compromise. For instance, if ULAST is increased, more beats will be accepted, perhaps including artifacts. But if ULAST is decreased, valid beats may be rejected.
LONG is the size of a buffer containing previous heart rate values. It is used for updating the mean value, but it also works as a timer. Every LONG beats, the values of thresholds ULAST and UMEAN (with initial values of 13 and 1.5*13) are updated. The goal is adapt these thresholds to the variability of the heart rate series. These new values are calculated as:
ULAST=10+standard_deviation(last LONG heart rate values). Additionally, ULAST must be in the (12,20) range.
UMEAN = 1+5*ULAST
This algorithm is based in the one presented in:
Vila, J., et al. "Time-frequency analysis of heart-rate variability." IEEE Engineering in medicine and biology magazine 16.5 (1997): 119-126.
I hope this explanations helps you.
Xosé A. Vila
|Threshold limits in "FilterNIHR" [ reply ]|
By: Yew Wai Liew on 2017-10-12 05:06
I'm very sorry for the wall of text..
1) May I ask - how are the thresholds for the RR artifact filtering determined? For example, the initial threshold "last" of 13(%).
I would like to reference these values, if possible.
2) And also, could you clarify on the 'FilterNIHR' arguments.
From the Package ‘RHRV’ manual (dated February 9, 2017), the functional arguments listed are "last", "minbpm", and "maxbpm". A few other arguments ("mini", "maxi") are no longer in use, but kept for compatibility.
From your book - Heart Rate Variability Analysis with the R package RHRV, Chapter 2, on page 22, under R listing 2.4.1, there is a more complete pseudo-code of the filter, which has the initial default values:
ULAST = 13
LONG = 50
UMEAN = 1.5*ULAST
MINIMUM = 12
MAXIMUM = 20
MINBPM = 25
MAXBPM = 200
I gather that the MINIMUM and MAXIMUM refers to the "mini" and "maxi" respectively, and is no longer in use with the latest RHRV versions? Is the "UMEAN = 1.5*ULAST" still in use? If so, how is the 1.5 multiplier determined?
3) The last bits of the pseudo code end with the ULAST threshold getting updated with a moving SIGNALDEV. This would be a moving standard deviation of the most current last 50 beats.
If the "mini" and "maxi" arguments are no longer in use, specifically, how are the "last" and (updated mean) arguments being updated?
Personally, this filter makes a lot of sense but I would just like some information on the thresholds and how they are being updated.