Analysis of differential photoplethysmography signal patterns in apnea and hypopnea
- Joachim Behar
- 1 day ago
- 3 min read
By Márton Áron Goda, Arie Oksenberg, Ali Azarbarzin and Joachim A Behar
Pyppg toolbox used in the analysis: https://pyppg.readthedocs.io/en/latest/
Can a smartwatch tell the difference between apnea and hypopnea?
Wearables already track heart rate, sleep timing, and sometimes even blood oxygen. But obstructive sleep apnea (OSA) isn’t just “events happened” vs. “events didn’t happen”—there are different kinds of breathing disturbances, mainly apneas (near-complete airflow cessation) and hypopneas (partial airflow reduction). This paper asks a practical question: Can a photoplethysmography (PPG) signal, like the optical sensor in a smartwatch, distinguish apnea from hypopnea reliably, and does body position (supine vs. lateral) change those patterns?
First, what is PPG and why would it “see” breathing events?
PPG is an optical measurement of changes in blood volume in tissue. During sleep-disordered breathing, the body cycles through oxygen drops, arousals, and autonomic surges, physiology that can leave fingerprints on the pulse waveform. Prior work suggests a typical pattern: PPG amplitude may rise during an apnea (vasodilation) and drop after the event (sympathetic vasoconstriction), hinting that PPG could help characterize events and not just detect them.
The study in a nutshell
Researchers analyzed overnight polysomnography data from a large cohort and focused on 263 people with severe OSA (AHI ≥ 30). They extracted over 57,000 respiratory events occurring during N2 sleep and compared four event types:
Supine apnea
Supine hypopnea
Lateral apnea
Lateral hypopnea
The goal was to train machine learning models to:
Distinguish apnea vs. hypopnea within a posture, and
Distinguish posture (supine vs. lateral) within an event type.
How were the experiments run?
1) Careful event selection
Restricted analysis to obstructive apneas/hypopneas during N2 and required participants to have enough time in both supine and lateral positions so comparisons were fair.
2) Feature extraction from the PPG waveform
Used automated tools to compute a wide set of PPG-derived features (nearly 90 total), alongside beat-to-beat variability measures.
3) Patient-safe machine learning
Split data by patient. Trained a logistic regression model with feature selection and repeated the process many times using different splits to find stable, reliable predictors.
The headline results
PPG did a solid job separating apnea from hypopnea
Using only PPG-derived features, the model achieved:
AUROC 0.80 for apnea vs. hypopnea in lateral position
AUROC 0.83 for apnea vs. hypopnea in supine position
That’s meaningful discrimination especially because the model didn’t rely on an obvious shortcut like feeding the event duration directly into the classifier.
But PPG struggled to tell whether the event happened supine vs. lateral
When the task flipped to posture classification, performance dropped:
AUROC ~0.62 for apneas
AUROC ~0.64 for hypopneas
In other words: PPG seems better at identifying “what kind of event” than “what position you were in.”
A surprising twist: it wasn’t amplitude features doing most of the work
Even though amplitude differences are often discussed in the context of respiratory events, the model leaned most heavily on time-related features rather than amplitude-derived ones. That’s encouraging for wearables, because amplitude can be sensitive to sensor contact, motion, and device differences—while timing features may generalize more cleanly.
Why posture differences were hard to detect
The paper offers a plausible explanation: posture classification may be hard because event durations were similar across postures, limiting how much the physiology differed between supine and lateral for the same event type. Meanwhile, apneas were notably longer than hypopneas overall—so separating those two categories remained easier.
Do events change over the night?
A common assumption is that respiratory events get longer toward morning. In this analysis, the researchers did not see a consistent increase in event length over the course of the night (within the N2-focused window), and the key PPG patterns used for classification stayed broadly stable across night segments.
What this could mean for wearables
If your goal is screening or tracking OSA trends over time, being able to distinguish apnea vs. hypopnea from a simple optical signal is a big deal. It suggests a wearable might eventually report something more nuanced than “you had events,” such as whether a night is dominated by more apnea-like vs. hypopnea-like disturbances—potentially adding clinical context without extra hardware.
Limitations (and what should happen next)
The authors highlight several important limitations:
The work focuses on apnea vs. hypopnea differentiation, not full end-to-end detection that includes normal breathing.
It’s based on one dataset, so external validation is still needed.
The cohort included severe OSA only and analysis was limited to N2 sleep and obstructive events; future work should test across all severities and sleep stages, and include other event types.
Takeaway
This study’s message is pretty straightforward:
Yes: PPG features can distinguish apnea vs. hypopnea reasonably well (AUROC ~0.80–0.83) in severe OSA during N2 sleep.
Not yet: PPG features alone are not very good at identifying posture (AUROC ~0.62–0.64).
The most useful signals may be more about timing/structure than raw amplitude, which is a promising sign for wearable robustness.




Comments