Alamouti STBC with 2 receive antenna

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

147 thoughts on “Alamouti STBC with 2 receive antenna

  1. Hi Krishna,

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


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

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

    1. @kiran:
      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.

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

  5. 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??

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

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

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

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


  9. Sir,
    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…

    1. @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

    1. @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

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

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

      1. @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.

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

  12. 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….

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

  14. 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*?

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

  16. 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?

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

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

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

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

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

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

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

    1. @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.

  24. 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?

    1. @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

  25. 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…………..

  26. Hi,

    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.

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


  28. 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,

  29. hi,
    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?

  30. 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?

  31. 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!!!!

    1. @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?

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

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

    1. @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.

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

  35. thanks very much ..this post is very helpful can u plz tel me the name of the book ur following 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.

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


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

  37. 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?

    1. @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?

  38. 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…

  39. Hello there!

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

    Thanks alot!

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

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

    1. @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?

  42. Hello,

    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.

    1. @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?

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

  43. Hello,

    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.

      1. hello,

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

        thanks you.

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

    1. @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.

    1. @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.

    1. @SUCHITRA: For the theoretical results on 1 transmit, 1 receive Rayleigh channel, you may refer to the posts

      For the results with with Ntx=1, NRx=2 MRC, I used the equations provided in the textbook. The simulations are provided in

      And ofcourse, Ntx=2, NRx=1 Alamouti STBC is 3dB poorer than the 1Tx x 2Rx MRC case.

      Hope this helps.

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


  45. 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??

    1. @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.

Leave a Reply

Your email address will not be published. Required fields are marked *