Multiple-Input Multiple-Output (MIMO) in MATLAB

The use of Multiple-Input Multiple-Output (MIMO) techniques has revolutionized wireless communications systems with potential gains in capacity when using multiple antennas at both transmitter and receiver ends of a communications system. New techniques, which account for the extra spatial dimension, have been adopted to realize these gains in new and previously existing systems.
MIMO technology has been adopted in multiple wireless systems, including Wi-Fi, WiMAX, LTE, and is proposed for future standards (such as LTE-Advanced and IMT-Advanced).
The Communications System Toolbox™ product offers components to model:
·         OSTBC (orthogonal space-time block coding technique)
·         MIMO Fading Channels
and demos highlighting the use of these components in applications.
For background material on the subject of MIMO systems, see the works listed in selected Bibliography for MIMO systems.

Orthogonal Space-Time Block Codes (OSTBC)

The Communications System Toolbox product provides components to model Orthogonal Space Time Block Coding (OSTBC) – a MIMO technique which offers full spatial diversity gain with extremely simple single-symbol maximum likelihood decoding [4,6,8].
In Simulink®, the OSTBC Encoder and OSTBC Combiner blocks, residing in the MIMO block library, implement the orthogonal space time block coding technique. These two blocks offer a variety of specific codes (with different rates) for up to 4 transmit and 8 receive antenna systems. The encoder block is used at the transmitter to map symbols to multiple antennas while the combiner block is used at the receiver to extract the soft information per symbol using the received signal and the channel state information. You access the MIMO library by double clicking the icon in the main Communications System Toolbox block library. Alternatively, you can type commmimo at the MATLAB command line.
The OSTBC technique is an attractive scheme because it can achieve the full (maximum) spatial diversity order and have symbol-wise maximum-likelihood (ML) decoding. For more information pertaining to the algorithmic details and the specific codes implemented, see OSTBC Combining Algorithms on the OSTBC Combiner block help page and OSTBC Encoding Algorithms on the OSTBC Encoder block help page.

MIMO Fading Channel
The Communications System Toolbox software also includes a MIMO fading channel object. You can use this object to model the fading channel characteristics of MIMO links. The object models both Rayleigh and Rician fading, and uses the Kronecker model for the spatial correlation between the links .

MIMO Examples

The following examples illustrate MIMO techniques or the use of MIMO components:

OSTBC Over 3x2 Rayleigh Fading Channel

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:

- Overview of the Simulation
- Orthogonal Space-Time Block Code
-   Performance

Overview of the Simulation

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

Orthogonal Space-Time Block Code

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

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 (12−3)4=2.25W. Also, note that the channel symbol period for this simulation is 1e−334=7.5e−4sec, due to the use of rate 34 code. These two values are used in calibrating the white Gaussian noise added in the simulation. The parameters that the Receive Noise block specifies apply for each receiver the system employs.


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.

Next Post »