Unwanted relative phase change after programming a device

Dear all

I am using USRP1 with two basic RX daughter boards and two input signals
(one at each Basic RX) with the same frequency.

The two 10. 7 MHz signals cartesian components:

  • (I1, Q1) from one channel of the 1st Basic RX card
  • (I2, Q2) from the 2nd Basic Rx card
    are mixed with the NCO at about 10.7 MHz to almost DC, decimated and
    sent to PC.

The PC software computes the received signal frequency, amplitudes and
the relative phase that remains constant along the time if the NCO
frequency is not changed.

To compensate frequency drifts the NCO is periodically adjusted by
reprogramming the two devices." using the tune function.

After this reprogramming however the relative phase between the signals
often (but not always) changes a lot (not always the same phase change).

A detailed suggestion to solve this problem is appreciated as accurate
phase measurement is important in my application (I can not find a clear
response to this issue in the discussions).


Armando Rocha (Professor)
Universidade de Aveiro, DETI/IT
Campus Universitrio Santiago
3810 193 Aveiro

On 11/01/12 06:56 PM, Armando Rocha wrote:

A detailed suggestion to solve this problem is appreciated as accurate
phase measurement is important in my application (I can not find a
clear response to this issue in the discussions).

The NCO reprogramming isn’t, as far as I know, phase-continuous. Josh
and/or Jason could likely comment,
but my understanding is that phase is only left unperturbed when you
leave the frequency intact.


Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

On 01/11/2012 03:56 PM, Armando Rocha wrote:

A detailed suggestion to solve this problem is appreciated as accurate
phase measurement is important in my application (I can not find a clear
response to this issue in the discussions).

The issue is setting the cordic frequency while streaming (in other
words, while the cordics are spinning), because you cannot set them
precisely at the same time. Therefore, one cordic will see more cycles
at the new frequency before the other gets set to the new frequency.

However, if you stop streaming, tune the cordics, and re-start
streaming, both cordics should remain phase aligned because the cordics
only spin while samples flow through them.

Another solution, if these frequency drifts keep the signal well within
the initial passband, don’t retune the cordics, you can easily
compensate for the frequency drift in the host instead.

-Josh

On 11/01/12 08:31 PM, Armando Rocha wrote:

Hi

Please note that I am referring to a differential phase. Even if the NCO
phase is not continuous the differential phase should remain unchanged (I
think the NCO is the same).

Thanks for your contribution

Ah, OK. So you’re dealing with two independant DDC chains here, which
operate off of two
different NCOs, as far as I know, since in most cases the two chains
may be tuned to entirely
different frequencies. I think the NCOs are programmed separately,
from UHD, which means
there will be a phase difference between them every time the (two)
NCOs are programmed.

Fixing this would require FPGA changes in the USRP1, which at this point
is utterly frozen as far as I know.
You’d need some kind of “commit” logic that caused the two NCOs to be
re-started at exactly the same time
after being programmed. I don’t think this can be done purely
within UHD, but maybe it can. I’m sure
Josh or Matt could comment.

This is similar to what happens with the synthesized analog cards–they
end up with some random
differential phase offset every time their frequencies are changed,
due to the way the frac-N synthesizers
work.


Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs