Skip to content

Hsuan-Tung/PCICN_RFFingerprinting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PCICN_RFFingerprinting

A Photonic-Circuits-Inspired Compact Network: Toward Real-Time Wireless Signal Classification at the Edge

This repository is the official implementation of A Photonic-Circuits-Inspired Compact Network: Toward Real-Time Wireless Signal Classification at the Edge.

Requirements

To install requirements:

pip install -r requirements.txt

Access to Dataset

The dataset will be available later once it is approved to be publicly released:

  • The residaul data of ZigBee transmissions is pre-processed by Princeton University using the method described in Appendix A. The raw data is provided by Naval Research Laboratory.
  • If you use this dataset for your project, please properly reference [1], [2]
    [1] Merchant, Kevin et al. “Deep Learning for RF Device Fingerprinting in Cognitive Communication Networks.” IEEE Journal of Selected Topics in Signal Processing 12 (2018): 160-167.
    [2] Peng, Hsuan-Tung et al. "A Photonic-Circuits-Inspired Compact Network: Toward Real-Time Wireless Signal Classification at the Edge", https://arxiv.org/abs/2106.13865

Training

To train the PRNN-CNN model in the paper, run this command:

python train.py --model PRNN_CNN --data_path your_data_path --save True --output_dir your_output_dir

To train the NRL-CNN model in the paper, run this command:

python train.py --model NRL_CNN --data_path your_data_path -save True --output_dir your_output_dir

Evaluation

To evaluate the model after training on test dataset, run:

python eval.py --model_path your_model_path --model_filename your_model.pth --model PRNN_CNN

Note that if your model is NRL CNN, please change --model PRNN_CNN to --model NRL_CNN.

Pre-trained Models

To evaluate pretrained PRNN-CNN model on test dataset, run:

python eval.py --model_path ./pretrained --model_filename output_model_PRNN_CNN_pretrained.pth --model PRNN_CNN

To evaluate pretrained NRL-CNN model on test dataset, run:

python eval.py --model_path ./pretrained --model_filename output_model_NRL_CNN_pretrained.pth --model NRL_CNN

Results

Our model achieves the following performance on :

[RF Fingerprinting on 30 ZigBee devices]

Model name Top 1 Accuracy # Parameters Estimated Latency (on PYNQ-Z1)
NRL CNN 95.17% 322,602 26.19 ms
PRNN-CNN 96.32% 6,302 0.219 ms

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages