
PPG - Heart Rate and Heart Rate Variability Sensing
Using a fingertip PPG sensor and AD/DA board, we wrote an algorithm to record heart rate data with minimal noise. We performed an FFT analysis to determine the peak heart rate, and also computed HRV from the time-domain signal.


Description
Built a Raspberry Pi–based photoplethysmography (PPG) system using the APDS-9008 light sensor to measure heart rate, heart rate variability (HRV), and recovery time.
Tuned ADC gain and sampling frequency (400 Hz) to avoid clipping and balance noise vs. resolution.
Collected time-domain data, applied FFT with windowing to extract HR frequency, and analyzed motion artifacts and sensor placement.
Demonstrated that fingertip placement yields strong, high-SNR signals, while wrist-based sensing suffers due to physiological and geometric limitations.
Implemented HRV analysis using scipy to calculate max and RMS HRV, showing data quality sensitivity to duration and motion.
Modeled heart rate recovery after exercise with an exponential decay fit to estimate cardiovascular recovery time constant (τ ≈ 87 s).
Learning Outcomes
1. Technical Skills & Knowledge
Raspberry Pi data acquisition and CSV-based data logging
Analog signal tuning: sampling theory, gain, and anti-aliasing
Spectral analysis using FFT with manual windowing
HR/HRV algorithms and signal quality assessment
Modeling physiological data with exponential fits
Sensor placement design and physiological considerations
2. General Project/Practical Skills
Experimental Design: Sensor calibration, testing across body sites, noise control
Data Analysis: Signal processing in Python, noise filtering, HR trend extraction
Troubleshooting: Diagnosed issues like clipping, rocking artifacts, and poor SNR
Scientific Reporting: Interpreting results and drawing insights from noisy biological signals
Full report: https://docs.google.com/document/d/1tX6Lmd7nr55QGjw1kg2u0-U8ADkBJtfbc22XSABrc0g/edit?usp=sharing
Using a fingertip PPG sensor and AD/DA board, we wrote an algorithm to record heart rate data with minimal noise. We performed an FFT analysis to determine the peak heart rate, and also computed HRV from the time-domain signal.
Developed a Raspberry Pi-based PPG system to measure heart rate and HRV, optimizing sensor placement and data acquisition techniques. Analyzed time-domain data using FFT, demonstrating the effectiveness of fingertip sensing over wrist placement. Gained skills in experimental design, data analysis, and troubleshooting while modeling cardiovascular recovery time.