Skip to content

WSDP Documentation

Wi-Fi Sensing Data Processing

๐ŸŒ Official Platform: SDP8.org | ๐Ÿ“ฆ PyPI: wsdp | ๐Ÿ’ป GitHub: Source Code

Python PyTorch License SDP8

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

pip install wsdp

Or install from source:

git clone https://github.com/sdp-team/wsdp.git
cd wsdp
pip install -e .

โšก 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

๐Ÿค 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}
}