From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Immediately stop transmitting

I would like to quickly alternate between transmit and receive. My transmission seems to bleed over into the time when a receive is taking place. If you run SwitchTXRX.vi, it shows a looping sequence of transmitting a PN sequence and then receiving. This works fine on my N210 except that I can see part of the transmitted sequence when I am in the receive state unless I set transmit to false when it switches back to the transmit state.

 

I can see less of the transmitted signal when I increase the length of time to receive a signal, which makes me think the transmitted signal continues for a little while during the receive state and then ends.

 

Any ideas how I can get my transmitted signal to terminate before receive begins, while still making this transition quickly? The fixes I have found (like "end of data") make the transmit to receive switch take a very long time.

Download All
0 Kudos
Message 1 of 8
(5,084 Views)

I tried debugging and found that actually trasmitter returns error!

 

Which was ignored as there is a while loop outside. Can you try removing outermost while loop on "sequence" and see why transmitter is going in timeout.

 

I used similar design for two way communication and found that it overhears own signal most of the time.

 

Can try spectrum analyser too to insure if it's actually transmitting or has gt stuck in timeout.

0 Kudos
Message 2 of 8
(5,051 Views)

Am I right if I say Sequence based design starves USRP write block of data while it waits for next sequence to complete?

 

One more observation: When I select channel 0 with TX1 and RX1 for transmission and reception respectively, I can see TX1/RX1 port switching( green-red LED) but at the same time RX2 also toggles between on/off (green). RX2 goes green when TX1 is green( transmitting data). This should not happen as it's reason behind pushing data streamed on TX1.

 

Logically we should not receive any data from self transmission since we alternate between TX1 and RX1.

 

Any lead?

 

Thanks

0 Kudos
Message 3 of 8
(5,017 Views)

According to NI tech support, there is no way to force the transmit block to not finish its programmatic execution until the USRP has finished transmitting. They gave a possible work-around:

 

"As a possible solution, you could use timing and triggering to determine the amount of time that your generation is occurring.  Then, you could trigger your acquisition to occur at that time.  Another option you have is to start both acquisitions at the same time.  Then, when the transmission portion of the application is finished, you can throw away the data from the USRP acquisition that you don't want."
0 Kudos
Message 4 of 8
(4,934 Views)

But I did not get why RX2 goes on!

 

It has not to receive signal when TX1 is transmitting.

 

Then can I conclude that having RX2 is bane for TDMA realisation not a boon?

 

0 Kudos
Message 5 of 8
(4,932 Views)

Update:

RX2 does so by design and it's a boon 🙂

After discussions :

The RF switch that controls the receive chain has to be connected to something, there are only two choices for antenna ports RX1 or RX2.  http://zone.ni.com/reference/en-XX/help/373380B-01/usrphelp/2920_block_diagram/
2. If transmitting then the receive chain is automatically switches to RX2 [so you don't short out TX to RX internally]
3. Additionally, there's only ~30 dB of isolation in that RF switch, so one will see a transmit signal on the rx side if same center frequency.

 

So normally if one is transmitting, one can ignore the self data.

As of how I think follwoing thread shall help:-

 

http://forums.ni.com/t5/USRP-Software-Radio/How-to-isolate-the-signals-between-TX-RX-and-RX2-on-the-...

 

http://forums.ni.com/t5/USRP-Software-Radio/How-to-transmit-and-receive-using-a-single-attena-with-U...

0 Kudos
Message 6 of 8
(4,861 Views)

Thanks for reminding me about that bursty_demo.zip VI. I think that might have the answers I'm seeking. I can stop my transmissions with the "end of data" tag and ignore what I receive during that point, but I'm concerned about the synchronization with my receive buffer. Specifically, I don't know exactly which receive data to ignore because I'm not sure what data I received exactly when I transmitted. That's what I'm investigating now.

0 Kudos
Message 7 of 8
(4,829 Views)

I think the latest bursty demo https://decibel.ni.com/content/docs/DOC-29883  is most suitable. I am also trying to see if I can solve the problem.

I case you find solution please share.

 

Is there some storage/buffer in Rx chain? As even I delay the reception after transmission to 1 second I still receive the data I transmitted a sec back!

 

How about writing from RX chain in a dump queue while RX2 is on/TX1 is transmitting and then write to authentic/ required queue when RX1 is on. Because I think it's like there should be a sink at all instant to eat the received data since receiver chain is always on.

 

Do share if you have some progress.

 

Thanks.

0 Kudos
Message 8 of 8
(4,824 Views)