# Alamouti coding

**URL:** <https://www.ruby-forum.com/t/alamouti-coding/213969>\
**Category:** GNU Radio\
**Created:** [November 17, 2011, 5:47pm UTC](https://www.ruby-forum.com/t/alamouti-coding/213969 "2011-11-17T17:47:25Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [November 17, 2011, 5:47pm UTC](https://www.ruby-forum.com/t/alamouti-coding/213969/1 "2011-11-17T17:47:25Z")

</div>

Dear all,

I am loosing my mind trying to implement alamouti code between 2 tx and  
1 rx.  
I downloaded the trodeau repository but I cannot make the alamouti  
works.

Any help will be appreciated, really, ANY!

Thank you

Vanessa

---

<div class="post-metadata">

**Author:** ![Vanessa\_Gardellin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/ebca7d/32.png) [@Vanessa\_Gardellin](https://www.ruby-forum.com/u/Vanessa_Gardellin)\
**Post date:** [November 18, 2011, 1:26am UTC](https://www.ruby-forum.com/t/alamouti-coding/213969/2 "2011-11-18T01:26:45Z")

</div>

> Thank you
> 
> Vanessa

Would you tell us what the problem is before we can help?  
KZ

---

<div class="post-metadata">

**Author:** ![Vanessa\_Gardellin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/ebca7d/32.png) [@Vanessa\_Gardellin](https://www.ruby-forum.com/u/Vanessa_Gardellin)\
**Post date:** [November 18, 2011, 9:59am UTC](https://www.ruby-forum.com/t/alamouti-coding/213969/3 "2011-11-18T09:59:08Z")

</div>

Sure,  
I am using the code on the trodeau repository and the ofdm 1tx-1rx  
works, however when I try to use the 2tx-1tx with the alamouti it  
doesn’t.  
I am not using USRPs now, but just 2 channel models without noise and  
offset.  
The tx codes 2 consecutive symbols as the alamouti says and add 1  
preamble for each antenna:  
first tx: |0…0preamble10…0| |0…0|  
second tx: |0…0| |0…0preamble20…0|  
length preamble1 = length preamble2 = 200 occupied tones  
lenght |0…0preamble10…0| = 512 = fft legth  
length |0…0| = 512 = fft legth  
preamble1 is created as in the ofdm 1tx-1rx i.e. it contains 1s, -1s and  
0s  
preamble2 contains 1s and -1s

The rx performs synchronization and alamouti decoding taking 2  
consecutive symbols each time.

Sometimes the rx is able to decode the header and the pkt length, and  
the first 18 character of the payload. The length of the pkt is 400  
bytes.

The first error that I can notice is that when it is decoding the  
payload sometimes it finds the SYNC signal which means that it finds a  
preamble at a certain point of the payload before the length of 400  
bytes.

So I think that the problem is in the synchronisation process but it  
can be also in the equalizer computation.  
Moreover the course frequency is different from 0, but how can this be  
possible if I do not introduce offset in the channel?

Can someone helps me in understanding at which stage the error is?

Thank you so much

Vanessa

On Fri, Nov 18, 2011 at 1:29 AM, Kyle Z. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > Thank you
> > 
> > Vanessa
> 
> Would you tell us what the problem is before we can help?  
> KZ

–  
Vanessa GARDELLIN, Ph.D.  
Researcher  
Institute for Informatics and Telematics (IIT),  
Italian National Research Council (CNR)  
Via G. Moruzzi 1  
56124 Pisa - ITALY  
Phone: +390503153267  
Room: B65/c  
E-mail: [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
WWW: [http://www.iit.cnr.it/staff/vanessa.gardellin/](http://www.iit.cnr.it/staff/vanessa.gardellin/)  
Skype: gardellin.vanessa

---

<div class="post-metadata">

**Author:** ![Vanessa\_Gardellin](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/v/ebca7d/32.png) [@Vanessa\_Gardellin](https://www.ruby-forum.com/u/Vanessa_Gardellin)\
**Post date:** [November 18, 2011, 4:03pm UTC](https://www.ruby-forum.com/t/alamouti-coding/213969/4 "2011-11-18T16:03:53Z")

</div>

On Fri, Nov 18, 2011 at 3:57 AM, Vanessa Gardellin \<  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)\> wrote:

> length preamble1 = length preamble2 = 200 occupied tones  
> bytes.
> 
> Can someone helps me in understanding at which stage the error is?
> 
> Thank you so much
> 
> Vanessa

Vanessa,  
I applaud your attempts at getting this working, but I hope you  
understand  
that this was an experimental development branch that is unfinished and  
polished, which is why it never made it’s way into the mainline master.  
Matt and I got parts of it working over a couple of days of hacking, but  
it  
was under a single experimental setup (the 2 USRPs were on opposite  
sides  
of a table), so we didn’t develop it at that point for robustness.

I just want to make sure that you know that you’ll be doing a lot of  
hacking and experimenting here to get things to work. Mostly, I think we  
provided a good framework for how to do a MIMO setup and structure of  
the  
flow graph and got a good start on the algorithms, but that’s where a  
lot  
of work is still required. The code is also probably a mess!

You say that you are having problems receiving packets. I’m assuming  
that  
you have tested out your setup with the standard OFDM benchmark code  
that  
is in GNU Radio right now. If you can get a solid setup using this code,  
that’s where you want to start when working on the MIMO algorithms. Just  
to  
make sure that your gain settings and transmit powers are set correctly  
for  
your daughterboards and channel.

Next, it’s best to take these things one step at a time. The  
gr\_plot\_ofdm.py and plot\_ofdm.m files are tools we developed to look at  
the  
signals from different domains and different perspectives. They might  
help  
you understand the system and signal properties better to find where in  
the  
receive chain things are falling apart.

From there, the best way to get help is to use these tools to identify  
where the problems are to be able to ask the list specific, pointed  
questions about the algorithms and setup.

Hope that helps!  
Tom
