1 Star2 Stars3 Stars4 Stars5 Stars (21 votes, average: 4.38 out of 5)
Print Print

Alamouti STBC with 2 receive antenna

by Krishna Sankar on March 15, 2009

In the past, we had discussed two transmit, one receive antenna Alamouti Space Time Block Coding (STBC) scheme. In this post, lets us discuss the impact of having two antennas at the receiver. For the discussion, we will assume that the channel is a flat fading Rayleigh multipath channel and the modulation is BPSK.

Alamouti STBC with two receive antenna

The principle of space time block coding with 2 transmit antenna and one receive antenna is explained in the post on Alamouti STBC. With two receive antenna’s the system can be modeled as shown in the figure below.

Figure: 2 Transmit 2 Receive Alamouti STBC

For discussion on the channel and noise model, please refer to the post on two transmit, one receive antenna Alamouti Space Time Block Coding (STBC) scheme.

The received signal in the first time slot is,


Assuming that the channel remains constant for the second time slot, the received signal is in the second time slot is,


are the received information at time slot 1 on receive antenna 1, 2 respectively,

are the received information at time slot 2 on receive antenna 1, 2 respectively,

is the channel from receive antenna to transmit antenna,

, are the transmitted symbols,

are the noise at time slot 1 on receive antenna 1, 2 respectively and

are the noise at time slot 2 on receive antenna 1, 2 respectively.

Combining the equations at time slot 1 and 2,


Let us define .

To solve for , we know that we need to find the inverse of .

We know, for a general m x n matrix, the pseudo inverse is defined as,


The term,

Since this is a diagonal matrix, the inverse is just the inverse of the diagonal elements, i.e

The estimate of the transmitted symbol is,


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

(c) Code it per the Alamouti Space Time code, multiply the symbols with the channel and then add white Gaussian noise.

(d) Equalize the received symbols

(e) Perform hard decision decoding and count the bit errors

(f) Repeat for multiple values of and plot the simulation and theoretical results.

Click here to download Matlab/Octave script for computing BER for 2 transmit 2 receive Alamouti STBC for BPSK modulation in flat fading Rayleigh channel

Figure: BER plot for 2 transmi 2 receive Alamouti STBC


1. Can observe that the BER performance is much better than 1 transmit 2 receive MRC case. This is because the effective channel concatenating the information from 2 receive antennas over two symbols results in a diversity order of 4.

2. In general, with receive antennas, the diversity order for 2 transmit antenna Alamouti STBC is .

3. As with the case of 2 transmit, 1 receive Alamouti STBC, the fact that is a diagonal matrix ensured that there is no cross talk between , after the equalizer and the noise term is still white.


[DIG-COMM-BARRY-LEE-MESSERSCHMITT] Digital Communication: Third Edition, by John R. Barry, Edward A. Lee, David G. Messerschmitt

A Simple Transmit Diversity Technique for Wireless Communication Siavash M Alamouti, IEEE Journal on selected areas in Communication, Vol 16, No, 8, October 1998

D id you like this article? Make sure that you do not miss a new article by subscribing to RSS feed OR subscribing to e-mail newsletter. Note: Subscribing via e-mail entitles you to download the free e-Book on BER of BPSK/QPSK/16QAM/16PSK in AWGN.

{ 169 comments… read them below or add one }

MIkel August 18, 2015 at 2:10 am

Hi, and thnx you for all your help.
May i ask you why do you divede the code below by 1/sqrt(2)?

% Alamouti STBC
sCode = 1/sqrt(2)*kron(reshape(s,2,N/2),ones(1,2)) ;


Ha Anh April 20, 2015 at 9:31 pm

Hello sir,
can you help me about alamouti combine pre-coder?


ashwini March 26, 2015 at 1:33 pm

krishna sir ,you stopped replying for querries ??
sir can you plz tell me how to assign parity check matrix to ldpc encoder and decoder in simulink ??
and how to built pah matrix for 2×2 stbc-ofdm model in simulink ??


vien April 13, 2015 at 9:51 pm

sir can you plz tell me how to assign parity check matrix to ldpc encoder and decoder in simulink ??
and how to built pah matrix for 2×2 stbc-ofdm model in simulink ??


loga January 21, 2015 at 6:27 pm

sir can i have SFBC MIMO coding please………………..


sandhya November 23, 2014 at 5:35 pm

thank you sir but is it possible to know me the simple correlator type receiver Simulink model or matlab code……………………….. as possible as soon


sandhya November 23, 2014 at 5:31 pm

sir may I know the simple correlator receiver Simulink model or matlab code for that


ashwini November 19, 2014 at 6:10 pm



mariem April 14, 2015 at 2:27 am

please help me


www.facebook.com October 10, 2014 at 4:41 am

Unfortunately, it may contain a little too much spoilers for some.
This time is broken up into two 45-minute periods of
play. In Star Trek Online, you have 50 levels to
achieve from the beginning. This smartphone will probably
be the first droid of Samsung which features the unreleased version of
the Google OS. Also announced, was yet another (atleast it’s one title per year
now instead of two) Need for Speed with an updated Most Wanted.
Supperhero is perfect for fans of Pokemon and other battle games
- build your formation and put different heroes into play during a
battle – once the enemy fridge is empty, you have won. They will take
complete responsibility to repair the car and bring it back to its
original state, making sure that it functions without any problems.

There are dozens of companies who make pop up play tents and tunnel tents, and they are hugely popular on the internet.
Within the first quarter of the 360′s release gamers were treated to
stunning lookers like Elder Scrolls IV: Oblivion,
Ghost Recon Advanced Warfighter and Fight Night Round 3.
These patterns, from preferred roosting and feeding areas to ideal nesting and mating locations
can all be understood better with a trail camera.

Take your Cash Reconciliation of your Tills at the end
of the night. There are thousands of starfish species all over the globe.
It is a simple matter to change tips and by doing so change the width of your solder line.
Free printable baby shower games refer to the printable materials that can be downloaded from the Internet without any charge.
Skypark Swimming Pool at Marina Bay Sands Hotel, Singapore.
The silver replaces the copper during the immersion process.

At the time of brushing your teeth it will be very difficult
for you to remove those pieces of food from those wires.

“I think he’s just going to test the waters a little bit and see how it goes,” Michael
Phelps’ longtime coach Bob Bowman said on Monday (April
14, 2014). The game does feature in-app purchases, but
the player does not have to buy anything to
experience the whole game. ‘It’s hard to overstate
the importance of Titanfall to the Xbox One release this year,
‘ Mehdi said. Additionally you can put garbage in his mouth and Stinky reacts by opening and shutting his jaws and uttering ingesting sounds.
Game creators who are familiar with the Game – Cube or Wii will be right at home
crafting games for the new handheld. There is a huge community which includes people who love
fashion trends and do not hesitate to experiment with the latest drift.
Pop star Justin Bieber arrives at Heathrow International Airport on April 23, 2012
in London, UK. Girls who’re a bit older will love playing clothes which they dream to wear
to their school or at house.


vegasattractions.co September 22, 2014 at 4:55 am

Jabbawockeez at the Monte Carlo, has a 30-35 percent discount
for locals at the Monte Carlo box office.


القصة August 15, 2014 at 9:42 am

Read about love and friendship in MMOs in this article.
To start a romance in “The Sims Medieval” you first need to pick out a Sim for your hero to fall in love with.
People across the world celebrate this special day by expressing love for their sweetheart valentines, parents, teachers and friends.


อุปกรณ์สักคิ้ว August 12, 2014 at 12:17 pm

It’s actually a nice and helpful piece of information. I’m satisfied
that you simply shared this helpful information with
us. Please stay us up to date like this. Thank you for sharing.


https://deerhunter2014hackss.wordpress.com/ August 10, 2014 at 7:44 am

Wow, incredible weblog layout! How long have you ever been blogging for?
you make blogging look easy. The overall glance of your web site is excellent, as smartly as the content material!


Rony July 11, 2014 at 1:00 am

In the MATLAB code for Alamouti 2X2 code, you did not use the probability functions that you used before for MRC or STBC 2X1.
Could you please explain?


Nomin April 14, 2014 at 9:33 am


I want to simulate Alamouti 2by2 BER under Rician fading channel. I am having some problem with modeling of Rician fading channel.
Could you please share matlab code for Rician fading channel if it is possible. Also If you have matlab code for polarization, could you please share?

Thank you


mohamad July 15, 2013 at 3:31 am

thanks a lot for this great wedsite

kindly, I am wondering if the last equation is right ?

i mean x2 is conjugate or with out conjugate???

is there genereal form for theoritical probablity of error for mimo alamouti ?? for fading channel

thanks a lot


Krishna Sankar July 15, 2013 at 6:34 am

@mohamad: i recall x2 is with the conjugate.


stankefa April 15, 2014 at 1:10 am

Are you totally sure about that? Because when I made my own simulation with QPSK, by using x2 with conjugate, i got the error exactly for those values.
The same happened when slightly editing your own MATLAB code for QPSK modulation, I got bit errors for those conjugated x2 values.
Actually what I found out that should be omitted in your code is the line:
yHat(2:2:end) = conj(yHat(2:2:end));

(this line didn’t have any influence on BPSK because the values are real (+1, -1) and you make a decision by comparing the real part of received signal with zero)

Could please confirm if I’m right or wrong?


To March 19, 2013 at 7:17 pm

Dear kreshna
Could you answer my question?
if the receiver use SC ( selection combinning). can u calculate Outage Probability ?
thank you so uch


Krishna Sankar March 21, 2013 at 6:20 am

@To: The selection diversity case, outage probability and effective SNR is discussed in the post
Hope this helps.


yousif March 15, 2013 at 11:10 pm



Dean88 March 11, 2013 at 3:01 pm

What kind of simulation methods?
monte carlo methods, my guess


Dean88 March 11, 2013 at 3:00 pm

What kind of simulation methods?


Krishna Sankar March 13, 2013 at 5:44 am

@Dean88: monte carlo simulations


krishna March 5, 2013 at 11:07 pm

can you any one provide me algorithm or matlab code for spatial modulation.


Krishna Sankar March 13, 2013 at 6:11 am

@krishna: are you looking for posts on multiple antenna transmission/reception? if so, please checkout


Jeremiah January 14, 2013 at 11:51 am

Hi Krishna,

Do you know how to simulate 4×4 16QAM Symbol Error Rate under rayleigh condition? Please advise.



Krishna Sankar January 17, 2013 at 5:33 am

@Jeremiah: For posts on MIMO and BPSK, please check out


chiran January 12, 2013 at 6:05 pm

how can we implement ALamouti Coding (2×1) or (2×2) in mobile WiMAX under different speeds of the subscarriers…?


Krishna Sankar January 17, 2013 at 5:29 am

@chiran: Are you referring to loading independent modulation schemes in different subcarriers. Yes, that is possible.


kiran January 12, 2013 at 11:56 am

Dear Krishna sir,
I want to simulate 2×2 mimo ofdm system. But I am confused whether to perform channel coding(mimo) first or OFDM modulation first,. also where to insert the pilot for channel estimation? after MIMO or after OFDM modulation? Please reply


Krishna Sankar January 17, 2013 at 5:28 am

a) Typically, it is first the MIMO modulation, then OFDM. The model is
y = Hx + n
y is 2×1 matrix of received symbol
H is the 2×2 mimo channel
x is the 2×1 matrix of the transmited symbol
n is the 2×1 matrix of noise

b) Pilots need not be MIMO coded, and typically it is not. The pilots are defined in the subcarrier domain.


ankita January 1, 2013 at 8:33 pm

Helo sir plz help with Alamouti STBC with OFDM in presence of carrier frequncy offset with 16QAM and 64 QAM modulation. I have results for QPSK modulation but when I make changes accoring to QAM modulation I do not get desired results…PLZ…PLZ help me to solve this problem.
Thank u


Krishna Sankar January 2, 2013 at 5:36 am
Vishwas December 31, 2012 at 3:32 pm

can you please help me with the equalisation part of STC Matrix B for 2×2 antennas..
|r0| =|h00 h01| |s0|
|r1| |h10 h11| |s1|
is the received signal.. We multiply with H-1 to get s0 and s1 back..
we get |h00|2 + |h01|2 + |h10|2 + |h11|2 for matrix A,
what will we get for matrix B??


Krishna Sankar January 2, 2013 at 6:13 am

@Vishwas: Are you looking for H^H, that is the Hermitian i.e. conjugate transpose of the matrix


Vishwas January 16, 2013 at 5:29 pm

Yes, I want the equations for Matrix B.. And also, can you please help me with HARQ. Any links or material regarding it will be very helpful.. I want to know about both types, Chase combining and incremental redundancy..


Krishna Sankar January 17, 2013 at 6:29 am

@Vishwas: Sorry, I have not written anything on HARQ


ankita December 31, 2012 at 10:12 am

Helo sir,
I m working on STBC OFDM. I have used QPSK as my modulation technique. but whenever I change my modulation technique from QPSK to16 QAM or 64 QAM i do not get the desired results. Please help me with this


Krishna Sankar January 2, 2013 at 6:14 am

@ankita: For posts on general M-QAM modulation with OFDM, please check out


akash May 19, 2014 at 2:38 pm

Hi ankita… i m doing my final year project on mimo ofdm with qpsk
I am not able to integrate stbc with ofdm. Can you please send me your codes at my email akashsinha.082508@gmail.com


Tanbir December 3, 2012 at 3:26 pm

Dear sir,
This is my first time on your blog…
I am studying in UM(Malaysia), Working on a project on MIMO-OFDMA
I already have studied (I think) 9 hours at a stance, What you have created is a blessings for the new researchers,
My question is about the receiving section,
Can you tell me how the Parallel data is being handled at the Rx?
For an Example;
If I tried with a 2×2 antenna, (SIBC OFDMA), After getting the signal into the receiver,(Being equalized) how i am gonna recover my original data? can you explain or give me any ref??
Thanking you,


Krishna Sankar December 4, 2012 at 6:18 am

@Tanbir: One will have a buffer to convert the parallel data to serial and use. Check out the OFDM related posts @ OFDM http://www.dsplog.com/category/ofdm/


Rajopadhhay November 25, 2012 at 11:46 pm

Dear Mr. Krishna,

If we use a simple AWGN channel model, instead of considering it to be Rayleigh fading then does that mean that the channel coefficients h1 and h2 equal 1? Since we are only adding noise? I dont know if I am asking a stupid question but it would nice if you could let me know.



Krishna Sankar November 27, 2012 at 4:51 am

@Rajopadhhay: Yes, assuming h1=h2=1 will take the Rayleigh fading out of the way :)


Jyothi Swaroopa November 9, 2012 at 2:22 pm

I have been working on paper “improved interference cancellation scheme for two-user detection of alamouti code” and I derived all the required mathematical equations and proved for 2*2, 2*3, 2*m but i could’nt do the simulation please help me if you can…


Krishna Sankar November 12, 2012 at 6:58 am

@Jyothi: I wont be able to help in the coding part. Some quick pointers to help in debugging the code will be:
a) Make sure that the decoding has zero errors in no-noise case
b) Use BPSK modulation


urvik November 8, 2012 at 8:25 pm

Hello sir,
can you please explain cahnnel estimation in OFDM with providing matlab code..?


Krishna Sankar November 18, 2012 at 7:13 am

@urvik: The channel estimation in typical ofdm systems is relatively simple and is done with the aid of a known preamble.
The system model for each subcarrier is,
Y = HX + N, where
Y – is the received symbol
H – is the unknown channel
X – is the known preamble and
N – is the noise

The noisy estimate of channel H’ = Y/X


maharshi November 7, 2012 at 3:43 pm

hello sir,
I am right now developing alamouti 4×4 scheme. So, i want to develope the combiner output for that. So, i need help that, whether i have to develope the combiner output equations for 4×4 as same manner or as different way. I need one more help about the internal discription about combiner circuit and channel estimator in alamouti.


Krishna Sankar November 12, 2012 at 7:03 am

@maharshi: what is the coding scheme for the 4×4 channel which you are using?


maharshi November 12, 2012 at 8:10 am

sir, i am doing for alamouti STBC. So, i am following same theory of 2×2, which is extended upto 4×4. And transmitting matrix is (s1 s2 s3 s4 ; s2 -s1* s4 -s3*; and two other rows). But now i am not able to produce the output of the combiner.


Krishna Sankar November 18, 2012 at 7:11 am

@maharshi: For debugging, try to build the decoder with no noise.


maharshi November 19, 2012 at 6:33 pm

ok, so i need to take y=H*x.or i am not able
to get what u want to say???

Aditi October 30, 2012 at 8:46 am

can u plz help me out wid Alamouti OFDM with 16QAM and 64QAM modulation……


Krishna Sankar November 2, 2012 at 6:40 am
ari November 2, 2012 at 7:46 am

@Mr.Krishna Sankar: I modified my codes and combined to 16QAM concept (yours also), but the SER is not right. Which part that I need to concern about if I want to obtain a proper result? Thank you.


Krishna Sankar November 12, 2012 at 7:09 am

@ari: Make sure that the noise addition is correct. And the also the symbol to bit decoding.


ashu October 24, 2012 at 11:27 pm

Thank you for your reply sir,……
sir you are right the concepts of MIMO decoding is not getting affected by OFDM……………..But the problem with channel model in your code you take a channel with N coefficient but in practical case we have a channel of 3,5 or 10 tap, if channel have N coefficient so its becomes a frequency selective channel …so the channel model is very within in one ofdm symbol……(Plz help me sir)


Krishna Sankar October 25, 2012 at 5:21 am

@ashu: Well, even if the channel has multiple taps, as long as the tap duration is lesser than the cyclic prefix, the channel coefficient for each subcarrier can be treated as an independent flat fading. Have discussed this for a SISO rayleigh channel + OFDM case @


ashu October 21, 2012 at 9:48 pm

First of all I would like to say thanks for such wonderful blog….sir presently i am working on MISO OFDM system,,sir in your blog you discuss about ofdm and mimo separately but not combined can you do so….


Krishna Sankar October 24, 2012 at 7:53 am

@ashu: Thanks.
The underlying concepts of MIMO decoding is not getting affected by OFDM. For OFDM related posts, please check out


Aditi October 13, 2012 at 11:24 pm

hello sir,
can u plz help out regarding the theoritical calculaton(BER) simulation for Almouti STBC with CFO…


Krishna Sankar October 17, 2012 at 6:20 am

@Aditi: Sorry, have not looked into that aspect


MINAL October 13, 2012 at 1:09 am

Sir can we make this Alamouti STBC coding for receiver antenna selection for MIMO OFDM?

& Can u please tell me what are these -x2* & x1*?


Krishna Sankar October 17, 2012 at 6:20 am

@MINAL: For OFDM related posts, please checkout http://www.dsplog.com/category/ofdm
Did you want to do receiver selection along with Alamouti STBC?


anusha November 5, 2012 at 4:42 pm

i want information about sfbc mapping and demapping. any one pls help me.


priya September 26, 2012 at 4:56 am

Hi sir,
First of all I would like to say thanks. bcz your coding 2×1 is more helpful for me.
Thank you sir,……
sir i need one help.. i need coding for 4×1, 3×1… i tried many time by change the coding, but i still getting error… so plz help me sir


Krishna Sankar September 26, 2012 at 5:23 am

@priya: Thanks. what is the code which you are using for 4×1, 3×1 cases? Can you please point me to that.
Further, are you getting zero error in the no noise case?


benza September 16, 2012 at 5:06 pm

can you explain me about 4×4 mimo


Krishna Sankar September 18, 2012 at 5:41 am

@benza: I have not gone through the 4×4 mimo case, but you can find posts on the 2×2 MIMO with different equalizer structures in
Hope this helps.


mina August 21, 2012 at 9:59 am

plz help me for MATLAB. can u?


Krishna Sankar August 22, 2012 at 8:26 am

@mina: Hmm… you can post your query. will try to help.


Reetu June 24, 2012 at 4:29 pm

I need matlab code help for STBC-OFDM and SFBC-OFDM urgently… sir please help me…


Krishna Sankar June 26, 2012 at 6:18 am

@Reetu: I do not have posts discussing OFDM and STBC combined, but have
Hope the above can help you


LEETHENG May 13, 2012 at 1:51 pm

