# Precoding

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 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.

### Full channel state information

If the channel matrix is completely known, singular value decomposition (SVD) precoding is known to achieve the MIMO channel capacity. In this approach, the channel matrix is diagonalized by taking an SVD and removing the two unitary matrices through pre- and post-multiplication at the transmitter and receiver, respectively. Then, one data stream per singular value can be transmitted (with appropriate power loading) without creating any interference whatsoever.

## Precoding for Multi-user MIMO Systems

In multi-user MIMO, a multi-antenna transmitter communicates simultaneously with multiple user's receiver (each having one or multiple antennas). This is known as space-division multiple access (SDMA). From an implementation perspective, precoding algorithms for SDMA systems can be sub-divided into linear and nonlinear precoding types. The capacity achieving algorithms are nonlinear, but linear precoding approaches usually achieve reasonable performance with much lower complexity. Linear precoding strategies include maximum ratio transmission (MRT), zero-forcing (ZF) precoding, and transmit Wiener precoding. There are also precoding strategies tailored for low-rate feedback of channel state information, for example random beamforming. Nonlinear precoding is designed based on the concept of dirty paper coding (DPC), which shows that any known interference at the transmitter can be subtracted without the penalty of radio resources if the optimal precoding scheme can be applied on the transmit signal.
While performance maximization has a clear interpretation in point-to-point MIMO, a multi-user system cannot simultaneously maximize the performance for all users. This can be viewed as a multi-objective optimization problem where each objective corresponds to maximization of the capacity of one of the users. The usual way to simplify this problem is to select a system utility function; for example, the weighted sum capacity where the weights correspond to the system's subjective user priorities. Furthermore, there might be more users than data streams, requiring a scheduling algorithm to decide which users to serve at a given time instant.

### Linear precoding with full channel state information

This suboptimal approach cannot achieve the weighted sum rate, but it can still maximize the weighted sum performance (or some other metric of achievable rates under linear precoding). The optimal linear precoding does not have any closed-form expression, but it takes the form of a weighted MMSE precoding for single-antenna receivers. The precoding weights for a given user are selected to maximize a ratio between the signal gain at this user and the interference generated at other users (with some weights) plus noise. Thus, precoding can be interpreted as finding the optimal balance between achieving strong signal gain and limiting inter-user interference.
Finding the optimal weighted MMSE precoding is difficult, leading to approximate approaches where the weights are selected heuristically. A common approach is to concentrate on either the numerator or the denominator of the mentioned ratio; that is, maximum ratio transmission (MRT) and zero-forcing (ZF) precoding. MRT only maximizes the signal gain at the intended user. MRT is close-to-optimal in noise-limited systems, where the inter-user interference is negligible compared to the noise. ZF precoding aims at nulling the inter-user interference, at the expense of losing some signal gain. ZF precoding can achieve a performance close to the sum capacity when the number of users is large or the system is interference-limited (i.e., the noise is weak compared to the interference). A balance between MRT and ZF is obtained by the so-called regularized zero-forcing (also known as signal-to-leakage-and-interference ratio (SLNR) beamforming and transmit Wiener filtering) All of these heuristic approaches can also be applied to receivers that have multiple antennas.
Also for multiuser MIMO system setup, another approach has been used to reformulate the weighted sum rate optimization problem to a weighted sum MSE problem with additional optimization MSE weights for each symbol in. However, still this work is not able to solve this problem optimally (i.e., its solution is suboptimal). On the other hand, duality approach also considered in and to get sub-optimal solution for weighted sum rate optimization.
Note that the optimal linear precoding can be computed using monotonic optimization algorithms, but the computational complexity scales exponentially fast with the number of users. These algorithms are therefore only useful for benchmarking in small systems.

### Linear precoding with limited channel state information

In practice, the channel state information is limited at the transmitter due to estimation errors and quantization. Inaccurate channel knowledge may result in significant loss of system throughput, as the interference between the multiplexed streams cannot be completely controlled. In closed-loop systems, the feedback capabilities decide which precoding strategies are feasible. Each receiver can either feedback a quantized version of its complete channel knowledge or focus on certain critical performance indicators (e.g., the channel gain).
If the complete channel knowledge is fed back with good accuracy, then one can use strategies designed for having full channel knowledge with minor performance degradation. Zero-forcing precoding may even achieve the full multiplexing gain, but only provided that the accuracy of the channel feedback increases linearly with signal-to-noise ratio (in dB). Quantization and feedback of channel state information is based on vector quantization, and codebooks based on Grassmannian line packing have shown good performance.
Other precoding strategies have been developed for the case with very low channel feedback rates. Random beamforming (or opportunistic beamforming) was proposed as a simple way of achieving good performance that scales like the sum capacity when the number of receivers is large. In this suboptimal strategy, a set of beamforming directions are selected randomly and users feed back a few bits to tell the transmitter which beam gives the best performance and what rate they can support using it. When the number of users is large, it is likely that each random beamforming weight will provide good performance for some user.
In spatially correlated environments, the long-term channel statistics can be combined with low-rate feedback to perform multi-user precoding. As spatially correlated statistics contain much directional information, it is only necessary for users to feed back their current channel gain to achieve reasonable channel knowledge. As the beamforming weights are selected from the statistics, and not randomly, this approach outperforms random beamforming under strong spatial correlation.
In multiuser MIMO systems where the number of users are higher than the number of transmit antennas, a multiuser diversity can be achieved by performing user scheduling before applying zero-forcing beamforming. Multiuser diversity is a form of selection diversity among users, the base station can schedule its transmission to those users with favorable channel fading conditions to improve the system throughput. In order to achieve multiuser diversity and apply zero-forcing precoding, the CSI of all users are required at the base station. However, the amount of overall feedback information increases with the number of users. Therefore, it is important to perform a user selection at the receiver to determine the users which feed back their quantized CSI to the transmitter based on a pre-defined threshold.

### DPC or DPC-like nonlinear precoding

Dirty paper coding is a coding technique that pre-cancels known interference without power penalty. Only the transmitter needs to know this interference, but full channel state information is required everywhere to achieve the weighted sum capacity. This category includes Costa precoding, Tomlinson-Harashima precoding and the vector perturbation technique.

## Mathematical Description
### Description of Point-to-Point MIMO

The standard narrowband, slowly fading channel model for point-to-point (single-user) MIMO communication is described in the page on MIMO communication.

### Description of Multi-user MIMO

Consider a downlink multi-user MIMO system where a base station with $N$ transmit antennas and $K$ single-antenna users. The channel to user $k$ is described by the $N\times 1$ vector $\mathbf {h} _{k}$ of channel coefficients and its $i$th element describes the channel response between the $i$th transmit antenna and the receive antenna. The input-output relationship can be described as
    $y_{k}=\mathbf {h} _{k}^{H}\mathbf {x} +n_{k},\quad k=1,2,\ldots ,K$
where $\mathbf {x}$ is the $N\times 1$ transmitted vector signal, $y_{k}$ is the received signal, and $n_{k}$ is the zero-mean unit-variance noise.
Under linear precoding, the transmitted vector signal is
    $\mathbf {x} =\sum _{i=1}^{K}\mathbf {w} _{i}s_{i},$
where $s_{i}$ is the (normalized) data symbol and $\mathbf {w} _{i}$ is the $N\times 1$ linear precoding vector. The signal-to-interference-and-noise ratio (SINR) at user $k$ becomes
    ${\textrm {SINR}}_{k}={\frac {|\mathbf {h} _{k}^{H}\mathbf {w} _{k}|^{2}}{\sigma _{k}^{2}+\sum _{i\neq k}|\mathbf {h} _{k}^{H}\mathbf {w} _{i}|^{2}}}$
where $\sigma _{k}^{2}$ is the noise variance for channel to user $k$ and the corresponding achievable information rate is $\log _{2}(1+{\textrm {SINR}}_{k})$ bits per channel use. The transmission is limited by power constraints. This can, for example, be a total power constraint $\sum _{i=1}^{K}\|\mathbf {w} _{i}\|^{2}\leq P$ where $P$ is the power limit.
A common performance metric in multi-user systems is the weighted sum rate
    ${\underset {\{\mathbf {w} _{k}\}:\sum _{i}\|\mathbf {w} _{i}\|^{2}\leq P}{\mathrm {maximize} }}\sum _{k=1}^{K}a_{k}\log _{2}(1+{\textrm {SINR}}_{k})$
for some positive weights $a_{k}$ that represent the user priority. The weighted sum rate is maximized by weighted MMSE precoding that selects
    $\mathbf {w} _{k}^{\textrm {W-MMSE}}={\sqrt {p_{k}}}{\frac {(\mathbf {I} +\sum _{i\neq k}q_{i}\mathbf {h} _{i}\mathbf {h} _{i}^{H})^{-1}\mathbf {h} _{k}}{\|(\mathbf {I} +\sum _{i\neq k}q_{i}\mathbf {h} _{i}\mathbf {h} _{i}^{H})^{-1}\mathbf {h} _{k}\|}}$
for some positive coefficients $q_{1},\ldots ,q_{K}$ (related to the user weights) that satisfy $\sum _{i=1}^{K}q_{i}=P$ and $p_{i}$ is the optimal power allocation.
The suboptimal MRT approach removes the channel inversion and only selects
    $\mathbf {w} _{k}^{\mathrm {MRT} }={\sqrt {p_{k}}}{\frac {\mathbf {h} _{k}}{\|\mathbf {h} _{k}\|}},$
while the suboptimal ZF precoding makes sure that $\mathbf {h} _{i}^{H}\mathbf {w} _{k}^{\mathrm {ZF} }=0$ for all i ≠ k and thus the interference can be removed in the SINR expression:
    ${\textrm {SINR}}_{k}^{\mathrm {ZF} }={\frac {|\mathbf {h} _{k}^{H}\mathbf {w} _{k}^{\mathrm {ZF} }|^{2}}{\sigma _{k}^{2}}}.$

#### Uplink-downlink duality

For comparison purposes, it is instructive to compare the downlink results with the corresponding uplink MIMO channel where the same single-antenna users transmit to the same base station, having $N$ receive antennas. The input-output relationship can be described as
    $\mathbf {y} =\sum _{k=1}^{K}\mathbf {h} _{k}{\sqrt {q_{k}}}s_{k}+\mathbf {n}$
where $s_{k}$ is the transmitted symbol for user $k$, $q_{k}$ is the transmit power for this symbol, $\mathbf {y}$ and $\mathbf {n}$ are the $N\times 1$ vector of received signals and noise respectively, $\mathbf {h} _{k}$ is the $N\times 1$ vector of channel coefficients. If the base station uses linear receive filters to combine the received signals on the $N$ antennas, the SINR for the data stream from user $k$ becomes
    ${\textrm {SINR}}_{k}^{\mathrm {uplink} }={\frac {q_{k}|\mathbf {h} _{k}^{H}\mathbf {v} _{k}|^{2}}{\sigma _{k}^{2}+\sum _{i\neq k}q_{i}|\mathbf {h} _{i}^{H}\mathbf {v} _{k}|^{2}}}$
where $\mathbf {v} _{k}$ is the unit-norm receive filter for this user. Compared with the downlink case, the only difference in the SINR expressions is that the indices are switched in the interference term. Remarkably, the optimal receive filters are the same as the weighted MMSE precoding vectors, up to a scaling factor:
    $\mathbf {v} _{k}^{\textrm {MMSE}}={\frac {(\sigma _{k}^{2}\mathbf {I} +\sum _{i\neq k}q_{i}\mathbf {h} _{i}\mathbf {h} _{i}^{H})^{-1}\mathbf {h} _{k}}{\|(\sigma _{k}^{2}\mathbf {I} +\sum _{i\neq k}q_{i}\mathbf {h} _{i}\mathbf {h} _{i}^{H})^{-1}\mathbf {h} _{k}\|}}$
Observe that the coefficients $q_{1},\ldots ,q_{K}$ that was used in the weighted MMSE precoding are not exactly the optimal power coefficients in the uplink (that maximize the weighted sum rate) except under certain conditions. This important relationship between downlink precoding and uplink receive filtering is known as the uplink-downlink duality. As the downlink precoding problem usually is more difficult to solve, it often useful to first solve the corresponding uplink problem.

#### Limited feedback precoding

The precoding strategies described above was based on having perfect channel state information at the transmitter. However, in real systems, receivers can only feed back quantized information that is described by a limited number of bits. If the same precoding strategies are applied, but now based on inaccurate channel information, additional interference appears. This is an example on limited feedback precoding.
The received signal in multi-user MIMO with limited feedback precoding is mathematically described as
    $y_{k}=\mathbf {h} _{k}^{H}\sum _{i=1}^{K}{\hat {\mathbf {w} }}_{i}s_{i}+n_{k},\quad k=1,2,\ldots ,K.$
In this case, the beamforming vectors are distorted as ${\hat {\mathbf {w} }}_{i}=\mathbf {w} _{i}+\mathbf {e} _{i}$, where $\mathbf {w} _{i}$ is the optimal vector and $\mathbf {e} _{i}$ is the error vector caused by inaccurate channel state information. The received signal can be rewritten as
    $y_{k}=\mathbf {h} _{k}^{H}\sum _{i=1}^{K}\mathbf {w} _{i}s_{i}+\mathbf {h} _{k}^{H}\sum _{i=1}^{K}\mathbf {e} _{i}s_{i}+n_{k},\quad k=1,2,\ldots ,K$
where $\mathbf {h} _{k}^{H}\sum _{i\neq k}\mathbf {e} _{i}s_{i}$ is the additional interference at user $k$ according to the limited feedback precoding. To reduce this interference, higher accuracy in the channel information feedback is required, which in turn reduces the throughput in the uplink.