The post on MIMO with Zero Forcing equalizer discussed a probable way of equalizing a 2×2 MIMO channel. The simulated results with the 2×2 MIMO system with zero forcing equalizer showed matching results as obtained in for a 1×1 system for BPSK modulation in Rayleigh channel. In this post, we will try to improve the bit error rate performance by trying out Successive Interference Cancellation (SIC). We will assume that the channel is a flat fading Rayleigh multipath channel and the modulation is BPSK.
The background material on the MIMO channel has been described in the post on Zero Forcing equalizer. The text is repeated again for easy readability.
2×2 MIMO channel
In a 2×2 MIMO channel, probable usage of the available 2 transmit antennas can be as follows:
1. Consider that we have a transmission sequence, for example
2. In normal transmission, we will be sending in the first time slot,
in the second time slot,
and so on.
3. However, as we now have 2 transmit antennas, we may group the symbols into groups of two. In the first time slot, send and
from the first and second antenna. In second time slot, send
and
from the first and second antenna, send
and
in the third time slot and so on.
4. Notice that as we are grouping two symbols and sending them in one time slot, we need only time slots to complete the transmission – data rate is doubled !
5. This forms the simple explanation of a probable MIMO transmission scheme with 2 transmit antennas and 2 receive antennas.

Figure: 2 Transmit 2 Receive (2×2) MIMO channel
Other Assumptions
1. The channel is flat fading – In simple terms, it means that the multipath channel has only one tap. So, the convolution operation reduces to a simple multiplication. For a more rigorous discussion on flat fading and frequency selective fading, may I urge you to review Chapter 15.3 Signal Time-Spreading from [DIGITAL COMMUNICATIONS: SKLAR]
2. The channel experience by each transmit antenna is independent from the channel experienced by other transmit antennas.
3. For the transmit antenna to
receive antenna, each transmitted symbol gets multiplied by a randomly varying complex number
. As the channel under consideration is a Rayleigh channel, the real and imaginary parts of
are Gaussian distributed having mean
and variance
.
4. The channel experienced between each transmit to the receive antenna is independent and randomly varying in time.
5. On the receive antenna, the noise has the Gaussian probability density function with
with
and
.
7. The channel is known at the receiver.
Zero forcing equalizer for 2×2 MIMO channel
Let us now try to understand the math for extracting the two symbols which interfered with each other. In the first time slot, the received signal on the first receive antenna is,
.
The received signal on the second receive antenna is,
.
where
,
are the received symbol on the first and second antenna respectively,
is the channel from
transmit antenna to
receive antenna,
is the channel from
transmit antenna to
receive antenna,
is the channel from
transmit antenna to
receive antenna,
is the channel from
transmit antenna to
receive antenna,
,
are the transmitted symbols and
is the noise on
receive antennas.
For convenience, the above equation can be represented in matrix notation as follows:
.
Equivalently,
To solve for , The Zero Forcing (ZF) linear detector for meeting this constraint
. is given by,
.
To do the Successive Interference Cancellation (SIC), the receiver needs to perform the following:
Zero Forcing with Successive Interference Cancellation (ZF-SIC)
Using the Zero Forcing (ZF) equalization approach described above, the receiver can obtain an estimate of the two transmitted symbols ,
, i.e.
.
Take one of the estimated symbols (for example ) and subtract its effect from the received vector
and
, i.e.
.
Expressing in matrix notation,
,
The above equation is same as equation obtained for receive diversity case. Optimal way of combining the information from multiple copies of the received symbols in receive diversity case is to apply Maximal Ratio Combining (MRC).
The equalized symbol is,
.
This forms the simple explanation for Zero Forcing Equalizer with Successive Interference Cancellation (ZF-SIC) approach.
Simulation Model
The Matlab/Octave script performs the following
(a) Generate random binary sequence of +1’s and -1’s.
(b) Group them into pair of two symbols and send two symbols in one time slot
(c) Multiply the symbols with the channel and then add white Gaussian noise.
(d) Equalize the received symbols with Zero Forcing criterion
(e) Take the symbol from the second spatial dimension, subtract from the received symbol
(f) Perform Maximal Ratio Combining for equalizing the new received symbol
(g) Perform hard decision decoding and count the bit errors
(h) Repeat for multiple values of and plot the simulation and theoretical results.
Click here to download Matlab/Octave script for simulating BER for BPSK modulation in 2×2 MIMO with Zero Forcing and Successive Interference Cancellation equalization (in Rayleigh channel)

Figure: BER plot for BPSK in 2×2 MIMO channel with Zero Forcing Successive Interference Cancellation equalization
Observations
Compared to Zero Forcing equalization alone case, addition of successive interference cancellation results in around 2.2dB of improvement for BER of .
The improvement is brought in because decoding of the information from the first spatial dimension () has a lower error probability that the symbol transmitted from the second dimension. However, the assumption is that
is decoded correctly may not be true in general. We can discuss alternate approaches in future posts.
References
[DIG-COMM-BARRY-LEE-MESSERSCHMITT] Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt
[WIRELESS-TSE, VISWANATH] Fundamentals of Wireless Communication, David Tse, Pramod Viswanath
Please click here to SUBSCRIBE to newsletter and download the FREE e-Book on probability of error in AWGN. Thanks for visiting! Happy learning.
{ 25 comments… read them below or add one }
great work Krishna. congrats. your coding style is simple and easy to understand. hope you can post some work about MIMO-OFDM for example using alamouti or CDD. keep posting.
@karl: Thanks
Sure, will add posts on MIMO-OFDM.
hi
I am working on BER performance of MIMO with V-BLAST spatial multiplexing and space time codes like golden codes, almouti code and linear dispersion codes
can u provide me the simulation code if u tried for any of above.
@darshini: I have some posts on MIMO V-BLAST at
URI: http://www.dsplog.com/tag/mimo/
There is also a post on Alamouti STBC code @
http://www.dsplog.com/2008/10/16/alamouti-stbc/
Hope this helps.
can find me code with mimi vblast
@moh: You meant, MIMO with V-BLAST. This post indeed talks about V-BLAST scheme. For MIMO V-BLAST with zero forcing equalizer, please refer to
http://www.dsplog.com/2008/10/24/mimo-zero-forcing/
Hope this helps.
hi
I am working on BER performance of MIMO with V-BLAST spatial multiplexing and space time codes like golden code, almouti code, linear dispersion code etc. Can u provide me the simulation code, if u tried for any of the above(especially v-blast).
hi krishna
thanks, ur alamouti code helped me. But in that URL u give for v-blast, i cant find any specific v-blast codings. All are with ZF,SIC etc.. except v-blast. can u plz let me know…In v-blast processing steps there shld be a optimal ordering step, but here mimo with zf and optimal ordering is available. whether it is v-blast or any specific v-blast coding is available?
@darshini: As I understand, in V-Blast we transmit the different symbol simultaneously from two tx antennas. Whether we do optimal ordering for decoding is receiver dependent. The simplest equalization scheme uses Zero Forcing, and then we can have decoding schemes like MMSE, MMSE-SIC, ML etc.
hi krishna
what about golden code? whether there r any posts about MIMO using golden codes?
@darshini: No, nothing yet on golden codes with MIMO
hi, the ZF-SIC should be a non-linear approach, but why the result you got is so linear?
@John: Hmm… I did not follow your question. As the SNR increases, its reasonable to expect lower BER too….
Can u give me some explain on the H^H operation in your Matlab script?
@Ronaldo: ()^H is the Hermitian operator. Hermitian operator means – conjgutate transpose of a matrix
Hi Sir,
I am doing work on wireless communication.would like to send me a matlab code for frequency modulation (BW=200 kHz).
2- how to plot the spectrum of it?
Thanks
kind regard
@tidjani: Sorry, I have not written posts on FM modulation.
Hello Krishna, can you start tutorials for multiuser detection for cdma and ofdma. Thanks
@Communications_engineer: Sure. Further, the articles of receiver structures for V-BLAST can be directly applied to Multi user detection case too. Agree?
Hi Krishna
This is very useful site,keep it up, do u have any MATLAB code for multicarrier delay diversity moduulation(MDDM)for MIMO
@shah: Thanks.
No, I have not tried modeling multi carrier delay diversity modulation.
Hi,
Iwould like knowing if we can use VBLAST with multiuser(CDMA).If yes you can send me a code matlab for that.Think you.
@samira: The modeling of V-BLAST and multiuser communication is kind of similar (in V-BLAST the other spatial stream is the interferer and in multiuser the other user is the interferer). I did not quite understand your intention, when you said you want to put together V-BLAST with multi user.
hi good work thank u
i want to ask if we used alamouti code and we want to do the mmse-sic reciever
what will be different than the above algorithm?
thx in advance
@mohamed: Well, with Alamouti coding we do not need MMSE-SIC receiver. A Zero Forcing equalization is optimal.