Random Quote Board

SDRuno and the "Zero IF" vs "Low IF"

Gary Schafer, August 2023

I'm currently working on a post on SDRuno similar to what I did for SDRangel. While doing that, I came across a setting in the main window called "IF Mode". You have two choices. "Zero IF" or "Low IF". I didn't understand the difference between the two. I understand a "zero IF". That's your typical output from a quadrature demodulator. It's due to the fact that the spectrum is centered at zero Hz.

But why a "low IF"? That took a bit of digging. Turns out it is much simpler than I thought.

Let's start with the spectrum of a typical quadrature demodulator. This is "zero IF" (zero intermediate frequency) output. I'm using SDRuno itself for this demonstration. This is the "Main SP" (main spectrum) window. My SDR is an SDRplay RSP1A tuned to 90.9 MHz, but with no antenna connected to the RF input. Note the small spike at the center. That's something called "LO feedthrough" (which one comment on DSPrelated described as "bleed-through"). This can cause problems for reception of certain signals, primarily AM and PM signals.

Spectrum from SDRuno. SDRuno is set to "ZIF" or "zero IF". The SDR is a SDRplay RSP1A, but without an antenna connected. This shows the LO feedthrough "spike" at the center of the spectrum.

There are two methods to alleviate this LO feedthrough problem. The first is to not use an analog quadrature demodulator. Instead, convert the signal down to a low intermediate frequency ("low IF"), then digitize the signal. From here, it's possible to use digital frequency conversion to shift the IF down to baseband. Frequency shifting using digital signal processing (as opposed to analog circuitry) will ensure no LO feedthrough.

Spectrum of a SDRplay RSP1A with no antenna attached and SDRuno in "LIF" (low IF) mode. Note the lack of the LO feedthrough spike at the center of the spectrum. This ensures that that spike does not create problems for the reception of certain, primarily AM, signals.

The second method is to use the "ZIF" (zero IF) mode (meaning a standard analog quadrature demodulator), but off tune from the signal to be processed. In other words, tune the spectrum such that the signal is not over the LO feedthrough signal.

Zero IF mode showing flat areas on either side of the LO feedthrough signal. By tuning the desired signal so that if falls within these areas, plus SDRuno's software tuner ("VFO"), you get the same result as using the "LIF" feature.
Zero IF mode tuned to the 2 meter band. The LO (hardware tuner) is locked to the center frequency, while the VFO (software tuner) is used to tune, filter and demodulate the various signals.

The drawback with either method is that the bandwidth is limited. SDRuno limits the bandwidth in the LIF mode to a maximum of 1.536 MHz (with a 2 MHz sample rate). In ZIF, the bandwidth would be limited to 1/2 of the sample rate. With my RSP1A, the maximum sample rate is 10 MHz, so with the avoidance of the LO feedthrough plus the dropoff of the IF filter, the maximum bandwidth will be slightly larger than 4 MHz.

There you have it. The basic difference between "LIF" and "ZIF" in SDRuno. I hope to have my full post on SDRuno soon.

Here's a Random Fact...