Two-timescale joint power control and beamforming design with applications to cell-free massive MIMO
This is a code package related to the following scientific article:
Lorenzo Miretti, Renato L. G. Cavalcante, Slawomir Stanczak, “Two-timescale joint power control and beamforming design with applications to cell-free massive MIMO,” in IEEE Transactions on Wireless Communications, to appear, 2025
The package contains a simulation environment that reproduces the numerical results in the article. We encourage you to also perform reproducible research!
In this study we derive novel optimal algorithms for joint power control and beamforming design in modern large-scale MIMO systems, such as those based on the cell-free massive MIMO and XL-MIMO concepts. In particular, motivated by the need for scalable system architectures, we formulate and solve nontrivial two-timescale extensions of the classical uplink power minimization and max-min fair resource allocation problems. In our formulations, we let the beamformers be functions mapping partial instantaneous channel state information (CSI) to beamforming weights, and we jointly optimize these functions and the power control coefficients based on long-term statistical CSI. This long-term approach mitigates the severe scalability issues of competing short-term iterative algorithms in the literature, where a central controller endowed with global instantaneous CSI must solve a complex optimization problem for every channel realization, hence imposing very demanding requirements in terms of computational complexity and signaling overhead. Moreover, our approach outperforms the available long-term approaches, which do not jointly optimize powers and beamformers. The obtained optimal long-term algorithms are then illustrated and compared against existing short-term and long-term algorithms via numerical simulations in a cell-free massive MIMO setup with different levels of cooperation.
The article contains 5 simulation figures, numbered 2-6. Figure 2-4 are composed by 2 subfigures, labelled a-b.
Figure 2a is generated by the Python script
convergence_FP.py
Figure 2a is generated by the Python script
convergence_NFP.py
Figure 3 is generated by the Python script
comparison_info_constraints.py
Figure 4a and Figure 6 are generated by the Python script
comparison_centralized.py
Figure 4b is generated by the Python script
fluctuations_centralized.py
Figure 5 is generated by the Python script
comparison_distributed.py
The main routines used by the above scripts are collected in
powercontrol.py
Warning: The name of some variables may differ from the notation adopted in the paper.
This work was supported by the Federal Ministry of Education and Research of Germany in the programme of “Souverän. Digital. Vernetzt.” Joint projects 6G-ANNA and 6G-RIC, project identification numbers: 16KISK087, 16KISK020K, 16KISK030.
This code package is licensed under the GPLv2 license. If you in any way use this code for research that results in publications, please cite our original article listed above.