From ecd5b1568d8d93319fa485cbbf0d9d779e5e72cd Mon Sep 17 00:00:00 2001 From: Antonius Riha Date: Sun, 25 Feb 2018 09:43:24 +0100 Subject: [PATCH] FilterHRV: Calculate rest HR from AVNN #2797 This ensures the filter used for all the other HRV metrics is also applied to rest HR . The previously used "average_hr" metric is calculated without the filter, which leads to skewed results due to the relatively short timespan and data point count of an HRV measurement. --- src/FileIO/FilterHRV.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/FileIO/FilterHRV.cpp b/src/FileIO/FilterHRV.cpp index 468ed22ed..82a60e497 100644 --- a/src/FileIO/FilterHRV.cpp +++ b/src/FileIO/FilterHRV.cpp @@ -283,10 +283,12 @@ FilterHrvOutliers::postProcess(RideFile *ride, DataProcessorConfig *config=0, QS if (setRestHrv) { RideItem *rideItem = ride->context->rideItem(); + double avnn = rideItem->getForSymbol("AVNN"); + HrvMeasure hrvMeasure; hrvMeasure.when = rideItem->dateTime; - hrvMeasure.hr = rideItem->getForSymbol("average_hr"); - hrvMeasure.avnn = rideItem->getForSymbol("AVNN"); + hrvMeasure.hr = !qFuzzyIsNull(avnn) ? 60000 / avnn : 0; + hrvMeasure.avnn = avnn; hrvMeasure.sdnn = rideItem->getForSymbol("SDNN"); hrvMeasure.rmssd = rideItem->getForSymbol("rMSSD"); hrvMeasure.pnn50 = rideItem->getForSymbol("pNN50");