Data and code from: AERPAW Air-to-Air channel sounding measurement with UAVs
Data files
Aug 27, 2026 version files 2.03 GB
-
DATASET.tar.gz
2.03 GB
-
README.md
4.78 KB
Aug 27, 2026 version files 2.03 GB
-
DATASET.tar.gz
2.03 GB
-
README.md
4.78 KB
Abstract
The proliferation of Uncrewed Aerial Vehicles (UAVs) in applications such as flying ad-hoc networks (FANETs), precision agriculture, disaster response, and future 6G integrated networks necessitates the development of accurate and robust Air-to-Air (A2A) wireless communication systems. While existing research has predominantly focused on Air-to-Ground (A2G) links, the A2A channel remains significantly under-characterized, especially in the sub- 6 GHz frequency bands critical for reliable data exchange. Current A2A models often oversimplify the channel, relying on static assumptions that neglect the profound impact of the UAVs' three-dimensional mobility and the physical characteristics of the aerial platforms themselves. This paper addresses this research gap by presenting a preliminary set of measurements for the 3.4 GHz A2A channel. We have developed a lightweight, reconfigurable, opensource channel sounder using USRP B210 Software-Defined Radios (SDRs) and a high-precision Global Navigation Satellite Systemdisciplined oscillator (GNSS-DO), deployed on two UAVs. We conducted a measurement campaign at the Aerial Experimentation and Research Platform for Advanced Wireless (AERPAW) Lake Wheeler testbed, an ideal, instrumented rural environment for UAV experimentation. The campaign featured a spherical flight trajectory around the second drone, designed to capture the dynamic channel characteristics during maneuvers, including circular orbits, various altitudes, and elevation angles. From these data, we present a thorough analysis of the fundamental channel characteristics. We extract and model the fading parameters from the channel measurements, including channel impulse response (CIR), and analyze their dependence on link geometry. We also characterize the fading statistics, providing insights into the RMS delay spread for A2A links in this environment. This foundational channel measurement dataset provides a more realistic and validated tool for the design, development, emulation, and performance evaluation of physical and MAC layer protocols for next-generation UAV communication networks.
Dataset for Air-to-Air Channel Characterization for UAV Communications at 3.4 GHz, measured at the AERPAW Lake Wheeler testbed. The dataset is in DATASET.tar.gz file. It can be extracted using tar -xvf DATASET.tar.gz command on linux.
| File | Contents |
|---|---|
a2a.sigmf-data / a2a.sigmf-meta |
Raw I/Q samples and metadata in SigMF format (8,883 captures, 56 MHz, 3.4 GHz). |
a2a.npz |
Compact processed arrays and transmitted reference waveform. |
a2a.csv |
Data in csv format. |
figures/ |
Figures 4–6, 8, and 10. |
load_data.py |
Loader for CSV, NPZ, and SigMF data. |
CSV columns
| Column | Description |
|---|---|
measurement_id |
Observation identifier. |
timestamp_utc |
Measurement time in UTC. |
time_s |
Elapsed experiment time, in seconds. |
rx_latitude, rx_longitude |
Receiver UAV latitude and longitude, in degrees. |
rx_altitude_agl_m |
Receiver UAV altitude above ground level, in meters. |
tx_latitude, tx_longitude |
Transmitter UAV latitude and longitude, in degrees. |
tx_altitude_agl_m |
Transmitter UAV altitude above ground level, in meters. |
heading_deg |
Receiver UAV heading, in degrees. |
uav2uav_dist |
Direct 3D distance between the UAVs, in meters. |
received_power_dbm |
Average received power, in dBm. |
rms_delay_spread_ns |
RMS delay spread, in nanoseconds. |
The NPZ contains these columns as same-named arrays plus reference, the transmitted reference waveform. CIR processing is not included; use the USRP Channel Sounder repository as the implementation reference.
SigMF fields
a2a.sigmf-data contains 8,883 consecutive captures of 56,000 samples. Its cf32_le layout stores each I/Q sample in complex float32 format.
| Global metadata field | Description |
|---|---|
core:datatype |
Sample representation: cf32_le. |
core:sample_rate |
Sample rate: 56 MHz. |
core:version |
SigMF specification version. |
core:dataset |
Associated .sigmf-data filename. |
core:description |
Dataset description. |
core:hw |
Receiver hardware. |
core:extensions |
Declares the a2a metadata namespace. |
a2a:waveform |
Sounding waveform type: Zadoff–Chu. |
a2a:zc_length, a2a:zc_root |
Zadoff–Chu sequence length and root. |
a2a:reference_npz |
NPZ file containing the reference waveform. |
| Per-capture field | Description |
|---|---|
core:sample_start |
Capture's first complex-sample index in the data file. |
core:frequency |
Center frequency: 3.4 GHz. |
core:datetime |
Capture time in UTC. |
a2a:rx_time_s |
USRP receiver time tag, in seconds. |
a2a:receiver, a2a:transmitter |
UAV telemetry. |
Each telemetry object contains latitude_deg, longitude_deg, altitude_agl_m, and heading_deg.
Loading and using the data
from load_data import load_csv, load_npz, load_sigmf_capture
table = load_csv()
print(table[["uav2uav_dist", "received_power_dbm"]].describe())
arrays = load_npz()
reference = arrays["reference"]
iq, capture = load_sigmf_capture(0)
print(iq.shape, capture["core:datetime"])
CSV is for analysis and plotting. The NPZ contains the same observations as NumPy arrays plus the reference waveform. load_sigmf_capture() reads one raw I/Q capture without loading the complete recording into memory. Run python load_data.py to get more info about dataset.
To generate figures,
python generate_figures.py
More info about channel sounder can be found from USRP Channel Sounder repository repository.
