USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

USRP x410 Synchronization Problem in GNU Radio

Solved!
Go to solution

Hi everyone,

 

I'm facing a problem for the transmission with x410 board in GNU Radio. My goal is to transmit two identical signals using two different channels.

 

To check whether the two signals are synchronized, I set both channels to the same center frequency (3.6 GHz) and the same sampling rate (30.72 MHz).

However, when observing the output in the data analyzer, I found that the two signals are not synchronized, and the delay between them varies each time.

 

In the attached files, the terminal result shows the transmission results, and schema1 illustrates how the transmission flowgraph is constructed.

 

Note: I am using the same O/B GPSDO as the internal clock source.

 

Thank you for your help!

 

Best regards,

Yang

 

 

Download All
0 Kudos
Message 1 of 8
(255 Views)

Hi, 
How large is the offset between the sent samples?

The USRP X410 can't support phase-coherence.

0 Kudos
Message 2 of 8
(199 Views)

Hi, mikiofuku

 

Thank you for your reply.

The frequency offset is set to 0 for both channels, and the only difference between them is the signal amplitude (0.5 for the first channel and 0.4 for the second one). But I do not think this is not a problem. What I would like to know is how to transmit both signals simultaneously based on this design. Are there any other problems?

 

 

 

 

0 Kudos
Message 3 of 8
(183 Views)

Hi

How much sample delay is there between the two transmitted channels?

0 Kudos
Message 4 of 8
(167 Views)

Hi,

 

The delay between the two channels is variable. We measured the delay multiple times, sometimes it takes only a few microseconds (us), while other times it takes several milliseconds (ms). Meanwhile, there are no underflow (U) which won't affect transmission.

 

So, I think we must modify certain settings in GNU Radio to ensure that signals can be transmitted simultaneously.

 

By the way, we verified the signals in the digital part before the two USRP Sink bloc, and all signals are well synchronized.

0 Kudos
Message 5 of 8
(150 Views)

Hi
When programming with UHD, we usually reset the internal channel time of the USRP to zero before starting the streaming process. It’s possible that this step may be missing. However, since I’m not very familiar with GNU Radio, please check with the GNU Radio ML community for confirmation.

usrp->set_time_next_pps(uhd::time_spec_t(0, 0));
// or
usrp->set_time_now(uhd::time_spec_t(0, 0));

0 Kudos
Message 6 of 8
(145 Views)

You need to synchronize the streams by sending a timestamp with the first chunk of samples sent to each channel. This guarantees that both channels will start consuming samples at the exact same moment in time.

 

When using the UHD library, this means passing a uhd::tx_metadata_t (https://files.ettus.com/manual/structuhd_1_1tx__metadata__t.html) object to the call to uhd::tx_streamer::send() (https://files.ettus.com/manual/classuhd_1_1tx__streamer.html) function that has the uhd::tx_metadata_t::has_time_spec parameter set to true and uhd::tx_metadata_t::time_spec set to the same time for each channel.

 

I'm not familiar with how to due this in GNU Radio Companion, but glancing at the documentation (https://wiki.gnuradio.org/index.php/USRP_Sink) it looks like they support time tagged streams.

0 Kudos
Message 7 of 8
(58 Views)
Solution
Accepted by topic author MikeYang

Thanks for all your help—your replies have been very useful.


After testing, I can now transmit two signals at the same time with no delay by using the same start time and trigger source.


Here is the updated GNU Radio flowgraph.

 

 

 

 

 

0 Kudos
Message 8 of 8
(44 Views)