Dear Krishna,
If i suppose there is feedback channel so reciever tells the transmitter the channel estimation,, then transmitter would do forward error correction ,this could be implemented if i multuplied modulated bits by 1/rayleigh fading. but when i did that, i didn`t get the plot. any suggestions about the reason?


Krishna Sankar May 15, 2012 at 5:51 am

@LEETHENG: Hmm… are you getting zero ber even in the case of no noise?
Also, try looking at http://www.dsplog.com/2009/04/13/transmit-beamforming/


Venkatraman April 27, 2012 at 7:54 pm

Hello sir,

In Virtual MIMO I read that one mobile shares the transmitter in other mobiles so that it looks as if it has many antennas. But the thing is how will the neighboring mobile know of my data? For eg: if x1 and x2 are my data and in the first time slot I send x1 in my mobile transmitter and x2 in my neighboring mobile transmitter how will my neighbor have that data x2?

Thanks in advance.


Krishna Sankar May 2, 2012 at 4:53 am

@Venkataraman: Hmm… I have not read about the concept of virtual MIMO. Sorry


Jayashree February 28, 2012 at 7:14 pm

Hi Krishna

i want to implement Alamouti scheme with 2 transmit and one receive antenna using following equation for SINR = h112 +h122E (x12)/Sn2+h1k2.E(Xi2).

please help me.


Krishna Sankar March 5, 2012 at 5:29 am
Amin Mehul November 11, 2011 at 4:05 pm

I want the transmission matrix for 2-transmit & 2-recieve antennas. Is there any mathematical procedure to get it?


Krishna Sankar November 15, 2011 at 5:37 am

@Amin: Did you want to check posts in http://www.dsplog.com/tag/mimo?


WASEEM August 31, 2010 at 3:23 pm

Hello Sir
Thanks for this info, it has really been helpful.
its simulation is in matlab can it be done matlab simulink or it is done in this blog
plz let me know sir.


Krishna Sankar September 1, 2010 at 7:02 am

@WASEEM: The code in the blog is in Matlab. Ofcourse, it can be done in Simulink (I do not not have simulink).


WASEEM September 2, 2010 at 2:58 pm



Pattaraporn August 8, 2010 at 11:56 am

Hello Sir,

I will write a program for 2×2 spatial Multiplexing and space time coding with 4-qam 16-qam modulation respective. But do not know to start it. I would like you suggest.


Krishna Sankar August 10, 2010 at 5:07 am

@Pattaraporn: Try to see if the code present in the following links help


Anchin June 27, 2010 at 10:37 pm

Hello Sir,
Thanks for this forum, it has really been helpful.
Please I would like to clarify something.
When you say
The estimate of the detected symbol is,
(x1,x2*) i was thinking why x2*, why not just (x1 and x2)


Krishna Sankar June 28, 2010 at 6:20 am

@Anchin: The x2* conjugate came up because it mode it more convenient to represent it in matrix notations.


dolly April 16, 2010 at 1:10 am

hello sir,
why taps are used for OFDM in rayleigh channel with BPSK modulation? Is STBC with OFDM is same as STBC with MCCDMA


Krishna Sankar April 18, 2010 at 2:18 pm

@dolly: My replies
a) It depends on the scenario which one wishes to simulate. I wanted to simulate a multipath channel case
b) Thats a difficult question to answer. Ofcourse the simplest answer is no, however there can be finer shades of gray depending on what you are trying to achieve with these two technologies.


RP Singh April 9, 2010 at 1:51 pm

I have a problem regarding a data transmission using SFBC-OFDM.
How this will be performed.


WiMAX March 11, 2010 at 3:08 am

Hi Krishna, here is my question.

How did you combine the received signals?
Have you used MRC at the receiver?

I have a system of 2×2 with OFDM-STBC but i can’t understand how to sum up all the signals at the receiver side. After applying FFT at the receiver should i apply alamouti STBC and then MRC?

Any ideas?


Krishna Sankar March 28, 2010 at 3:59 pm

@WiMax: The equation discussed in this post should hold good. Try formulating the problem as described above and then apply (H^HxH)^-1x H^H as the equalization matrix


WiMAX February 17, 2010 at 3:12 am

Hi Krishna, i have the same question with wap.
Can you guide us?


Krishna Sankar April 4, 2010 at 3:52 am

@WiMAX: What is WAP?


niks February 4, 2010 at 2:51 pm

in alamouti matrix why complex conjugate is taken for complex signal??
any technical reason????


dilla February 18, 2010 at 7:08 am

how to put the correlation at the transceiver or receiver…where should i put the function? plizzz help me..


Krishna Sankar March 31, 2010 at 5:43 am

@dilla: Are you talking about antenna correlation?


Krishna Sankar April 4, 2010 at 4:23 am

@niks: It makes the channel ortohogonal


wap January 13, 2010 at 11:15 am

hi sir………….
hi krishna……….

i wanted to ask u…………

how to combine stbc+mimo or stbc+ofdm??if it could??
you”ve tried it??where i can get tutorial about it??

in alamouti stbc with 2 antenna transmitter and receiver, if I want to add an antenna to be many, for example, 1 transmitter with many receiver or transmitter and receiver of many, which one should be changed in your program?

thanks before…………..


norbert January 5, 2010 at 3:35 pm


My question would be that why there is no transmission power in the received signal equations? Or are the signal powers assumed to be one on all transmit antennas? Or are they comprised in the H channel matrix?

Thanks in advance.


ehab December 26, 2009 at 1:45 am

Dear Sir;

I just want to know why you change the matlab code for making the Alamouti STBC from the previous (Alamouti STBC) you used
“sCode = zeros(2,N);
sCode(:,1:2:end) = (1/sqrt(2))*reshape(s,2,N/2); % [x1 x2 ...]
sCode(:,2:2:end) = (1/sqrt(2))*(kron(ones(1,N/2),[-1;1]).*flipud(reshape(conj(s),2,N/2)));”

and now you use

“sCode = 1/sqrt(2)*kron(reshape(s,2,N/2),ones(1,2));”

Thank you



Dobs December 19, 2009 at 4:38 pm

Thank you for the post, i was going to ask you..what if we transmit the same symbol at the same time on the two different antennas,i.e. tranmitting s0 and s0 instead of s0 and s1 in 2tx and 1rx alamouti scheme?please can you explain what happens in this case?
Thank you,


Krishna Sankar December 23, 2009 at 5:43 am

@Dobs: If we transmit the same symbol on both the antennas, then there will be no diversity gain. You can see a brief discussion on this in the post on beamforming


apanong December 11, 2009 at 1:15 pm

I got BER as a line at 10^-0.6 with no noise and the channel taps as unity. so do u know what is my problem?


Krishna Sankar December 22, 2009 at 5:18 am

@apanong: hmm… getting 25% error in ideal condition is not desirable, though I am unable to guess what is wrong. Are you using BPSK modulation?


apanong December 7, 2009 at 4:07 am

I’m trying with Alamouti 2*2 and QPSK modulation. I used your code, but change at the part of creating signal and the part of counting the errors to suitable to QPSK. I think the channels and the noise are still the same, rite?
but i could not get the result.
don’t know why.
could u give me some suggestions?


Krishna Sankar December 7, 2009 at 5:40 am

@apanong: Are you getting zero BER with no noise and the channel taps as unity?


wosamw November 23, 2009 at 9:46 pm

ok but how can implemention ofdm and ofdma in STBC withot discuss about 802.16e


martin November 15, 2009 at 3:20 am

thanks for your good website and codes, If I want to use lognormal distribution fading channel instead of rayleigh how do I generate the lognormal fading symbols?


Krishna Sankar December 3, 2009 at 5:37 am

@martin: I have not discussed log-normal distribution in posts till date. Hope the wiki entry helps you


wosamw November 3, 2009 at 2:04 am

my dear
Krishna Sankar
can you provide me simulink model for STBC MIMO OFDM in wimax IEEE802.16e


Krishna Sankar November 8, 2009 at 8:40 am

@wosamw: Sorry, I have not discussed STBC used in 802.16e


sotiiis October 17, 2009 at 8:14 pm

Hallo Krishna ,first of all congradulations for your posts,are really enlightening.One thing i cant understand is the calculation of H(hermitian)*H which is critical to show diversity of 4 for this alamouti scheme,Could you be more detailed and show this calculation..thnks!!!!


Krishna Sankar October 27, 2009 at 5:08 am

@sotiiis: One way to look at that is:
If you see the y = Hx + n equation, we can see that we have four copies of x1 and four copies of x2 at the receiver. Since the code is orthogonal, they do not interfere with each other. Hence the diversity order is four.
Does this help?


najat yahya October 6, 2009 at 5:03 am

Dear kreshna:
I am najat i work on OFDM.I know the bit error rate increase when the channel is frequency selective fading more than flat fading channel by using any modulation techniques like binary phase shift key in transmission the data. Can you help me writing a program by MATLAB show that.
I also need to show that OFDM is effective technique in case frequency selective fading channel because it improves the bit error rate.


Krishna Sankar October 8, 2009 at 5:29 am

@najat: Please refer to the post
It shows that BER for OFDM with a 10 tap Rayleigh channel is equivalent to flat fading case.


najat shalash October 6, 2009 at 5:01 am

Dear kreshna:
I am a student work on OFDM.I know the bit error rate increase when the channel is frequency selective fading more than flat fading channel by using any modulation techniques like binary phase shift key in transmission the data. Can you help me writing a program by MATLAB show that.
I also need to show that OFDM is effective technique in case frequency selective fading channel because it improves the bit error rate.


WiMAX October 4, 2009 at 10:24 pm

Thanks Krishna, i will work on it!


praneeth September 30, 2009 at 10:32 pm

hi sir,
Is there any ieee (or any conference) papers published on this work?


Krishna Sankar October 1, 2009 at 5:32 am

@praneeth: The contents are discussed in text books, so am sure that IEEE papers should be available. However, I have not done the search and hence unable to provide you pointers.


WiMAX September 19, 2009 at 5:12 pm

Hi Krishna, i’m working on Diversity exploitation in MIMO-OFDM (using STBC). I want to make a simulation with the help of Matlab of 2×2 system.

Any ideas or help regarding this subject?
Can i use OFDM instead of BPSK and if yes how can i do that?

P.S Your post are great!

Thanks in advance.


Krishna Sankar October 1, 2009 at 4:53 am

@WiMAX: Yes, you can use BPSK sent over OFDM. You may look at an example OFDM BER simulation in Rayleigh channel @


mak_m September 9, 2009 at 3:15 pm

thanks very much ..this post is very helpful can u plz tel me the name of the book ur following ..so i can read about it in much detail as well as if i need i can reference it in my report.. can i get access that book online for free..
plz reply me
Many thanks in advance.


surbhi August 24, 2009 at 12:01 pm

hi krishna,
u r doing very good job…
i have a one doubt plz find some time to clarify that.
tell what is the physical significance of using “KRON” that is based on the kronecker product while implementing ALMOUTI



Krishna Sankar August 25, 2009 at 5:41 am

@surbhi: kron does not have any physical significance in understanding Alamouti STBC. However, I used it to make the matlab code run faster by performing matrix operations (instead of for loops).


Ustun July 3, 2009 at 3:20 am

Thanks for the great website, it is very helpful.

I observe that if we use only AWGN channel, and omit the Rayleigh channel, Alamouti scheme yields

- about 3dB better for 2×2 case compared to SISO,

- but yields the same performance as SISO for 2×1 case.

Could you comment on why that happens?


Krishna Pillai July 6, 2009 at 5:27 pm

@Ustun: By AWGN channel for 2×2 MIMO case, I believe you used a diagonal channel, right? That is equivalent to having two single channel SISO case.
One question: How did you make a 2 transmit, 1 receive AWGN channel?


mohammed June 4, 2009 at 5:41 pm

how can i calculate the transmitted power while using 2*2 Alamouti scheme. where BW, data rate,Path loss and distance between transmitter and receiver is given,,,,,

is there any formula available to calculate that,,,

sorry am bothering you,, please help me…


Krishna Pillai June 7, 2009 at 2:17 pm

@mohammed: Well, the transmit power is something which is controlled by power amplifier in the transmitter. I am guessing that your question is, given the value of transmit power, path loss, distance etc, how can i calculate the power received at the receiver. For computing the received power, you may refer to the path loss equations @

Hope this helps.


Ken May 25, 2009 at 7:39 pm

Hello there!

Great codes! Is there a way to calculate the theoretical value of BER VS SNR for the 2X2 Alamouti Scheme?

Thanks alot!


Krishna Pillai May 31, 2009 at 8:19 pm

@Ken: Well, I would expect that Alamouti with 2 receive antennas will perform 3dB poorer than 1-transmit 4-receive Maximal Ratio Combining case. Agree?


fof May 20, 2009 at 5:28 pm

would you help me??
i need a very simple code which uses only for loops or while loops….for alamouti STBC (likelihood detection)….for BPSK
sorry if i’m bothering you…..please help me…..thanx


fof May 20, 2009 at 5:24 pm

please would you help me?
i need a very simple code which uses only for loops or while loops for alamouti stbc for BPSK likehood…..not with hard decision…..sorry if i’m bothering you….please help me……thanx


Krishna Pillai May 22, 2009 at 5:28 am

@fof: I think, it should be reasonably easy for you to modify the current code and make it into for-loops.


fof May 23, 2009 at 12:46 pm

ok thanx alot……it’s done :) )


SANTOSH April 22, 2010 at 5:56 pm

@fof: can you give the code for alamouti stbc for BPSK likehood which uses only loops


Marcus May 1, 2009 at 12:40 pm

what if it’s theoretical BER for 2 rx antennas with STBC? what is the expression. Thank you.


Krishna Pillai May 12, 2009 at 4:47 am

@Marcus: Am just guessing…. I would think that the theoretical BER for Alamouti STBC with 2 rx antennas will be 3dB poorer than the theoretical BER for 1 transmit 4 receive MRC case. Do you agree?


jefferson April 27, 2009 at 8:10 am

why no titles for STBC with
1) 4 or more transmitters
2) QPSK coding method


UP April 26, 2009 at 6:35 am

What is the expression for theoritical BER for 2 Rx antennas?


Krishna Pillai April 30, 2009 at 5:23 am

@UP: Did you mean theoretical BER for 2 rx antennas with STBC or with MRC only. If it’s MRC alone, you may refer to the post


mimo April 26, 2009 at 12:29 am


I am using real measures of h AND stbc and see that the channel (h) doesn’t influence in the BER. The simulation SNR-BER is always the same. Why is it??

thanks you.


Krishna Pillai April 30, 2009 at 5:18 am

@mimo: In this simulation, we are assuming independent Rayleigh fading channel and the channel remains the same for two symbols. What’s your assumption on the channel model?


MIMO May 3, 2009 at 11:59 pm

I have measures from a tunel and I have simulated for SNR =10dB the grafic BER-DISTANCE (50-500Metres). This figure is plane, that is to say that the channel doesn’t influence in Alamouti 2×2. Is it because is orthogonal??
thanks you.


Krishna Pillai May 12, 2009 at 5:02 am

@MIMO: Sorry, I was unable to follow your question.


mimo April 25, 2009 at 10:58 pm


why do you multiply for 1/sqrt(2) in the line…
“sCode = 1/sqrt(2)*kron(reshape(s,2,N/2),ones(1,2)) ;”??

Thanks you.


Krishna Pillai April 30, 2009 at 5:17 am

@mimo: To make the total transmit power from both the antenna to be equal to 1.


MIMO April 30, 2009 at 6:30 pm


I’m thinking that why don’t you multiply for this factor in your post “MIMO with MMSE equalizer” in VBLAST??

thanks you.


Krishna Pillai May 12, 2009 at 4:45 am

@MIMO: Well, in the MIMO case, we have two transmit streams and the time duration to send N bits is reduced by 2. Hence we do multiply by 1/sqrt(2). Agree?


Solo April 13, 2009 at 7:22 pm

dear sir,
I have given a task to be done in just three days. Please can you help me doing it as it will be helpful to understand all the subject. apprecuated and here is all the question.

The objective here is to compare VBLAST and Alamouti STBC in the context of MIMO-OFDM operating over frequency-selective Rayleigh fading channels. Consider a 2×2 system with N=64 carriers and a cyclic prefix long enough to avoid interblock interference. QPSK is used in STBC and BPSK is used in V-BLAST in order to have the same spectral efficiency. The discrete-time channels are assumed to be mutually uncorrelated and have L taps each. The taps are uncorrelated and obey an exponential power delay profile, i.e. E{|hk|2} = C.exp(- k) where C is a constant; take =0.2. It is assumed that the channel does not vary over two OFDM symbols. Assuming perfect knowledge of the channels at the receiver, provide simulations results depicting the average BERs for the two systems versus the average SNR in the cases where L=1, L=4, L=8, and L=16. Comment on the obtained results.


Krishna Pillai April 16, 2009 at 5:46 am

@Solo: I do not have the precise simulations which you were looking for, but I do have articles on MIMO and on STBC using BPSK on a flat fading Rayleigh channel. It should be reasonably easy for you to adapt to the OFDM case.

Hope this helps. Good luck.


Student A April 8, 2009 at 6:28 am

Hi Krishna,
Any suggest on how to combine MIMO with OFDM?


Krishna Pillai April 11, 2009 at 6:46 am

@student: extending a single antenna OFDM multiple antenna is reasonably straight forward. At the transmitter, we should have nTx iFFT’s and at the receiver we should have nRx FFT’s. Ofcourse, for each tx/rx chain, we should have the other miscellaneous blocks like filters, cyclic prefix insertion etc.


sasmita March 30, 2009 at 10:31 am

i want to simulate the SNR vs frequency offset in ofdm.krishna plz help me.


Krishna Pillai April 4, 2009 at 4:22 pm

@sasmita: I believe you want to calculate the SNR degradation due to introduction of the frequency offset. A probable quick way is as follows:
(a) Define modulation values for subcarriers in frequency domain X(F). Create the time domain symbol (x) by using IFFT.
(b) Introduce frequency offset at by multiplying x(t) with exp(j*2*pi*f_d*t), where f_d is the frequency offset, y(t) = x(t).*exp(j*2*pi*f_d*t)
(c) Take FFT of y(t) to find Y(F). Find the absolute difference between X(F) and Y(F)
Error Vector Magnitude, EVM = mean(|X(F) – Y (F)|^2
EVM, dB = 10*log10(EVM).

And EVM is good indication of the SNR degradation. Hope this helps.


SUCHITRA March 19, 2009 at 6:47 pm

how u r getting theory results? any proof for formulae u have been used?


Krishna Pillai March 21, 2009 at 4:47 pm

@SUCHITRA: For the theoretical results on 1 transmit, 1 receive Rayleigh channel, you may refer to the posts
(a) http://www.dsplog.com/2008/08/10/ber-bpsk-rayleigh-channel/
(b) http://www.dsplog.com/2009/01/22/derivation-ber-rayleigh-channel/

For the results with with Ntx=1, NRx=2 MRC, I used the equations provided in the textbook. The simulations are provided in
(c) http://www.dsplog.com/2008/09/28/maximal-ratio-combining/

And ofcourse, Ntx=2, NRx=1 Alamouti STBC is 3dB poorer than the 1Tx x 2Rx MRC case.
(d) http://www.dsplog.com/2008/10/16/alamouti-stbc/

Hope this helps.


mustafa April 13, 2009 at 4:43 pm

hi Krishna Pillai.
i want thank u in the first about this info.second i want to know about modulation and De-mod 16-PSK. if u ca help me plz.



Krishna Pillai April 16, 2009 at 5:43 am

@mustafa: Please refer to the post on Symbol error rate for 16PSK


Joe March 16, 2009 at 9:41 pm

1. h11,h21,h12,h22, are independent fadings, each of one as a rayleigh distribution variable.

2. Consider 2 independent systems:

a. (TX#1 and TX#2) and RX#1 with h11 h21 fadings.
b. (TX#1 and TX#2) and RX#2 with h12 h22 fadings.

Each of both systems are treated like the simple 2×1 Alamouti case including the detection and symbol obtaining (yHat1 and yHat2)

3. The detection rule for MRC and Alamouti are the same (the estimated symbol equation).

With all this considerations i think is correct to take the sum of yHat1 and yHat2 (obtaining maximal ratio combining) and then apply the “hard decision decoding”.

Any comments??


Krishna Pillai March 21, 2009 at 8:57 am

@Joe: hmm… i had thought about it (infact, i recall your earlier comment to Alvina suggesting the same). However, I think that approach is not the optimal way to combine the information from two receive antennas.

I think what you have proposed is like equal gain combining, where as what is discussed in this post is like maximal ratio combining. I would think maximal ratio combining provides better performance. Do you agree? Kindly share your thoughts.


Alvina March 16, 2009 at 7:21 pm

there is a small errror, at network daigram both channels are marked as h21, wheres as one is h12.


Krishna Pillai March 21, 2009 at 8:51 am

@Alvina: Thanks. Indeed, it was a typo. I corrected and uploaded the new figure.


Alvina March 16, 2009 at 6:55 pm

very nice and comprehensive.


Krishna Sankar November 20, 2012 at 8:57 am

@maharshi: the estimate h’ = (y+n)/x ~= y/x is a noisy estimate of h


Leave a Comment

Previous post:

Next post: