What is the Difference Between Beamforming and Precoding?

I’ve got an email with this question last week. There is not one but many possible answers to this question, so I figured that I write a blog post about it.

One answer is that beamforming and precoding are two words for exactly the same thing, namely to use an antenna array to transmit one or multiple spatially directive signals.

Another answer is that beamforming can be divided into two categories: analog and digital beamforming. In the former category, the same signal is fed to each antenna and then analog phase-shifters are used to steer the signal emitted by the array. This is what a phased array would do. In the latter category, different signals are designed for each antenna in the digital domain. This allows for greater flexibility since one can assign different powers and phases to different antennas and also to different parts of the frequency bands (e.g., subcarriers). This makes digital beamforming particularly desirable for spatial multiplexing, where we want to transmit a superposition of signals, each with a separate directivity. It is also beneficial when having a wide bandwidth because with fixed phases the signal will get a different directivity in different parts of the band. The second answer to the question is that precoding is equivalent to digital beamforming. Some people only mean analog beamforming when they say beamforming, while others use the terminology for both categories.

Analog beamforming uses phase-shifters to send the same signal from multiple antennas but with different phases. Digital beamforming designs different signals for each antennas in the digital baseband. Precoding is sometimes said to be equivalent to digital beamforming.

A third answer is that beamforming refers to a single-user transmission with one data stream, such that the transmitted signal consists of one main-lobe and some undesired side-lobes. In contrast, precoding refers to the superposition of multiple beams for spatial multiplexing of several data streams.

A fourth answer is that beamforming refers to the formation of a beam in a particular angular direction, while precoding refers to any type of transmission from an antenna array. This definition essentially limits the use of beamforming to line-of-sight (LoS) communications, because when transmitting to a non-line-of-sight (NLoS) user, the transmitted signal might not have a clear angular directivity. The emitted signal is instead matched to the multipath propagation so that the multipath components that reach the user add constructively.

A fifth answer is that precoding consists of two parts: choosing the directivity (beamforming) and choosing the transmit power (power allocation).

I used to use the word beamforming in its widest meaning (i.e., the first answer), as can be seen in my first book on the topic. However, I have since noticed that some people have a more narrow or specific interpretation of beamforming. Therefore, I nowadays prefer only talking about precoding. In Massive MIMO, I think that precoding is the right word to use since what I advocate is a fully digital implementation, where the phases and powers can be jointly designed to achieve high capacity through spatial multiplexing of many users, in both NLoS and LOS scenarios.

13 thoughts on “What is the Difference Between Beamforming and Precoding?”

    1. Yes, that is what I meant. You are right that it is important to say this explicitly when dealing with multi-antenna communications. I have updated the text. Thank you!

  1. I think “Massive Precoding” would make more sense as “Precoding” is well known already in classical MIMO. By classical MIMO I mean non-massive MIMO.

  2. Maybe a pseudo sixth answer is that precoding can be viewed as beamforming in the eigen direction of the channel rather than in any physical angular direction! However, in the TDD based massive MIMO with fewer resolvable paths (say mmWave) is it possible to set the downlink precoder as the steering matrix containing the angles of arrival estimated in the uplink? In that case, I think, the precoder maximizing the achievable rate and ‘conventional’ beamformer become similar!

    1. You are right, eigenbeamforming is a terminology that is being used even when the eigenvector does not correspond to correspond to a physical direction.

      If there is only a small number of resolvable paths, I think that the optimal precoder will be a linear combination of the steering vectors for the angles of arrivals of these paths. If the angles are all similar, the resulting beam will be almost as the steering vector of one of the angles. If the angles are very different, none of the steering vectors will be a good match.

  3. With analog beamforming, changing the phase of each antenna will create a specific antenna pattern pointing to a certain direction. I am wondering if the same happens with digital beamforming?

    1. Any analog beamforming can be implemented by digital beamforming, but the opposite is not true.

      With digital beamforming you can create antenna patterns that are not achievable with analog beamforming. It will basically be a superposition of any number of analog beams, resulting in an antenna pattern that might not have a distinct direction. For example, it can be tailored to a user channel to provide a strong signal in a non-line-of-sight situation (with many multipath components in different directions). In addition to that, you can assign different antenna patterns to different parts of the frequency spectrum, while analog beamforming must assign the same phases to the entire frequency band.

  4. I wonder that how can we get different directivity in different parts of the bands when phases of the signals are fixed?
    Please, explain in more detail.

    1. That is not possible and this is one of the key limitations of analog beamforming. If you have a strongly frequency-selective channel (e.g., non-line-of-sight propagation) you need different directivity in different parts of the band, which can be achieved by digital beamforming but not by analog beamforming.

  5. Professor Bjornson – I really enjoy your Youtube videos immensely. Since I’m new to learning about massive MIMO, can you simply tell me the most practical multiplier over the current LTE spectral efficiency with Massive MIMO? I’ve read multipliers up to and beyond 50. But looking for something practical that can be implemented. Also, and equally important, how much more of a mulitiplier does beamforming add to the MIMO mutlplier? I’m looking for X and Y below — SE with mMIMO and beamforming =(1.8 b/s/Hz)X(maximum practical MIMO multiplier below 6 GHz {assume 100 antenna elements}) X (beamforming multiplier). Thank you very much!

  6. Professor Bjornson thank you for this blog. I have a basic question to verify that I understood well. So if we consider ZF in massive MIMO for exemple serving simultaneously 10 users with M = 100 Tx antennas. The ZF beamformer at Tx will send signal corresponding to the different Rx users and also nulls from other antennas? The shaped beam for each user should contain the power in the estimated eigendirection and nulls I suppose from other antennas in the array?

    1. Each channel from the 100 TX antennas to one of the Rx users is represented by a 100-length vector. When transmitting to user 1, you find a beamforming direction (i.e., a vectors) that is orthogonal to the channels of user 2,…,10, but as parallel to the channel of user 1 as is possible under the orthogonality constraint. When you have done this for every user, you take each user’s beamforming vector multiply it with the intended signal of that user and add it all up. As a consequence, every antenna sends a combination of the signals from all the users.

      I’m not sure what you mean with “eigendirections” since this word has many different meanings in the literature, but it is not important here.

      For more details, you can check out my article:

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

Leave a Reply

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