Code for exploring generalization in deep learning for mmWave beam selection using sub-6 GHz channels.
This repository contains MATLAB experiment scripts for training and evaluating a neural network that predicts mmWave beam indices from sub-6 GHz channel measurements. The workflow is designed around wireless communication experiments where sub-6 GHz channel state information is transformed into an angle-delay profile and used as the input to a beam-selection classifier.
This repository is associated with the PARAMOUNT paper:
Katarina Vuckovic, Mahdi Boloursaz Mashhadi, Farzam Hejazi, Nazanin Rahnavard, and Ahmed Alkhateeb. "PARAMOUNT: Toward Generalizable Deep Learning for mmWave Beam Selection Using Sub-6 GHz Channel Measurements." IEEE Transactions on Wireless Communications, vol. 23, no. 5, pp. 5187-5202, 2024.
- Paper DOI: https://doi.org/10.1109/TWC.2023.3324916
- Author version PDF: https://lcwnlab.eecs.ucf.edu/wp-content/uploads/2023/12/PARAMOUNT_IEEE.pdf
The experiment studies whether a deep learning model trained on sub-6 GHz channel features can generalize to mmWave beam-selection tasks under different SNR and transmit-power settings.
The pipeline measures:
- Top-1, top-3, and top-5 beam prediction accuracy
- Average achievable rate for predicted beams
- Upper-bound achievable rate from the best beam
- Performance across multiple transmit-power and SNR values
| File | Purpose |
|---|---|
main.m |
Main script for training, testing, and saving experiment results |
dataPrep_train.m |
Loads, normalizes, shuffles, and labels training data |
dataPrep_test.m |
Prepares test data for evaluation |
buildNetconv4.m |
Builds the neural network used for beam classification |
CSI2ADP_theta_N.m |
Converts channel state information to angle-delay profile features |
UPA_codebook_generator.m |
Generates the beamforming codebook |
LICENSE |
Repository license |
The main script expects .mat channel datasets in this structure:
Data/
train/
sub6Train_org_4_64.mat
mmTrain_org_64_64.mat
test/
sub6test_LOSB_4_64.mat
mmtest_LOSB_4_64.mat
Each dataset should include a channel variable. For NLOS cases, labels may also be required.
- MATLAB
- Deep Learning Toolbox
- Communications Toolbox, for
awgn - Wireless channel datasets matching the expected dimensions in
main.m
From the MATLAB console:
mainBefore running, update the paths and experiment settings in main.m if your dataset names or dimensions differ from the defaults.
Important configuration values live near the top of main.m:
tx_power: transmit-power sweepsnr_db: SNR sweepnum_ant: number of sub-6 GHz antennasnum_ant_mm: number of mmWave antennasoptions.case: channel case, such asLOSoptions.top_n: number of top beams used for top-N evaluation
This is a research codebase, so the scripts assume a prepared dataset and MATLAB environment. For a new experiment, first verify data dimensions, codebook size, and the options.inputSize settings.