In the previous discussion, we achieved the diversity gain with a data rate of one symbol per time slot by using rotation codes across multiple transmit antennas and multiple time slots. But with multiple antennas, our question is how can we further improve this scheme?
To illustrate the Alamouti scheme, we consider the case of two transmit antennas and single receive antenna. In the Alamouti scheme, we transmit two independent complex symbols simultaneously from two antennas, denoted by
Why we arrange the two symbols over the two time slots like this? This is because from the above signal model, we get two orthogonal vectors
Each vector represents the symbols transmitted from the two transmit antennas. The two vectors over two time slots are orthogonal to each other. This orthogonality enables us to remove the interference between the two symbols at the receiver.
To see how to detect the symbols in the Alamouti scheme, we can rewrite the signal model as
From the rewritten signal model above, it is clear that the two symbols
are also orthogonal!
Due to orthogonality, we can easily eliminate the interference between the two symbols. For example, we can eliminate the second symbol by
where
Similarly, we can eliminate the first symbol by
The two scalars
In conclusion, the Alamouti scheme achieves the diversity gain of 2 while transmitting one complex symbol per time slot, which amounts to two real symbols per time slot.
Space-time codes modulate transmit signals across space (i.e., antennas) and time. Mathematically, we can represent a space-time code by a set of complex codewords
For example, a repetition code over 2 time slots and 2 antennas and with binary phase shift keying (BPSK) modulation can be represented by the two codewords below
The Alamouti scheme over 2 time slots and 2 antennas and with binary phase shift keying (BPSK) modulation can be represented by 16 codewords of the form
where
For fair comparison, we normalize the codewords so that hte average energy per symbol is
Assuming that the channel does not change during the block length (i.e., for
where
As in performance analysis of the rotation code, we focus on pariwise error probability, which is a good approximation of the exact error probability. Conditioned on the channel vector
which comes from the vector Gaussian detection problem between
Therefore, the pairwise error probability is
The
where
Then we can rewrite the pairwise error probability as
where
Using the property of the Q function
From here, we can see that it is important to have all the eeigenvalues
For a general space-time code, we need to design the codewords
Note that to achieve the maximum diversity gain of