UG-1828 Preliminary Technical Data
Rev. PrB | Page 120 of 277
Because ADRV9001 supports both NB and WB modes, NBQEC and WBQEC algorithms are developed accordingly to handle
quadrature error in these 2 modes effectively. NBQEC employs a time-domain adaptive algorithm to estimate both gain and phase
mismatch. Then, the estimations are applied to correct the distorted input signal in real-time before passing to DDC. WBQEC designs a
correction filter to cancel the effect of the mismatch filter by modeling the quadrature error generation as a mismatch filtering process.
The correction filter parameters are obtained through the initial calibration by injecting RF tones into the mixer at selected frequencies
and then on-the-fly adjustment by processing the Rx data in real-time.
DDC
DDC is only used when IF reception is employed. By using a programmable NCO configurable from 45kHz to 21MHz, it further
converts the IF signal to the baseband.
FREQUENCY OFFSET CORRECTION
In a communication system, a desired signal is transmitted by the transmitter at RF over the air. Since the clock reference at the
transmitter or the receiver are independent to each other, this may result in the RF carrier frequency offset between the transmitter and
the receiver. This frequency difference is named as the carrier frequency offset (CFO). In the receiver data chain, a frequency offset
correction block is provided as an option to further correct small carrier frequency offset in both NB and WB modes through an API
command. The correction value must be estimated and provided by the BBIC. The correction may occur immediately or relative to
receiver frame boundary. Another programmable NCO is employed with a configurable frequency -12kHz to +12kHz and FTW 32 bits
wide.
The API command adi_adrv9001_Rx_FrequencyCorrection_Set( ) is used to correct small deviations in receiver LO frequency. The user
must provide the frequency deviation value in Hz and specify if the correction should take place immediately or at the start of next
available frame. Note the device employs the digital NCO in the datapath to correct the frequency deviation instead of RF PLL retuning.
PFIR
PFIR is an optional 128-tap programmable FIR used in both NB and WB modes. 4 sets of customized FIR profiles can be stored at the
initialization phase. One of the 4 stored FIR profiles can be switched to be loaded on the fly under the control of the baseband processor.
The PFIR can be loaded a customized low-pass filter profile to stop the adjacent channel interference, which is helpful to achieve better
channel selectivity. Please refer to Rx Demodulator section for more details.
RSSI
RSSI measures the receive signal power over a period of time, which could be employed to calculate the interface gain to avoid saturate
the data port. In addition, in Monitor Mode, it performs signal detection in WB applications and works together with FSK
Discrimination block to detect NB signals in NB applications.
The measured signal level could be retrieved by the user through an API command adi_adrv9001_Rx_Rssi_Read( ). The API function
reads back the RSSI status for the given receiver channel and may be called any time after the device is fully initialized. The following
data structure is used to retrieve the power measurement in both milli-dBFS and linear format:
typedef struct adi_adrv9001_RxRssiStatus
{
uint16_t power_mdB; /* Power in milli dB */
/* Linear power is calculated by this formula: linear power = (mantissa * 2^-15) * 2^-
exponent */
uint16_t linearPower_mantissa; /* Mantissa of Linear Power */
uint16_t linearPower_exponent; /* Exponent of Linear Power */
} adi_adrv9001_RxRssiStatus_t;
Interface Gain
Due to the bit-width limitation of the data port, an interface gain is applied by shifting the signal properly so as not to clip the output
upon saturation. It could also increase the signal level for small signals to avoid losing sensitivity. The interface gain could be
automatically adjusted internally inside the device by utilizing the RSSI measurement or by user through API commands. The user could
also optionally retrieve the signal level measured by RSSI through an API command to control the interface gain. See the Receiver Gain
Control section or more details.