- June 10, 2025
Not enough time? Get the key points instantly.
A PPG (photoplethysmography) sensor measures one thing directly: how much light gets absorbed as it passes through or reflects off tissue, moment to moment. Blood volume in the tissue changes with every heartbeat, and blood absorbs light differently than surrounding tissue does, so that raw light measurement rises and falls in a repeating waveform that tracks the cardiac cycle. The PPG waveform components that matter - the pulse peak, the trough, the slow baseline drift underneath are what every downstream measurement actually reads.
Everything downstream - heart rate, oxygen saturation, respiratory rate comes from analyzing different features of that same waveform: how far apart the peaks are, how the absorption ratio between two light wavelengths compares, or how the waveform's baseline and amplitude slowly drift over several seconds. Understanding how PPG sensors track vital signs means understanding which feature of the waveform each measurement actually reads, because a sensor and firmware tuned for one measurement isn't automatically tuned for another.
Heart rate is the most direct measurement PPG provides, because it comes straight from the waveform's basic shape. Each heartbeat produces a pulse in the waveform - a sharp rise as blood volume increases, followed by a slower fall and the time between consecutive pulse peaks is the inter-beat interval (IBI). Heart rate in beats per minute is just 60 divided by that interval, averaged over a short window to smooth out noise.
The hard part isn't the math - it's reliably finding the peak in a noisy real-world signal. A PPG heart rate detection algorithm typically combines a bandpass filter to remove baseline drift and high-frequency noise, followed by a peak-detection method tuned to reject false peaks caused by motion.
Peak Detection Method | How It Works | Trade-off |
|---|---|---|
Threshold based | Flags a peak when the signal crosses a set level | Simple and fast, but struggles with varying signal amplitude |
Derivative-based | Looks for the steep rising edge characteristic of a pulse | More robust to amplitude changes, more sensitive to noise spikes |
Template matching | Compares incoming signal shape to a known pulse template | Most robust to motion, but more compute-intensive |
This is also where the sensor and firmware challenges from continuous wearable monitoring show up most - a clean peak on a still wrist becomes a much harder detection problem the moment someone starts walking.
SpO2 measurement using PPG requires something heart rate doesn't: at least two different light wavelengths, typically red (~660nm) and infrared (~940nm). Oxygenated and deoxygenated hemoglobin absorb these two wavelengths differently, and that difference is the entire basis for the measurement.
Wavelength | Absorbed More By | Role in SpO2 Calculation |
|---|---|---|
Red (~660nm) | Deoxygenated hemoglobin | Numerator in the ratio-of-ratios calculation |
Infrared (~940nm) | Oxygenated hemoglobin | Reference wavelength, less oxygen-sensitive |
The sensor measures the pulsatile (AC) and steady (DC) components of the signal at both wavelengths, computes a ratio for each wavelength, and then takes a ratio of those two ratios - a value that correlates with actual blood oxygen saturation through a calibration curve built from clinical reference data. This "ratio-of-ratios" method is why SpO2 can't be derived from a single-wavelength heart rate sensor; the second wavelength isn't optional, it's the entire mechanism.
Respiratory rate from a PPG signal comes from an entirely different part of the waveform than heart rate or SpO2 - not the individual pulses, but how those pulses slowly change over several seconds as a person breathes. Breathing affects the cardiovascular system enough to show up as three distinct patterns layered on top of the faster heartbeat signal.
Amplitude modulation - the height of each pulse varies slightly with the breathing cycle, since blood flow to peripheral tissue changes with intrathoracic pressure during inhalation and exhalation
Baseline wander - the signal's underlying baseline drifts up and down at the breathing rate, driven by broader changes in blood volume and vascular tone
Frequency modulation - heart rate itself varies subtly with the breathing cycle, a phenomenon called respiratory sinus arrhythmia
Extracting respiratory rate means filtering the PPG signal to isolate this slow variation (typically 0.1–0.5 Hz, far below heart rate's frequency range) and finding its dominant frequency - a fundamentally different filtering problem than finding heartbeat peaks, which is why respiratory rate estimation from PPG tends to be noisier and less standardized across devices than heart rate.
Heart rate variability PPG measurement pushes signal quality requirements further than a simple heart rate number does, because HRV depends on precisely measuring the small differences between consecutive inter-beat intervals - not just the average rate. A heart rate reading can tolerate a fair amount of noise and still land close to correct; HRV cannot, because the metric itself is defined by variation that's easy to swamp with sensor noise or motion artifact.
This is why HRV features are typically only enabled during still periods (like sleep) in consumer wearables - the signal quality required to trust the beat-to-beat timing simply isn't achievable during active motion with current PPG sensor technology.
HRV needs a higher sampling rate than heart rate alone, since beat-timing precision depends on catching the exact moment of each pulse
Motion artifact tolerance is much lower for HRV than for a simple average heart rate, since a single mistimed beat skews the variability calculation
Restricting measurement windows to rest periods is a design choice, not a limitation of the math - it's how products keep HRV numbers trustworthy given current sensor and filtering capability
Vital Sign | Wavelengths Needed | Sampling Rate | Motion Tolerance |
|---|---|---|---|
Heart rate | 1 (typically green) | 25–100 Hz | Moderate - filtering can compensate for some motion |
SpO2 | 2+ (red and infrared) | 25–100 Hz | Low - motion corrupts the ratio calculation quickly |
Respiratory rate | 1 (same as heart rate) | 25–100 Hz, plus longer analysis window | Low - slow signal is easily masked by motion noise |
HRV | 1 (same as heart rate) | 100+ Hz for beat-timing precision | Very low - typically restricted to still periods |
Designing a PPG-based product around a single vital sign is straightforward; supporting all four well is a genuinely different engineering problem, since SpO2 alone forces a second wavelength that a heart-rate-only design wouldn't need, and HRV forces a sampling rate and noise floor that heart rate alone doesn't require.
Start with the vital sign that defines the product's core value, and design the sensor and firmware around that first
Add SpO2 only if the second wavelength and its added power draw are justified by an actual clinical or product requirement
Treat HRV as an advanced feature, not a default — it demands the tightest noise floor and sampling rate of everything on this list
How PPG sensors track vital signs comes down to reading different features of the same underlying waveform - pulse timing for heart rate, dual-wavelength absorption ratios for SpO2, slow amplitude and baseline shifts for respiratory rate, and precise beat-to-beat timing for HRV. Each one asks something different of the sensor hardware and the firmware processing it, and getting that scoping right before finalizing a design avoids building capability the product doesn't need or missing capability it does.
If you're designing a PPG-based medical wearable and want a second opinion on sensor selection or signal processing architecture for the vital signs your product actually needs, CoreFragment's team can review your requirements and flag the trade-offs early.