discuss-gnuradio
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Discuss-gnuradio] Phase sync with different frequencies


From: Bakshi, Arjun
Subject: [Discuss-gnuradio] Phase sync with different frequencies
Date: Sat, 25 Nov 2017 21:28:50 +0000

Hi all,


I'd like to use the phase resync freature on the SBX to get reliable phase alignment in the following setup:


link_freq1 = USRP-A TX @ Freq1 ---> USRP-B RX @ Freq1
link_freq2 = USRP-B TX @ Freq2 ---> USRP-A RX @ Freq2

Where link_freq1 should always have phase X, and link_freq2 should always have phase Y. I measure the phase by first calculating the channel over a wire for that link. I then look at the phase of the channel.

The USRPs are connected to an external PPS source, and have a MIMO cable between them.

I've been able to use timed commands to get the same channel/phase every time (after multiple restarts) in a single link setup like:


USRP-A TX @ Freq1 ---> USRP-B RX @ Freq1


But my code for phase sync in the 2-link setup doesn't seem to work(copied below). I understand that the phase of each link's channel may not be the same as the frequencies are different. However is it possible to set it up so that the phase/channel over wire in link_freq1 is always X and that in link_freq2 is always Y? Or is that impossible because of some hardware constraints?


Thank you,


AB


code snippet:

## 2-channel usrp source and sink have been initialized, everything except

## center feqs have been set

## uhd_usrp_source_0 is a  multi usrp source block

## uhd_usrp_sink_0 is a multi usrp sink block
## both blocks have device args set to : "addr0=192.168.10.3, addr1=192.168.10.2"


## the following code is added in the init() function:

time.sleep(1)

future_cmd_time = self.uhd_usrp_source_0.get_time_last_pps() + uhd.time_spec_t(1.0)
##My guess is that both physical USRPs should see this time since MIMO+same external PPS

self.uhd_usrp_source_0.set_command_time(future_cmd_time)
self.uhd_usrp_sink_0.set_command_time(future_cmd_time)

self.uhd_usrp_source_0.set_center_freq(uhd.tune_request(cf), 0)
self.uhd_usrp_source_0.set_center_freq(uhd.tune_request(cf2), 1)

self.uhd_usrp_sink_0.set_center_freq(uhd.tune_request(cf2), 0)
self.uhd_usrp_sink_0.set_center_freq(uhd.tune_request(cf), 1)

self.uhd_usrp_source_0.clear_command_time()
self.uhd_usrp_sink_0.clear_command_time()

This is in the init() function. I don't re-tune the frequencies again after this.



Attachment: setup.png
Description: setup.png


reply via email to

[Prev in Thread] Current Thread [Next in Thread]