Signal extraction, filtering, and noise reduction pipeline for a wearable cortisol level monitoring system based on PEDOT:PSS organic electrochemical transistors (OECTs). Developed as part of the OECT Biosensor Design project (LTspice, KiCad).
Raw signal = baseline drift + cortisol response + thermal noise + flicker noise + 50Hz powerline
- Bandpass filter (Butterworth, 0.05–200 Hz) — removes baseline wander
- Notch filter (50 Hz, Q=30) — eliminates powerline interference
- Baseline estimation — moving average over pre-stimulation window
- Cortisol extraction — delta signal from baseline to steady state
| Metric | Value |
|---|---|
| SNR before filtering | ~12 dB |
| SNR after filtering | ~28 dB |
| Concentration error | < 5% across 10–200 nM range |
pip install numpy scipy matplotlib
python signal_processing.pysignal_processing.png— raw vs filtered vs clean signal + FFT spectrumsnr_vs_concentration.png— SNR across cortisol concentration range
The same signal processing principles (SNR optimisation, noise modelling, filtering) apply directly to atomic sensors and magnetometry — key areas in quantum sensing and devices.
Python, NumPy, SciPy signal processing, FFT, Butterworth/notch filters, SNR analysis, noise modelling