Οk, I know the way of the atan2 method you are proposing. I will try it tomorrow when I will have access to the equipment again.
When you said injecting a phase identical test tone earlier you meant, driving the signal from the generator to the RX2 port of each one of the SBX daughterboards (using a splitter), with equal length cables and then checking the phase offset between the 2 channels?
Thanks.
Sent: Wednesday, June 9, 2021 9:05 PM
To: Skyvalakis Konstantinos
Cc: Discuss-gnuradio@gnu.org
Subject: Re: Phase Synchronize 2 USRP N200 w/ SBX cards
On Jun 9, 2021, at 1:50 PM, Skyvalakis Konstantinos <kskyvalakis@isc.tuc.gr> wrote:
You assumed correctly. I am doing this in a single multi_usrp object, so it is ok. I will also remove that sleep command.
I don't know how I can measure the phase difference between the two RX channels. In my DoA experiment I am just transmitting a tone @ 868MHz from an RF generator and I'm receiving it from the 2 RX channels.
Also could you elaborate more on the last thing you mentioned, the one about the phase identical test tone....
On Jun 9, 2021 19:51, "Marcus D. Leech" <patchvonbraun@gmail.com> wrote:
On 06/09/2021 10:11 AM, Skyvalakis Konstantinos wrote:
Assuming that you're streaming two channels in a single multi_usrp object, then this looks OK, except there's no reason for thatI have 2 USRP N200 devices, each one equipped with an SBX daughterboard.
I am providing 10MHz ref clock and 1 PPS input on both devices with equal length cables, from an external signal generator.
My application is DoA. Is it possible to do it, with 2 USRP N200 and the SBX daughterboards?
1) Is the following timed commands code snippet correct for frequency and phase synchronization of both SBX cards?
self.source = uhd.usrp_source(
",".join(("addr0=192.168.10.2, addr1=192.168.10.3", "")),
uhd.stream_args(
cpu_format="fc32",
channels=range(2),
),
)
self.source.set_clock_source('external', 0)
self.source.set_time_source('external', 0)
self.source.set_clock_source('external', 1)
self.source.set_time_source('external', 1)
self.source.set_samp_rate(2e6)
self.source.set_time_unknown_pps(uhd.time_spec())
self.source.set_gain(50, 0)
self.source.set_antenna('RX2', 0)
self.source.set_gain(10, 1)
self.source.set_antenna('RX2', 1)
time.sleep(1)
self.source.clear_command_time()
self.source.set_command_time(self.source.get_time_now() + uhd.time_spec_t(0.1));
self.source.set_center_freq(uhd.tune_request(868e6,0), 0)
self.source.set_center_freq(uhd.tune_request(868e6,0), 1)
time.sleep(0.11)
self.source.clear_command_time()
2) Is there anyway to measure and compensate the offset between the 2 SBX daughterboards?
3) Can this synchronization problem be tackled easier with a MIMO cable (since I do have one) ?
Thank you in advance.
Konstantinos
time.sleep(0.11) *before* the self.source.clear_command_time().
What magnitude of residual phase-offset are you seeing, and how are you measuring it?
A MIMO cable won't help with residual phase offset.
The usual way of calibrating this out is to inject a phase-identical test tone into each channel, and measure the phase offset when
starting up.
No comments:
Post a Comment