Skip to content

ocatak/attention_based_automatic_modulation_recognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Comparative Analysis of Attention Mechanisms for Automatic Modulation Classification in Radio Frequency Signals

Python 3.8+ PyTorch License: MIT

This repository contains the implementation of a comprehensive comparative study of attention mechanisms for Automatic Modulation Classification (AMC) in radio frequency signals. Our novel CNN-Transformer hybrid architecture integrates three distinct attention patterns to capture temporal dependencies in I/Q samples.

๐Ÿ“‹ Table of Contents

๐Ÿ”ฌ Overview

Automatic Modulation Classification (AMC) is crucial for cognitive radio systems and spectrum management. This study investigates three attention mechanisms integrated with CNNs for RF signal classification:

  • Baseline Multi-Head Attention: Standard bidirectional self-attention
  • Causal Attention: Temporal causality-constrained attention
  • Sparse Attention: Local windowed attention for computational efficiency

Key Findings

  • Baseline Attention: Highest accuracy (85.05%) with full computational cost
  • Causal Attention: 83% inference time reduction, 83.93% accuracy
  • Sparse Attention: 75% inference time reduction, 83.64% accuracy
  • Modulation-Specific Insights: Simple modulations benefit from sparse attention, complex modulations require global context

โœจ Key Features

  • Novel CNN-Transformer Hybrid Architecture specifically designed for RF signals
  • Three Attention Mechanisms with detailed comparative analysis
  • Comprehensive Evaluation on RML2016.10a benchmark dataset
  • Computational Efficiency Analysis with inference time measurements
  • Rich Visualizations including confusion matrices, attention patterns, and signal analysis
  • Publication-Ready Results with detailed performance metrics

๐Ÿ“ฆ Requirements

  • Python 3.8+
  • PyTorch 2.0+
  • NumPy
  • Matplotlib
  • Seaborn
  • Scikit-learn
  • SciPy
  • Pandas
  • tqdm

