In Communication Toolbox Support Package for USRP Radio, how to synchronize Tx and Rx time stamps to achieve true full-duplex?

33 views (last 30 days)
As I use MATLAB to process data associated with my USRP radio project, it would be easier for me to use MATLAB/Simulink to directly control USRP. I want to achieve real full-duplex operation, meaning that the Tx and Rx of the same USRP channel can operate simultaneously. To achieve this, I will need to control the time stamps of both the Tx and Rx.
For example, as a simple project, I have a USRP B200mini, which has one channel with a Tx and a Rx port. I connect a cable directly from the Tx port and the Rx port, and both Tx and Rx are configured at the same carrier frequency. This is a wired channel so there is no channel fading, so I am supposed to get very clear transmitted baseband samples at the Rx. However, without precise Tx-Rx time-stamp synchronization, this cannot be achieved. This is because no matter you write a MATLAB script (using SDRu Tx and SDRu Rx System Objects) or construct a Simulink model (using SDRu Tx and SDRu Rx blocks), the Tx and Rx won't work simultaneously. MATLAB script execute in sequence, and Simulink blocks also have a predefined execution order (it won't help changing the Simulink block execution priority or using a triggered subsystem).
I can do this conveniently in LabVIEW, because it has the "StartTrigger" VI and "SetTime" VI that allows me to specify the time both Tx and Rx start working, to millisecond precision. However, I haven't yet seen this utility in MATLAB/Simulink.
I have checked the link here: https://www.mathworks.com/help/supportpkg/usrpradio/ug/family-radio-service-frs-full-duplex-transceiver-with-usrp-r-hardware.html. Unfortunately it doesn't work for the above-described B200mini project.
Can anyone help me with this, or offer some workaround? Greatly appreciated.
  5 Comments
Guoyi Xu
Guoyi Xu on 9 Aug 2023
@yusho nakawaki Hi Yusho Nakawaki, sorry for the delayed response as it didn't notify me when you commented. I was able to resolve it and it doesn't require time stamp synchronization. I think MATLAB/Simulink handles it by itself and we don't need to worry about it. Are you still having problems with it?

Sign in to comment.

Answers (1)

Karunya Choppara
Karunya Choppara on 20 Sep 2023
Edited: Karunya Choppara on 20 Sep 2023
Trigger time based transmit and receive is supported with MATLAB in R2023b. To get the latest version of MATLAB check the page https://in.mathworks.com/downloads/
Use the properties 'EnableTimeTrigger' and 'TriggerTime' in comm.SDRuReceiver and comm.SDRuTransmitter system objects in MATLAB to use trigger based receive and transmit respectively.
This functionality is also available with SImulink blocks.
Thanks

Categories

Find more on Communications Toolbox in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!