New Massive MIMO Book

For the past two years, I’ve been writing on a book about Massive MIMO networks, together with my co-authors Jakob Hoydis and Luca Sanguinetti. It has been a lot of hard work, but also a wonderful experience since we’ve learned a lot in the writing process. We try to connect all dots and provide answers to many basic questions that were previously unanswered.

The book has now been published:

Emil Björnson, 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.

What is new with this book?

Marzetta et al. published Fundamentals of Massive MIMO last year. It provides an excellent, accessible introduction to the topic. By considering spatially uncorrelated channels and two particular processing schemes (MR and ZF), the authors derive closed-form capacity bounds, which convey many practical insights and also allow for closed-form power control.

In the new book, we consider spatially correlated channels and demonstrate how such correlation (which always appears in practice) affects Massive MIMO networks. This modeling uncovers new fundamental behaviors that are important for practical system design. We go deep into the signal processing aspects by covering several types of channel estimators and deriving advanced receive combining and transmit precoding schemes.

In later chapters of the book, we cover the basics of energy efficiency, transceiver hardware impairments, and various practical aspects; for example, spatial resource allocation, channel modeling, and antenna array deployment.

The book is self-contained and written for graduate students, PhD students, and senior researchers that would like to learn Massive MIMO, either in depth or at an overview level. All the analytical proofs, and the basic results on which they build, are provided in the appendices.

On the website, you will find Matlab code that reproduces all the simulation figures in the book. You can also download exercises and other supplementary material.

Update: Get a free copy of the book

From August 2018, you can download a free PDF of the authors’ version of the manuscript. This version is similar to the official printed books, but has a different front-page and is also regularly updated to correct typos that have been identified.