๐Ÿš€ Installation

  1. Clone the repository:

    git clone https://github.com/yourusername/attention_based_automatic_modulation_recognition.git
    cd attention_based_automatic_modulation_recognition
  2. Create a virtual environment (recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
  3. Install dependencies:

    pip install torch torchvision torchaudio numpy matplotlib seaborn scikit-learn scipy pandas tqdm

๐Ÿ“Š Dataset

This project uses the RML2016.10a dataset, a widely-used benchmark for AMC research containing:

  • 220,000 I/Q samples across 11 modulation schemes
  • 128 complex-valued points per sample
  • SNR range: -20dB to 18dB (filtered to -6dB to 18dB for experiments)
  • Modulation types: 8PSK, AM-DSB, AM-SSB, BPSK, CPFSK, GFSK, PAM4, QAM16, QAM64, QPSK, WBFM

Download Instructions

  1. Download RML2016.10a_dict.pkl from DeepSig
  2. Place the file in the repository root directory
  3. The scripts will automatically load and preprocess the data

๐ŸŽฏ Usage

1. Train Models

Train all three attention mechanism variants:

python train_models.py --data_path RML2016.10a_dict.pkl --num_epochs 50 --batch_size 128

Options:

  • --data_path: Path to RML dataset pickle file
  • --save_dir: Directory to save models (default: saved_models)
  • --num_epochs: Maximum training epochs (default: 50)
  • --batch_size: Training batch size (default: 128)
  • --patience: Early stopping patience (default: 15)
  • --device: Device to use ('auto', 'cuda', 'mps', 'cpu')

2. Run Experiments

Generate comprehensive analysis and comparisons:

python experiment_models.py --save_dir saved_models --results_dir experiment_results

Generates:

  • Performance comparison tables
  • Individual confusion matrices per model
  • Training curves analysis
  • Computational efficiency metrics
  • Feature visualizations (t-SNE)

3. Visualize Input Signals

Create detailed RF signal visualizations:

python visualize_inputs.py --save_dir saved_models --results_dir signal_visualizations

Creates:

  • Signal overview grids (I/Q heatmaps, time series, constellations, spectra)
  • Modulation heatmap matrices
  • AI model input preprocessing pipeline visualization
  • Attention mechanism input format analysis

๐Ÿ—๏ธ Architecture

CNN-Transformer Hybrid Design

Input: I/Q Radio Signals (2ร—128)
        โ†“
CNN Feature Extractor
โ”œโ”€โ”€ Conv1D(32, kernel=7) โ†’ BatchNorm โ†’ ReLU
โ””โ”€โ”€ Conv1D(64, kernel=5, stride=2) โ†’ BatchNorm โ†’ ReLU
        โ†“
Attention Mechanisms (3 parallel branches)
โ”œโ”€โ”€ Baseline: Full O(Lยฒ) complexity
โ”œโ”€โ”€ Causal: Lower triangular mask (~50% computation)
โ””โ”€โ”€ Sparse: Local windows (O(Lยทw) complexity)
        โ†“
Classifier
โ”œโ”€โ”€ Global Average Pooling
โ”œโ”€โ”€ Dense(32) โ†’ GELU โ†’ Dropout
โ””โ”€โ”€ Dense(11) โ†’ Softmax
        โ†“
Output: Modulation Classification

Attention Mechanism Details

Mechanism Complexity Key Features
Baseline O(Lยฒ) Full bidirectional attention, maximum expressivity
Causal O(Lยฒ) Temporal causality, real-time compatible, ~50% computation reduction
Sparse O(Lยทw) Local windows (w=8), maximum computational efficiency

๐Ÿ“ˆ Results

Performance Summary

Model Test Accuracy Avg F1-Score Parameters Inference Time
Baseline 85.05% 0.843 ยฑ 0.129 0.11M 0.06ms
Causal 83.93% 0.832 ยฑ 0.133 0.11M 0.02ms
Sparse 83.64% 0.830 ยฑ 0.136 0.11M 0.03ms

Key Insights

  • Computational Efficiency: Causal and sparse attention provide 83% and 75% inference time reductions
  • Modulation-Specific Performance:
    • Simple modulations (PAM4, CPFSK, GFSK) excel with sparse attention
    • Complex modulations (QAM16, QAM64) prefer full attention
    • All models struggle with WBFM (analog modulation)
  • Error Patterns: Consistent QAM16/QAM64 confusion across all models

๐Ÿ“ File Structure

attention_based_automatic_modulation_recognition/
โ”œโ”€โ”€ ๐Ÿ“„ README.md                    # This file
โ”œโ”€โ”€ ๐Ÿ“„ requirements.txt             # Python dependencies
โ”œโ”€โ”€ ๐Ÿ“„ .gitignore                   # Git ignore rules
โ”œโ”€โ”€ ๐Ÿ“„ LICENSE                      # MIT license
โ”œโ”€โ”€ ๐Ÿ train_models.py              # Main training script
โ”œโ”€โ”€ ๐Ÿ experiment_models.py         # Comprehensive analysis script
โ”œโ”€โ”€ ๐Ÿ visualize_inputs.py          # Signal visualization script
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ saved_models/                # Generated during training
โ”‚   โ”œโ”€โ”€ baseline_best.pth           # Best baseline model
โ”‚   โ”œโ”€โ”€ causal_best.pth             # Best causal model
โ”‚   โ”œโ”€โ”€ sparse_best.pth             # Best sparse model
โ”‚   โ”œโ”€โ”€ datasets.pkl                # Preprocessed datasets
โ”‚   โ””โ”€โ”€ training_results.json       # Training history
โ”‚
โ”œโ”€โ”€ ๐Ÿ“ experiment_results/          # Generated during experiments
โ”‚   โ”œโ”€โ”€ training_curves_*.pdf       # Individual training curves
โ”‚   โ”œโ”€โ”€ confusion_matrix_*.pdf      # Individual confusion matrices
โ”‚   โ”œโ”€โ”€ *_comparison.pdf            # Performance comparisons
โ”‚   โ”œโ”€โ”€ feature_visualization_*.pdf # t-SNE visualizations
โ”‚   โ”œโ”€โ”€ performance_table.csv       # Results summary table
โ”‚   โ””โ”€โ”€ experiment_summary.txt      # Detailed analysis report
โ”‚
โ””โ”€โ”€ ๐Ÿ“ signal_visualizations/       # Generated during visualization
    โ”œโ”€โ”€ signal_overview_grid.pdf     # 4-panel signal overview
    โ”œโ”€โ”€ modulation_heatmap_matrix.pdf # I/Q channel matrices
    โ”œโ”€โ”€ constellation_comparison.pdf  # I/Q constellation diagrams
    โ”œโ”€โ”€ ai_model_input_*.pdf         # AI preprocessing examples
    โ””โ”€โ”€ preprocessing_pipeline_*.pdf  # Step-by-step preprocessing

๐Ÿ“š Citation

If you use this code in your research, please cite our paper:

@article{catak2024attention,
  title={Comparative Analysis of Attention Mechanisms for Automatic Modulation Classification in Radio Frequency Signals},
  author={Catak, Ferhat Ozgur and Kuzlu, Murat and Cali, Umit},
  year={2024},
  publisher={IEEE}
}

๐Ÿ‘ฅ Authors

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ”— Related Work

๐Ÿค Contributing

We welcome contributions! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

๐Ÿ“ž Contact

For questions about the code or research, please contact:


โญ If you find this work useful, please consider starring the repository!

About

Deep learning models for automatic modulation recognition using attention mechanisms (baseline, causal, sparse) on RadioML dataset. Includes CNN-Transformer architectures with comprehensive visualization tools for RF signal analysis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages