# Space–time block code

Space–time block coding is a technique used in wireless communications to transmit multiple copies of a data stream across a number of antennas and to exploit the various received versions of the data to improve the reliability of data transfer. The fact that the transmitted signal must traverse a potentially difficult environment with scattering, reflection, refraction and so on and may then be further corrupted by thermal noise in the receiver means that some of the received copies of the data may be closer to the original signal than others. This redundancy results in a higher chance of being able to use one or more of the received copies to correctly decode the received signal. In fact, space–time coding combines all the copies of the received signal in an optimal way to extract as much information from each of them as possible.

## Introduction

Most work on wireless communications until the early 1990s had focused on having an antenna array at only one end of the wireless link — usually at the receiver. Seminal papers by Gerard J. Foschini and Michael J. Gans, Foschini and Emre Telatar enlarged the scope of wireless communication possibilities by showing that for the highly scattering environment, substantial capacity gains are enabled when antenna arrays are used at both ends of a link. An alternative approach to utilizing multiple antennas relies on having multiple transmit antennas and only optionally multiple receive antennas. Proposed by Vahid Tarokh, Nambi Seshadri and Robert Calderbank, these space–time codes (STCs) achieve significant error rate improvements over single-antenna systems. Their original scheme was based on trellis codes but the simpler block codes were utilised by Siavash Alamouti, and later Vahid Tarokh, Hamid Jafarkhani and Robert Calderbank to develop space–time block-codes (STBCs). STC involves the transmission of multiple redundant copies of data to compensate for fading and thermal noise in the hope that some of them may arrive at the receiver in a better state than others. In the case of STBC in particular, the data stream to be transmitted is encoded in blocks, which are distributed among spaced antennas and across time. While it is necessary to have multiple transmit antennas, it is not necessary to have multiple receive antennas, although to do so improves performance. This process of receiving diverse copies of the data is known as diversity reception and is what was largely studied until Foschini's 1998 paper.
An STBC is usually represented by a matrix. Each row represents a time slot and each column represents one antenna's transmissions over time.
    ${\text{time-slots}}{\begin{matrix}{\text{transmit antennas}}\\\left\downarrow {\overrightarrow {\begin{bmatrix}s_{11}&s_{12}&\cdots &s_{1n_{T}}\\s_{21}&s_{22}&\cdots &s_{2n_{T}}\\\vdots &\vdots &&\vdots \\s_{T1}&s_{T2}&\cdots &s_{Tn_{T}}\end{bmatrix}}}\right.\end{matrix}}$
Here, $s_{ij}$ is the modulated symbol to be transmitted in time slot $i$ from antenna $j$. There are to be $T$ time slots and $n_{T}$ transmit antennas as well as $n_{R}$ receive antennas. This block is usually considered to be of 'length' $T$
The code rate of an STBC measures how many symbols per time slot it transmits on average over the course of one block. If a block encodes $k$ symbols, the code-rate is
    $r={\frac {k}{T}}.$
Only one standard STBC can achieve full-rate (rate 1) — Alamouti's code.

### Orthogonality

