Skip to content

YuZhang-GitHub/RIS_Codebook

Repository files navigation

Learning Reflection Beamforming Codebooks for Arbitrary RIS and Non-Stationary Channels

This is the simulation codes related to the following article: Y. Zhang and A. Alkhateeb, "Learning Reflection Beamforming Codebooks for Arbitrary RIS and Non-Stationary Channels," in arXiv preprint arXiv:2109.14909.

Abstract of the Article

Reconfigurable intelligent surfaces (RIS) are expected to play an important role in future wireless communication systems. These surfaces typically rely on their reflection beamforming codebooks to reflect and focus the signal on the target receivers. Prior work has mainly considered pre-defined RIS beamsteering codebooks that do not adapt to the environment and hardware and lead to large beam training overhead. In this work, a novel deep reinforcement learning based framework is developed to efficiently construct the RIS reflection beam codebook. This framework adopts a multi-level design approach that transfers the learning between the multiple RIS subarrays, which speeds up the learning convergence and highly reduces the computational complexity for large RIS surfaces. The proposed approach is generic for co-located/distributed RIS surfaces with arbitrary array geometries and with stationary/non-stationary channels. Further, the developed solution does not require explicitly channel knowledge and adapts the codebook beams to the surrounding environment, user distribution, and hardware characteristics. Simulation results show that the proposed learning framework can learn optimized interaction codebooks within reasonable iterations. Besides, with only 6 beams, the learned codebook outperforms a 256-beam DFT codebook, which significantly reduces the beam training overhead.

Dataset Structure

As shown in the figure below, we leverage DeepMIMO dataset to generate the data used in this paper. To simulate the non-stationarity of the large surface, we create four _geographically distributed_ reflecting surfaces with each of them employing a 64-element ULA. These surfaces maintain a distance of 1 meter between each other, and are aligned along the y-axis in the O1_60 scenario. The generated datasets are already included in this repository and can be found in each subfolder.

Figure

Simulation Structure

In the paper, we propose a multi-level RIS codebook design solution to reduce the design complexity. As shown in the figure below, the distributed RISs consist of four RISs and we further divide each RIS into two subarrays. The design starts from subarray, then the RIS and finally the four RISs.

drawing

Corresponding to the designed solution, we have four subfolders named "LIS_x" in this repository. Each of the folder corresponds to one RIS, consisting of two subarrays. A two-level learning is based on each folder:

  • Step 1 (In folder S1): Learning from scratch of one subarray.
  • Step 2 (In folder S2): Transfer learning of the second subarray by initializing the network parameters with the trained first subarray's.
  • Step 3 (In folder C1): The second-level learning that combines the learning results of the two subarrays.

After that, the final, i.e., the third-level learning is performed:

  • Step 4 (In folder Comb_net): The third-level learning that combines the learning results of the four RISs.

Note: At each step mentioned above, you just simply run main.py file.

If you have any problems with generating the figure, please contact Yu Zhang.

License and Referencing

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:

Y. Zhang and A. Alkhateeb, "Learning Reflection Beamforming Codebooks for Arbitrary RIS and Non-Stationary Channels," in arXiv preprint arXiv:2109.14909.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages