Thank you @ricardas and @N0YKG for the detailed explanation.
After going through your analysis and the LMS7002M datasheet, I have two follow-up questions:
1. Is there a chance that the DC spike is only a display artifact and it does not physically exist in the transmitted/received signal?
From post #7, you mentioned that the FFT viewer operates in floating point [-1.0, +1.0] while the hardware operates in 12-bit integers [-2048, +2047]. The scaling factor of 1/2048 is inherently asymmetric — -2048 maps exactly to -1.0, but +2047 only reaches 0.9995. This introduces a 1-bit rounding bias.
So my question is: is it possible that this -70 dBFS DC spike exists only in the FFT viewer as a result of this lossy integer-to-float conversion, and does not actually exist in the real RF signal? Or does the NCO arithmetic inside the LMS7002M chip itself produce a genuine (-1, -1) offset in the hardware samples before any software conversion even happens?
Understanding this distinction matters because:
-
If it is only a viewer artifact → it can be ignored for actual transmission/reception
-
If it genuinely exists in the hardware samples → it will appear in the real RF output and needs to be corrected
2. If it truly exists in the hardware samples, what is the recommended solution?
From the datasheet (Figure 11), the RX DC Correction block runs before the CMIX/NCO block in the RXTSP chain. This means the on-chip DC correction loop cannot see or correct any DC that the NCO itself introduces downstream.
Given this architectural constraint, is there a recommended approach from Lime Microsystems for using NCO frequency shifting while avoiding this residual DC artifact?
I ask because this is becoming a practical concern for me in the context of 5G OAI gNB-to-UE operation — a DC offset at this level could interfere with an effective gNB↔UE link. This concern originally arose when I compared spectral and time-domain plots between the USRP and LimeSDR Mini 2.4, where the LimeSDR’s DC offset level appeared very close in magnitude to the 5G RF signal itself (this is related to the experiments discussed in Question about LimeSuiteNG-integration fork in : Question about Limesuiteng-integration fork).
Thank you again for your time and insight.
