Kalman Filter Applied to PPG Heart Rate Estimation

The Kalman filter is an optimal recursive Bayesian estimator for linear-Gaussian state-space models, applied to PPG for continuous heart rate tracking by modeling cardiac dynamics as a stochastic state variable and filtering noisy PPG observations. It fuses motion sensor data with spectral PPG features to maintain accurate heart rate estimates during artifact periods.

In the context of PPG heart rate estimation, the state vector typically encodes instantaneous heart rate and its rate of change (acceleration). The process model predicts heart rate evolution based on physiological constraints (e.g., maximum 10 bpm change per second). The observation model maps the predicted state to spectral features extracted from the PPG — typically the dominant frequency in the 0.5–4 Hz band. The Kalman gain weights the innovation (prediction error) based on the ratio of process noise to observation noise covariances.

The Extended Kalman Filter (EKF) handles nonlinear observation models where heart rate maps nonlinearly to spectral observations under motion. For PPG, EKF with sigma-point updates (Unscented KF) provides better tracking through motion artifact episodes compared to standard EKF linearization. Akhbari et al. (2016) demonstrated that UKF with a physiologically-constrained state model achieves mean absolute heart rate error of 1.5 bpm during treadmill running — comparable to dedicated deep learning approaches.

Multi-rate Kalman fusion combines low-rate PPG heart rate measurements (computed every 5–10 seconds) with high-rate accelerometer-derived step rate (available every 1–2 seconds) to maintain continuous heart rate estimates during signal loss. This approach is particularly valuable for HIIT workouts where PPG quality intermittently drops below usable SNR thresholds. Consumer fitness trackers including Garmin and Polar now use variants of Kalman-based sensor fusion in their optical HR algorithms.

Frequently Asked Questions

What are the process and measurement noise matrices for PPG Kalman filtering?

Process noise Q is typically a 2×2 matrix with variance ~1 bpm²/s for HR and ~0.1 bpm²/s² for HR rate. Measurement noise R is signal-quality dependent, ranging from 2–5 bpm² for clean PPG to 50+ bpm² for heavily corrupted segments.

Can Kalman filter handle missing PPG observations?

Yes. During artifact segments, the Kalman prediction step runs without measurement update, maintaining HR estimates based on the physiological model alone. Uncertainty (covariance P) grows during missed observations, automatically widening confidence intervals.

Is Kalman filtering better than simple peak-counting for heart rate?

For clean signals, simple peak counting achieves similar accuracy. Kalman filtering provides significant advantage during transient artifacts, irregular rhythms, and during tracking through motion episodes where peak detection fails.

Related Algorithms