This simulation code package is mainly used to reproduce the results of the following paper [1]:

[1] T. Zheng, J. Zhu, Q. Yu, Y. Yan and L. Dai, “Coded beam training,” IEEE J. Sel. Areas Commun., vol. 43, no. 3, pp. 928-943, March 2025. 

*********************************************************************************************************************************
If you use this simulation code package in any way, please cite the original paper [1] above. 
 
The author in charge of this simulation code pacakge is: Tianyue Zheng (email: zhengty22@mails.tsinghua.edu.cn).

Reference: We highly respect reproducible research, so we try to provide the simulation codes for our published papers (more information can be found at: 
http://oa.ee.tsinghua.edu.cn/dailinglong/publications/publications.html). 

Please note that the MATLAB R2020a is used for this simulation code package,  and there may be some imcompatibility problems among different MATLAB versions. 

Copyright reserved by the Broadband Communications and Signal Processing Laboratory (led by Dr. Linglong Dai), Beijing National Research Center for Information Science and Technology (BNRist), Department of Electronic Engineering, Tsinghua University, Beijing 100084, China. 

*********************************************************************************************************************************
Abstract of the paper: 

In extremely large-scale multiple-input-multiple-output (XL-MIMO) systems for future sixth-generation (6G) communications, codebook-based beam training stands out as a promising technology to acquire channel state information (CSI). Despite their effectiveness, existing beam training methods suffer from significant achievable rate degradation for remote users with low signal-to-noise ratio (SNR). To tackle this challenge, leveraging the error-correcting capability of channel codes, we incorporate channel coding theory into beam training to enhance the training accuracy, thereby extending the coverage area. Specifically, we establish the duality between hierarchical beam training and channel coding, and build on it to propose a general coded beam training framework. Then, we present two specific implementations exemplified by coded beam training methods based on Hamming codes and convolutional codes, during which the beam encoding and decoding processes are refined respectively to better accommodate to the beam training problem. Simulation results have demonstrated that, the proposed coded beam training method can enable reliable beam training performance for remote users with low SNR, while keeping training overhead low.
*********************************************************************************************************************************
How to use this simulation code package?

Fig. 8 can be obtained by running main_sumrate.m.

Fig. 9 can be obtained by running main_successrate.m.

Fig. 10 can be obtained by running main_sumrate_compare.m.

Fig. 11 can be obtained by running main_decoder.m.

Fig. 12 can be obtained by running main_nt.m.

Fig. 13 can be obtained by running main_multipath.m.

Fig. 14 can be obtained by running main_dis.m.

*********************************************************************************************************************************
Enjoy the reproducible research!