USRP Software Radio

cancel
Showing results for 
Search instead for 
Did you mean: 

Simultaneous Tx/Rx re-tune

While my UHD knowledge is limited...it seems like you can simultaneously re-tune the Tx and Rx LOs at the same time.  Presumably this means that, for a given frequency, you could always measure a constant phase difference between the two that wouldn't change if you restarted the radio/retuned/etc..  This would allow you to make phase measurements of a DUT similar to how you would with a Network Analyzer, since you'd know that any phase changes observed would be due to the DUT...not between LOs.  (I'm ignoring a potential 180 degrees ambiguity due to the PLLs for now).

 

Experience with the NI driver (NI-2920 or N210 with WBX) tells me you can't do simultaneous retuning.  Even though the Tx and Rx are phase locked, one would observe seemingly random phase differences, presumably becuase the Tx and Rx aren't being re-tuned at the same time in the NI driver?

 

Do I have all this right so far?  If so, is there anyway to hack the driver to accomplish what I *think* the UHD would allow?

 

Yes...there are tricks to allow these types of measurements using multiple radios, MIMO techniques, external reference sources, etc....but for some applications, it's becoming hard to justify all the extra hardware and software.  The B200/210's seem to offer the kind of LO control one would need...but no NI driver support yet. 

 

Any suggestions?

 

---

Brandon

0 Kudos
Message 1 of 10
(8,552 Views)

Hello Brandon,

 

Are you looking for a way, using the drivers, to adjust both LOs at the same time and guarantee that the LOs are phase locked (or at least the phase difference between the two is constant)?

You can adjust the LO’s frequency using a properly node for the NI-USRP drivers in LabVIEW. However, on the NI USRP-2920, the Tx1 and Rx2 use different LOs, which have separate Phase-locked Loops (PLLs) and are not phase locked to each other. Also, the setting of this property may not happen for both LOs at the exact same time.

 

USRP2920BD.png 

 

I believe both PLLs share the same reference clock, and may in fact be phase coherent, but there is no way to guarantee that there would be a constant phase difference such that wouldn't change if you restarted the radio or even just re-tuning the frequencies. 

Matthew R.
Field Applications & Systems Engineer
National Instruments

Certified-LabVIEW-Developer_rgb.jpg

Certified-TestStand-Developer_rgb.jpg


0 Kudos
Message 2 of 10
(8,526 Views)

Matt-

 

Yes...this is essentially my question.  I know that when I start up the radio, the phase *difference* between the Tx and Rx will be some unpredictable number.  Now...if I tune to a different center frequency...then tune back to my original center frequency...I will observe a different phase difference.  

 

What I'm trying to determine is whether this is a fundamental issue because of the hardware...or if it's because with the NI driver I can't actually tell each PLL to re-tune at exactly the same time.


Reading over this (http://files.ettus.com/uhd_docs/manual/html/sync.html) seemed to suggest there were ways to assure that the Tx and Rx were not just phase locked, but shared a consistent phase relationship, even after retuning.  It got me thinking that maybe this was more of a driver/software problem than a hardware issue.  But it may just be that I don't understand the UHD very well.

 

---

Brandon

0 Kudos
Message 3 of 10
(8,507 Views)

Hello Brandon,

 

I am currently investigating to find out if this is actually a limitation for the NI-USRP drivers.  I will post back once I find you an answer. In the mean time, can you confirm the following:

 

Are you currently trying to do this with a NI-USRP 2920, programming in LabVIEW with the NI-USRP drivers, but are not sure how to program the drivers to reproduce the example code in this reference manual

Matthew R.
Field Applications & Systems Engineer
National Instruments

Certified-LabVIEW-Developer_rgb.jpg

Certified-TestStand-Developer_rgb.jpg


0 Kudos
Message 4 of 10
(8,486 Views)

Matt-

 

That's basically correct.  I suppose initially I thought the fundamental limitation in not being able to predict relative LO phases was due to the operation of the analog LO/PLLs.....but reading that reference on the UHD made me think that it's really just a matter of the software driver.  It's possible that the NI driver is already sending the "tune" commands to each LO at the same time already...which would end up making this a hardware issue...not a software issue.  Sometimes due to the "flowgraph" nature of LabView...it's hard to know when exactly a particular configuration VI ends up being applied to the radio itself.

 

Let me know what you find out!

 

---

BC

 

 

0 Kudos
Message 5 of 10
(8,476 Views)

Brandon,

 

I have been doing a bit more digging. The LOs do in fact share the same reference clock, and because of this, they are phase coherent. The last line of the manual should apply regardless if the LOs are tuned at the exact same time or not:

 

 “After tuning the RF front-ends, each local oscillator may have a random phase offset due to the dividers in the VCO/PLL chains. This offset will remain constant after the device has been initialized, and will remain constant until the device is closed or re-tuned. This phase offset is typically removed by the user in MIMO applications, using a training sequence to estimate the offset. It will be necessary to re-align the LOs after each tune command”

 

Once you tune the LOs to the same carrier frequency, there will be a constant phase offset until you retune them or turn off the device, and you should not see any phase drift (although there will always be phase noise).  However, this offset will almost never be the same, and as the manual states, you will have to measure this each and every time you tune the device. Just to be clear, the time at which each LO is tuned, whether it is at the exact same time or one after the other, should not matter. Therefore this is not a limitation of the driver. 

Matthew R.
Field Applications & Systems Engineer
National Instruments

Certified-LabVIEW-Developer_rgb.jpg

Certified-TestStand-Developer_rgb.jpg


0 Kudos
Message 6 of 10
(8,458 Views)

Thanks Matt. 

 

I think what threw me is the section called "Align LO's in the front end".  This business about "timed commands" seemed to suggest that the random (but constant) offset was due to the timing of the instructions, rather than the 'ambiguity' in the PLLs themselves. 

 

---
BC

0 Kudos
Message 7 of 10
(8,448 Views)

Brandon,

 

Your confusion is warranted; I agree that the “timed commands” threw me off as well, hence why I had to do some research for you. 

Matthew R.
Field Applications & Systems Engineer
National Instruments

Certified-LabVIEW-Developer_rgb.jpg

Certified-TestStand-Developer_rgb.jpg


0 Kudos
Message 8 of 10
(8,438 Views)

Hi Matt,

 

I am having the same problem but with two reciever simultaneously using two USRP 2920 and MIMO cable.

I wonder if you found out what is the solution of this phase ambiguity and how can we align the random phase offset between channels?

 

Thank you

Bahareh

0 Kudos
Message 9 of 10
(8,076 Views)

Hello Bahareh,

 

Recently, I learned the feature mentioned above is available in the NI-USRP drivers, and is implemented by using the niUSRP Set Command Time.vi. If you are using one device, or synchronized devices (MIMO), you can use this command to tell each device exactly when to apply the new LO configuration settings.

 

However, I believe you will still have the same issue, you cannot guarantee the LOs’ phases will be “aligned” after the reconfiguration. Will they be phase coherent? Yes, but guarantee to be aligned? I don’t believe so. Since there are still two separate PLLs, thus two separate LOs, and they could still potentially be out of phase by some amount of offset. The offset could be minuscule, enough for most applications; I just wouldn’t go as far as to say that they are exactly aligned to one another. If I am able to prove this one way or the other, I will post back.

 

Please note: this function is not accessible from the Functions pallet. You can find the niUSRP Set Command Time.vi within the following directory: C:\Program Files\National Instruments\LabVIEW 2013\instr.lib\niUSRP. If you want to add this to the NI-USRP pallet, you will have to do this manually, please see the following knowledgebase for instructions.

 

How Do I Add an Instrument Driver or a Custom SubVI to the Functions Palette? 

 

Also, there is a possibility that this driver function function only works for SBX devices (NI-USRP 2922, 2932) and not WBX devices (NI-USRP 2920, 2930), but I have been unable to confirm this yet. 

Matthew R.
Field Applications & Systems Engineer
National Instruments

Certified-LabVIEW-Developer_rgb.jpg

Certified-TestStand-Developer_rgb.jpg


0 Kudos
Message 10 of 10
(8,050 Views)