Handling Acceleration and Decelerations for the Heart Rate Prediction

Aug 16, 2023

3 mins read

Why change the mathematical model?

The original idea was to use the same linear model which, in calculating heart rate, took into account the power of the last 15 seconds, the last 30 seconds and so on up to 4 minutes.

The formula was then:

$$ HR = a_0 + \sum_{i=1}^{5}{ a_{2i-1} \times P[-15 \times 2^{i-1}\ldots 0] + a_{2i} \times D[-15 \times 2^{i-1}\ldots 0] } $$

P[a…b] is the average power of the relative moment up to the moment b. P[-15…0], P[-30…0] and P[-60…0] are the average power of 15 seconds. D[a…b] is the standard deviation of power over the interval [a…b]. We therefore take into account the average power of 15, 30s, 60s, 1 minute, 2 minutes and 4 minutes and its average variations. The parameters a0 to a16 are determined in such a way as to minimize the error between the measured heart rate and that produced by the formula.

This model has a main defect: its symmetry. The effect of acceleration is equivalent to that of deceleration.

To understand this, it is sufficient to simplify the formula somewhat and to reduce it to two data: the current power P and the previous one P’. Under these conditions, the formula is more or less: $$ HR = x_1 + x_2 \times P + x_3 \times (P-P’) $$

This formula shows that what counts is the current power and its variation from the previous value. The problem is that this variation is taken into account symmetrically. Whilst an acceleration of 50W produces an increase in heart rate of 20 pulsations, the formula assumes that the 50W deceleration will also cause a 20-pulsation decrease. This is not always true. We know, for example, that for unfit people, the heart rate rises rapidly as it takes time to reduce.

To take this into account, the idea is to take account of the differential variation during acceleration and deceleration. For this reason, the absolute value of the power difference is added in the formula: $$ HR = x_1 + x_2 \times P + x_3 \times (P-P’) + + x_4 \times |P-P’| $$

The other problem is the sampling interval which is not optimal:

  • power over 4 minutes is generally irrelevant. I would say that the power after two minutes of running is negligible.
  • It would be interesting to sample the first seconds more accurately to better tale account interval trainings.


The solution is first of all to change the sampling frequency:

Name Interval of the former algorithm Interval of the new algorithm
I1 [0…15s] [0…10s]
I2 [0…30s] [0…20s]
I3 [0…60s] [0…30s]
I4 [0…120s] [0…40s]
I5 [0…240s] [0…80s]
I6 [0…120s]

We then add the absolute value of the power variation between two intervals. The final formula is then:

$$ HR = a_0 + \sum_{i=1}^{6}{( a_{2i-1} \times P_{Ii} + a_{2i} \times D_{Ii} )} + \sum_{i=1}^{5}{ a_{i+12} \times |P_{Ii} - D_{Ii+1} |} $$


The main implication is that the algorithm need to learn again the correlations between cardiac power and frequency. This means that two or three running sessions must be performed by varying intensities (easy run, fartlek, interval). Then the analysis is again available.

It is difficult, however, to measure the accuracy of this new model with the field tests I did but it seems to better handle the transition phases.

Sharing is caring!