21 thoughts on “New Massive MIMO Book”

  1. In your book, you have provided the updated assessment, for example that pilot contamination is not a fundamental limitation. May I ask if it’s still feasible to propose a novel pilot assignment and power assignment for the conventional i.i.d. Rayleigh fading mode considering reuse factor f=1 to reduce pilot contamination. I have done some work, but I’m thinking whether to continue.

    1. Yes, “pilot contamination is not a fundamental limitation” only means that the capacity grows without bound as the number of antennas increases. In practice, you will have a finite number of antennas and therefore the capacity is finite. You can then use resource allocation to optimize the individual users’ performance. As described in Sections 7.1 and 7.2 of the book, power allocation and pilot assignment are two ways to optimize the performance in practice.

  2. I saw a lot of papers on massive MIMO and they use different way to calculate achievable rate of a user. For example:
    – paper “Energy and spectral efficiency of very large multi-user MIMO systems-N.Q. Ngo” they consider the estimated channel is true channel and they give formula (36).
    – paper “Massive MIMO for Maximal Spectral Efficiency: How Many Users and Pilots Should Be Allocated?” is your paper, you consider noise as the worst-case Gaussian distributed in the decoding and give the formula (12).

    So I have some question:
    1. Are they equivalent?
    2. In simulation, can I calculate the effective SINR of a user similar with the formula (12) in your paper but the Expectation respect to channel realization is outside the whole formula (12) as: SINR = E {(|g_jk^H*h_jjk|^2)/(∑_(l,m) g_jk^H*h_jlm -|g_jk^H*h_jjk|^2 + |g_jk|^2)}?

    1. 1. No, they are not equivalent. Both are legitimate lower bounds on the capacity, but (36) in Ngo’s paper is a tighter bound (give a a larger value) than (12) in my paper.

      You can compare this with Theorem 4.1 in my new book, which is a tighter bound on the capacity than Theorem 4.4 in my book. However, the benefit with Theorem 4.4 and (12) in my paper is that you can compute the SINR expression in closed form when using MR combining.

      2. You can use any of the two capacity bounds, but not mix them. If you have good channel hardening in your system, the difference between the two bounds will be small. But if the hardening is weak, then the difference can be large. This is exemplified in Figure 4.11 of my new book.

      1. Thank you very much for your answer, I have an other question that I hope you can take the time to answer:
        In the simulation, how can I compare these bounds with the true value of SINR? For example: I generate 10000 realizations of the small scale matrix (suppose that users’ positions do not change so large-scale coefficients do not change). I can calculate the lower bound of SINR user as your formula (12), but in each realization, what is the correct formula to calculate the true value of SINR (not lower bound) so that I can compare the lower bound and the true SINR (and check if the lower is tigh or loose).

        1. The true capacity (which would lead to the “true value of the SINR”) is not known under imperfect CSI, so we need to deal with bounds or approximations. What you could do is to use your 10000 realizations to compute the alternative lower bound from Ngo’s paper (or Theorem 4.1 in my book). That is the tightest lower bound that is known so it could serve as a benchmark.

  3. Thank you very much, Dr. Bjornson. Your answer helped me a lot. Actually, I am an independent researcher and I am very interested in massive MIMO. I have a last question and hope that you can help me answer it:

    1. In Dr. Ngo’s paper, he claims ”BS treats estimated channel as true channel” and assumes that the desired signal is v_jk^H*g_jk*x_jk (g is estimated channel, v is a linear receiver derived from g, h is the true channel, x is the data symbol), and the difference between estimated channel and true channel (e_jk = g_jk – h_jjk) is treated as noise: e_jk*x_jk. The instantaneous SINR (SINR in each small-scale channel realization) is calculated as (36) in Dr. Ngo’s paper.

    2. In some other papers, I saw they consider the desired signal is v_jk^H*h_jjk*x_jk. Instantaneous SINR is calculated as formula (9) in paper ”Adaptive pilot allocation algogrithm for Pilot Contamination Mitigation in TDD massive MIMO system” by Makram Alkhaled, Emad Alsusa.

    Are they both legitimate assumptions and I can use any of them in my simulation?

    1. This is a good question, because there is a lot of confusion around these things in the literature!

      The capacity bound used in Ngo’s paper assumes that the MMSE channel estimates are used for both selecting the linear receiver and for data detection. This makes practical sense! In contrast, Alkhaled’s paper assumes that the estimates are used for selecting the linear receiver, but then in the data detection, the receiver suddenly has perfect CSI (otherwise (10) in Alkhaled’s paper will not be an achievable spectral efficiency). This weird assumption is probably an unintentional mistake, caused by guessing what the SINR would look like instead of using a rigorous capacity bound. I would have rejected this paper if I was the reviewer.

      In summary, you should use the bound from Ngo’s paper.

      1. Thank you very much Dr. Bjornson.
        The above questions really did make me confused, now I understand clearly these two assumptions. But there is an other way of calculating the SINR which is used in many papers, such as [1]. In [1], the formula (5) is data detection using estimated channel but after that, the authors of [1] calculated the SINR as in (6), this is very weird to me because I think (6) is only for perfect CSI. Could you please explain that?

        [1] “Soft Pilot Reuse and Multicell Block Diagonalization Precoding for Massive MIMO systems” – Xudong Zhu, Zhaocheng Wang.

        1. What you are saying is correct: The authors are implicitly assuming there is perfect CSI in the data detection, which is unreasonable given their system model.

          This is yet another paper that should have been rejected due to using incorrect rate expressions.

          1. Thank you very much!
            Actually, I think there is no “concrete and official” way to calculate SINR in case of imperfect CSI. Instead, we just rely on some reasonable assumptions (like the assumption in Dr. Ngo’s paper or your paper).

          2. You are right that there is not one way to calculate the SINR under imperfect CSI, but multiple ways. In particular, if we want to claim that log2(1+SINR) is an achievable rate, we need to use one of the rigorous capacity lower bounds when computing the SINR. It is easy to make mistakes and there are many published papers that make mistakes in this respect. This explained in my new blog post:

        2. Dear Dr. Björnson and HieuDT,

          Thank you for the interesting discussion! It really provides clear explanations on some otherwise confusing explanations.

  4. What is the difference between phased array and MIMO? What kind of input is given to each antenna in massive mimo for beamforming?

  5. Can we determine if a user is in line-of-sight or non-line-of-sight based on the path loss and fading in massive MIMO?

    1. Yes, that can be done. I don’t think the path loss itself will reveal much because line-of-sight users can be far away (high path loss) and non-line-of-sight users can be close to the base station (low path loss), but the fading can certainly be used for this purpose.

      One simple approach is the estimate the number of channel taps in the time domain. A line-of-sight channel will have one dominant channel tap.

  6. Hi Emil,
    I just got an in-depth introduction to MIMO by seeing your lectures on youtube. The lectures are wonderful and are a clear testimony of your interest and passion for wireless technology.

    I am really interested to implement (MATLAB/C++) a toy problem related to massive MIMO from channel estimation point of view and then take it further. Many materials exist in practice and not sure which one to choose. Hence, here your kind suggestions are required.

    I am doing my Ph.D. which covers the subject of Estimation theory, Statistical inversion methods, and Optimization. By education, I am a Microwave Engineer.

    1. Hi!

      If you read Chapter 3 in my book Massive MIMO networks (, you can find many examples related to channel estimation in Massive MIMO. I would suggest that you reproduce such results as a first exercise.

  7. Hi! I am Paraman and I am doing a PhD on 5G ultra dense network, considering energy efficiency and spectral efficiency. My question is whether cell-free massive MIMO with NOMA is good for ultra dense netwok for improving EE and SE.

    1. Cell-free Massive MIMO can indeed be useful to improve the SE, particularly to reduce the variations between users. Whether one improves EE depends on what you compare against. With some extra signal processing and fronthaul signaling, we can improve the SE compared to a cellular network.

      I’m not sure what you refer to when you say NOMA. Cell-free massive MIMO is an SDMA system, which is a non-orthogonal multiple access scheme. If you refer to the use of non-linear processing (superposition coding, dirty paper coding, etc.), I haven’t seen concrete evidence that it brings large improvements in these systems. So I would say no.

Leave a Reply

Your email address will not be published. Required fields are marked *