• Stars
    star
    342
  • Rank 123,697 (Top 3 %)
  • Language
    MATLAB
  • Created about 7 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Book PDF and simulation code for the monograph "Massive MIMO Networks: Spectral, Energy, and Hardware Efficiency" by Emil Björnson, Jakob Hoydis and Luca Sanguinetti, published in Foundations and Trends in Signal Processing, 2017.

Massive MIMO Networks: Spectral, Energy, and Hardware Efficiency

This repository contains the authors' free public PDF of the textbook:

Emil Bjornson, Jakob Hoydis and Luca Sanguinetti (2017), "Massive MIMO Networks: Spectral, Energy, and Hardware Efficiency", Foundations and Trends in Signal Processing: Vol. 11, No. 3-4, pp. 154-655. DOI: 10.1561/2000000093.

For further information about the book, please visit: https://www.massivemimobook.com

Simulation code: The repository also contains the code package that is distributed along with the textbook. The package contains a simulation environment, based on Matlab, that can be used to reproduce all the simulation results in the monograph. We hope that the code will support you in the learning of the Massive MIMO topic and also serve as a baseline for further research endeavors. We encourage you to also perform reproducible research!

Abstract of the Book

Massive multiple-input multiple-output (MIMO) is one of the most promising technologies for the next generation of wireless communication networks because it has the potential to provide game-changing improvements in spectral efficiency (SE) and energy efficiency (EE). This monograph summarizes many years of research insights in a clear and self-contained way and provides the reader with the necessary knowledge and mathematical tools to carry out independent research in this area. Starting from a rigorous definition of Massive MIMO, the monograph covers the important aspects of channel estimation, SE, EE, hardware efficiency (HE), and various practical deployment considerations.

From the beginning, a very general, yet tractable, canonical system model with spatial channel correlation is introduced. This model is used to realistically assess the SE and EE, and is later extended to also include the impact of hardware impairments. Owing to this rigorous modeling approach, a lot of classic “wisdom” about Massive MIMO, based on too simplistic system models, is shown to be questionable.

The monograph contains many numerical examples, which can be reproduced using Matlab code that is available online.

Content of the Code Package

This code package contains 74 Matlab scripts, 29 Matlab functions, and 7 binary files with Matlab data.

Each script is used to reproduce a particular simulation-generated figure in the book. The scripts are named using the convention sectionX_figureY, which is interpreted as the script that reproduces Figure X.Y. A few scripts are instead named as sectionX_figureY_Z and will then generate both Figure X.Y and Figure X.Z.

The functions are used by the scripts to carry out certain tasks, such as initiating a simulation setup, generating channel correlation matrices, generating channel realizations, computing channel estimates, computing SEs, computing the power consumption, etc.

The Matlab data files are of the type .mat and contain measurement results or particular precomputed simulation results.

See each script and function for further documentation. Note that some of the functions use CVX and QuaDRiGa, which need to be installed separately; see below.

Software and Hardware Requirements

The code was written to be used in Matlab and has been tested in Matlab 2015b. Some of the scripts and functions might also work in Octave, but there is no guarantee of compatibility.

