| Products & Services | Solutions | Academia | Support | User Community | Company |
| Download Product Updates | | | Get Pricing | | | Trial Software |
| Documentation → Communications Blockset |
| Contents | Index |
| Learn more about Communications Blockset |
MIMO

The OSTBC Combiner block combines the input signal (from all of the receive antennas) and the channel estimate signal to extract the soft information of the symbols encoded by an OSTBC. The input channel estimate may not be constant during each codeword block transmission and the combining algorithm uses only the estimate for the first symbol period per codeword block. A symbol demodulator or decoder would follow the Combiner block in a MIMO communications system.
The block conducts the combining operation for each symbol independently. The combining algorithm depends on the structure of the OSTBC. For more information, see the OSTBC Combining Algorithms section of this help page.
Along with the time and spatial domains for OSTBC transmission, the block supports an optional dimension, over which the combining calculation is independent. This dimension can be thought of as the frequency domain for OFDM-based applications. The following illustration indicates the supported dimensions for inputs and output of the OSTBC Combiner block.


The following table describes each variable for the block.
| Variable | Description |
|---|---|
| F | The additional dimension; typically the frequency dimension. The combining calculation is independent of this dimension. |
| N | Number of transmit antennas. |
| M | Number of receive antennas. |
| T | Output symbol sequence length in time domain. |
| R | Symbol rate of the code. |
F and M can be any positive
integers. N can be 2, 3 or 4, indicated by Number
of transmit antennas parameter. The time domain length
T/R must be a multiple of the codeword block length (2 for Alamouti;
4 for all other OSTBC). For N = 2, T/R must be
a multiple of 2. When N > 2, T/R must be a multiple
of 4. R defaults to 1 for 2 antennas. R can
be either
or
for more than 2 antennas.
The supported dimensions for the block depend upon the values of F and M. For one receive antenna (M = 1), the received signal input must be a column vector or a full 2–D matrix, depending on the value for F. The corresponding channel estimate input must be a full 2-D or 3-D matrix.
For more than one receive antenna (M > 1), the received signal input must be a full 2-D or 3-D matrix, depending on the value for F. Correspondingly, the channel estimate input must be a 3-D or 4-D matrix, depending on the value for F.
To understand the block's dimension propagation, refer to the following table.
| Input 1 (Received Signal) | Input 2 (Channel Estimate) | Output | |
|---|---|---|---|
| F = 1 and M = 1 | Column vector | 2-D | Column vector |
| F = 1 and M > 1 | 2-D | 3-D | Column vector |
| F > 1 and M = 1 | 2-D | 3-D | 2-D |
| F > 1 and M > 1 | 3-D | 4-D | 2-D |
The two input signals must have the same data types: double, single or signed fixed-point. The output signal inherits the data type from the inputs. The block supports different fixed-point properties for the two inputs. For fixed-point signals, the output word length and fractional length depend on the block's mask parameter settings. See Fixed-Point Signals for more information about fixed-point data propagation of this block.
The output inherits the frameness of the received signal input. For either column vector or full 2-D matrix input signal, the input can be either frame-based or sample-based. A 3–D or 4–D matrix input signal must have sample-based input.
The OSTBC Combiner block supports five different OSTBC combining computation algorithms. Depending on the selection for Rate and Number of transmit antennas, you can select one of the algorithms shown in the following table.
| Transmit Antenna | Rate | Computational Algorithm per Codeword Block Length |
|---|---|---|
| 2 | 1 |
|
| 3 | 1/2 |
|
| 3 | 3/4 |
|
| 4 | 1/2 |
|
| 4 | 3/4 |
|
represents the estimated kth
symbol in the OSTBC codeword matrix. hij represents
the estimate for the channel from the ith transmit
antenna and the jth receive antenna. The values
of i and j can range from 1
to N (the number of transmit antennas) and to M (the
number of receive antennas) respectively. rlj represents
the lth symbol at the jth receive
antenna per codeword block. The value of l can
range from 1 to the codeword block length.
represents the summation of
channel power per link, i.e.,
![]()
Use the following formula for
for
Alamouti code with 1 receive antenna to highlight the data types used
for fixed-point signals.
![]()
In this equation, the data types for Product output and Accumulator correspond to the product and summation in the numerator. Similarly, the types for Energy product output and Energy accumulator correspond to the product and summation in the denominator.
Signal Flow Diagram for s1 Combining Calculation of Alamouti Code with One Receive Antenna

