This is a code package is related to the following scientific article:
Özlem Tuğfe Demir and Emil Björnson, “Joint Power Control and LSFD for Wireless-Powered Cell-Free Massive MIMO,” IEEE Transactions on Wireless Communications, vol. 20, no. 3, pp. 1756-1769, March 2021, doi: 10.1109/TWC.2020.3036281.
The package contains a simulation environment, based on Matlab, that reproduces some of the numerical results and figures in the article. We encourage you to also perform reproducible research!
This paper considers wireless uplink information and downlink power transfer in cell-free massive multiple-input multiple-output systems. The single-antenna user equipments (UEs) utilize the energy harvested in the downlink to transmit uplink pilot and information signals to the multiple-antenna access points (APs). We consider Rician fading and maximum ratio processing based on either linear minimum mean-squared error (LMMSE) or least-squares (LS) channel estimation. We derive the average harvested energy by using a practical non-linear energy harvesting circuit model for both coherent and non-coherent transmission schemes. Furthermore, the uplink spectral efficiency (SE) is derived for all the considered methods and the max-min fairness problem is cast where the optimization variables are the AP and UE power control coefficients together with the large-scale fading decoding vectors. The objective is to maximize the minimum SE of the UEs’ under APs’ and UEs’ transmission power constraints. A novel alternating optimization algorithm with guaranteed convergence and improvement at each step is proposed to solve the highly-coupled non-convex problem.
The article contains 12 simulation figures, numbered 2-13. Figures 2 and 3 are generated by the Matlab script Fig2_3.m. Figures 4, 5, 12, and 13 are generated by the Matlab script Fig4_5_12_13.m. Figures 6 and 7 are generated by the Matlab script Fig6_7.m. Figures 8, 9, 10, and 11 are generated respectively by the Matlab scripts Fig8.m, Fig9.m, Fig10.m, and Fig11.m. The package also contains the Matlab scripts functionExampleSetup.m, functionExpectations_lmmse.m, functionExpectations_lmmse_random_pilot_sequence.m, functionExpectations_ls.m, optimize_power_coh_lin.m, optimize_power_coh_nonlin.m, optimize_power_noncoh_lin.m, and optimize_power_noncoh_nonlin.m that are MATLAB functions used by some of the scripts.
For the optimization problems, the convex programming solver CVX http://cvxr.com/cvx/ is used. Please adjust the default solver of CVX to SDPT3 not to encounter any issues. The version we have tested was SDPT3 4.0.
See each file for further documentation.
The work of Ö. T. Demir and E. Björnson was partially supported by ELLIIT and the Wallenberg AI, Autonomous Systems and Software Program (WASP) funded by the Knut and Alice Wallenberg Foundation.
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.