Sunday, May 21, 2023

Characterizing spurious (Harmonic) responses of the SDRPlay RSP1a (and other models)

The SDRPlay RSP2pro (left) and RSP1a receivers (right)
The SDRPlay RSP1a is a popular Software Defined Radio (SDR).  This device, connected to and powered by the computer via a USB cable covers from VLF through UHF and low microwave frequencies.

This receiver shares a similar internal architecture of similar devices such as the RTL-SDR dongle and the AirSpy in that an analog frequency converter (mixer) precedes the analog-to-digital converter:  In the case of the SDRPlay, the frequency to which the receiver is tuned is (usually) converted to baseband I/Q signals, with the "center" frequency being at zero Hz (DC). 1


For the purposes of this discussion, there is no difference between the RSP1a and some of the other receivers in the product lineup (e.g. RSPDuo, RSPdx and the discontinued RSP1, RSP2 and RSP2pro) in terms of harmonic response across the 2-30 MHz range as they all have about the same 12 MHz and 30 MHz cut-off frequencies on their input filtering - properties that would affect HF reception across the 2-30 MHz range in terms of harmonic response.
This issue was noted at least as far back as 2017 in the SDRPlay forum - See this thread:

Imperfect mixers

By its nature, a frequency mixer is a non-linear device.  Ideally, the two frequencies applied to a mixer would yield just two more - the sum and difference.  For example, if we applied a 5 MHz signal and a 1 MHz signal to a mixer, it would output both the sum of 6 MHz and the difference of 4 MHz - and this is true, but there's more to the story.

In our example - with a real-world mixer, we will also get additional products - including those related to the harmonics of the local oscillator and the applied signal.  Because of this, we will see weaker signals at:

  • 11 MHz (2 * 5 MHz + 1 MHz) 
  • 9 MHz (2 * 5 MHz - 1 MHz) 
  • 7 MHz (5 MHz + 2 * 1 MHz) 
  • 3 MHz (5 MHz - 2 * 1 MHz) 
  • And so on.

Typically, these "other" signals will be quite a bit weaker than the original - but they will still be present, possibly at a high enough level to cause issues such as spurious signals - a problem with both receivers and transmitters.  Typically, these are tamed by proper design of the mixer, proper selection of frequencies and careful filtering around the mixer to limit the energy of these "extra" signals.

Note:  There will be a response at 5x the center frequency as well, but it is suppressed better than the 3x response by the mixer and - for the 80 meter amateur band and higher - these responses are suppressed reasonably well by the filtering.

SDRPlay's poor harmonic response suppression on 80 meters and below.

ANY receiver will experience spurious responses related to mixing products.  Typically, filtering is employed to remove/minimize such responses, but for a wide-bandwidth receiver such an SDR, doing this is complicated by the fact that being able to cover wide swaths of bandwidth would ideally require a large number of overlapping filters.

An example of a radio where this is done - albeit of different architecture - is the Icom IC-7300 which has nine overlapping band-pass filters that cover 160 through 10 meters.  While the reasons for the '7300 having many filters has as much to do with its being a "direct sampling" 2 type of SDR, good filtering on the signal path of any type of receiver - SDR or "HDR" (Hardware Defined Radio - or an "old school" analog type) is always a good idea

If this many filters had been implemented on the SDRPlay, there would be enough filtering to prevent a significant harmonic response.  In the case of the RSP1a, this was not done - partly to allow 5-8 MHz of continuous coverage without being significantly impacted by the filters in many cases, but more likely it was done due to practical reasons of economics 3 :  There are just three filters used for covering all of the "HF" amateur bands 160 through 10 meters:  One that covers up to 2 MHz, another that covers 2-12 MHz and third that covers 12-30 MHz:  This information is covered in the RSP1a technical information document ( )

The sensitivity to harmonics was tested with the RSP1a's local oscillator (but not necessarily the virtual receiver) tuned to 3.7 MHz 4 .  For reasons likely related to circuit symmetry, it is odd harmonics that will elicit the strongest response which means that it will respond to signals around (3.7 MHz * 3) = 11.1 MHz.  "Because math", this spurious response will be inverted spectrally - which is to say that a signal that is 100 kHz above 11.1 MHz - at 11.2 MHz - will appear 100 kHz below 3.7 MHz at 3.6 MHz.  (It's likely that there are also weaker responses at frequencies around 5 times the local oscillator, but these are - for the most part - adequately suppressed by the filtering.)

