Precoding is a generalization of beamforming to support multi-stream (or multi-layer) transmission in multi-antenna wireless communications. In conventional single-stream beamforming, the same signal is emitted from each of the transmit antennas with appropriate weighting (phase and gain) such that the signal power is maximized at the receiver output. When the receiver has multiple antennas, single-stream beamforming cannot simultaneously maximize the signal level at all of the receive antennas. In order to maximize the throughput in multiple receive antenna systems, multi-stream transmission is generally required.

In point-to-point systems, precoding means that multiple data streams are emitted from the transmit antennas with independent and appropriate weightings such that the link throughput is maximized at the receiver output. In multi-user MIMO, the data streams are intended for different users (known as SDMA) and some measure of the total throughput (e.g., the sum performance or max-min fairness) is maximized. In point-to-point systems, some of the benefits of precoding can be realized without requiring channel state information at the transmitter, while such information is essential to handle the inter-user interference in multi-user systems. Precoding in the downlink of cellular networks, known as network MIMO or coordinated multipoint (CoMP), is a generalized form of multi-user MIMO that can be analyzed by the same mathematical techniques.

Precoding

Precoding in Simple Words

Precoding is a technique that exploits transmit diversity by weighting the information stream, i.e. the transmitter sends the coded information to the receiver to achieve pre-knowledge of the channel. The receiver is a simple detector, such as a matched filter, and does not have to know the channel state information. This technique will reduce the corrupted effect of the communication channel.

Precoding

For example, you are sending the information , and it will pass through the channel , and add Gaussian noise . The received signal at the receiver front-end will be ;

Precoding

The receiver will have to know the information about and . It will suppress the effect of by increasing SNR, but what about ? It needs information about the channel, , and this will increase the complexity. The receiver (mobile units) has to be simple for many reasons like cost or size of mobile unit. So, the transmitter (the base station) will do the hard work and predict the channel.

Let us call the predicted channel

and for a system with precoder the information will be coded: . The received signal will be .

If your prediction is perfect, and and it turns out to be the detection problem in Gaussian channels which is simple.

To prevent a potential misunderstanding here, precoding does not cancel out the impact of the channel, but it aligns the vector containing the transmit symbols (i.e. transmit vector) with the eigenvector(s) of the channel. In simple terms, it transforms the transmit symbols' vector in such a way that the vector reaches the receiver in the strongest form that is possible in the given channel.

Why do they call it "coding"? It is a preprocessing technique that performs transmit diversity and it is similar to equalization, but the main difference is that you have to optimize the precoder with a decoder. Channel equalization aims to minimize channel errors, but the precoder aims to minimize the error in the receiver output.

Precoding for Point-to-Point MIMO Systems

In point-to-point multiple-input multiple-output (MIMO) systems, a transmitter equipped with multiple antennas communicates with a receiver that has multiple antennas. Most classic precoding results assume narrowband, slowly fading channels, meaning that the channel for a certain period of time can be described by a single channel matrix which does not change faster. In practice, such channels can be achieved, for example, through OFDM. The precoding strategy that maximizes the throughput, called channel capacity, depends on the channel state information available in the system.

Statistical channel state information

If the receiver knows the channel matrix and the transmitter has statistical information, eigenbeamforming is known to achieve the MIMO channel capacity. In this approach, the transmitter emits multiple streams in eigendirections of the channel covariance matrix.