A few scripts and functions require additional software packages that have been developed independently and are delivered with separate licenses. To generate Figures 7.2, 7.41, and 7.42, you need to solve convex optimization problems using CVX from CVX Research, Inc. (http://cvxr.com/cvx/). The code has been tested with CVX 2.1 (Build 1112) using the solver Mosek (version 7.1.0.12). We discourage the use of the solvers SDPT3 and SeDuMi since these crashed during the test. To generate Figures 7.41 and 7.42, you also need to generate channels using the QuaDRiGa channel model from the Fraunhofer Heinrich Hertz Institute (http://www.quadriga-channel-model.de). The code has been tested with QuaDRiGa version 1.4.8-571.

Since the running example in this monograph considers a setup with 16 cells, 100 antennas per BS, and 10 UEs per cell, some of the simulations require a lot of RAM to store the channel correlation matrices and channel realizations. The code has been tested successfully on a MacBook Pro with 8 GB 1600 MHz DDR3 RAM and a 2.6 GHz Intel Core i5 processor, which should be viewed as a minimum requirement for using this code. Some of the simulations can take days to run, therefore we recommend that you first set nbrOfSetups = 1 to check how much time it takes for each realization of random UE location and shadow fading.

Acknowledgements

We would like to thank the editor Robert W. Heath Jr. for organizing the review of this monograph and the anonymous reviewers for their constructive and detailed comments. We are grateful for the feedback provided by our proof-readers Alessio Zappone (University of Cassino and Southern Lazio), Maximilian Arnold (University of Stuttgart), Andrea Pizzo (University of Pisa), Daniel Verenzuela, Hei Victor Cheng, Giovanni Interdonato, Marcus Karlsson, Antzela Kosta, Özgecan Özdogan (Linköping University), and Zahid Aslam (Siradel).

Emil Björnson has been supported by ELLIIT, CENIIT, and the Swedish Foundation for Strategic Research.

Luca Sanguinetti has been supported by the ERC Starting Grant 305123 MORE.

License and Referencing

The authors' version of the textbook, which is found in this repository, is delivered for free personal use. It may not be redistributed without permission and may not be sold. The copyright is owned by the authors, E. Björnson, J. Hoydis and L. Sanguinetti. You can buy color-printed hardback books from https://www.nowpublishers.com/article/Details/SIG-093

The simulation code is licensed under the GPLv2 license. If you in any way use this code for research that results in publications, please cite our textbook as described above. We also recommend that you mention the existence of this code package in your manuscript, to spread the word about its existence and to ensure that you will not be accused of plagiarism by the reviewers of your manuscript.

More Repositories

1

optimal-beamforming

Simulation code for “Optimal Multiuser Transmit Beamforming: A Difficult Problem with a Simple Solution Structure” by Emil Björnson, Mats Bengtsson, and Björn Ottersten, IEEE Signal Processing Magazine, vol. 31, no. 4, pp. 142-148, July 2014.
MATLAB
144
star
2

IRS-relaying

Simulation code for “Intelligent Reflecting Surface vs. Decode-and-Forward: How Large Surfaces Are Needed to Beat Relaying?,” by Emil Björnson, Özgecan Özdogan, Erik G. Larsson, IEEE Wireless Communications Letters, vol. 9, no. 2, pp. 244-248, February 2020.
MATLAB
105
star
3

MIMO-channel-estimation

Simulation code for “A Framework for Training-Based Estimation in Arbitrarily Correlated Rician MIMO Channels with Rician Disturbance” by Emil Björnson and Björn Ottersten, IEEE Transactions on Signal Processing, vol. 58, no. 3, pp. 1807-1820, March 2010.
MATLAB
104
star
4

cell-free-book

Book PDF and simulation code for the monograph "Foundations of User-Centric Cell-Free Massive MIMO" by Özlem Tugfe Demir, Emil Björnson and Luca Sanguinetti, published in Foundations and Trends in Signal Processing, 2021.
MATLAB
104
star
5

deep-learning-channel-estimation

Simulation code for “Channel Estimation in Massive MIMO under Hardware Non-Linearities: Bayesian Methods versus Deep Learning,” by Özlem Tugfe Demir, Emil Björnson, IEEE Open Journal of the Communications Society, To appear.
Python
91
star
6

book-resource-allocation

Simulation code for the book “Optimal Resource Allocation in Coordinated Multi-Cell Systems” by Emil Björnson and Eduard Jorswieck, Foundations and Trends in Communications and Information Theory, vol. 9, no. 2-3, pp. 113-381, 2013
MATLAB
84
star
7

IRS-modeling

Simulation code for “Intelligent Reflecting Surfaces: Physics, Propagation, and Pathloss Modeling,” by Özgecan Özdogan, Emil Björnson, Erik G. Larsson, IEEE Wireless Communications Letters, To appear.
MATLAB
68
star
8

power-allocation-cell-free

Simulation code for “Learning-Based Downlink Power Allocation in Cell-Free Massive MIMO Systems,” by Mahmoud Zaher, Özlem Tuğfe Demir, Emil Björnson, Marina Petrova, IEEE Transactions on Wireless Communications, vol. 22, no. 1, pp. 174-188, Jan. 2023
Python
67
star
9

mimobook

Simulation code and accompanying material for the textbook "Introduction to Multiple Antenna Communications and Reconfigurable Surfaces" by Emil Björnson and Özlem Tuğfe Demir, Boston-Delft: now publishers, 2024
MATLAB
62
star
10

scalable-cell-free

Simulation code for “Scalable Cell-Free Massive MIMO Systems,” by Emil Björnson and Luca Sanguinetti, IEEE Transactions on Communications, to appear.
MATLAB
60
star
11

multiple_antenna_communications

This repository contains the slides (in Powerpoint and PDF formats) for the course Multiple Antenna Communications, used 2021. Video recordings of all the slides (with voice over by Emil Björnson) can be found on YouTube.
58
star
12

presentation_slides

This repository contains the slides to some of my YouTube presentations, as well as some slides and posters from conferences
56
star
13

RIS-fading

Simulation code for “Rayleigh Fading Modeling and Channel Hardening for Reconfigurable Intelligent Surfaces, IEEE Wireless Communications Letters, to appear.
MATLAB
55
star
14

massive-MIMO-small-cells

Simulation code for “Massive MIMO and Small Cells: Improving Energy Efficiency by Optimal Soft-Cell Coordination” by Emil Björnson, Marios Kountouris, Mérouane Debbah, Proceedings of International Conference on Telecommunications (ICT), Casablanca, Morocco, May 2013.
MATLAB
46
star
15

SPM_RIS

Simulation code for “Reconfigurable Intelligent Surfaces: A Signal Processing Perspective With Wireless Applications” by Emil Björnson, Henk Wymeersch, Bho Matthiesen, Petar Popovski, Luca Sanguinetti, and Elisabeth de Carvalho, IEEE Signal Processing Magazine, March 2022.
MATLAB
46
star
16

SP_Cup_2021

This repository contains the description of the IEEE Signal Processing Cup 2021. Everyone is welcome to join this cup!
MATLAB
41
star
17

competitive-cell-free

Simulation code for “Making Cell-Free Massive MIMO Competitive With MMSE Processing and Centralized Implementation,” by Emil Björnson and Luca Sanguinetti, IEEE Transactions on Wireless Communications, vol. 19, no. 1, pp. 77-90, January 2020
MATLAB
41
star
18

rician-massive-mimo

Simulation code for “Massive MIMO with Spatially Correlated Rician Fading Channels,” by Özgecan Özdogan, Emil Björnson, and Erik G. Larsson, IEEE Transactions on Communications, vol. 67, no. 5, pp. 3234-3250, May 2019
MATLAB
40
star
19

nearfield-primer

Simulation code for “A Primer on Near-Field Beamforming for Arrays and Reconfigurable Intelligent Surfaces,” by Emil Björnson, Özlem Tuğfe Demir, and Luca Sanguinetti, Asilomar Conference on Signals, Systems, and Computers, Virtual conference, October-November 2021.
MATLAB
39
star
20

massive-mimo-book-chapter

Simulation code for the book chapter “Massive MIMO Communications” by Trinh van Chien and Emil Björnson, 5G Mobile Communications, Springer, 2017
MATLAB
37
star
21

tsks14_multiple_antenna_communications

This repository contains the slides (in Powerpoint and PDF formats) for the course TSKS14 Multiple Antenna Communications, used 2020. Video recordings of all the slides (with voice over by Emil Björnson) can be found on YouTube.
36
star
22

near-field-behavior

Simulation code for “Power Scaling Laws and Near-Field Behaviors of Massive MIMO and Intelligent Reflecting Surfaces” by Emil Björnson, Luca Sanguinetti, IEEE Open Journal of the Communications Society, 2020
MATLAB
35
star
23

RIS-myths

Simulation code for “Reconfigurable Intelligent Surfaces: Three Myths and Two Critical Questions,” by Emil Björnson, Özgecan Özdogan, Erik G. Larsson, IEEE Communications Magazine, vol. 58, no. 12, pp. 90-96, December 2020.
MATLAB
34
star
24

wireless-powered-cell-free

Simulation code for “Joint Power Control and LSFD for Wireless-Powered Cell-Free Massive MIMO,” by Özlem Tuğfe Demir and Emil Björnson, IEEE Transactions on Wireless Communications, vol. 20, no. 3, pp. 1756-1769, March 2021.
MATLAB
34
star
25

rician-cell-free

Simulation code for “Performance of Cell-Free Massive MIMO with Rician Fading and Phase Shifts,” by Özgecan Özdogan, Emil Björnson, Jiayi Zhang, IEEE Transactions on Wireless Communications, vol. 18, no. 11, pp. 5299-5315, November 2019
MATLAB
27
star
26

team-MMSE

Simulation code for “Team MMSE Precoding with Applications to Cell-free Massive MIMO” by Lorenzo Miretti, Emil Björnson, David Gesbert, IEEE Transactions on Wireless Communications, vol. 21, no. 8, pp. 6242-6255, August 2022
Python
26
star
27

massive-MIMO-hardware-impairments

Simulation code for “Massive MIMO Systems with Non-Ideal Hardware: Energy Efficiency, Estimation, and Capacity Limits” by Emil Björnson, Jakob Hoydis, Marios Kountouris, Mérouane Debbah, IEEE Transactions on Information Theory, vol. 60, no. 11, pp. 7112-7139, November 2014.
MATLAB
26
star
28

mimoblog

Simulation code examples for the Massive MIMO blog
MATLAB
20
star
29

RIS-massive-MIMO

Simulation code for “Is Channel Estimation Necessary to Select Phase-Shifts for RIS-Assisted Massive MIMO?,” by Özlem Tuğfe Demir and Emil Björnson, IEEE Transactions on Wireless Communications, vol. 21, no. 11, pp. 9537-9552, November 2022
MATLAB
20
star
30

large-scale-fading-decoding

Simulation code for “Large-Scale-Fading Decoding in Cellular Massive MIMO Systems with Spatially Correlated Channels,” by Trinh Van Chien, Christopher Mollén, and Emil Björnson, IEEE Transactions on Communications, vol. 67, no. 4, pp. 2746-2762, April 2019.
MATLAB
19
star
31

maximal-SE

Simulation code for “Massive MIMO for Maximal Spectral Efficiency: How Many Users and Pilots Should Be Allocated?” by Emil Björnson, Erik G. Larsson, Mérouane Debbah, IEEE Transactions on Wireless Communications, vol. 15, no. 2, pp. 1293-1308, 2016.
MATLAB
19
star
32

multiobjective

Simulation code for “Multi-Objective Signal Processing Optimization: The Way to Balance Conflicting Metrics in 5G Systems” by Emil Björnson, Eduard Jorswieck, Mérouane Debbah, and Björn Ottersten, IEEE Signal Processing Magazine, vol. 31, no. 6, pp. 14-23, November 2014.
MATLAB
18
star
33

Book-Chapter-on-ELAA

This repository contains the code for the book chapter "Near-Field Beamforming and Multiplexing Using Extremely Large Aperture Arrays"
MATLAB
17
star
34

grant-free

Simulation code for “Clustering-Based Activity Detection Algorithms for Grant-Free Random Access in Cell-Free Massive MIMO,” by U. K. Ganesan, E. Björnson and E. G. Larsson, IEEE Transactions on Communications, vol. 69, no. 11, pp. 7520-7530, November 2021
MATLAB
16
star
35

maximal-EE

Simulation code for “Deploying Dense Networks for Maximal Energy Efficiency: Small Cells Meet Massive MIMO” by Emil Björnson, Luca Sanguinetti, Marios Kountouris, IEEE Journal on Selected Areas in Communications, vol. 34, no. 4, pp. 832-847, April 2016
MATLAB
15
star
36

is-massive-MIMO-the-answer

Simulation code for “Optimal Design of Energy-Efficient Multi-User MIMO Systems: Is Massive MIMO the Answer?” by Emil Björnson, Luca Sanguinetti, Jakob Hoydis, Mérouane Debbah, IEEE Transactions on Wireless Communications, vol. 14, no. 6, pp. 3059-3075, June 2015.
MATLAB
15
star
37

unlimited-capacity

Simulation code for “Massive MIMO has Unlimited Capacity” by Emil Björnson, Jakob Hoydis, Luca Sanguinetti, IEEE Transactions on Wireless Communications, vol. 17, no. 1, pp. 574-590, Jan. 2018.
MATLAB
14
star
38

how-energy-efficient

Simulation code for “How Energy-Efficient Can a Wireless Communication System Become?” by Emil Björnson, Erik G. Larsson, Asilomar Conference on Signals, Systems, and Computers, Pacific Grove, CA, USA, 2018.
MATLAB
13
star
39

massive-MIMO-myths

Simulation code for “Massive MIMO: Ten Myths and One Critical Question” by Emil Björnson, Erik G. Larsson, Thomas L. Marzetta, IEEE Communications Magazine, vol. 54, no. 2, pp. 114-123, February 2016
MATLAB
13
star
40

sucre-protocol

Simulation code for “A Random Access Protocol for Pilot Allocation in Crowded Massive MIMO Systems” by Emil Björnson, Elisabeth de Carvalho, Jesper H. Sørensen, Erik G. Larsson, and Petar Popovski, IEEE Transactions on Wireless Communications, vol. 16, no. 4, pp. 2220-2234, April 2017
MATLAB
13
star
41

precoding-polynomial-expansion

Minimum work examples for "Linear Precoding based on Polynomial Expansion"
MATLAB
13
star
42

sub6-mmwave

Simulation code for “Massive MIMO in Sub-6 GHz and mmWave: Physical, Practical, and Use-Case Differences,” by Emil Björnson, Liesbet Van der Perre, Stefano Buzzi, Erik G. Larsson, IEEE Wireless Communications, vol. 26, no. 2, pp. 100-108, April 2019.
MATLAB
12
star
43

capacity-limits-transceiver-impairments

Simulation code for "Capacity Limits and Multiplexing Gains of MIMO Channels with Transceiver Impairments" by Emil Björnson, Per Zetterberg, Mats Bengtsson, Björn Ottersten, IEEE Communications Letters, vol. 17, no. 1, pp. 91-94, January 2013.
MATLAB
11
star
44

distortion-correlation

Simulation code for “Hardware Distortion Correlation Has Negligible Impact on UL Massive MIMO Spectral Efficiency” by Emil Björnson, Luca Sanguinetti, and Jakob Hoydis, IEEE Transactions on Communications, To appear
MATLAB
11
star
45

dual-polarization

Simulation code for “Massive MIMO with Dual-Polarized Antennas,” by Özgecan Özdogan, Emil Björnson, IEEE Transactions on Wireless Communications, vol. 22, no. 2, pp. 1448-1463, February 2023.
MATLAB
10
star
46

one-or-multiple-streams

Simulation code for “Receive Combining vs. Multi-Stream Multiplexing in Downlink Systems with Multi-Antenna Users” by Emil Björnson, Marios Kountouris, Mats Bengtsson, Björn Ottersten, IEEE Transactions on Signal Processing, vol. 61, no. 13, pp. 3431-3446, July 2013.
MATLAB
9
star
47

radio-stripes

Simulation code for “MMSE-Optimal Sequential Processing for Cell-Free Massive MIMO With Radio Stripes,” by Zakir Hussain Shaik, Emil Björnson, Erik G. Larsson, IEEE Transactions on Communications, to appear.
MATLAB
9
star
48

multiantenna-UE

Simulation code for “Massive MIMO with Multi-Antenna Users: When are Additional User Antennas Beneficial?” by Xueru Li, Emil Björnson, Shidong Zhou, and Jing Wang, Published at ICT 2016.
MATLAB
8
star
49

new-look-at-relaying

Simulation code for “A New Look at Dual-Hop Relaying: Performance Limits with Hardware Impairments” by Emil Björnson, Michail Matthaiou, Mérouane Debbah, IEEE Transactions on Communications, vol. 61, no. 11, pp. 4512-4525, November 2013.
MATLAB
8
star
50

twoway-relaying-hardware-impairments

Simulation code for “Two-way Relaying under the Presence of Relay Transceiver Hardware Impairments” by Michail Matthaiou, Agisilaos Papadogiannis, Emil Björnson, Mérouane Debbah, IEEE Communications Letters, vol. 17, no. 6, pp. 1136-1139, June 2013.
MATLAB
6
star
51

backward-crosstalk

Simulation code for “Impact of Backward Crosstalk in 2x2 MIMO Transmitters on NMSE and Spectral Efficiency,” by Peter Händel, Özlem Tugfe Demir, Emil Björnson and Daniel Rönnow, IEEE Transactions on Communications, vol. 68, no. 7, pp. 4277-4292, July 2020.
MATLAB
6
star
52

hardware-scaling-laws

Simulation code for "Massive MIMO with Non-Ideal Arbitrary Arrays: Hardware Scaling Laws and Circuit-Aware Design" by Emil Björnson, Michail Matthaiou, Mérouane Debbah, IEEE Transactions on Wireless Communications, vol. 14, no. 8, pp. 4353-4368, August 2015
MATLAB
5
star
53

fronthaul-quantization-precoding

1
star