From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Software Defined Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

2X2 MIMO QAM with Alamouti Coding

Visit http://zone.ni.com/devzone/cda/tut/p/id/13878 for a description of this example and background information.

Software Requirements

  • NI LabVIEW 2011 (Full, Pro, Student, or Eval edition)
  • NI LabVIEW Modulation Toolkit Ver 4.3.1
  • NI-USRP Driver

or

  • LabVIEW Communications System Design Software/Suite 1.0

Hardware Requirements

Anthony F.
Staff Software Engineer
National Instruments
Comments
Arash.Sh
Member
Member
on

Hi,

Is there a simple way to change this for USRP 295X ?

thanks

Anthony_F
NI Employee (retired)
on

Hi Arash,

Try to configure RIO0 for the "IP Address" for both TX and RX then configure all Ref Frequency Source and Timebase Clock Source to Internal.

Are you using just a single 295x device or two?

Anthony F.
Staff Software Engineer
National Instruments
Wranky
NI Employee (retired)
on

Hi Anthony,

For Single USRP-294x and 295x, it's easy by setting all the ref. freq. source and timebacse source to be internal and activate the corresponding channel.

What if we would like to use two USRP-RIO?
Here's the scenario that we consider to be working:

1. 2 Tx on the same USRP-RIO while 2 Rx on the other one

Sharing the same clock from the RefIn and PpsIn to 2 devices and set the ref. freq. and timebase source of 4 channels to be RefIn and PpsIn respectively

2. 2 USRP-RIOs with each one having 1Tx and 1 Rx

Device A sets the ref. freq. and timebase source to be internal while Device B sets ref. freq. and timebase source to be RefIn and PpsIn, and use USRP export signal to wire the ref. freq. and timebase source to RefOut and PpsOut, then physically connect the two ports to the RefIn and PpsIn of Device B

3. 2 USRP-295x with GPS-disciplined oscillator

Setting all four ref. freq. and timebase source to be GPS and connect the GPS antenna for two devices.

These are the possible secnarios that I can think of, otherwise without sharing the same clock on Tx & Rx (assume 2 Tx is already synchronized ), we would need to define the sync bits and the packet format to sync the transmitter and receiver data

Am I correct? Or please kindly indicates my misunderstanding if there's any. Thanks!

Anthony_F
NI Employee (retired)
on

Hi Wranky,

In those cases you will most likely need to adjust the code to properly set up multiple device synchronization. 

#1. Yes, share the Ref Clock and PPS/Trig. If you check the NI-USRP examples, you should find

"niUSRP EX Rx Multiple Synchronized Inputs (PPS Trig)" and "niUSRP EX Tx Multiple Synchronized Outputs (PPS Trig)" will show you how to configure devices for this scenario.

#2. This scenario doesn't seem practical. If you have each USRP RIO with 1 TX and 1 RX then this implies that you need a single computer to control both USRP RIO devices -- you wouldn't need a wireless channel for this scenario. It doesn't seem likely that like you would encounter such a setup outside a laboratory.

#3. This scenario should also work. Check the examples called "niUSRP EX Tx with GPS" and "niUSRP EX Rx with GPS" for configuring a GPS-timed start trigger. Ensure you have the USRP RIO 295x model with GPSDO option.

Anthony F.
Staff Software Engineer
National Instruments
Arash.Sh
Member
Member
on

Dear Anthony,

I try it the way you said, but I don't get any reasonable results. I think I can't set the right channel for TX or RX side. Becuase when I try to set it as TX1/RF0 or RX1/RF0 it gives an error and ask me to set it as RX2 or TX/RX or CAL. So if I only use one USRP 2953R then how I should set the active antenna part of each side of TX and RX.

BR

Wranky
NI Employee (retired)
on

Hi Arash,

I've modified the example for single USRP-RIO doing 2X2 MIMO, but the code is base on original LabVIEW. However I think the two should be exactly the same and you may download the code for your reference:

https://www.dropbox.com/s/1jemtt97dtqqbr0/2x2%20QAMAlamouti%20with%20BER%20%28modified%20for%20singl...

Hi Anthony,

Acutally I did use the USRP export signal + USRP Commit to export the signal from 1 device(which is set to be internal in both ref. freq. and timebase) with the other to be set as PpsIn and RefIn respectively. But no any Rx Waveform returns. Is there any suggestion or other modification besides this that we should do?

One other note is that, as far as I'm concerned, this demo code includes the training sequence for Rx sync / frame detection / CFO correction, similar to another packet transmission example in the community:

https://decibel.ni.com/content/docs/DOC-18801#comment-29719

Then why should we need additional ref. Clock to sync Tx & Rx ?
Previously I've used this example for 4-USRP+below ni.com whitepaper and did not offer the Tx and Rx side the same clock for LO sync but it did work
http://www.ni.com/white-paper/13878/en/

Can you kindly explain about my concern? Thanks a lot!

msohaibiqbal
Member
Member
on

"

One other note is that, as far as I'm concerned, this demo code includes the training sequence for Rx sync / frame detection / CFO correction, similar to another packet transmission example in the community:

https://decibel.ni.com/content/docs/DOC-18801#comment-29719

Then why should we need additional ref. Clock to sync Tx & Rx ?
Previously I've used this example for 4-USRP+below ni.com whitepaper and did not offer the Tx and Rx side the same clock for LO sync but it did work
http://www.ni.com/white-paper/13878/en/

Can you kindly explain about my concern? Thanks a lot!

"

I also have the same concern. Can you kindly explain this part?

Arash.Sh
Member
Member
on

hi Wranky,

I am just able to use Labview Communications, so I want to know is it really compicate to convert this for new USRP 259X and if not where I should start to do it?

Thanks

Wranky
NI Employee (retired)
on

You should start with the attached code for LV Comms. in this thread and I think it's easy to modify it into single USRP-RIO version since the dirver is backward compatible for USRP-RIO

Arash.Sh
Member
Member
on

Hi Wranky,

Would you please give me a little detail about it? I know I should change three block which related to USRPs but I don't have a good idea what is wrong with them or what I should remove and what I should add to it. Only thing that I am following is about divice name which is RIO but in previse version it is base on IP. I am looking for tracks to find a way for it but I don't have much progress!

Thanks

Arash.Sh
Member
Member
on

Hi Wranky,

I did some sort of changes on LabVIEW Comm. to make it happened. But I am not sure about my changes. I started with PC streaming and then I add MIMO Alamouti to that. main problem that I have is PC streaming transmit SISO. But I found out it can send two stream I changed some parts of it as you can see in picyures(next comments). So then I check the output signals of Tx to see do I have them at the same time or not but it seems that I have one of them on in each clock! Can I know your point of view about it?

On the otherside I try to use the LabVIEW too, I installed the software and run the modified version for RIO. I can see some signals on my laptop but main problem is about not sending data continusly and it just send some packet and then slowing down and then sending other one which take long time(I want realtime system). Is this problem related to my laptop (being old and slow) or it should work like this. Moreover I can't see anything reasonable on BER side BER is always 1. Would you please help me about it too?

I am just using one USRP RIO.

BR,

Arash

Arash.Sh
Member
Member
on

Capture.JPG

Arash.Sh
Member
Member
on

Capture2.JPG

Arash.Sh
Member
Member
on

Capture6.JPG

Arash.Sh
Member
Member
on

Capture5.JPG

Jack132
Member
Member
on

Hi Anthony,

Could you tell me the calculation principle of BER detailedly?In the module of channel estimate,  the output number was limited in a half of the symbol packets. So the BER must be greater than 0.5. And how to confirm the output data that belong to the beginningor the middle or the end of the half input data ?

Thanks

sepandsaeid
Member
Member
on

Hi

when i wanna open your file , always ask me to open other files , but inisde the folder there isn't any related file.

i am looking forward to hearing from you.

best regards

saeid

StudentQUT
Member
Member
on

Hi,

W are using NI USRP 2953R. We implemented the 2x2 MIMO Alamouti Coding mention in this thread on a single device and it works fine. Will it be feasible to change this code to SISO without Alamouti keeping the input/output parameters same? If yes, which blocks we should consider to make it SISO? The reason behind implementing SISO is that we can compare BER of MIMO Alamouti and SISO.

Looking forward to your comments.

Thanking you in anticipation.

Viraj

bhoyaramol1
Member
Member
on

Hi,

    For implementation of 2x2 MIMO system using USRP-2922 is it necessary to give external clock using OCXO(oven controlled oscillator)based Thunderbolt® GPS Disciplined clock from Trimble which supplies a 10-MHz Ref Clock output and digital PPS output. Or is it possible by using Function Generator as external clock pulse.

please reply.

ErikL
NI Employee (retired)
on

A function generator will work as well.

Frankrossy
Member
Member
on

hola disculpen estoy Tratando de implementar un sistema MIMO 4x4 basandome en el ejemplo de 2x2 y quisiera que alguien me pueda ayudar

Frankrossy
Member
Member
on

DSC_0549 (1).JPG

bhoyaramol1
Member
Member
on

Hi ErikL,

   I am facing a problem while connecting usrp to a host PC using NETGEAR 8-port fast ethernet switch FS208.

After connecting usrp devices to a switch the NI Configuration utility won't detect the devices, please help me to sort out this problem.

bhoyaramol1
Member
Member
on

Hi Erikl

     which ethernet switch will be compatible for connecting USRP-2922 to host PC,please inform.

Thank you,

Regards,

Amol Bhoyar

ErikL
NI Employee (retired)
on

You need an "unmanaged" switch with 1Gbe support. This is the 1000 when the markings are 10/100/1000 Mb/s. The ethernet link on the USRP will not downgrade for slower connections like your laptop.

Regards,

Erik

Sent from mobile device.

malansi2
Member
Member
on

Hi Arash,

for Implementing 2x2 MIMO Lv Comm code on USRP RIO 2953, I want to get a help about the hardware configuration. Are you sharing the AUX I/O between the USRPs using a DB-15 cable.

Alansi

ErikL
NI Employee (retired)
on

I recommend using an octoclock-g.

https://www.ettus.com/product/details/OctoClock-G

From: malansi2 <web.community@ni.com<mailto:web.community@ni.com>>

Reply-To: "ni-462154429-9iy-2x-116l@community-mail.ni.com<mailto:ni-462154429-9iy-2x-116l@community-mail.ni.com>" <ni-462154429-9iy-2x-116l@community-mail.ni.com<mailto:ni-462154429-9iy-2x-116l@community-mail.ni.com>>

Date: Monday, March 21, 2016 at 1:08 PM

To: Erik Luther <erik.luther@ni.com<mailto:erik.luther@ni.com>>

Subject: Re: - 2X2 MIMO QAM with Alamouti Coding

NI Community<https://decibel.ni.com/content/index.jspa>

2X2 MIMO QAM with Alamouti Coding

new comment by malansi2<https://decibel.ni.com/content/people/malansi2> View all comments on this document<https://decibel.ni.com/content/docs/DOC-42025#comment-48189

malansi2
Member
Member
on

Thank you for your reply Erikl,

I'm using octclock-G.

Both Ref in and pps in from the octoclock-G to both USRP RIO's, but still the pps in is blinking and no syncronization.

dalsaffar81
Member
Member
on

Dear all

Could you share your  2x2 MIMO Alamouti coding mention above in a single device because I have USRP 2950R and I want to use it at 915MHz. Thank you very much

Regards,

Dina

malansi2
Member
Member
on

Hi

I'm applying Alamouti 2x2 in single USRP RIO 2953R using the template "PC USRP RIO 40 MHz BW Single-Device Streaming" In labview communication.

In order to feed the data simultaneously from 2 antennas in the same USRP RIO, I face problems to modify the write Tx data subvi. There’s a case structure based on input “Device subfunction channel” from “sparse scope”subvi, which means either Tx stream 1 from RF 1 or Tx stream 0 from RF0. This subvi also has a scop input to specify which channel is active. However, we need to feed the data from both RF0 and RF1 in the same time.

I need Your help.

Write Tx data U32.png

Wired_
Member
Member
on

I have USRP 2952. It has 2 tx/rx chains in built. I think I can easily implement the same code for designing 2*2 MIMO link using just USRP.

Let me know if I am right. Do I require any hardware/configuration change?

Wired_
Member
Member
on

Hi!

What changes did you do make it suitable for USRP 2952 series since it has two RF chain already hence no MIMO cable connection is required?

Wired_
Member
Member
on

I am designing 2*2 MIMO using USRP 2952. I need to do beamforming at Transmitter. Do we have any already implemented block in either of the projects/examples which does channel estimate and precoding?

Wired_
Member
Member
on

I am designing 4*2 MIMO using 3 USRPs (TWO for transmitter and 1 for receiver). I dont have access to external clock and pps trigering. I read about using PPS and REF IN/OUT ports at back pannel of USRP. Can I make connections using SMA cable to connect PPS trigger of one USRP(As TX) to PPS in of 1(another 2952 as TX for 4*4) and connect it's PPS out to that of Recever USRP PPS in? Similalry connect clock reference out with IN of other.  Please share architecture of synchroizing multiple USRPs for MIMO design using SMA cable.

Wired_
Member
Member
on

Dear Malansi,

Did you manage to make it work?

Payal12
Member
Member
on

Hi,

I am working on 2x2 almouti MIMO.For providing external clock signal of Ref in 10MHz and PPS in of 1Hz i am using function generator but not able to achieve the proper constellation plot.Please help me.

Patricioa1
Member
Member
on

Hi ErikL,

You can help me change from MIMO 2x2 to 4x4.

Thank

mcan06
Member
Member
on

Is it possible to make this experiment by using 2 unit of USRP 2922? I think that is not possible when I examined "SubInitHW.gvi" and also can I use 5 MHz instead of 10 MHz pps in and ref in ?

summer123
Member
Member
on

Hello,
The 2*2 MIMO I set up uses the USRP-2920. When I run the above program, I follow the set clock source written on the white paper. The address is only changed elsewhere. However, it was reported that "niUSRP Fetch Rx Data (2D CDB).viERRA stream command was issued in the past.". I did not find a solution after reading all the comments. Is there any solution? Where did the problem occur? Is it necessary to match an external clock source? Also, if there is no solution, can you share the code of the earliest version of this article? Because I saw the previous comment that the original code was not wrong. Thank you! I hope someone can help me.

thanks

shirokuma
Member
Member
on

私は、USRP-RIO 2943を2台しようして2×2MIMO STBC-MRCの測定をしたいのですが、どのように変更する必要がありますか?

Sieven
Member
Member
on

Hello there:
I want to use two USRP 2943 to transmit the signal, the focus is on synchronizing the two transmitted signals. Regardless of the reception, can the MIMO 2X2 example be applied?

Contributors