weswebunited/rtl-ml-dataset
RTL-ML Dataset Dataset Summary This dataset contains 240 validated RF signal samples captured using an RTL-SDR Blog V4 dongle. It's designed for training machine learning models to classify common RF signals. Total Size: 1.9 GBSamples: 240 (30 samples × 8 classes)Format: NumPy arrays (.npy files)Sample Rate: 1.024 MSPSSample Duration: 1 second per capture Signal Classes Class Frequency Count Description ADS_B 1090 MHz 30 Aircraft… See the full description on the dataset page: https://huggingface.co/datasets/weswebunited/rtl-ml-dataset.
RTL-ML Dataset
Dataset Summary
This dataset contains 240 validated RF signal samples captured using an RTL-SDR Blog V4 dongle. It's designed for training machine learning models to classify common RF signals.
Total Size: 1.9 GB Samples: 240 (30 samples × 8 classes) Format: NumPy arrays (.npy files) Sample Rate: 1.024 MSPS Sample Duration: 1 second per capture
Signal Classes
Validation Metrics
- ISM Sensors: 20.6x burst ratio (strong on/off keying)
- NOAA Weather: 14.4 dB SNR (clear signal)
- Pager/APRS: 12.7 dB SNR (good quality)
- Model Accuracy: 87.5% on test set
Usage
from huggingface_hub import snapshot_download
import numpy as np
# Download entire dataset
dataset_path = snapshot_download(
repo_id="TrevTron/rtl-ml-dataset",
repo_type="dataset"
)
# Load a sample
sample = np.load(f"{dataset_path}/datasets_validated/ADS_B_0.npy")
print(f"Signal shape: {sample.shape}") # (1048576,) complex64Dataset Structure
rtl-ml-dataset/
└── datasets_validated/
├── ADS_B_0.npy ... ADS_B_29.npy (30 files)
├── APRS_0.npy ... APRS_29.npy (30 files)
├── FM_broadcast_0.npy ... _29.npy (30 files)
├── ISM_sensors_0.npy ... _29.npy (30 files)
├── NOAA_APT_0.npy ... NOAA_APT_29.npy (30 files)
├── NOAA_weather_0.npy ... _29.npy (30 files)
├── noise_0.npy ... noise_29.npy (30 files)
└── pager_0.npy ... pager_29.npy (30 files)Each .npy file contains:
- Shape: (1048576,) - 1 second @ 1.024 MSPS
- Dtype:
complex64(I/Q samples) - Size: ~8.4 MB per file
Hardware
- SDR: RTL-SDR Blog V4 ($39.95)
- Computer: Indiedroid Nova 16GB ($179.95)
- Antenna: Telescopic dipole (included)
Model Performance
When trained with Random Forest (100 trees):
- Overall Accuracy: 87.5%
- Perfect Classes: ADS-B, FM, ISM, NOAA APT, Weather, Pager (100%)
- Challenging: APRS ↔ Noise confusion (sparse packets)
Citation
@misc{rtl-ml-dataset,
author = {TrevTron},
title = {RTL-ML Dataset: Validated RF Signal Captures},
year = {2026},
publisher = {Hugging Face},
howpublished = {\url{https://huggingface.co/datasets/TrevTron/rtl-ml-dataset}}
}License
MIT License - Free for commercial and non-commercial use.
Related
- Code: github.com/TrevTron/rtl-ml
- Blog: unland.dev (coming soon)
- Hardware Guide: Indiedroid Nova Setup
Contributions
Captured in Temecula, CA (Southern California) using:
- Clear line of sight to multiple signal sources
- Validated with spectral analysis and manual inspection
- All samples meet minimum SNR requirements (>10 dB for modulated signals)
For questions or improvements, see the GitHub repository.
