[USRP-users] How good can USRPs with internal GPSDOs being synchronized?

Cheng Chi ch0004hi at e.ntu.edu.sg
Thu Sep 5 03:10:57 EDT 2013


Hi Matt,

The time difference is the TDOA we estimated by cross-correlating the two
signals. For our setup, we expected that the TDOA would be less than 100ns,
but constantly got a TDOA between +0.2 and -0.2 us.

So the code to align LOs in the frontend would have no effect for DBSRX2.
Do you have any suggestions on how to deal with this phase difference? We
use single tone signal to measure the phase difference between the two
signals, it seems that the phase difference is not constant.

Best regards,
Cheng Chi




On Thu, Sep 5, 2013 at 12:47 PM, Matt Ettus <matt at ettus.com> wrote:

>
> Chi,
>
> Are you measuring time difference by measuring the phase difference
> between the two signals?  That is different than time alignment.  You can
> check for time alignment by comparing the outputs of the two GPSDOs on an
> oscilloscope.  They should be closer than 100ns RMS.
>
> The DBSRX2 will have an arbitrary phase difference between 2 boards
> because they have fractional-N synthesizers without phase alignment
> circuitry.  The SBX includes phase alignment capability which works with
> the code you have there for alignment.
>
> Matt
>
>
> On Wed, Sep 4, 2013 at 4:50 AM, Chi <chengchibt at gmail.com> wrote:
>
>> Hi all,
>>
>> I am trying to synchronise two USRP N210 with the goal of receiving
>> time-aligned samples.
>> I've modified the rx_samples_to_file.cpp code according to this page:
>> http://files.ettus.com/uhd_docs/manual/html/sync.html
>>
>> It seems that the signals at the USRPs have between +0.2 and -0.2 us time
>> difference.
>> This time difference seems to be random, as it changes every time I run a
>> new experiment.
>>
>> Does anyone know why the samples receive at these two USRPs are still not
>> aligned?
>> I thought the time difference should be less than 100ns. What's the right
>> way to minimize the
>> time difference??
>>
>> Best regards,
>> Cheng Chi
>>
>>
>> ------------------------------------------------------------------------------------------------
>> Here is the setup and the code snippet that I've add to the example
>> rx_samples_to_file.cpp.
>>
>> - USRP N210 with internal GPSDO module, daughtherboard is DBSRX2
>> - Signal generator outputs a common signal and connects to the two USRPs
>> through equal length cables
>>
>> Transmitter part: Common signal is FM signal with 1MHz bandwidth, carrier
>> frequency is 1.6GHz.
>> Receiver part: Sampling rate is 5Msps
>>
>>
>> 1. For Common Reference Signals
>> {{{
>> usrp->set_clock_source("gpsdo");
>> usrp->set_time_source("gpsdo");
>> }}}
>>
>> 2. For synchronising the Device Time
>> Because each N210 has an internal GPDSO module, the device times are
>> automatically synchronised
>>
>> 3. For Synchronising Channel Phase
>>
>> To align CORDIC:
>> {{{
>>     uhd::stream_cmd_t stream_cmd((num_requested_samples == 0)?
>>         uhd::stream_cmd_t::STREAM_MODE_START_CONTINUOUS:
>>         uhd::stream_cmd_t::STREAM_MODE_NUM_SAMPS_AND_DONE
>>     );
>>     stream_cmd.num_samps = num_requested_samples;
>>     stream_cmd.stream_now = false;
>>     stream_cmd.time_spec = uhd::time_spec_t(time_to_receive);
>>     usrp->issue_stream_cmd(stream_cmd);
>> }}}
>>
>> To align LOs in the frontend:
>> {{{
>>     uhd::time_spec_t cmd_time = usrp->get_time_now() +
>> uhd::time_spec_t(0.1);
>>     usrp->set_command_time(cmd_time);
>>     usrp->set_rx_freq(1.6e9);
>>     usrp->clear_command_time();
>>
>> }}}
>> For DBSRX2, does this method for aligning LO work?
>>
>>
>> _______________________________________________
>> USRP-users mailing list
>> USRP-users at lists.ettus.com
>> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/attachments/20130905/dab06386/attachment-0002.html>


More information about the USRP-users mailing list