Discussion and technical support related to USRP, UHD, RFNoC
View all threadsThere are specific function calls to disable the automatic iq and dc
corrections on the B210 RX chain, but there does not seem to be any
equivalent function calls to do the same to any automatic TX corrections.
Is this possible?
Thanks,
-Jeremy
Hi Jeremy,
On Wed, Jul 20, 2016 at 2:42 PM, Jeremy Hershberger via USRP-users
usrp-users@lists.ettus.com wrote:
There are specific function calls to disable the automatic iq and dc corrections on the B210 RX chain, but there does not seem to be any equivalent function calls to do the same to any automatic TX corrections.
The Tx and Rx corrections are not symmetric so there are not
equivalent operations. Is there a reason you want to remove Tx
corrections?
Rx side of AD9361 uses a high pass loop filter for receive tracking of
DC offset. A continuous tracking loop is also used for quadrature
calibration. Both of these tracking loops can be disabled from the UHD
API.
Tx side uses internal calibration signals to fill out correction
tables - there is no continuous tracking loop. Disabling the table
corrections is not possible through the UHD API since that basically
involves not initializing the Tx chain of the RFIC.
-TT
Hi Tom,
I am trying to chase down a problem with a time-varying magnitude/phase
problem in data collected from a Tx->Rx loopback test.
According the AD9361 datasheet (pg 33):
"Self-calibration circuitry is built into each transmit channel to provide
automatic real-time adjustment. "
Based on your response, is this something that Ettus has disabled by
default? Does this also mean disabling the IQ and DC calibration functions
on RX represent the only continuous tracking loops in both the TX and RX
chains on the RFIC?
-Jeremy
On Wed, Jul 20, 2016 at 8:13 PM, Tom Tsou tom.tsou@ettus.com wrote:
Hi Jeremy,
On Wed, Jul 20, 2016 at 2:42 PM, Jeremy Hershberger via USRP-users
usrp-users@lists.ettus.com wrote:
There are specific function calls to disable the automatic iq and dc
corrections on the B210 RX chain, but there does not seem to be any
equivalent function calls to do the same to any automatic TX corrections.
The Tx and Rx corrections are not symmetric so there are not
equivalent operations. Is there a reason you want to remove Tx
corrections?
Rx side of AD9361 uses a high pass loop filter for receive tracking of
DC offset. A continuous tracking loop is also used for quadrature
calibration. Both of these tracking loops can be disabled from the UHD
API.
Tx side uses internal calibration signals to fill out correction
tables - there is no continuous tracking loop. Disabling the table
corrections is not possible through the UHD API since that basically
involves not initializing the Tx chain of the RFIC.
-TT
On Wed, Jul 20, 2016 at 5:28 PM, Jeremy Hershberger
Jeremy.L.Hershberger.16@nd.edu wrote:
According the AD9361 datasheet (pg 33):
"Self-calibration circuitry is built into each transmit channel to provide
automatic real-time adjustment. "
The phrase "real-time adjustment" is relative and somewhat misleading.
Yes, you can run the Tx calibration sequence anytime, but the
correction is not dependent on the transmit signal and output will be
disabled during the calibration procedure. Generally, one would only
trigger the adjustment on large frequency jumps or temperature
changes.
Tx quadrature calibration is based solely on an internal convergence
algorithm - there is no active tracking loop similar to Rx side. The
algorithm itself is not disclosed by ADI, but some details can be
found in the AD9364 reference manual.
-TT
Hi,
I want to confirm this issue on B210. I recently spent a
whole working day thinking that I had a problem in my
processing software because the received I/Q samples were
showing a weird behavior. I was testing TX/RX in loopback
mode with a single B210 device. My application is a simple
narrow-band QPSK modem. I wanted to transmit unmodulated
carrier for a few milliseconds, so I was keeping my
transmitted I/Q samples constant for a short while. At that
moment my received I/Q samples where not constant,
they looked like an an exponential decay. When I disabled
both the dc offset and the I/Q balance automatic correction
at the RX the problem disappeared. Those circuits respond
fast, on the order of 100 microseconds.
Joan
On Wed, 20 Jul 2016, Jeremy Hershberger via USRP-users wrote:
Hi Tom,
I am trying to chase down a problem with a time-varying magnitude/phase
problem in data collected from a Tx->Rx loopback test.
According the AD9361 datasheet (pg 33):
"Self-calibration circuitry is built into each transmit channel to provide
automatic real-time adjustment. "
Based on your response, is this something that Ettus has disabled by
default? Does this also mean disabling the IQ and DC calibration functions
on RX represent the only continuous tracking loops in both the TX and RX
chains on the RFIC?
-Jeremy
On Wed, Jul 20, 2016 at 8:13 PM, Tom Tsou tom.tsou@ettus.com wrote:
Hi Jeremy,
On Wed, Jul 20, 2016 at 2:42 PM, Jeremy Hershberger via USRP-users
usrp-users@lists.ettus.com wrote:
There are specific function calls to disable the automatic iq and dc
corrections on the B210 RX chain, but there does not seem to be any
equivalent function calls to do the same to any automatic TX corrections.
The Tx and Rx corrections are not symmetric so there are not
equivalent operations. Is there a reason you want to remove Tx
corrections?
Rx side of AD9361 uses a high pass loop filter for receive tracking of
DC offset. A continuous tracking loop is also used for quadrature
calibration. Both of these tracking loops can be disabled from the UHD
API.
Tx side uses internal calibration signals to fill out correction
tables - there is no continuous tracking loop. Disabling the table
corrections is not possible through the UHD API since that basically
involves not initializing the Tx chain of the RFIC.
-TT
Hi Joan,
On Thu, Jul 21, 2016 at 2:01 AM, Joan Olmos olmos@tsc.upc.edu wrote:
I want to confirm this issue on B210. I recently spent a whole working day
thinking that I had a problem in my processing software because the received
I/Q samples were showing a weird behavior. I was testing TX/RX in loopback
mode with a single B210 device. My application is a simple narrow-band QPSK
modem. I wanted to transmit unmodulated carrier for a few milliseconds, so I
was keeping my transmitted I/Q samples constant for a short while. At that
moment my received I/Q samples where not constant, they looked like an an
exponential decay. When I disabled both the dc offset and the I/Q balance
automatic correction at the RX the problem disappeared. Those circuits
respond fast, on the order of 100 microseconds.
Tx side calibration will not be time dependent unless you restart or
tune the transmitter more than 100 MHz away from the previous setting,
which will re-trigger the calibration process.
On the Rx side, the trailing exponential decay on bursty data is most
likely caused of the baseband DC offset correction convergence.
Quadrature tracking misbehavior will appear as signal dependent
distortion only on the in-phase channel. Both tracking correction
loops are dependent on master clock rate but not sample rate.
You can confirm the dependency of DC and quadrature tracking by
disabling the tracking, as you have done, or tuning the receive chain
with a baseband offset. The tracking loop itself can be tuned in
bandwidth and gain, but those settings are not exposed and do require
manipulation of the driver and registers directly from UHD. Further
details can be found in the AD9364 reference manual and register map
documents.
Hope that helps.
-TT
Thank you Tom.
I tune the receiver with a baseband offset and then move the received signal to the origin using a DDS. It's true that I began to notice the problems when I reduced the offset to a minimum of sampling_rate / 4. Anyway, after disabling the tracking loops everything is fine now.
I have another question: I have made different tests -always in loopback mode, i.e. transmitting and receiving with the save USRP- using an RX gain of 20dB and a TX gain of 10dB. I use these small values to test my modem performances with low SNR. The problem is lack of repeatability of SNR conditions. It seems that every time you stop and start the test, even if you use always the same TX and RX gains, the AGC calibrates itself in a different way and you get a different SNR. I have seen variations of up to 10dB in the SNR with the same gains. Should I disable the AGC in the receiving channel? I know it can be disabled, but I guess I may have unwanted side effects if I do disable it when I move apart TX and RX. My software destroys and creates the multi-usrp object (not only the streamers) with every new test.
Joan
El 21/07/16 a las 19:46, Tom Tsou escribió:
<pre wrap="">Hi Joan, On Thu, Jul 21, 2016 at 2:01 AM, Joan Olmos <a class="moz-txt-link-rfc2396E" href="mailto:olmos@tsc.upc.edu"><olmos@tsc.upc.edu></a> wrote:
<pre wrap="">I want to confirm this issue on B210. I recently spent a whole working day thinking that I had a problem in my processing software because the received I/Q samples were showing a weird behavior. I was testing TX/RX in loopback mode with a single B210 device. My application is a simple narrow-band QPSK modem. I wanted to transmit unmodulated carrier for a few milliseconds, so I was keeping my transmitted I/Q samples constant for a short while. At that moment my received I/Q samples where not constant, they looked like an an exponential decay. When I disabled both the dc offset and the I/Q balance automatic correction at the RX the problem disappeared. Those circuits respond fast, on the order of 100 microseconds.
<pre wrap=""> Tx side calibration will not be time dependent unless you restart or tune the transmitter more than 100 MHz away from the previous setting, which will re-trigger the calibration process. On the Rx side, the trailing exponential decay on bursty data is most likely caused of the baseband DC offset correction convergence. Quadrature tracking misbehavior will appear as signal dependent distortion only on the in-phase channel. Both tracking correction loops are dependent on master clock rate but not sample rate. You can confirm the dependency of DC and quadrature tracking by disabling the tracking, as you have done, or tuning the receive chain with a baseband offset. The tracking loop itself can be tuned in bandwidth and gain, but those settings are not exposed and do require manipulation of the driver and registers directly from UHD. Further details can be found in the AD9364 reference manual and register map documents. Hope that helps. -TT
Hi Joan,
this might depend a lot on your signal, but in general, if you want to
characterize a device, you'd reduce the number of potential influences
(and would hence disable the AGC).
However, if you want to characterize the AGC, you must make sure that
your signal is strong compared to noise, otherwise the AGC will adjust
to noise power – and that, by definition, is random.
I'll go ahead and speculate wildly:
This could happen if you just send a single tone without offset from the
either the RX or TX LO – in that case, DC offset/LO leakage canellation
might work against your signal, and leave the AGC only with noise, or
even competing with cancellation.
Best regards,
Marcus
On 22.07.2016 19:21, Joan Olmos via USRP-users wrote:
Thank you Tom.
I tune the receiver with a baseband offset and then move the received
signal to the origin using a DDS. It's true that I began to notice the
problems when I reduced the offset to a minimum of sampling_rate / 4.
Anyway, after disabling the tracking loops everything is fine now.
I have another question: I have made different tests -always in
loopback mode, i.e. transmitting and receiving with the save USRP-
using an RX gain of 20dB and a TX gain of 10dB. I use these small
values to test my modem performances with low SNR. The problem is lack
of repeatability of SNR conditions. It seems that every time you stop
and start the test, even if you use always the same TX and RX gains,
the AGC calibrates itself in a different way and you get a different
SNR. I have seen variations of up to 10dB in the SNR with the same
gains. Should I disable the AGC in the receiving channel? I know it
can be disabled, but I guess I may have unwanted side effects if I do
disable it when I move apart TX and RX. My software destroys and
creates the multi-usrp object (not only the streamers) with every new
test.
Joan
El 21/07/16 a las 19:46, Tom Tsou escribió:
Hi Joan,
On Thu, Jul 21, 2016 at 2:01 AM, Joan Olmos olmos@tsc.upc.edu wrote:
I want to confirm this issue on B210. I recently spent a whole working day
thinking that I had a problem in my processing software because the received
I/Q samples were showing a weird behavior. I was testing TX/RX in loopback
mode with a single B210 device. My application is a simple narrow-band QPSK
modem. I wanted to transmit unmodulated carrier for a few milliseconds, so I
was keeping my transmitted I/Q samples constant for a short while. At that
moment my received I/Q samples where not constant, they looked like an an
exponential decay. When I disabled both the dc offset and the I/Q balance
automatic correction at the RX the problem disappeared. Those circuits
respond fast, on the order of 100 microseconds.
Tx side calibration will not be time dependent unless you restart or
tune the transmitter more than 100 MHz away from the previous setting,
which will re-trigger the calibration process.
On the Rx side, the trailing exponential decay on bursty data is most
likely caused of the baseband DC offset correction convergence.
Quadrature tracking misbehavior will appear as signal dependent
distortion only on the in-phase channel. Both tracking correction
loops are dependent on master clock rate but not sample rate.
You can confirm the dependency of DC and quadrature tracking by
disabling the tracking, as you have done, or tuning the receive chain
with a baseband offset. The tracking loop itself can be tuned in
bandwidth and gain, but those settings are not exposed and do require
manipulation of the driver and registers directly from UHD. Further
details can be found in the AD9364 reference manual and register map
documents.
Hope that helps.
-TT
USRP-users mailing list
USRP-users@lists.ettus.com
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
On Fri, Jul 22, 2016 at 10:21 AM, Joan Olmos olmos@tsc.upc.edu wrote:
I have another question: I have made different tests -always in loopback mode, i.e. transmitting and receiving with the save USRP- using an RX gain of 20dB and a TX gain of 10dB. I use these small values to test my modem performances with low SNR. The problem is lack of repeatability of SNR conditions. It seems that every time you stop and start the test, even if you use always the same TX and RX gains, the AGC calibrates itself in a different way and you get a different SNR. I have seen variations of up to 10dB in the SNR with the same gains. Should I disable the AGC in the receiving channel? I know it can be disabled, but I guess I may have unwanted side effects if I do disable it when I move apart TX and RX. My software destroys and creates the multi-usrp object (not only the streamers) with every new test.
I would disable the AGC for the reasons that Marcus mentioned.
For the best RF performance with the AD9361, you generally want to
operate near the upper end of the gain range. That is the case with
both Tx and Rx. At higher gain settings IQ and DC calibration levels
of below -50 dB should be achievable for most frequencies. You will
see more variability at the bottom end of the gain range.
For your particular test setup, ideally, I would not run in loopback
mode. Instead, I would connect two B200 devices with external
attenuators. That avoids issues from operating Tx and Rx at the same
frequency on the same device and allows the use of more preferable
gain settings.
-TT