The following formula shows the data types used within the OSTBC
Combiner block for fixed-point signals for more than one receive antenna
for Alamouti code, where M represents the number
of receive antennas.
Signal Flow Diagram for Complex Multiply of a + ib and c + id

For Binary point scaling, you can not specify WLp and FLp. Instead, the blocks determine these values implicitly from WLa and FLa
The Internal Rule for Product output and Energy product output are:
When you select Inherit via internal rule, the internal rule determines WLp and FLp. Therefore, WLa = WLp + 1 and FLa = FLp
For Binary point scaling, you specify WLa and FLa. Therefore, WLp = WLa –1 and FLa = FLp.
For information on how the Internal Rule applies to the Accumulator and Energy Accumulator, see Inherit via Internal Rule in the Signal Processing Blockset User's Guide.

Sets the number of transmit antennas. The block supports 2, 3, or 4 transmit antennas. This value defaults to 2.
Sets the symbol rate of the code. You can specify either 3/4
or 1/2. This field only appears when you use more than 2 transmit
antennas. This field defaults to
for
more than 2 transmit antennas. For 2 transmit antennas, there is no
rate option and the implicit (default) rate defaults to 1.
The number of antennas the block uses to receive signal streams. The block supports from 1 to 8 receive antennas. This value defaults to 1.

Sets the rounding mode for fixed-point calculations. The block uses the rounding mode if a value cannot be represented exactly by the specified data type and scaling. When this occurs, the value is rounded to a representable number. For more information refer to Rounding Mode Parameter in the Specifying Fixed-Point Attributes section of the Signal Processing Blockset User's Guide.
Sets the overflow mode for fixed-point calculations. Use this parameter to specify the method to be used if the magnitude of a fixed-point calculation result does not fit into the range of the data type and scaling that stores the result. For more information refer to Overflow Mode Parameter in the Specifying Fixed-Point Attributes section of the Signal Processing Blockset User's Guide.
Complex product in the numerator for the diversity combining. For more information refer to the Fixed-Point Signals section of this help page.
Summation in the numerator for the diversity combining.
Fixed-point Communications Blockset blocks that must hold summation results for further calculation usually allow you to specify the data type and scaling of the accumulator. Most such blocks cast to the accumulator data type prior to summation:

See the reference page of a specific block in the Block Reference for details on the accumulator data type of a specific block.
Use the Accumulator—Mode parameter to specify how you would like to designate the accumulator word and fraction lengths:
When you select Inherit via internal rule, the accumulator output word and fraction lengths are automatically calculated for you. Refer to Inherit via Internal Rule for more information.
When you select Same as product output, these characteristics match those of the product output.
When you select Same as input, these characteristics match those of the first input to the block.
When you select Binary point scaling, you are able to enter the word length and the fraction length of the accumulator, in bits.
When you select Slope and bias scaling, you are able to enter the word length, in bits, and the slope of the accumulator. The bias of all signals in Signal Processing Blockset software is zero.
Complex product in the denominator for calculating total energy in the MIMO channel .
Summation in the denominator for calculating total energy in the MIMO channel.
Normalized diversity combining by total energy in the MIMO channel.
For an example of this block in use, see OSTBC Over 3x2 Rayleigh Fading Channel in the Communications blockset User's Guide. The model shows the use of a rate ¾ OSTBC for 3 transmit and 2 receive antennas with BPSK modulation using independent fading links and AWGN.
You can also see the block in the Concatenated OSTBC with TCM demo by typing commtcmostbc or the IEEE 802.16–2004 OFDM PHY Link, Including Space-Time Block Coding demo by typing commwman80216dstbc at the MATLAB command line.
![]() | OQPSK Modulator Baseband | OSTBC Encoder | ![]() |

Learn more about Simulink through this collection of videos, articles, technical literature and the Getting Started with Simulink Guide.
| © 1984-2009- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |