Software Defined Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Bursty Communications Link - TX/RX Text Messaging with TDM Support

This demo is not complete, but we would like to share it with the community to encourage collaborative development.

The highest level VI is called Main.VI.  It uses Rendezvous to ensure all of the RX and TX tasks have been created before they all begin.

Within the main VI, the same subVI is called repeatedly, once for each USRP.  This allows us to develop once and deploy to each USRP independenlty.

It is architected with 4 parallel while loops:

1. Continuous RX (you may not need this)

2. Decode RX data (you may not need thils)... only runs when the Continuous RX loop triggers and pushes data into the RX queue

3. TX User Control ... only runs when a user event occurs and pushes data into the TX queue

4. TX Data... only runs when data has been pushed to the TX queue (tx start time also specified)

To edit the processing VI in LabVIEW you will need to press (Ctrl + M) or select Operate >> Change to Edit Mode.

- this allows you to modify the the original source VI and not one of the replicas in memory.

Comments
Wired_
Member
Member
on

Does this method solve the issue of receiving packet from self transmission? As in using TX1/RX1 TDD bursty link and deny any reception when RX2 is on while TX1 is transmitting.

I am not getting comfortable with using end of the data tag as I have to continouous switch , say for 2 -4 times in a second.

If I am not wrong this example is a simpler modified version of this solution : http://forums.ni.com/t5/USRP-Software-Radio/How-to-transmit-and-receive-using-a-single-attena-with-U...

ErikL
NI Employee (retired)
on

It is the same as in that forum post.  You will still recieve self transmission.  The goal is RX continuoulsy and TX with occasional bursts.  2-4 times per second should not be an issue.  Below 25 ms would likely be more challenging.

Wired_
Member
Member
on

How should I remove the self transmission?

I am sending a pilot sequence and measuring channel between two nodes alternatively (twice in a sec). But the self signal domiantes the received signal and I am stuck with not able to measure the channel with these received samples.

There should be a way to wipe out those self data while Rx and Tx loops are running continuously.

Which direction should one choose?

ErikL
NI Employee (retired)
on

This behavior is common to any low cost transmitter.  One method is to use

a USRP RIO and utilize two different daughterboards.  If self interference

is still too high then I recommend using two USRPs.

As a datapoint, the internal switch between TX and RX on a single channel

of a USRP is about 30dB of attenuation.

Wired_
Member
Member
on

I am already using two USRP RIO; USRP 2952

1. I am using two USRPs one as node1 and other as node2 and measuring channel gain in between them. To assure than both device measure channel gain within a coherence time there should not be those self-interferring samples in received samples.

My point is to prove that channel gain measured independtly at two nodes are reciprocal.

I think there should be way to just collect data when receiving and throw away other samples recived during self transmission.

Else there is no point in saying that USRP RIO are capable of TDD communication/ packet communication.

I think now I am able to clear the idea about the design I am tryinng to implement.

2. I did undersatnd the point of using two daughterboards as I am already using two different USRPs. Say A and B.

The goal is to measure H_AB  and H_BA for multiple slots which is only possible when self transmitted signal is not in received samples at A if channel A-B in being calculated at A. It should only capture faded samples from B.

ErikL
NI Employee (retired)
on

This has been solved by Lund University Massive MIMO application using the

same hardware you are using.  I can put you in touch with them.

Erik

Liang.Underwood.
Member
Member
on

How should i use GPS timebase for bursty communication with TDMA? i need to using "end of the data" ,but when i make it true, the error "Packet had timestamp that was late (or too early)" occured.

This vi you upload use "time to add" to set usrp time to make using "end of the data " will be ok, but if i use GPS instead (learn from https://decibel.ni.com/content/docs/DOC-23677  ), and through while loop to divide time slot, the result is bursty signal isn't transmited by time slot i choose, i tried some other way , all failed ,so can you help me with this problem? Thanks very much!

I don't konw how to upload my vi , only upload pictures.

vi_1.png

vi_2.png

Contributors