Main Content

This example demonstrates the use of Orthogonal Space-Time Block Codes (OSTBC) to achieve diversity gains in a multiple-input multiple-output (MIMO) communication system. The example shows the transmission of data over three transmit antennas and two receive antennas (hence the 3x2 notation) using independent Rayleigh fading per link. This description covers the following:

The model is shown in the following figure. To open the model, type
`doc_ostbc32`

at the MATLAB command line. The simulation
creates a random binary signal, modulates it using a binary phase shift keying
(BPSK) technique, and then encodes the waveform using a rate $$\frac{3}{4}$$ orthogonal space-time block code for transmission over the fading
channel. The fading channel models six independent links, due to the three transmit
by two receive antennae configuration as single-path Rayleigh fading processes. The
simulation adds white Gaussian noise at the receiver. Then, it combines the signals
from both receive antennas into a single stream for demodulation. For this combining
process, the model assumes perfect knowledge of the channel gains at the receiver.
Finally, the simulation compares the demodulated data with the original transmitted
data, computing the bit error rate. The simulation ends after processing 100 errors
or 1e6 bits, whichever comes first.

This simulation uses an orthogonal space-time block code with three transmit antennas and a rate ¾ code, as shown below

$$\left(\begin{array}{ccc}{s}_{1}& {s}_{2}& {s}_{2}\\ -{s}_{2}^{*}& {s}_{1}^{*}& 0\\ {s}_{3}^{*}& 0& -{s}_{1}^{*}\\ 0& {s}_{3}^{*}& -{s}_{2}^{*}\end{array}\right)$$

where s1, s2, s3 correspond to the three symbol inputs for which the output is given by the previous matrix. Note in the simulation that the input to the OSTBC Encoder block is a 3x1 vector signal and the output is a 4x3 matrix. The number of columns in the output signal indicates the number of transmit antennas for this simulation, where the first dimension is for time.

For the selected code, the output signal power per time step is $$\frac{(12-3)}{4}=2.25W$$. Also, note that the channel symbol period for this simulation is $$1{e}^{-3}*\frac{3}{4}=7.5{e}^{-4}\mathrm{sec}$$, due to the use of rate $$\frac{3}{4}$$ code. These two values are used in calibrating the white Gaussian
noise added in the simulation. In addition, to accurately set the
*E _{b}/N_{0}*
values used in the AWGN Channel block, the input signal
power must be multiplied by 3 because there are three transmitters. This increases
the corresponding noise power by the same factor.

Now compare the performance of the code with theoretical results using BERtool as an aid. For the theoretical results, the EbNo is directly scaled by the diversity order (six in this case). For the simulation, in the Receive Noise block, we account for only the diversity due to the transmitters (hence, the EbNo parameter is scaled by a factor of three).

The figure below compares the simulated BER for a range of EbNo values with the theoretical results for a diversity order of six.

Note the close alignment of the simulated results with the theoretical (especially. at low EbNo values). The fading channel modeled in the simulation is not completely static (has a low Doppler). As a result the channel is not held constant over the block symbols. Varying this parameter for the channel shows little variation between the results compared to the theoretical curve.