In other words, the response to spurious signals follow this formula:

Apparent signal = Center frequency + ((Center frequency * 3) - spurious signal) )


  • Center frequency = The frequency to which the local oscillator on the RSP is tuned.  In the example above, this is 3.7 MHz.
  • Spurious signal = The frequency of spurious signal which is approximately 3x the center frequency.  In the example above, this is 11.2 MHz.
  • Apparent signal = Lower frequency where signal shows up.   In the example above, this is 3.6 MHz.

In our example - a tuned frequency of 3.7 MHz - the 3rd harmonic would be within the passband of the 2-12 MHz filter built into RSP1a meaning that the measured response at 11.2 MHz will reflect the response of the mixer itself, with little effect from the filter as the 2-12 MHz filter won't really affect the 11 MHz signal - and according to the RSP1a documentation (link), this filter really doesn't "kick in" until north of 13 MHz.

In other words, in the area around 80 meters, you will also be able to see the strong SWBC (Shortwave Broadcasting) signals on the 25 meter band around 11 MHz.

How bad is it?

Measurements were taken at a number of frequencies and the amount of attenuation is indicated in the table below.  These values are from measurement of a recent-production RSP1a and spot-checking of a second unit using a calibrated signal generator and the "HDSDR" program:

LO Frequency
Measured Attenuation at 3X LO frequency
Attenuation in "S" Units
2.1 MHz
21 dB (@ 6.3 MHz)
2.5 MHz 21 dB (@ 7.5 MHz)
3.0 MHz 21 dB (@ 9.0 MHz)
3.7 MHz 21 dB (@ 11.1 MHz)
4.1 MHz 23 dB (@ 12.3 MHz)
4.5 MHz 30 dB (@ 13.5 MHz)
5.0 MHz 39 dB (@ 15.0 MHz)
5.5 MHz 54 dB (@ 16.5 MHz)
6.0 MHz 54 dB (@ 18.0 MHz)
6.5 MHz 66 dB (@ 19.5 MHz)
12.0 MHz 21 dB (@ 36.0 MHz)
12.5 MHz 21 dB (@ 37.5 MHz)
13.5 MHz 22 dB (@ 40.5 MHz)
14.5 MHz 26 dB (@ 43.5 MHz)
15.5 MHz 31 dB (@ 46.5 MHz)
16.5 MHz 35 dB (@ 49.5 MHz)
17.5 MHz 39 dB (@ 52.5 MHz)
18.5 MHz 43 dB (@ 55.5 MHz)
19.5 MHz 46 dB (@ 58.5 MHz)
20.5 MHz 50 dB (@ 61.5 MHz)
21.5 MHz 53 dB (@ 64.5 MHz)
Table 1:  Measured 3rd harmonic response of the RSP1a


  • In the above chart we see the local oscillator frequency in the left column, the measured attenuation of the 3rd harmonic response (and its frequency) in the center column, and that amount of attenuation expressed in "S" units.  Here, an "S" unit is based on the IARU standard (Technical recommendation R.1) of 6 dB per S unit, which is reflected in programs like SDRUNO, HDSDR and many others.
  • The attenuation of the 3rd harmonic response was measured by first noting the signal level required to obtain a given reading - typically "S-9" near the fundamental frequency - and then observing the level required to obtain that same reading - within +/-1dB - near the 3rd harmonic frequency, using the relationship formula, above.
  • Below the cutoff frequency of the relevant filter (nominally 12 MHz for receive frequencies in the range of 2 to 12 MHz, nominally 30 MHz for receive frequencies in the range of 12 to 30 MHz) the harmonic response is limited to that of the mixer itself, which is 21 dB.
  • We can see that on the 2 to 12 MHz segment, the attenuation related to the 3rd harmonic doesn't exceed 40 dB (which is the low end of what I would call "OK, but not great) until one gets above about 5 MHz (which translates to 15 MHz) and it doesn't get to the "goodish" range (50dB or more) until north of about 5.5 MHz which is borne out by the filter response charts published by SDRPlay.
  • On the 12 to 30 MHz band the filter has practically negligible effect until one gets above about 20 meters, at which point it gets into the "OK, but not great" range by about 18 MHz, and it doesn't really get "goodish" until north of 20.5 MHz.  What this means is that strong 6 meter signals may well appear in the 16.5 to 17.5 MHz range as frequency inverted representations.
  • If there is a relatively strong signal source in the area of the 3rd harmonic response, it will likely appear at the lower receive frequency where the attenuation of the filter is less than 40 dB or so.  The severity of this response will, of course, depend on the strength of that signal, the amount of attenuation afforded by the filters at that frequency, and the amount of noise and other signals present in the range of the fundamental frequency response.
Based on the above data, we can deduce the following:
  • When the RSP1a is tuned between 2 MHz and (below) 12 MHz, it is using its "2-12 MHz" filter. In this range - and below approx. 4 MHz - the 12 MHz cut-off of the filter has negligible effect in reducing 3rd harmonic response.
    • What this means is that signals from 6-12 MHz will appear more or less unhindered (aside from the 21 dB reduction afforded by the mixer) when the local oscillator of the receiver is tuned between 2 and 4 MHz.
    • The 3rd harmonic response across 2-4 MHz - which is the 6-12 MHz frequency range - can contain quite a few strong signals and noise sources such as those from shortwave broadcast stations.
  • When the RSP1a is tuned between 12 MHz and (below) 30 MHz, it is using its "12-30 MHz" filter.  Below about 14 MHz, the 30 MHz cut-off of the filter has negligible effect in reducing 3rd harmonic response.
    • Signals from 36-40 MHz will appear with just 21-26 dB attenuation when tuned in the range of 12-13.5 MHz.
    • In most cases there are probably few signals in the 36-40 MHz range that are likely to be an issue when tuning in the 12-13.5 MHz range.

80 meter example:

Connecting the RSP1 to a known-accurate signal generator set to -40dBm, the signal level at 3.6 MHz was measured:  Maintaining the signal level, the generator was retuned to 11.2 MHz and the resulting signal level was measured to be 21 dB (a bit more than 3 "S" units) lower than that at 3.6 MHz.

What this means is is that a "20 over S-9" signal at 11.2 MHz will show up as an S-9 signal at 3.7 MHz, and an S-9 signal at 11.2 MHz will be around S-6 at 3.7 MHz.  In other words, even a "weak-ish" signal at the 3rd harmonic will show up at the lower frequency.

80/60 meter example:

If you run the RSP1a in a wider bandwidth mode, it is possible to simultaneously see and tune a greater frequency range.  For example, let us presume that you wish to cover both 80 and 60 meters using a single RSP1.  To do this, you could set the center (LO) frequency to 4.5 MHz and set the sample rate to 5.376 MHz and use the 5 MHz band-pass filter built into the RSP1's converter/mixer chip (the Msi001) to prevent in-band aliasing.

In this configuration 20 meter signals will appear at the top of 80 meters owing to the relationship in the formula that we described above.  Taking the 20 meter FT-8 subband at 14.074 MHz as an example, we see that:

4.5 MHz + ((4.5 MHz * 3) - 14.074) = 3.926 MHz

In other words, we will see spectrally-inverted representations of 20 meter FT-8 signals around 3.926 MHz, and the rest of the (upper) portion of 20 meters across the rest (lower) portion of 80 meters where USB signals on 20 meters will show up as LSB signals on 80.  We know from the chart above that those signals will be attenuated by between 30 and 39 dB (about 5-6 S-units).  This might sound like a lot of attenuation, but it means that a "20 over" signal on 20 meters will appear at around S-7 to S-8 on 80 meters - still quite respectable.

More about filtering and harmonic response

While these spurious responses may not be too much of a problem for the casual user, it will be necessary to add additional filtering to allow the RSP1a to function on par with a modern, SDR receiver from one of the major manufacturers.

Unfortunately, the filtering in the RSP1a is not sufficient in the 80 meter case mentioned above as it doesn't have octave filters (or similar) - but what about 60 or 40 meters?

The table above answers this question.  In the case of 60 meters - with the receiver tuned to 5.3 MHz - our 3rd harmonic will land on 15.9 MHz.  Based on measurements of the receiver the response of signals around 15 MHz - which corresponds to the 19 meter Shortwave Broadcast Band - will be a bit more than 40 dB down from 40 meters with about 20 dB of this being due to the roll-off of the 2-12 MHz filter - but because this frequency range is inhabited by very strong shortwave broadcasters they are likely to still be quite audible around 60 meters.

The situation is a bit better for 40 meters where the 3rd harmonic is around the 15 meter band.  There, the 2-12 MHz filter knocks signals down by 50dB or more, putting them about 70dB below the 40 meter response - on par with about any respectable receiver.

What this means is that for amateur bands below 40 meters it is suggested that additional filtering be applied.

The best solution - and recommended for any software-defined radio (or even older "hardware-defined radios") is to have band-pass filter designed for the specific amateur band in question. This will not only significantly attenuate the harmonic response, but it will also reduce the total amount of RF energy entering the receiver, reducing the probability of overload.  The obvious down-side is that it will reduce the flexibility of the receiver in that unless you change/remove it, you won't be able to receive signals well outside the filter's design range.

Another possibility is to add a low-pass filter that is designed to cut off signals above the band of interest.  For example, if you have a filter that cuts off sharply above 8 MHz, you will be able to tune 80-40 meters and get reasonable attenuation of the 3rd harmonic response across this entire frequency range.

In the case of 160 meters the RSP1a will automatically select the 0-2 MHz low-pass filter and the 3rd harmonic response will be a respectable 50-ish dB down, depending on frequency.

On 20 meters - where the 3rd harmonic is around 42 MHz - the "12-30 MHz" filter will be selected, but the published response of this filter shows that at 42 MHz its attenuation will be quite limited.  Practically speaking, it is unlikely that there will be any signals in this frequency range so there being "only" 20-30dB of attenuation is unlikely to cause a problem in most cases, but one should be aware of this.

What can be done:

In short, none of the currently-made SDRPlay receivers - by themselves - will offer very good performance in terms of harmonic rejection between 2 and 5 MHz and it will be particularly bad on the 80 meter band where strong 25 meter SWBC signals can appear:  It is interesting that the ARRL review of the RSPdx (Link here) didn't catch this issue.

It is unfortunate that the designers of the SDRPlay receivers did not add at least one additional low-pass filter in the signal path to quash what is a rather strong response in the 2-6 MHz range - particularly on 80 meters, one of the most popular bands.  A low-pass filter with a cut-off frequency of 6 MHz (with attenuation becoming significant above 7 MHz) would ameliorate the harmonic response when tuning across this band.  This problem is made even worse by the fact that even antennas that aren't particularly resonant at their harmonic responses (e.g. the antenna for 80 meters) will likely do quite a decent job of receiving signals in the 11-12 MHz area.

The only real "fix" for this is to install additional filtering between the SDRPlay receiver and the antenna.  If single-band operation is all that is desired, the best choice will be a band-pass filter designed for the frequency range in question 5 - but unless you are dedicating the receiver just for that one band, this isn't really desirable unless you can easily switch/bypass the filter when tuning elsewhere.

A more flexible solution would be to use a low-pass filter.  As we noted above, the 12 MHz roll-off of the built-in (2-12 MHz) filter just doesn't do much to suppress signals from 20 meters, but if we had a filter that had a sharp cut off beginning, say, at 8 MHz, we could use it for 80, 60 and 40 meters - such a filter is depicted schematically, below:

8 MHz low-pass filter schematic, designed using ELSIE

This filter is pretty easy to build:

  • Capacitors 1 and 5 each consist of a 100pF and 470pF in parallel
  • Capacitor 3 consists of a 680pf and 220pF in parallel - although you could probably get away with two 470pF capacitors in parallel in a pinch.
  • Inductors 2 and 4 consist of 16 turns on a T50-2 (or 18 turns on a T37-2) toroid using small wire - 24-30 AWG is fine

A small scrap of PC board material - about 2"x4" (5x10cm) is more than large enough to accommodate with the capacitors soldered directly to the foil and inductors held aloft by the capacitors.  The connectors should be attached to the PC board directly - or with short lengths of coax, keeping the ground (shield) lead length to an absolute minimum to minimize the probability of ground-loop induced noise currents.

If you have access to a NanoVNA it's quite easy to check the performance.  If anything, it may be necessary to spread the turns across the toroid or remove one turn - but this design is quite forgiving.

The obvious down-side for this is that if you are tuning all over the HF spectrum (above 7.5-8 MHz in the case of the filter above) you'd have to manually remove or bypass any such filtering when you tuned beyond the range that the added filter would pass.



  1. The receivers mentioned at the beginning of the article (SDRPlay, AirSpy HF, RTLSDR, etc.) have analog-to-digital converters that cover only a portion of the HF spectrum, using a frequency mixer to convert a range of frequencies from the range of interest to a lower frequency, which is then fed into the converter.  Limiting the amount of spectrum being ingested by the receiver - particularly when appropriate filtering is used - can improve performance, reduce cost, and especially reduce the total amount of data, allowing a modest computer (older PC, Raspberry Pi) to be used with it.
  2. A "direct sampling" type of receiver - such as that found in the Icom IC-7300, IC-7610, the KiwiSDR, Red Pitaya and the RX-888 (when used at HF) and others like them simply "inhale" large swaths of spectrum all at once.  Because the analog-to-digital converter itself has a limited amount of total RF signal power that it can handle, radios like the Icoms have filtering that allow the passage of only the (relatively) small portion of the HF spectrum around that to which the receiver is tuned, reducing the probability of overload from strong signals on frequencies well away from those of interest.  Other direct-sampling receivers such as the KiwiSDR, Red Pitaya and RX-888 do not necessarily have band-specific filtering as they are intended to be able to receive multiple frequencies across the entire HF spectrum at once and as such, much more care is required in implementation to prevent overload/distortion for these devices.
  3. In the case of the (currently-produced) RSP receivers, the filtering varies depending on model:  In the case of the RSP1a, it has a band-pass filter that covers 2-12 MHz while other models have used just a 12 MHz low-pass - the former being capable of rejecting AM broadcast band (e.g. mediumwave) signals from the input of the receiver when tuned to HF, and the latter not.  Some units additionally have a separate "notch" (reject) filter that is designed to remove just AM broadcast-band signals.  The situation described in this article - the reception of signals around 11 MHz when tuned to 80 meters - is related to the fact that the 2-12 MHz filter represents a 6:1 frequency range which means that over the lower portion of this spectrum, the 12 MHz cut-off of this filter cannot possibly remove responses to the third harmonic, hence the issue described here.
  4. If you are using a program like SDRUno it may not be readily apparent to what frequency the receiver's local oscillator is tuned.  If set to "Zero IF" mode, the local oscillator will be tuned at the same place as the center of the waterfall display when it is fully zoomed out - typically indicated by a slight line at the "Zero Hz" frequency there there is a slight amount of noise energy.  By default, one cannot directly tune the local oscillator ("Zero IF" frequency) in SDRUno.  If you use the "HDSDR" program by I2PHD (et al) you can independently tune the local oscillator and the frequency of the virtual receiver.
  5. SDRPlay receivers are currently in use at a number of well known and public WebSDRs around the world as the "acquisition device" (e.g. receiver).  In most cases these receivers - because they are used only for specific amateur bands - are preceded by a band-pass filter for the band that they are covering, completely eliminating issue noted in this article.  It was during testing at one of these WebSDRs - a receiver on 80 meters that does not (yet) have additional filtering - that signals were noted across the 80 meter band in the middle of the day that should not have been there at all - and these signals were quickly realized to be the result of a harmonic response in the front end.  These responses were then verified and quantified using two other RSP1a receivers (of different production runs) and test equipment during the preparation of this article.  When it was convenient to do so, a low-pass filter with a cut-off frequency of 7.5 MHz was installed on this receiver, solving the image problems.

* * *

This page stolen from