/MDD-SEI

Specific Emitter Identification Handling Modulation Variation with Margin Disparity Discrepancy

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

MDD-SEI

Specific Emitter Identification Handling Modulation Variation with Margin Disparity Discrepancy

A project employing the Margin Disparity Discrepancy (MDD) method for Domain Adaptation in a scenario with changing modulation schemes within the Specific Emitter Identification (SEI).

if our codes helped your reasearch, please consider citing the corresponding submission

@article{zhang2024specific,
        title={Specific Emitter Identification Handling Modulation Variation with Margin Disparity Discrepancy},
        author={Yezhuo Zhang and Zinan Zhou and Xuanpeng Li},
        year={2024},
        journal={arXiv preprint arXiv:2403.11531},
}
  • SEI with modulation variation MDD_structure

  • MDD structure for SEI MDD_structure

To related SEI with modulation variation works:

To the DA method employed in our work:

To the source code we referenced:

Requirements

pip install -r requirements.txt

Data preparation

The data in the article is not readily available for publication. Instead, we provide two open-source datasets that can be used for experimentation within the existing framework.

  • Datasets for RF Fingerprinting on the POWDER Platform NEU_POWDER

  • A PyTorch Signal Processing Machine Learning Toolkit TorchSig

If you choose NEU_POWDER, you need to

  • download the dataset from NEU_POWDER
  • cd into data/NEU_POWDER and run POWDER_HDF5.py to make a .hdf5 dataset.

If you choose TorchSig, note that this is a simulated dataset. If you use the data with hardware impairments, you can directly create an ```.hdf5`````` dataset. If you use the ideal data, please follow the steps below.

  • download the code from TorchSig and generate clear data.
  • cd into data/torchsig_HackRF/_make_dataset_from_torchsig and run _00_modulations.py, _01_from_seperate_to_continue.py and _02_add_carrier.py.
  • transmit real signal yourself
  • generate samples from the emitted signal with _03_cut_from_sampled.py.
  • cd into data/torchsig_HackRF and run TORCHSIG_HDF5.py to make a .hdf5 dataset.

Training

cd into code/script and do

raw DRSN model:

bash DRSN.sh

DRSN with MDD:

bash MDD_DRSN.sh

Contact

If you have any problem with our code or any suggestions, including discussion on SEI, please feel free to contact