FM images all over HF and VHF bands

I have recently received my LimeSDR Mini. I am having issues with images of the FM radio band appearing where they shouldn’t. I have found two previous threads with similar issues (Receiving FM broadcast images on every frequency and GSM Images over FM Band on LNAL), but both recommend low-pass filters to alleviate the issue. As I am getting images both above and below where FM radio should be, I would need multiple band-pass filters, which would not be ideal. Are there any other methods of eliminating these?

  • FM images appear at 25, 58, 125, 155 MHz (about 31 MHz apart). I can get clear audio from these if I apply a FM demodulator. LTE seems to appear sometimes as well.
  • Changing sample rates does not affect the images in any way.
  • Using a different antenna does not remove the images.
  • Setting the analog low-pass filter to a lower value only eliminates the FM bands to the side. FM bands which appear close to the center frequency are still very clear. From the block diagram (, I would expect the low-pass filter to be able to eliminate these images, but it seems the FM band is at the wrong frequencies from the output of the tuner?
  • The images at 25 and 58 MHz seem to be reversed.
  • When tuning 1 MHz higher, the image around 25 MHz shifts in the opposite direction by about 3 MHz.
  • This issue does not occur with an RTL-SDR.


  • LimeSuite v20.10.0-ga45e482d, built from git master
  • sdrangel 6.15.0-11-g697c709f9, built from git master
  • LimeSDR mini gateware version 1.30 (latest)

I am quite new to radio, and I apologize if I am unclear or mistaken. I have asked a friend more familiar with radio, and after a few hours, they were as confused as I am. I have flipped a few settings in LimeSuiteGUI (probably not the best idea considering I don’t know what I’m doing), but it didn’t change anything. If comedic relief is required, consider that I have written this post with the SDR tuned to 31 MHz, listening to NPR.

A screenshot of sdrangel:

One way to look at a LimeSDR-USB/LimeSDR-Mini board is as a component of a high quality radio. But it has nearly zero no fronted filtering. If you are seeing images of FM everywhere it is because of Heterodyne mixing which takes one signal and creates two new overlapping signals (f1+f2 and f1-f2) and unfiltered undersampling, which ultimately due to Nyquist will produce aliases everywhere. So you have three options and all of them involve adding an external filter to limit unwanted signals from entering the SDR.

  • You could use a bandpass filter to attenuate everything outside the band that you are interested in, this would typically overall give the best results for that band.

  • If all the signals you are interested in are below FM use a low pass filter that is lower than FM (anywhere lower than 88 MHz) that will attenuate the FM signals and LTE signals and any other unwanted signals (sources of noise) from entering the SDR.

  • And lastly you could use one, or more*, bandstop filters to block unwanted signals from entering the SDR. So an FM bandstop filter (88-108MHz) in series with bandstop for your local LTE frequency band. This would, depending on your local RF environment, probably produce the worst results because there are still many unwanted signals (sources of noise) entering the SDR. *But each filter adds ~3dB of attenuation.

  • There is a fourth option that does not involve external filters, which is more complex, and may not always be possible. And that is to carefully adjust the tuned frequency and sample rate to nudge unwanted signals slightly further away. But it is not always possible with two or more unwanted signals moving one away from the frequency that you want to see may move another unwanted signal closer.

But any of the above three filtering options will typically produce much better results than an unfiltered RF frontend, depending on your local RF environment (If you were on an island in the middle of the ocean, adding a filter may not help, in fact it might be detrimental because it would add ~3dB of attenuation).

LimeSDR has a separate board LimeRFE board that has a series of bandpass filters with power amplifiers for HAM, Cellular bands.

1 Like

RTL SDR in tuner section contains two BPF controlled by microcontroller. This is why RTL_SDR tuners are selective but at a cost: higher noise figure! If you put LNA next to antenna you can improve overall noise figure.
For LimeSDR selective BPF is a must if you want decent performance. Do not forget: LimeSDR input LNA covers 0.1-3.8GHz and without BPF A/D will pick up noise all over the place.
You did not write what is your app when multiple filters is not option?

1 Like

Just to add: above 30MHz use RX LPF slightly above sample rate (e.g. if sample rate is 2.5MS/s use 3MHz for LPF).

Thanks a lot for the links and explanation! I think I understand it a bit better now.

I don’t quite understand why the FM image would move at 3x the speed though, or why it would end up in the target band in the first place. If tuning to 30 MHz, the RXMIX LO input should also be 30 MHz, I think. If that were the case, wouldn’t FM (around 90 MHz) end up at 60 MHz and get cut by the RXLPF (I had it set to around 35 MHz)?

If I understand correctly, the RTL-SDR and other heterodyne radios seem to use a LC circuit before the mixer in order to approximately isolate the desired signal. I will try to make one later.

If you are throwing together a quick analogue filter, I used to use this site for RF filter design:

But I just found this one, which looks like a lot of fun:
I tried it with the following:
Response: lowpass
Type: Butterworth
Topology: Series First
Order: 5
Cutoff Frequency: 60MHz
Input Impedance: 50 ohms
Output Impedance: 50 ohms
Component Values: Standard
Capacitor Values: E24 (5% tolerance)
Inductor Values: E24 (5% tolerance)

The only thing that it is missing is a Monte Carlo plot, for the random values with 5% tolerance of the components I selected.
EDIT: Under export there is an option to select Monte Carlo for analysis in LTSpice!

The thing about SDR is that there is a lot of complexity, and explaining what looks like a simple problem gets hard fast. And I’m no expert, I’m still learning.

1 Like

If it is moving 3x the speed, it’s not a simple heterodyne mix, but a harmonic. Likely the FM signals are so strong they are overloading one of the device’s stages, and are thus creating harmonics in the device. You can test by dropping the IF and/or RF gain, and seeing if the rate at which the spurious image drops is greater than the reduction in gain; e.g. if you drop the IF by 1dB and the spur goes down by 3dB.
If that is the case, you need to reduce the gains until the harmonics go away. That still won’t fix the issue of the images due to heterodyne mixing, but it will help the spurs.
The best solution is a filter at the input to remove the FM band - either a low pass for HF work, or a band pass for VHF work. Mouser Electronics has a good collection of RF filters that can be used for this.
That’s the thing to remember on setting gains for wide band receivers like most SDRs - it’s not the level of the signal of interest that determines the gain, it’s the level of the strongest signal in the receiver’s front end bandwidth.