Discussion and technical support related to USRP, UHD, RFNoC
View all threadsHello,
We are experiencing an issue with our UBX-160 when tuning to a sequence of center frequencies with set_rx_frequency() and set_tx_frequency() in which tuning to center frequencies in a particular order consistently results in significant degradation of the received signal.
Sequence A:
100 MHz (default) —> 1000 MHz —> 500 MHz
Sequence B:
100 MHz (default) —> 500 MHz —> 1000 MHz
We are transmitting identical waveforms (non continuously, with prf of ~100 ms in external loopback with 30 dB attenuation) and estimate the PSD of the rx signal and apply a matched filter.
With sequence A, the RX signal for both 1GHz and 500 MHz is ~4 dB weaker and has a noticeably attenuated/rounded spectrum in comparison to sequence B. The matched filter output is significantly degraded for sequence A. The issues seen with sequence A are repeatable and can be corrected at any time by tuning according to sequence B.
I am guessing that this is caused by an issue in db_ubx.cpp. Is there a fix for this? We are on the rfnoc-devel branch of uhd and are up to date with commit 2cf80a6.
Thank you,
Sam
On 02/22/2017 03:26 PM, Samuel Prager via USRP-users wrote:
Hello,
We are experiencing an issue with our UBX-160 when tuning to a
sequence of center frequencies with /set_rx_frequency()/ and
/set_tx_frequency()/ in which tuning to center frequencies in a
particular order consistently results in significant degradation of
the received signal.
Sequence A:
100 MHz (default) —> 1000 MHz —> 500 MHz
Sequence B:
100 MHz (default) —> 500 MHz —> 1000 MHz
We are transmitting identical waveforms (non continuously, with prf of
~100 ms in external loopback with 30 dB attenuation) and estimate the
PSD of the rx signal and apply a matched filter.
With sequence A, the RX signal for both 1GHz and 500 MHz is ~4 dB
weaker and has a noticeably attenuated/rounded spectrum in comparison
to sequence B. The matched filter output is significantly degraded for
sequence A. The issues seen with sequence A are repeatable and can be
corrected at any time by tuning according to sequence B.
I am guessing that this is caused by an issue in db_ubx.cpp. Is there
a fix for this? We are on the rfnoc-devel branch of uhd and are up to
date with commit 2cf80a6.
Thank you,
Sam
The analog signal chain is slightly different above 500MHz. Internally,
the UBX is a superhet implementation, and there's a switch of IF
schemes and analog bits and pieces (amplifiers, etc) at 500Mhz, from
what I recall.
In sequence (B), you're likely staying with one set of hardware until
you go to 1000MHz, and with sequence (A) you're switching twice.