Space–time block code

From Wikipedia, the free encyclopedia
  (Redirected from Space-time block code)
Jump to: navigation, search
This article deals with coherent space–time block codes (STBCs). For differential space–time block codes, see differential space–time codes.

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 will be 'better' 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.


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.[1] Seminal papers by Gerard J. Foschini and Michael J. Gans,[2] Foschini[3] and Emre Telatar[4] 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[5] (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,[6] and later Vahid Tarokh, Hamid Jafarkhani and Robert Calderbank[7] 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{transmit antennas}\\
\left \downarrow
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}

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


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[edit]

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.[5] Orthogonal STBCs can be shown to achieve the maximum diversity allowed by this criterion.

Diversity criterion[edit]

Call a codeword

\mathbf{c} = c_1^1c_1^2\cdots c_1^{n_T}c_2^1c_2^2\cdots c_2^{n_T}\cdots c_T^1c_T^2\cdots c_T^{n_T}

and call an erroneously decoded received codeword

\mathbf{e} = e_1^1e_1^2\cdots e_1^{n_T}e_2^1e_2^2\cdots e_2^{n_T}\cdots e_T^1e_T^2\cdots e_T^{n_T}.

Then the matrix

\mathbf{B}(\mathbf{c},\mathbf{e}) =
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}

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


Alamouti's code[edit]

Alamouti invented the simplest of all the STBCs in 1998,[6] 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^*

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.[5] 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[edit]

Tarokh et al. discovered a set of STBCs[7][8] 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[edit]

Two straightforward codes for 3 transmit antennas are:

c_1 & c_2 & c_3\\
-c_2 &c_1& -c_4\\
c_1^* & c_2^*&c_3^*\\
-c_2^* &c_1^*& -c_4^*\\
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}.

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[edit]

Two straightforward codes for 4 transmit antennas are:

c_1 & c_2 & c_3&c_4\\
-c_2 &c_1&-c_4&c_3\\
c_1^* & c_2^*&c_3^*&c_4^*\\
-c_2^* &c_1^*&-c_4^*&c_3^*\\
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}

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[9]


which has equal power from all antennas in all time-slots.


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[8] 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 kth 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[edit]

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.[10] 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![11]

It has been proven[12] 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 [12] 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.[10] Closed-form recursive designs have been found.[13]

Quasi-orthogonal STBCs[edit]

These codes exhibit partial orthogonality and provide only part of the diversity gain mentioned above. An example reported by Hamid Jafarkhani is:[14]

C_{4,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

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.

See also[edit]


  1. ^ E. Larsson and P. Stoica,Space-Time Block Coding For Wireless Communications. Cambridge University Press, UK, 2003 (Chinese Edition, 2006).
  2. ^ Gerard J. Foschini and Michael. J. Gans (January 1998). "On limits of wireless communications in a fading environment when using multiple antennas". Wireless Personal Communications 6 (3): 311–335. doi:10.1023/A:1008889222784. 
  3. ^ Gerard J. Foschini (Autumn 1996). "Layered space-time architecture for wireless communications in a fading environment when using multi-element antennas". Bell Labs Technical Journal 1 (2): 41–59. doi:10.1002/bltj.2015. 
  4. ^ I. Emre Telatar (November 1999). "Capacity of multi-antenna gaussian channels". European Transactions on Telecommunications 10 (6): 585–595. doi:10.1002/ett.4460100604. 
  5. ^ a b c Vahid Tarokh, Nambi Seshadri, and A. R. Calderbank (March 1998). "Space–time codes for high data rate wireless communication: Performance analysis and code construction". IEEE Transactions on Information Theory 44 (2): 744–765. doi:10.1109/18.661517. 
  6. ^ a b S.M. Alamouti (October 1998). "A simple transmit diversity technique for wireless communications". IEEE Journal on Selected Areas in Communications 16 (8): 1451–1458. doi:10.1109/49.730453. 
  7. ^ a b c Vahid Tarokh, Hamid Jafarkhani, and A. R. Calderbank (July 1999). "Space–time block codes from orthogonal designs" (PDF). IEEE Transactions on Information Theory 45 (5): 744–765. doi:10.1109/18.771146. 
  8. ^ a b Vahid Tarokh, Hamid Jafarkhani, and A. Robert Calderbank (March 1999). "Space–time block coding for wireless communications: performance results" (PDF). IEEE Journal on Selected Areas in Communications 17 (3): 451–460. doi:10.1109/49.753730. 
  9. ^ G. Ganesan and P. Stoica (May 2001). "Space–time block codes: A maximum SNR approach". IEEE Transactions on Information Theory 47 (4): 1650–1656. doi:10.1109/18.923754. 
  10. ^ a b Haiquan Wang and Xiang-Gen Xia (October 2003). "Upper bounds of rates of complex orthogonal space–time block codes". IEEE Transactions on Information Theory 49 (10): 2788–2796. doi:10.1109/TIT.2003.817830. 
  11. ^ Weifeng Su, Xiang-Gen Xia, and K. J. Ray Liu (June 2004). "A systematic design of high-rate complex orthogonal space-time block codes". IEEE Communications Letters 8 (6): 380–382. doi:10.1109/LCOMM.2004.827429. 
  12. ^ a b Xue-Bin Liang (October 2003). "Orthogonal Designs With Maximum Rates". IEEE Transactions on Information Theory 49 (10): 2468–2503. doi:10.1109/TIT.2003.817426. 
  13. ^ Kejie Lu, Shengli Fu, and Xiang-Gen Xia (December 2005). "Closed-Form Designs of Complex Orthogonal Space-Time Block Codes of Rates (k+1)/(2k) for 2k-1 or 2k Transmit Antennas". IEEE Transactions on Information Theory 51 (12): 4340–4347. doi:10.1109/TIT.2005.858943. 
  14. ^ Hamid Jafarkhani (January 2001). "A quasi-orthogonal space–time block code". IEEE Transactions on Communications 49 (1): 1–4. doi:10.1109/26.898239.