DOI: 10.5281/zenodo.18268648
title: INRIA I/Q Signal Dataset for RF Fingerprinting and Physical Layer Authentication

description: Overview

This dataset contains Raw I/Q (In-Phase/Quadrature) radio signal traces collected using a BladeRF AX4 Software Defined Radio (SDR) and GNU Radio.

It serves as the official training and validation data for the PLA-AP project (Physical Layer Authentication), designed to evaluate machine learning approaches for identifying wireless devices based on their hardware impairments (RF fingerprints).



Paper: Robust Device Authentication in Multi-Node Networks: ML-Assisted Hybrid PLA Exploiting Hardware Impairments

Source Code: The preprocessing and model training code is available on GitHub: PLA-AP/PLA/


Authors



Ildi Alla (Inria Centre at the University of Lille)

Selma Yahia (Inria Centre at the University of Lille)

Valéria Loscrì (Inria Centre at the University of Lille)

Hossien Eldeeb (University of Cambridge)


File Description

Raw Data (raw/)

This directory contains the binary signal files captured directly from the SDR.



Format: Binary I/Q data (Interleaved 32-bit floats).

Content: Each file captures the "burst" transmission of a specific device, including the transient (turn-on) and steady-state phases.

Organization: The files are organized by Device ID (e.g., device1, device2).


Dataset Technical Specifications

The data was collected under controlled experimental conditions to ensure reproducibility.

Hardware Setup

Receiver: BladeRF AX4 (SDR) connected to a host PC running GNU Radio.

Transmitters: Various commercial-off-the-shelf (COTS) wireless devices (e.g., NRF52840 dongles or similar IoT nodes).

Signal Characteristics



Sampling Rate: 20 Msps (Mega Samples Per Second).

Center Frequency: 2.4 GHz (ISM Band).

Data Format: Complex64 (Interleaved 32-bit floats: I, Q, I, Q...).

Key Feature: The dataset specifically targets the transient phase (the initial signal ramp-up), which contains the most distinct hardware fingerprints.


Usage Instructions

Loading Raw I/Q Data

Since this dataset contains raw binary files without headers, you can load them using Python and NumPy.

import numpy as np
import matplotlib.pyplot as plt

# 1. Define File Path
filename = "data/raw/device1_trial1.bin" # Replace with actual filename

# 2. Load Binary Data (Complex64)
# BladeRF/GNU Radio saves data as interleaved float32 (I, Q, I, Q...)
# This is equivalent to numpy's complex64 type
data = np.fromfile(filename, dtype=np.complex64)

# 3. Basic Visualization
plt.figure(figsize=(10, 4))
plt.plot(np.real(data[0:1000]), label="In-Phase (I)")
plt.plot(np.imag(data[0:1000]), label="Quadrature (Q)")
plt.title("Raw I/Q Signal Snippet")
plt.legend()
plt.show()


Processing the Data

To transform this raw data into features suitable for machine learning (e.g., Transient Detection, Filtering, Gabor Transform) and save them in a structured HDF5 format, please refer to the the source code implemented in the official GitHub repository:





Preprocessing Logic: src/preprocessing.py




Data Loader & HDF5 Saving: src/dataloader.py



Citation

If you use this dataset or the PLA framework in your research, please cite the following paper:

@inproceedings{alla2024robust,
  title={Robust Device Authentication in Multi-Node Networks: ML-Assisted Hybrid PLA Exploiting Hardware Impairments},
  author={Alla, Ildi and Yahia, Selma and Loscri, Valeria and Eldeeb, Hossien},
  booktitle={Annual Computer Security Applications Conference (ACSAC)},
  year={2024}
}


If you wish to cite this specific dataset version, please use the citation generated by Zenodo (located in the right sidebar of this record).

Acknowledgment & Funding

This work is part of the MLSysOps project, funded by the European Union’s Horizon Europe research and innovation programme under grant agreement No. 101092912.

More information about the project is available at https://mlsysops.eu/