I'm putting together a 2m NBFM transmitter/receiver combo using rpitx and rtl-sdr. During testing my low-pass filter I discovered that rpitx is generating spurious signals within and around the band (see screenshot below). They're only about -30dBc so I need to remove them before transmitting. Removing them with a band-pass filter would be difficult and restrict the frequency range. What could be causing these spurs, and can anything be done to clean up the signal?

I've overlayed two screenshots, one with no signal (green), and one with the rpitx signal at 146MHz (red), taken from GQRX+RTLSDR which show some of the spurs.

FFT of 2m band

The spurs are frequency-dependent and generally span +/-5MHz or so. I've ruled out the rtl-sdr as the problem as I can see them on my scope too. The signal is generated with rpitx/tune -f 146000000 and is on the BCM4 GPIO. My Pi is a 3B+.

  • 2
    $\begingroup$ So the spurs move with the signal... They could still be caused by the receiver. One way to tell is to attenuate the signal and see if the spurs also drop, and whether they drop by the amount of attenuation, or more than that. IMD should drop by 3 dB for each dB of attenuation. But it wouldn't surprise me that the Pi also generates spurs. $\endgroup$
    – tomnexus
    Commented May 11, 2020 at 10:51
  • 1
    $\begingroup$ I've played with attenuation (and preamp gain) but the spurs drop the same amount as the fundamental. Plus I've verified them with a second "receiver" (the FFT function on my oscilloscope), so I'm pretty confident they're from the Pi. $\endgroup$
    – user9103
    Commented May 12, 2020 at 0:54

1 Answer 1


I can't dig up my source for this, but I'm pretty sure these spurs are just the result of rpitx using a fractional-N PLL (that isn't in any way optimized for phase noise) to generate a square wave. You get pulses of different (discrete) widths, which means you get spurs at predictable intervals.

There isn't really anything you can do to make them go away, but their relative strength will be dependent on your chosen frequency and its relationship to the master oscillator frequency (which I believe is 19.2 MHz). If you're willing to do some trial-and-error, you can scan through the band hoping to find a center frequency where all of the spurs are at acceptable levels (unlikely, but possible) or one where all of the significant spurs are far enough away from the carrier that using a bandpass filter becomes practical.

  • 2
    $\begingroup$ The project's GitHub page has a large banner that says "Never transmit on antenna without a band-pass filter!" which indicates to me that they are aware of the issues with spurs that fundamentally arise due to how the transmitter works. $\endgroup$
    – Nat Mote
    Commented May 11, 2020 at 19:38

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .