-
Notifications
You must be signed in to change notification settings - Fork 452
Manually adjusting DC offset and IQ Imbalance corrections
This page describes how to use the bladeRF's built-in DC offset and IQ imbalance corrections.
Direct conversion (homodyne or zero-IF) receivers have become very popular recently especially in the realm of software defined radio. There are many benefits to direct conversion receivers, but there are also some serious drawbacks the largest being DC offset and IQ imbalances.
DC offset manifests itself as a large spike in the center of the spectrum. This happens in direct conversion receivers due to a few different factors. One is at the ADC where being off by a single LSB will yield a DC offset. Another is at the output of the low-pass filters where any DC bias will propagate through. The last is at the mixer where the local oscillator (LO) being on the center of the desired frequency will leak through to the receiver.
IQ imbalances occur due to the slightest mismatches in sections of the receiver chain when dealing with the I and Q signal paths. The LO is generated and then delayed by 90 degrees. When mixed with the original signal, this produces the I signal whereas the Q signal is generated by mixing with the LO that is delayed by 90 degrees. In the analog domain, it is much harder to guarantee the delay is exactly 90 degrees. Similarly, the gain component is a slight mismatch in overall gain for each of the signal paths.
To make matters worse, these impairments need to be corrected for over both frequency and temperature.
For further information, check out the following:
- 76 DC Offsets in Direct-Conversion Receivers: Characterization and Implications by R. Svitek and S. Raman
- Direct Conversion: No Pain, No Gain by Jon Strange and Doug Grant
Below is am image showing a spectrum containing a tone before (left) and after (right) manually adjusting the DC offset and IQ imbalance correction parameters.
- Ensure the bladeRF's FPGA is loaded
- Run osmocom_siggen for the desired frequency:
osmocom_siggen -s 4M -f 450M --sine
- Specify a frequency offset for the sinusoid
- A spike at DC
- An image of the tone at -F Hz
- Move the DC Offset Correction Real slider until the amplitude DC spike reaches a minimum
- Move the DC Offset Correction Imag slider to further reduce the DC spike
- Repeat until the DC spike is sufficiently canceled
- Record these settings for reference as an initial starting point in the future.
- Move the IQ Imbalance Correction Mag slider until the amplitude of the image reaches a minimum
- Move the IQ Imbalance Phase slider to further reduce the amplitude of the image
- Repeat until the image spike is sufficiently canceled
- Record these settings for reference as an initial starting point in the future.
The RX-side can be tuned in a manner similar to what's described above for the TX procedure.
The basic procedure is to:
- Enable RF loopback mode (via rf_lna1 for < 1.5GHz, or rf_lna2 for >= 1.5GHz)
- RX at some frequency f
- Transmit a carrier at some frequency f + offset
- View the received signal on an FFT plot
- Adjust the DC offset parameters to reduce the spike at DC
- Adjust the IQ imbalance parameters to reduce the image of the carrier from the TX side
TO DO