An AI Development Kit (ADK) for physiological signal processing in ambulatory health monitoring and wearable technology.
Overview
physioKIT is an AI Development Kit (ADK) for physiological signal processing in ambulatory health monitoring and wearable technology. It offers tools to process, analyze, and synthesize signals commonly captured by wearable sensors, including ECG, PPG, RSP, and IMU data. Its modular design and consistent APIs help researchers and developers integrate advanced signal processing and feature extraction into applications, speeding up development and deployment of health monitoring solutions.
Key Features
- Multi-signal coverage: ECG, PPG, RSP, IMU, and HRV out of the box.
- End-to-end pipeline: Cleaning, peak detection, intervals, metrics, and synthesis.
- Shared utilities: Filtering, smoothing, FFT, resampling, distortion/noise.
- Synthetic data: Generate realistic signals for testing and benchmarking.
- Realtime-friendly: Functions designed for streaming and incremental use.
Getting Started
- Install physioKIT with pip and get running in minutes. Install physioKIT
- Check out quickstart examples for ECG, PPG, RSP, and IMU. Quickstart Examples
- Explore the API Reference for detailed docs. API Reference
Installation
Install physioKIT using uv or pip.
Quickstart
import numpy as np
import physiokit as pk
fs = 500
ecg, segs, fids = pk.ecg.synthesize(signal_length=5*fs, sample_rate=fs, heart_rate=70, leads=1)
ecg = ecg.squeeze()
ecg_clean = pk.ecg.clean(ecg, sample_rate=fs)
peaks = pk.ecg.find_peaks(ecg_clean, sample_rate=fs)
rri = pk.ecg.compute_rr_intervals(peaks)
mask = pk.ecg.filter_rr_intervals(rri, sample_rate=fs)
hr_bpm, _ = pk.ecg.compute_heart_rate(ecg_clean, sample_rate=fs)
hrv_td = pk.hrv.compute_hrv_time(rri[mask == 0], sample_rate=fs)
License
This project is licensed under the terms of BSD 3-Clause.
Quick links
- Docs: https://ambiqai.github.io/physiokit
- Reference: reference/index.md
- Source: https://github.com/AmbiqAI/physiokit

