This is a code package is related to the follow scientific article:
Emil Björnson, Elisabeth de Carvalho, Jesper H. Sørensen, Erik G. Larsson, Petar Popovski, “A Random Access Protocol for Pilot Allocation in Crowded Massive MIMO Systems,” IEEE Transactions on Wireless Communications, vol. 16, no. 4, pp. 2220-2234, April 2017.
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!
The Massive MIMO (multiple-input multiple-output) technology has a great potential to manage the rapid growth of wireless data traffic. Massive MIMO achieves tremendous spectral efficiency by spatial multiplexing of many tens of user equipments (UEs). These gains are only achieved in practice if many more UEs can connect efficiently to the network than today. As the number of UEs increases, while each UE intermittently accesses the network, the random access functionality becomes essential to share the limited number of pilots among the UEs. In this paper, we revisit the random access problem in the Massive MIMO context and develop a reengineered protocol, termed strongest-user collision resolution (SUCRe). An accessing UE asks for a dedicated pilot by sending an uncoordinated random access pilot, with a risk that other UEs send the same pilot. The favorable propagation of Massive MIMO channels is utilized to enable distributed collision detection at each UE, thereby determining the strength of the contenders’ signals and deciding to repeat the pilot if the UE judges that its signal at the receiver is the strongest. The SUCRe protocol resolves the vast majority of all pilot collisions in crowded urban scenarios and continues to admit UEs efficiently in overloaded networks.
The article contains 6 simulation figures, numbered from 5 to 10. These are generated by the Matlab scripts simulationFigure5.m, simulationFigure6a.m, simulationFigure6b.m, simulationFigure7.m, simulationFigures8and9.m, and simulationFigure10.m. The package contains three additional Matlab functions, which are called by the main scripts: computeZPDF.m, computeZreCDF.m, and generatePointsHexagon.m.
See each file for further documentation.
This work was performed partly in the framework of the Danish Council for Independent Research (DFF133500273), the Horizon 2020 project FANTASTIC-5G (ICT-671660), the EU FP7 project MAMMOET (ICT-619086), ELLIIT, and CENIIT. The authors would like to acknowledge the contributions of the colleagues in FANTASTIC-5G and MAMMOET.
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.