Blog post by Marco Altini
Next week Apple will host their usual annual event in which they will unveil their new iPhone and also a release date for iOS10. With each new iOS version come a few challenges for developers, as some of the underlying mechanisms in the operating system might change.
On our side, the main concern is always the same: will we be able to use the camera-based algorithms and maintain a high quality app which can effectively replace an ECG or chest strap?
Short answer: Yes, while a few things changed, it all works the same and the camera based algorithms are as reliable under iOS10.
Long answer: check out the data below for a few examples similar to the ones we have shown in the past during our clinical validations.
The last check we will have to run will be on the new iPhone 7, to make sure that also on new hardware everything works the same. However, for anyone with an iphone 5 or 6, we can already confirm that HRV4Training & the camera based algorithms won't be affected.
Camera vs Polar H7
The setup for these tests is always the same we use when we are not at the lab. We have a custom app that records PPG and Bluetooth data at the same time, and also computes already RR intervals for the camera based algorithms, storing them to file together with the RR intervals sent by the chest strap. You can see a screenshot of the app here.
The only disclaimer here is that as the two system have to run together, for synchronization reasons, we might mess up the camera data a little. Hence, this is a worst case scenario analysis. The reason is that the bluetooth radio interrupts the camera every time we receive a packet, so every second, and this operation while necessary for synchronization, is not ideal as all the camera does is extremely time-sensitive. We always validated things this way and results turned out very good, so for now this will do.
We will look at three segments, one simply following a 10 breaths/minute breathing rate for 3 minutes, and other two alternating self paced breathing and deep breathing. This way we will be able to cover a decent range of heart rates and rMSSD, as well as clearly see breathing effects on RR modulation (RSA), so that RR intervals shorten when breathing in, and get longer when breathing out.
Paced breathing, 10 breaths/min
The two time series of RR intervals shown below are very close, with a small artifact across the 1 minute vertical line, which is then handled by the artifact correction (as you can see from the overall rMSSD, which is only 1ms apart, considering that repeated measures can differ by up to 5-20ms, and synchronization here is not perfect, there is no difference between the two methods).
Alternating self-paced breathing and deep breathing
The two plots below show both a combination of self-paced breathing and deep breathing. We can clearly see the swings in RR intervals due to paced breathing, as the effect of RSA is much stronger. rMSSD is once again only 3 ms apart.
Second segment, with similar considerations (effect of RSA/deep breathing):
Minute by minute rMSSD & heart rate
Visually we can already see there is a very strong correlation between RR intervals captured between the two methods in all plots above, however correlation is not necessarily a good metric in this case, as rMSSD is very time sensitive and we need to make sure that RR intervals are not only correlated, but actually matching very closely what we get from our chest strap.
I computed already rMSSD over the entire segment and printed it in the plot above (see the titles), where we can see they are indeed the same across conditions. However, I've also split each segment above in 1 minute windows, as most users use 1 minute measurements, to compare also minute by minute data. This way we can also see how the algorithms perform on different subsets of the signals, where HRV differs a lot due to breathing effects.
Below you can see both rMSSD and heart rate for minute by minute data, as collected by the camera and Polar H7 on iOS 10:
Results are very good even on a minute by minute basis, on a decent rMSSD range (45 to 120ms). This is a preliminary analysis, but everything seems very much in line with what we reported in the past.
Other minor changes
Not much else has changed in iOS10 for what concerns the current features in HRV4Training, with the main issues being some extra information we need to provide in order to write to the Health app. Make sure to keep your app up to date!
1. Context & Time of the Day
3. Paced breathing
4. Orthostatic Test
5. Slides HRV overview
1a. Acute Changes in HRV
1b. Acute Changes in HRV (population level)
1c. Acute Changes in HRV & measurement consistency
1d. Acute Changes in HRV in endurance and power sports
2a. Interpreting HRV Trends
2b. HRV Baseline Trends & CV
3. Tags & Correlations
4. Ectopic beats & motion artifacts
5. HRV4Training Insights
6. HRV4Training & Sports Science
7. HRV & fitness / training load
8. HRV & performance
9. VO2max models
10. Repeated HRV measurements
11. VO2max and performance
12. HR, HRV and performance
13. Training intensity & performance
14. Publication: VO2max & running performance
Camera & Sensors
1. ECG vs Polar & Mio Alpha
2a. Camera vs Polar
2b. Camera vs Polar iOS10
2c. iPhone 7+ vs Polar
2d. Comparison of PPG sensors
3. Camera measurement guidelines
4. Validation paper
1. Features and Recovery Points
2. Daily advice
3. HRV4Training insights
4. Sleep tracking
5. Training load analysis
5b. Training load analysis: acute to chronic ratio
6a. Integration with Strava
6b. Integration with TrainingPeaks
6c. Integration with SportTracks
6d. Integration with Genetrainer
6e. Integration with Apple Health
7. HRV4T Coach advanced view
8. Acute HRV changes by sport
9. Remote tags in HRV4T Coach
10. VO2max Estimation
11. Acute stressors analysis
12. Training Polarization
1. Intro to HRV
2. HRV normal values
3. HRV by sport
4. HRV, strength & power
5. AngelSensor & HRV
6. HRV 101: How to
7. Top 5 most read articles
8. HRV normalization by HR