Official source code for "EMC²-Net: Joint Equalization and Modulation Classification based on Constellation Network", ICASSP 2023 [1].
We propose a novel MC technique dubbed as EMC²-Net. The main contributions of our work are:
- Understand constellation as a set of 2D points rather than an image.
- Train equalizer and classifier jointly under the supervision of modulation type. Two NNs perform separate and explainable roles.
- Show SOTA performance on the linear modulation classification with much less complexity.
- Linux or macOS
- Python 3
- CPU or NVIDIA GPU + CUDA CuDNN
python==3.7.4
torch==1.10.2+cu113
numpy==1.17.2
scipy==1.3.1- Clone this repo:
git clone https://github.com/Hyun-Ryu/emc2net emc2net
cd emc2net- All of the data-generating codes are written in MATLAB, saved in
data_generationfolder. - For AWGN+PO dataset, run
dataset_generation_AWGNPO.m. - For Rican or Rayleigh dataset, run
dataset_generation_fading.m.
python train_phase1_noise_cirriculum.py \
--root "YOUR OWN ROOT DIRECTORY" \
--data_name "NAME OF DATASET" \
--exp_name "NAME OF EXPERIMENT"python train_phase2.py \
--root "YOUR OWN ROOT DIRECTORY" \
--data_name "NAME OF DATASET" \
--exp_name "NAME OF EXPERIMENT" \
--pretrain_exp_name "NAME OF PHASE 1 EXPERIMENT"python train_phase3.py \
--root "YOUR OWN ROOT DIRECTORY" \
--data_name "NAME OF DATASET" \
--exp_name "NAME OF EXPERIMENT" \
--pretrain_exp_name "NAME OF PHASE 1 EXPERIMENT" \
--phase2_exp_name "NAME OF PHASE 2 EXPERIMENT"python test_fading.py \
--root "YOUR OWN ROOT DIRECTORY" \
--data_name "NAME OF DATASET" \
--exp_name "NAME OF EXPERIMENT"python test_awgnpo.py \
--root "YOUR OWN ROOT DIRECTORY" \
--data_name "NAME OF DATASET" \
--exp_name "NAME OF EXPERIMENT"@inproceedings{ryu2023emc,
title={EMC 2-Net: Joint Equalization and Modulation Classification Based on Constellation Network},
author={Ryu, Hyun and Choi, Junil},
booktitle={ICASSP 2023-2023 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP)},
pages={1--5},
year={2023},
organization={IEEE}
}