This is a python code package related to the following article: H.Luo and A. Alkhateeb, "Digital Twin Aided Compressive Sensing: Enabling Site-Specific MIMO Hybrid Precoding", accepted to 58th Asilomar Conference on Signals, Systems, and Computers, 2024.
Prepare the dataset
- The data used in this package can be found in this Dropbox folder. Please download these files to the
DeepMIMO
repository. - Set the scenario and other system parameters in
parameters.m
. - Run
DeepMIMO_Dataset_Generator.m
to generate channel data of the scenario. - Run
process_raw_data.m
to construct the dataset.
ML Model Training
- Generate training and testing datasets
python gen_csv.py
- Run the training sessions with varying numbers of measurement vectors
python train_loop_dict_size.py
- Refine the models pretrained on DT data
python train_loop_dict_size_finetune.py
Plot the results
- Plot the RF beam prediction accuracy vs. numbers of measurement vectors
python plot_performance_dict_size.m
- Plot the RF beam prediction accuracy vs. numbers of refining data points
python plot_performance_num_data.m
- Plot the beam patterns of the learned measurement vectors
- Obtain the measurement vectors from the model weights.
python inference.py --load_model_path ckpt/ckpt_name
- Run
plot_meas_vecs.m
to plot the beam patterns.
If you have any questions regarding the code, please contact Hao Luo
This code package is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
If you in any way use this code for research that results in publications, please cite our original article:
H. Luo and A. Alkhateeb, “Digital Twin Aided Compressive Sensing: Enabling Site-Specific MIMO Hybrid Precoding,” arXiv preprint arXiv:2405.07115, 2024.