WSDP Documentation
Wi-Fi Sensing Data Processing
๐ Official Platform: SDP8.org | ๐ฆ PyPI: wsdp | ๐ป GitHub: Source Code
A Python library for downloading, processing, analyzing and training on Wi-Fi CSI (Channel State Information) data.
Published and maintained by SDP8.org - the official platform for reproducible wireless sensing research.
๐ Features
- Multi-dataset support: Widar, Gait, XRF55, ElderAL, ZTE datasets
- Intelligent preprocessing: Wavelet denoising, phase calibration, signal resizing
- Deep learning pipeline: End-to-end training with CNN + Transformer architecture
- Authentication: JWT Token, email/password, or non-interactive mode
- Visualization: Heatmaps, denoising comparison, phase calibration plots
- Inference API: Simple
predict()interface for deployment - CLI interface: Full command-line support for batch operations
๐งช Signal Processing Algorithm Library
WSDP provides a comprehensive, pluggable signal preprocessing library with 16+ algorithms:
| Category | Algorithms | Description |
|---|---|---|
| Denoising | Wavelet, Butterworth, Savitzky-Golay | Remove noise while preserving features |
| Phase Calibration | Linear, Polynomial, STC, Robust | Correct hardware phase errors |
| Amplitude | Z-Score, Min-Max, IQR Outlier Removal | Normalize and clean amplitude |
| Interpolation | Linear, Cubic, Nearest | Resample to canonical grids |
| Features | Doppler Spectrum, Entropy, CSI Ratio, Tensor | Extract motion/activity features |
| Detection | Variance-based, Change Point | Detect activity and transitions |
Unified API:
from wsdp.algorithms import denoise, calibrate, normalize, extract_features
denoised = denoise(csi, method='butterworth', order=5, cutoff=0.3)
calibrated = calibrate(csi, method='stc')
features = extract_features(csi, features=['doppler', 'entropy'])
See Algorithm Guide for details.
๐ง Model Zoo (12 Models)
WSDP provides a complete pluggable model library from baselines to SOTA:
| Category | Model | Description |
|---|---|---|
| Baseline | MLPModel | Fully-connected baseline |
| CNN1DModel | 1D convolution (temporal) | |
| CNN2DModel | 2D convolution (spectral) | |
| LSTMModel | LSTM temporal modeling | |
| Mainstream | ResNet1D | 1D residual network |
| ResNet2D | 2D residual network | |
| BiLSTMAttention | BiLSTM + attention | |
| EfficientNetCSI | Efficient CNN | |
| SOTA | VisionTransformerCSI | ViT for CSI |
| MambaCSI | State space model | |
| GraphNeuralCSI | GNN on antenna topology | |
| CSIModel | CNN + Transformer |
from wsdp.models import create_model, list_models
# Create any model with a single call
model = create_model("ResNet1D", num_classes=10, input_shape=(20, 30, 3))
# List all available models
print(list_models())
Comparison with Other Libraries
| Feature | SenseFi (2023) | CSIKit | WSDP |
|---|---|---|---|
| Models | 11 | โ | 12 |
| Preprocessing | โ | Basic | 16+ algorithms |
| Pluggable | โ | โ | โ Registry |
| Protocol Abstraction | โ | โ | โ Unique |
See Model Guide for selection recommendations.
๐ฆ Installation
Or install from source:
โก Quick Start
โ ๏ธ Prerequisite: Create a free account at SDP8.org โ required for dataset downloads.
Python API
from wsdp import pipeline, download
# Download dataset (SDP8.org account required)
download('widar', '/data/widar', email='you@example.com', password='yourpassword')
# Run pipeline
pipeline(
input_path='/data/widar',
output_folder='/output',
dataset='widar',
)
CLI
# Download with SDP8.org credentials
wsdp download widar /data --email you@example.com --password yourpassword
# Or with JWT token (from SDP8.org dashboard)
wsdp download widar /data --token YOUR_JWT_TOKEN
# Run training
wsdp run /data /output widar --lr 0.001 --epochs 50
# List datasets
wsdp list --verbose
๐ Documentation Sections
- Getting Started: Installation and basic usage
- User Guide: Detailed guides for CLI and Python API
- API Reference: Complete API documentation
- Datasets: Information about supported datasets
- Development: Contributing guidelines and changelog
๐ค Contributing
We welcome contributions! See our Contributing Guide for details.
๐ License
This project is licensed under the MIT License.
๐ Citation
@misc{zhang2026sdpunifiedprotocolbenchmarking,
title={SDP: A Unified Protocol and Benchmarking Framework for Reproducible Wireless Sensing},
author={Di Zhang and Jiawei Huang and Yuanhao Cui and Xiaowen Cao and Tony Xiao Han and Xiaojun Jing and Christos Masouros},
year={2026},
eprint={2601.08463},
archivePrefix={arXiv},
primaryClass={eess.SP},
url={https://arxiv.org/abs/2601.08463}
}