STBCs as originally introduced, and as usually studied, are orthogonal. This means that the STBC is designed such that the vectors representing any pair of columns taken from the coding matrix is orthogonal. The result of this is simple, linear, optimal decoding at the receiver. Its most serious disadvantage is that all but one of the codes that satisfy this criterion must sacrifice some proportion of their data rate (see Alamouti's code).
Moreover, there exist quasi-orthogonal STBCs that achieve higher data rates at the cost of inter-symbol interference (ISI). Thus, their error-rate performance is lower bounded by the one of orthogonal rate 1 STBCs, that provide ISI free transmissions due to orthogonality.

## Design of STBCs

The design of STBCs is based on the so-called diversity criterion derived by Tarokh et al. in their earlier paper on space–time trellis codes. Orthogonal STBCs can be shown to achieve the maximum diversity allowed by this criterion.

### Diversity criterion

Call a codeword
    $\mathbf {c} =c_{1}^{1}c_{1}^{2}\cdots c_{1}^{n_{T}}c_{2}^{1}c_{2}^{2}\cdots c_{2}^{n_{T}}\cdots c_{T}^{1}c_{T}^{2}\cdots c_{T}^{n_{T}}$
and call an erroneously decoded received codeword
    $\mathbf {e} =e_{1}^{1}e_{1}^{2}\cdots e_{1}^{n_{T}}e_{2}^{1}e_{2}^{2}\cdots e_{2}^{n_{T}}\cdots e_{T}^{1}e_{T}^{2}\cdots e_{T}^{n_{T}}.$
Then the matrix
    $\mathbf {B} (\mathbf {c} ,\mathbf {e} )={\begin{bmatrix}e_{1}^{1}-c_{1}^{1}&e_{2}^{1}-c_{2}^{1}&\cdots &e_{T}^{1}-c_{T}^{1}\\e_{1}^{2}-c_{1}^{2}&e_{2}^{2}-c_{2}^{2}&\cdots &e_{T}^{2}-c_{T}^{2}\\\vdots &\vdots &\ddots &\vdots \\e_{1}^{n_{T}}-c_{1}^{n_{T}}&e_{2}^{n_{T}}-c_{2}^{n_{T}}&\cdots &e_{T}^{n_{T}}-c_{T}^{n_{T}}\end{bmatrix}}$
has to be full-rank for any pair of distinct codewords $\mathbf {c}$ and $\mathbf {e}$ to give the maximum possible diversity order of $n_{T}n_{R}$. If instead, $\mathbf {B} (\mathbf {c} ,\mathbf {e} )$ has minimum rank $b$ over the set of pairs of distinct codewords, then the space–time code offers diversity order $bn_{R}$. An examination of the example STBCs shown below reveals that they all satisfy this criterion for maximum diversity.
STBCs offer only diversity gain (compared to single-antenna schemes) and not coding gain. There is no coding scheme included here — the redundancy purely provides diversity in space and time. This is contrast with space–time trellis codes which provide both diversity and coding gain since they spread a conventional trellis code over space and time.

## Encoding
### Alamouti's code

Siavash Alamouti invented the simplest of all the STBCs in 1998, although he did not coin the term "space–time block code" himself. It was designed for a two-transmit antenna system and has the coding matrix:
    $C_{2}={\begin{bmatrix}c_{1}&c_{2}\\-c_{2}^{*}&c_{1}^{*}\end{bmatrix}},$
where * denotes complex conjugate.
It is readily apparent that this is a rate-1 code. It takes two time-slots to transmit two symbols. Using the optimal decoding scheme discussed below, the bit-error rate (BER) of this STBC is equivalent to $2n_{R}$-branch maximal ratio combining (MRC). This is a result of the perfect orthogonality between the symbols after receive processing — there are two copies of each symbol transmitted and $n_{R}$ copies received.
This is a very special STBC. It is the only orthogonal STBC that achieves rate-1. That is to say that it is the only STBC that can achieve its full diversity gain without needing to sacrifice its data rate. Strictly, this is only true for complex modulation symbols. Since almost all constellation diagrams rely on complex numbers however, this property usually gives Alamouti's code a significant advantage over the higher-order STBCs even though they achieve a better error-rate performance. See 'Rate limits' for more detail.
The significance of Alamouti's proposal in 1998 is that it was the first demonstration of a method of encoding which enables full diversity with linear processing at the receiver. Earlier proposals for transmit diversity required processing schemes which scaled exponentially with the number of transmit antennas. Furthermore, it was the first open-loop transmit diversity technique which had this capability. Subsequent generalizations of Alamouti's concept have led to a tremendous impact on the wireless communications industry.

### Higher order STBCs

Tarokh et al. discovered a set of STBCs that are particularly straightforward, and coined the scheme's name. They also proved that no code for more than 2 transmit antennas could achieve full-rate. Their codes have since been improved upon (both by the original authors and by many others). Nevertheless, they serve as clear examples of why the rate cannot reach 1, and what other problems must be solved to produce 'good' STBCs. They also demonstrated the simple, linear decoding scheme that goes with their codes under perfect channel state information assumption.

#### 3 transmit antennas

Two straightforward codes for 3 transmit antennas are:
    $C_{3,1/2}={\begin{bmatrix}c_{1}&c_{2}&c_{3}\\-c_{2}&c_{1}&-c_{4}\\-c_{3}&c_{4}&c_{1}\\-c_{4}&-c_{3}&c_{2}\\c_{1}^{*}&c_{2}^{*}&c_{3}^{*}\\-c_{2}^{*}&c_{1}^{*}&-c_{4}^{*}\\-c_{3}^{*}&c_{4}^{*}&c_{1}^{*}\\-c_{4}^{*}&-c_{3}^{*}&c_{2}^{*}\end{bmatrix}}\quad {\text{and}}\quad C_{3,3/4}={\begin{bmatrix}c_{1}&c_{2}&{\frac {c_{3}}{\sqrt {2}}}\\-c_{2}^{*}&c_{1}^{*}&{\frac {c_{3}}{\sqrt {2}}}\\{\frac {c_{3}^{*}}{\sqrt {2}}}&{\frac {c_{3}^{*}}{\sqrt {2}}}&{\frac {\left(-c_{1}-c_{1}^{*}+c_{2}-c_{2}*\right)}{2}}\\{\frac {c_{3}^{*}}{\sqrt {2}}}&-{\frac {c_{3}^{*}}{\sqrt {2}}}&{\frac {\left(c_{2}+c_{2}^{*}+c_{1}-c_{1}^{*}\right)}{2}}.\end{bmatrix}}$
These codes achieve rate-1/2 and rate-3/4 respectively. These two matrices give examples of why codes for more than two antennas must sacrifice rate — it is the only way to achieve orthogonality. One particular problem with $C_{3,3/4}$ is that it has uneven power among the symbols it transmits. This means that the signal does not have a constant envelope and that the power each antenna must transmit has to vary, both of which are undesirable. Modified versions of this code that overcome this problem have since been designed.

#### 4 transmit antennas

Two straightforward codes for 4 transmit antennas are:
    $C_{4,1/2}={\begin{bmatrix}c_{1}&c_{2}&c_{3}&c_{4}\\-c_{2}&c_{1}&-c_{4}&c_{3}\\-c_{3}&c_{4}&c_{1}&-c_{2}\\-c_{4}&-c_{3}&c_{2}&c_{1}\\c_{1}^{*}&c_{2}^{*}&c_{3}^{*}&c_{4}^{*}\\-c_{2}^{*}&c_{1}^{*}&-c_{4}^{*}&c_{3}^{*}\\-c_{3}^{*}&c_{4}^{*}&c_{1}^{*}&-c_{2}^{*}\\-c_{4}^{*}&-c_{3}^{*}&c_{2}^{*}&c_{1}^{*}\end{bmatrix}}\quad {\text{and}}\quadC_{4,3/4}={\begin{bmatrix}c_{1}&c_{2}&{\frac {c_{3}}{\sqrt {2}}}&{\frac {c_{3}}{\sqrt {2}}}\\-c_{2}^{*}&c_{1}^{*}&{\frac {c_{3}}{\sqrt {2}}}&-{\frac {c_{3}}{\sqrt {2}}}\\{\frac {c_{3}^{*}}{\sqrt {2}}}&{\frac {c_{3}^{*}}{\sqrt {2}}}&{\frac {\left(-c_{1}-c_{1}^{*}+c_{2}-c_{2}^{*}\right)}{2}}&{\frac {\left(-c_{2}-c_{2}^{*}+c_{1}-c_{1}^{*}\right)}{2}}\\{\frac {c_{3}^{*}}{\sqrt {2}}}&-{\frac {c_{3}^{*}}{\sqrt {2}}}&{\frac {\left(c_{2}+c_{2}^{*}+c_{1}-c_{1}^{*}\right)}{2}}&-{\frac {\left(c_{1}+c_{1}^{*}+c_{2}-c_{2}^{*}\right)}{2}}\end{bmatrix}}.$
These codes achieve rate-1/2 and rate-3/4 respectively, as for their 3-antenna counterparts. $C_{4,3/4}$ exhibits the same uneven power problems as $C_{3,3/4}$. An improved version of $C_{4,3/4}$ is
    $C_{4,3/4}={\begin{bmatrix}c_{1}&c_{2}&c_{3}&0\\-c_{2}^{*}&c_{1}^{*}&0&c_{3}\\-c_{3}^{*}&0&c_{1}^{*}&-c_{2}\\0&-c_{3}^{*}&c_{2}^{*}&c_{1}\end{bmatrix}},$
which has equal power from all antennas in all time-slots.

## Decoding

One particularly attractive feature of orthogonal STBCs is that maximum likelihood decoding can be achieved at the receiver with only linear processing. In order to consider a decoding method, a model of the wireless communications system is needed.
At time $t$, the signal $r_{t}^{j}$ received at antenna $j$ is:
    $r_{t}^{j}=\sum _{i=1}^{n_{T}}\alpha _{ij}s_{t}^{i}+n_{t}^{j},$
where $\alpha _{ij}$ is the path gain from transmit antenna $i$ to receive antenna $j$, $s_{t}^{i}$ is the signal transmitted by transmit antenna $i$ and $n_{t}^{j}$ is a sample of additive white Gaussian noise (AWGN).
The maximum-likelihood detection rule is to form the decision variables
    $R_{i}=\sum _{t=1}^{n_{T}}\sum _{j=1}^{n_{R}}r_{t}^{j}\alpha _{\epsilon _{t}(i)j}\delta _{t}(i)$
where $\delta _{k}(i)$ is the sign of $s_{i}$ in the $k$th row of the coding matrix, $\epsilon _{k}(p)=q$ denotes that $s_{p}$ is (up to a sign difference), the $(k,q)$ element of the coding matrix, for $i=1,2,\ldots ,n_{T}$ and then decide on constellation symbol $s_{i}$ that satisfies
    $s_{i}=\arg\min _{s\in {\mathcal {A}}}\left(\left|R_{i}-s\right|^{2}+\left(-1+\sum _{k,l}^\left|\alpha _{kl}\right|^{2}\right)\left|s\right|^{2}\right),$
with ${\mathcal {A}}$ the constellation alphabet. Despite its appearance, this is a simple, linear decoding scheme that provides maximal diversity.

## Rate limits

Apart from there being no full-rate, complex, orthogonal STBC for more than 2 antennas, it has been further shown that, for more than two antennas, the maximum possible rate is 3/4. Codes have been designed which achieve a good proportion of this, but they have very long block-length. This makes them unsuitable for practical use, because decoding cannot proceed until all transmissions in a block have been received, and so a longer block-length, $T$, results in a longer decoding delay. One particular example, for 16 transmit antennas, has rate-9/16 and a block length of 22 880 time-slots!
It has been proven that the highest rate any $n_{T}$-antenna code can achieve is
    $r_{\max }={\frac {n_{0}+1}{2n_{0}}},$
where $n_{T}=2n_{0}$ or $n_{T}=2n_{0}-1$, if no linear processing is allowed in the code matrix (the above maximal rate proved in only applies to the original definition of orthogonal designs, i.e., any entry in the matrix is $0,c_{i},-c_{i},c_{i}^{*},$, or $-c_{i}^{*}$, which forces that any variable $c_{i}$ can not be repeated in any column of the matrix). This rate limit is conjectured to hold for any complex orthogonal space–time block codes even when any linear processing is allowed among the complex variables. Closed-form recursive designs have been found.

## Quasi-orthogonal STBCs

These codes exhibit partial orthogonality and provide only part of the diversity gain mentioned above. An example reported by Hamid Jafarkhani is:
    $C_{4,1}={\begin{bmatrix}c_{1}&c_{2}&c_{3}&c_{4}\\-c_{2}^{*}&c_{1}^{*}&-c_{4}^{*}&c_{3}^{*}\\-c_{3}^{*}&-c_{4}^{*}&c_{1}^{*}&c_{2}^{*}\\c_{4}&-c_{3}&-c_{2}&c_{1}\end{bmatrix}}.$
The orthogonality criterion only holds for columns (1 and 2), (1 and 3), (2 and 4) and (3 and 4). Crucially, however, the code is full-rate and still only requires linear processing at the receiver, although decoding is slightly more complex than for orthogonal STBCs. Results show that this Q-STBC outperforms (in a bit-error rate sense) the fully orthogonal 4-antenna STBC over a good range of signal-to-noise ratios (SNRs). At high SNRs, though (above about 22 dB in this particular case), the increased diversity offered by orthogonal STBCs yields a better BER. Beyond this point, the relative merits of the schemes have to be considered in terms of useful data throughput.
Q-STBCs have also been developed considerably from the basic example shown.