DOI: 10.5281/zenodo.6290274
title: Mitigating RF Jamming Attacks at the Physical Layer with Machine Learning Dataset

description: Data files were used in support of the research paper titled "“Mitigating RF Jamming Attacks at the Physical Layer with Machine Learning" which has been submitted to the IET Communications journal. --------------------------------------------------------------------------------------------- All data was collected using the SDR implementation shown here: https://github.com/mainland/dragonradio/tree/iet-paper. Particularly for antenna state selection, the files developed for this paper are located in dragonradio/scripts/: --&gt; 'ModeSelect.py': class used to defined the antenna state selection algorithm<br> --&gt; 'standalone-radio.py': SDR implementation for normal radio operation with reconfigurable antenna<br> --&gt; 'standalone-radio-tuning.py': SDR implementation for hyperparameter tunning<br> --&gt; 'standalone-radio-onmi.py': SDR implementation for omnidirectional mode only --------------------------------------------------------------------------------------------- Authors: Marko Jacovic, Xaime Rivas Rey, Geoffrey Mainland, Kapil R. Dandekar<br> Contact: krd26@drexel.edu --------------------------------------------------------------------------------------------- Top-level directories and content will be described below. Detailed descriptions of experiments performed are provided in the paper. --------------------------------------------------------------------------------------------- classifier_training: files used for training classifiers that are integrated into SDR platform<br> --&gt; 'logs-8-18' directory contains OTA SDR collected log files for each jammer type and under normal operation (including congested and weaklink states)<br> --&gt; 'classTrain.py' is the main parser for training the classifiers<br> --&gt; 'trainedClassifiers' contains the output classifiers generated by 'classTrain.py' post_processing_classifier: contains logs of online classifier outputs and processing script<br> --&gt; 'class' directory contains .csv logs of each RTE and OTA experiment for each jamming and operation scenario<br> --&gt; 'classProcess.py' parses the log files and provides classification report and confusion matrix for each multi-class and binary classifiers for each observed scenario - found in 'results-&gt;classifier_performance' post_processing_mgen: contains MGEN receiver logs and parser<br> --&gt; 'configs' contains JSON files to be used with parser for each experiment<br> --&gt; 'mgenLogs' contains MGEN receiver logs for each OTA and RTE experiment described. Within each experiment logs are separated by 'mit' for mitigation used, 'nj' for no jammer, and 'noMit' for no mitigation technique used. File names take the form *_cj_* for constant jammer, *_pj_* for periodic jammer, *_rj_* for reactive jammer, and *_nj_* for no jammer. Performance figures are found in 'results-&gt;mitigation_performance' ray_tracing_emulation: contains files related to Drexel area, Art Museum, and UAV Drexel area validation RTE studies.<br> --&gt; Directory contains detailed 'readme.txt' for understanding. results: contains results obtained from study<br> --&gt; 'classifier_performance' contains .txt files summarizing binary and multi-class performance of online SDR system. Files obtained using 'post_processing_classifier.'<br> --&gt; 'mitigation_performance' contains figures generated by 'post_processing_mgen.'<br> --&gt; 'validation' contains RTE and OTA performance comparison obtained by 'ray_tracing_emulation-&gt;validation-&gt;matlab-&gt;outdoor_hover_plots.m' tuning_parameter_study: contains the OTA log files for antenna state selection hyperparameter study<br> --&gt; 'dataCollect' contains a folder for each jammer considered in the study, and inside each folder there is a CSV file corresponding to a different configuration of the learning parameters of the reconfigurable antenna. The configuration selected was the one that performed the best across all these experiments and is described in the paper.<br> --&gt; 'data_summary.txt'this file contains the summaries from all the CSV files for convenience.