DOI: 10.5281/zenodo.18599983
title: Extensive Age-Balanced and Subject-Varied mmWave Radar Dataset of Referenced Records for Vital Signs

description: This repository contains a mmWave radar dataset of referenced records for vital signs. 110 participants have been recorded under four different tests. The database is structured in folders - one for each participant and each test - and each one contains the files for radar data (signals, time reference and chirp configuration), reference ECG and accelerometer data, and timestamps for the non-breathing part of some experiments. A deeper description will be added upon acceptance of the research paper accompanying the publication of the dataset.

Devices:



Reference: Movesense Medical Device

Non-breathing indicator: USB push-button

Lying tests: NodeNs IWR6843ISK

Sitting tests: Texas Instruments IWR6843ISK-ODS


The repository contains:



db_records.zip - The database itself, with one folder for each participant

ExampleCode.ipynb - Jupyter Notebook with example code on how to work with the data

helper_fns.py - Python script with the functions needed by the notebook

ParticipantsInfo.xlsx - Excel file with anonymised participant information


Records:

For each participant-test folder reference accelerometer and ECG measurements are stored in the files movesense_acc.csv and movesense_ecg.csv. Each row of these files contains the raw data as sent by the Movesense device - x, y and z acceleration components and a timestamp in the case of accelerometer data, and millivolts and a timestamp for the ECG data. For the tests in which participants were instructed to hold their breath, the USB push-button data were stored in the file non_breathing_ts.csv containing the begin and end timestamps of the non-breathing time. The radar chirp configuration is stored in the file radar_chirpConfig.json. Radar measurements are stored in the compressed file radar_rFFTs.zlib, packed using the pickle object serialisation library and saved using the zlib compression library, both part of the standard libraries of Python 3.11.0. The file contains a Python list of the range Fast Fourier Transforms (FFTs) as received from the radar and the range bins computed using the chirp configuration. The shape of the provided FFT arrays is $(n_v, n_b)$, being $n_v$ the number of virtual antennas and $n_b$ the number of range bins. Radar timestamps are saved as a Python list in the file radar_timestamps.csv. The example Jupyter notebook includes a detailed guide to working with all these files.

 

It must be noted that 12 of the 440 experiments present some FFTs where all values were recorded as 0. Only a small number of frames, located at the beginning of the recording for all experiments, have been affected by this. The following table shows the affected experiments and the number of frames that must be skipped:




Experiment
Damaged Frame Count


P004/Lying/Rest/
11


P020/Sitting/Post-exercise/
2


P023/Sitting/Post-exercise/
2


P041/Sitting/Post-exercise/
2


P046/Lying/Rest/
4


P050/Sitting/Post-exercise/
6


P056/Lying/Rest/
4


P077/Lying/Rest/
1


P084/Lying/Rest/
4


P100/Sitting/Rest/
2


P104/Sitting/Post-exercise/
2


P106/Sitting/Rest/
1




This should not have any impact on the extraction of vital signs, as in the first and most damaged experiment (P004/Lying/Rest) the ratio of damaged frames is 1.83% over the whole recording.