Page 1 of 1

Minimizing LO leakage on bladeRF 2.0 micro (xA4) during IQ replay

Posted: Mon Sep 01, 2025 9:43 pm
by aspx42
I am working on a record–replay setup with a bladeRF 2.0 micro (xA4), and I consistently observe a strong spike at the LO (carrier) frequency during TX. Below is a summary of my setup, experiments, and observations. I’d like advice on best practices to suppress LO leakage when replaying wideband IQ data.

Setup

Device: bladeRF 2.0 micro xA4

TX conditions: ~1000 MHz, 10 MS/s sample rate, 10–40 dB RF gain

Workflow: IQ recorded from another module → replayed via Soapy Sink → bladeRF

Spectrum observed on an external R&S analyzer

Observations

LO spur always present

A prominent spike appears at the LO during every transmit scenario.

Single-tone tests (complex sine at 100 kHz baseband) -> Analyzer shows the expected tone at LO+100 kHz.

A second spur appears exactly at the LO (consistent with LO leakage).


Using int16 → Complex

Increasing RF gain boosts LO and baseband.

Example: 20 dB gain → LO +3 dB; 40 dB gain → LO +23 dB.

Driving TX with int16-based signal sources (IShortToComplex) produces the same LO spur.

Adjusting the amplitude of the single-tone input reflects in the intended tone at twice the set frequency but also at the LO spur.

Recorded IQ replay (Core Application)

When transmitting captured/modulated IQ data from file, the LO spur often dominates, making the spectrum look like “just LO and nothing else.”

During recording (RX side, QT GUI spectrum), this LO spike is not visible.

Higher-order tones

In some tests, additional tones observed at 2×f_tone.

Mitigations tried

cal dc rx before capture (cal dc tx not supported on bladeRF 2.0 micro).

Python preprocessing: subtracting mean from captured IQ.

Enabling tx_dc_offset=true, tx_iq_balance=true in Soapy device args.

Lowering TX gain.

All of the above reduce the spur slightly, but LO leakage remains significant compared to the desired signal.

Questions


Are there calibration routines or register-level settings (beyond cal dc rx + Soapy args) to further reduce LO leakage on bladeRF 2.0 micro?

Is the observed LO spur level fundamentally limited by the LMS7002M’s zero-IF architecture, or can it be substantially improved?

Any recommended workflows for minimizing LO leakage when replaying wideband modulated IQ data from file?

Re: Minimizing LO leakage on bladeRF 2.0 micro (xA4) during IQ replay

Posted: Thu Sep 04, 2025 8:47 pm
by FreddyJ
LO leakage is a common challenge with zero-IF SDRs like the bladeRF 2.0 micro. Beyond tx_dc_offset and tx_iq_balance, options are limited on the micro due to hardware constraints. Preprocessing your IQ to remove DC and keeping TX gain moderate helps, but some residual LO spike is expected. For wideband replay, consider using slight frequency offsets or digital notch filtering to mitigate the LO spike in the output spectrum.

Re: Minimizing LO leakage on bladeRF 2.0 micro (xA4) during IQ replay

Posted: Fri Sep 05, 2025 5:18 am
by aspx42
FreddyJ wrote: Thu Sep 04, 2025 8:47 pm LO leakage is a common challenge with zero-IF SDRs like the bladeRF 2.0 micro. Beyond tx_dc_offset and tx_iq_balance, options are limited on the micro due to hardware constraints. Preprocessing your IQ to remove DC and keeping TX gain moderate helps, but some residual LO spike is expected. For wideband replay, consider using slight frequency offsets or digital notch filtering to mitigate the LO spike in the output spectrum.
Thanks for the inputs.

We tried shifting to a DC offset to see if it minimizes the LO leakage. Specifically, we generated a PRBS4 sequence at 1.5 Mbps in MATLAB, applied Manchester line encoding, and packed it into a 12-bit DAC input file. This IQ file had no DC component, and when replayed directly we observed the expected ~6 MHz double-sided bandwidth.

Next, we mixed this baseband with a 12 MHz sine to apply the offset. The baseband shifted correctly to both sides, but we noticed that the LO-like component also shifted along with it. We ensured both the DDS (signal source) and file source data were properly scaled.

Would appreciate your thoughts on why the LO spur seems to track along with the shifted baseband, instead of staying fixed at DC.

Re: Minimizing LO leakage on bladeRF 2.0 micro (xA4) during IQ replay

Posted: Sun Sep 07, 2025 2:47 pm
by Lawrence1
I’ve seen similar behavior—sometimes the “LO” moves with the baseband because of IQ imbalance or mixer feedthrough. Even after DC removal, small mismatches can create a tracking spur. Tweaking tx_iq_balance or doing a small digital cancellation in software usually helps. Zero-IF SDRs always leave some residual, but these tricks can make it much smaller.

Re: Minimizing LO leakage on bladeRF 2.0 micro (xA4) during IQ replay

Posted: Thu Sep 25, 2025 12:38 am
by JolieKeva
The IQ file did not possess a DC component, and upon direct playback, we noted the anticipated ~6 MHz double-sided bandwidth deer adventure

Re: Minimizing LO leakage on bladeRF 2.0 micro (xA4) during IQ replay

Posted: Thu Sep 25, 2025 2:02 am
by Alysonne22255
The free online calculator has become an indispensable tool in our digital world. Its versatility, accessibility, and ease of use make it an essential resource for anyone needing quick and accurate calculations. Whether you're a student, professional, or casual user, these tools provide the mathematical support you need at y our fingertips. Visit Calculator Free Online to experience the power of modern digital calculation tools! free online calculator