File Exchange

image thumbnail

Alamouti STBC

version 1.1 (2.41 KB) by

Discuss 2Tx. 1Rx transmit diversity scheme called Alamouti Space Time Block Coding (STBC)

30 Downloads

Updated

View License

A simple Space Time Code, suggested by Mr. Siavash M Alamouti in his landmark October 1998 paper - A Simple Transmit Diversity Technique for Wireless Communication, offers a simple method for achieving spatial diversity with two transmit antennas.

Since the estimate of the transmitted symbol with the Alamouti STBC scheme is identical to that obtained from MRC, the BER should be same as that for MRC. However, there is a small catch. With Alamouti STBC, we are transmitting from two antenna’s. Hence the total transmit power in the Alamouti scheme is twice that of that used in MRC. To make the comparison fair, we need to make the total trannsmit power from two antennas in STBC case to be equal to that of power transmitted from a single antenna in the MRC case.

With this scaling, we can see that BER performance of 2Tx, 1Rx Alamouti STBC case has a roughly 3dB poorer performance that 1Tx, 2Rx MRC case.

For theoretical details on 2 transmit, 1 receive Alamouti STBC coding and its equalization, please check
http://www.dsplog.com/2008/10/16/alamouti-stbc/

Comments and Ratings (18)

YU TIAN

Thanks for the script. I have one question.

At the receiver, the channel "h" is exactly the same as the "h" at the transmitter. But is real cases, this is not true. How to implement Alamouti code in real cases, where the channel response "h" is not perfectly known at the receiver?

Hope to hear from you. Thanks a lot. ytian3@student.unimelb.edu.au

Sameer Kadhim

Please. Sen me The performance of Alamouti scheme using 16-QAM and QPSK. in matlab
simsimgm93@gmail.com

I AM DOING A PROJECT ON NONLINEAR QUASI-ORTHOGONAL SPACE TIME BLOCK CODES FOR HIGH RATE
CAN I HAVE ANY DATA READING THE ABOVE PLEASE REPALY ME SIR AND IF ANY MATLAB HELPFULL CODE ALSO THANKYOU

hi does anyone have code to write 2*2 mimo stbc in arduino

if you have STBC with 6 or 8 antennas transmiter * 1 antenna receiver matlab code please show me, i need it to find my error. thanks so much!
nguyenquangvinh93@gmail.com

Ramadan Grera

Kindly . Send me Alamouti 2x1 noncoherent matlab code DBPSK

Sonali

Sonali (view profile)

sir, kindly send the code for STBC-SM (space time block coded spatial modulation).

Saiful Ahmed

do you have any codes for 2 transmit and 2 received antennas

Hasima Mat

i have used 64-QAM rather than PSK type, do any one have?? please email to siti.nor.hasima@gmail.com #stbc #sfbc #stfbc .. thanks

Jimmy Ahuja

Sir.. instead of using BPSK i have used QAM and have removed noise i.e. ideal channel but the BER is comming 0.5..

Is the code designed only for BPSK modulation??
Plz Help..

Jimmy Ahuja

Sir.. instead of using BPSK i have used QAM and have removed noise i.e. ideal channel but the BER is comming 0.5..

Is the code designed only for BPSK modulation??
Plz Help..

Shanar

Shanar (view profile)

Hi Mate
This is really good work just I have simple question in my mind, can i emplement your code to work on IEEE802.16 transmitter receiver?
Thanks in advance

@Yi Xiao: The channel power is indeed the scaling factor, no?

PRAVEENA

Yi Xiao

Thank u, it helps a lot. By the way, could u please recommend me some paper or articles that talk about the scaling factor problem for Alamouti's code in higher order modulation?

I am studing on Alamouti's paper and I can get the same simulation result when using BPSK but not for QPSK, ur code inspires me alot and I want to learn more about scaling factor u mentioned.

Thanks again.

Krishna Sankar M

@Yi Xiao: Well, for BPSK constellation, you are right - one need not divide by the channel power. However, for higher order modulations one needs to take care of the scaling factor such that the constellation boundaries can be defined correctly. Hence provided the equation for the general case. Hope this helps.

Yi Xiao

Very good! Clear codes and explanation.

Only one question, why we need these lines:
yHat = sum(hEq.*yMod,1)./hEqPower;
yHat(2:2:end) = conj(yHat(2:2:end));

I mean, if the decision rule is: ipHat = real(yHat)>0;
Then
yHat = sum(hEq.*yMod,1)
will be enough for everything.
Why do we need to divide it by the power of the channel and do the conjugate for
h2*y1 -h1y2* ?
I am a little bit confused here.

Updates

1.2

Changed to BSD license

1.1

Updated to BSD license

MATLAB Release
MATLAB 7 (R14)

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video