V-BLAST transmission for 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.

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.

System Model

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.

We assume that the receiver knows , , and . The receiver also knows and . The unknown s are and . Two equations and two unknowns. Can we solve it? Answer is YES.

For convenience, the above equation can be represented in matrix notation as follows:

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

In classical Successive Interference Cancellation, the receiver arbitrarily takes one of the estimated symbols, and subtract its effect from the received symbol and . However, we can have more intelligence in choosing whether we should subtract the effect of first or first. To make that decision, let us find out the transmit symbol (after multiplication with the channel) which came at higher power at the receiver. The received power at the both the antennas corresponding to the transmitted symbol is,

.

The received power at the both the antennas corresponding to the transmitted symbol is,

.

If then the receiver decides to remove the effect of from the received vector and and then re-estimate . Else if the receiver decides to subtract effect of from the received vector and , and then re-estimate .

Using the Minimum Mean Square Error (MMSE) equalization, the receiver can obtain an estimate of the two transmitted symbols , , i.e.

.

If then the receiver decides to remove the effect of from the received vector and . Else if the receiver decides to subtract effect of from the received vector and , and then re-estimate .

Once the effect of either or is removed, the new channel becomes a one transmit antenna, 2 receive antenna case and the symbol on the other spatial dimension can be optimally equalized by Maximal Ratio Combining (MRC).

Since the modulation is BPSK, the possible values of is +1 or -1 Similarly also take values +1 or -1. So, to find the Maximum Likelihood solution, we need to find the minimum from the all four combinations of and .

The estimate of the transmit symbol is chosen based on the minimum value from the above four values i.e

I am doing VBLAST detection… the program I am using is an OSIC detector function that implements VBLAST algorithm using MMSE (SINR based ordering), ZF (SNR based ordering) and column-norm based ordering. The function is as follows:

function [x_sliced] = QPSK_slicer(x,n)
sq05=1/sqrt(2); jsq05=j*sq05; n=length(x)
for i=1:length(x)
if imag(x(i))>real(x(i))
if imag(x(i))>-real(x(i)), x_sliced(i)=jsq05;
else x_sliced(i)=-sq05;
end
else
if imag(x(i))>-real(x(i)), x_sliced(i)=sq05;
else x_sliced(i)=-jsq05;
end
end
end

As such i haven’t found any problems in the logic of the above program but the results are extremely incorrect!… the BER I am getting is different every time!
most probably the error comes from the OSIC_function program. But i am not able to figure them out

@Dar: Well, one can think of the V-BLAST story as trying to solve for N unknowns, and to solve for N unknowns we need atleast N equations. The number of receive antennas form the N equations part. Helps?

So you are saying, since we are implementing linear decoding like ZF and MMSE; we need N equations for N unknowns. So if we implement decoding using ML rather than ZF and MMSE; do we still have this constraint? What do you think?

So you are saying since we are using linear decoding algorithms we need N linearly independent equations for solving N unknowns. So if we rather use ML decoding algorithm does it mean we will not have such a constraint. What dou you think?

@raj: Well, am not sure. It depends on the problem which you are modeling. The MMSE algorithm can be used to ‘detect the arrival of the packet’ which is quite different from equalizing the packet which is corrupted by noise and interference.

sir i want to check the of impact of MIMO (MMSE-OSIC) system on the transport control protocol (TCP) protocol.
and is there any different between MMSE detection and MMSE equalization, if yes than what is that?

Hi all
Pls i am currently an MSC student in the UK and working on (OFDM) as my Dissertation. I am to investigate how to use Matlab to simulate the following channel impairment
1 Multipath Delay
2 Peak power Clipping
3 Channel Noise
4 Frequency selective fading
5 Intersymbol interference.
I am surpose to compare the performance of (OFDM) and BPSK, QPSK etc using the above channel impairments. currently the Matlab codes i have does not plot any thing. Pls i will appreciate if someone can help me out.

My simulations show a little different results. In my results, the 2×2 BPSK ZF BER lacks the 1×1 BPSK BER by 3 dB. I believe this to be a sane result, because I have scaled the transmission power by 1/sqrt(2) to keep the total transmission power emitted by all antennas constant for a fare comparison between different schemes. Have you done this in your simulations? Similarly, my 2×2 ML BPSK transmission lacks the MRC by 5 dBs.

@William: If you look @ the simulation in post http://www.dsplog.com/2008/10/24/mimo-zero-forcing/, it can be seen that I have scaled the transmit voltage (not power) by 1/sqrt(2). Scaling the transmit voltage by 1/sqrt(2) ensures that power on each arm is 1/2 and totals to unity.

Thank you sir,
I have get the result for SIC using optimal ordering, but if I use V-BLAST with coding than the coding is perform before demultiplexing of data so data bits(symbols) get spreded spatially in channel and we have to decode them jointly at receiver which is not happened in H-BLAST (coding is done after demultiplexing) so for V-BLAST,

1. How can the bits are decoded at the receiver? Should it require some change in programme?

@raj:
1/ In V-BLAST, there is interference between parallel transmissions. At the receiver, we try to null the interference and recover the required data symbol.
2/ I have not done precise calculations on the complexity difference between these algorithms.

hi sir,
I extremely thanks you to share this tremendous work in field of MIMO spatial multiplexing,
I am working in the same field , so i request you to share some details if you don’t mind
I have certain query about the V-BLAST programme,

@raj: My replies:
1/ I used V-Blast where all transmit antennas transmit simultaneously.
2/ One topic which interests me is to simplify the equalizer structure and reach ML like performance (Sphere decoding etc)

In V-BLAST , is there any kind of coding (e.g. convolution) is used? b’cos in programs ,I am not found any kind of coding at transmitter, if I want to use coding at transmitter than what changes require at receiver? particularly in case of V-BLAST & D-BLAST.

In the programme of ZF-SIC with optimal ordering , you have assign channel with higher SNR to second stream (force-fully), but if I want to do SIC on the basis of original SNR values of symbol than would I get desired result?

@raj: My replies
1/ No, I have not assumed presence of coding in transmitter. However, even if coding is present, it will just be that the output of the equalizer will go to the decoder and the decoder will generate the raw bits.
2/ I believe you meant optimal ordered successive interference cancellation. To do that select the stream having higher SNR. I have provided a post on Zero Forcing with optimal ordered successive interference cancellation.http://www.dsplog.com/2008/11/29/mimo-zf-sic-optimal-order/

Hi there,
I am M.Sc researcher in IIUM. I am working on 2X2 MIMO channel sounder. I need an urgent help for a simulink model of MIMO transmitter. can you help me, how to call M-file in simulink. I have created an M-function or code generator. I need to ad this as a source of transmitter in simulink.

Krishna Pillai,
I am right now calculating the ber versus snr in qpsk-ofdm environement,but the curve is not what we expected, it is different from the theory,maybe the code has some problems, how can i contact you?my mail address:benjamin.frank@163.com

@Alvina: Matlab code for the curve for each receiver structure is present in the individual articles (links are present in the post). I just made a top level simulation to generate all the curves in one go.

@VC:Matlab code for the curve for each receiver structure is present in the individual articles (links are present in the post). I just made a top level simulation to generate all the curves in one go.

@ilhami gozcu: Matlab code for the curve for each receiver structure is present in the individual articles (links are present in the post). I just made a top level simulation to generate all the curves in one go.

@D1EG0: Matlab code for the curve for each receiver structure is present in the individual articles (links are present in the post). I just made a top level simulation to generate all the curves in one go.

@raj: Well, am not sure. It depends on the problem which you are modeling. The MMSE algorithm can be used to ‘detect the arrival of the packet’ which is quite different from equalizing the packet which is corrupted by noise and interference.

hi sir,
thanks for reply,
but sir equalization and detection , both are same process and they are different from estimation, am i right?

Is there any difference between SVD (singular value decomposition), SQRD (sorted QR decomposition), and decorrelating process?, b’cos ultimately they all belongs to set diagonal components of any matrix.

What is the different between Sphere decoding (SD) and Lattice reduction?

i am curious to wait for your replay,
once again thanks for your great support.

@raj: my replies
a/ both equalization and detection can be different
b/ i think both svd and sqrd are different. have not studied much on this topic
c/ have not studied in detail sphere decoding and lattice reduction. hence unable to comment