Also known as: reciprocal mixing noise
Reciprocal mixing is the receiver degrading itself: every signal entering the mixer is convolved with the local oscillator’s phase-noise skirts, so each received carrier comes out wearing a copy of the LO’s noise pedestal.1 A strong signal near the tuned channel then splashes noise into the channel — the classic blocking mechanism — but the wanted signal also smears its own modulation with the LO’s close-in jitter. Either way the damage is done at the mixer: the noise is multiplied into the samples, and no amount of filtering, decimation, or clever demodulation downstream can take it back out.
How it works
An ideal LO is a spectral line; mixing with it translates every input frequency crisply. A real LO carries phase-noise sidebands falling away from the carrier (measured in dBc/Hz at each offset), and mixing is multiplication in time — convolution in frequency — so every received signal is smeared by that sideband shape. Two consequences follow:
- Nearby strong signals raise the floor. The in-channel noise contributed by a blocker at offset Δf is the blocker’s power times the LO’s phase noise at Δf (integrated over the channel). This, not front-end overload, is what limits many receivers’ close-in blocking dynamic range: past a certain blocker level, more RF filtering does not help and more gain makes it worse.
- The wanted signal degrades itself. Close-in LO jitter rotates the constellation symbol-to-symbol. Heavily averaged measurements — a spectrum-analyzer carrier peak, a long FFT — can still look clean while EVM and demodulated SNR are poor. Carrier-clean but modulation-degraded is the reciprocal-mixing signature, and it is how the effect is told apart from intermodulation or clipping, which show up in the amplitude domain.
The oscillator’s quality — crystal reference, PLL loop bandwidth, synthesizer architecture, and in an SDR the sample-clock/PLL configuration at a given rate — sets the effect’s size. Nothing after the mixer can reduce it.
Relevance to SDR
Reciprocal mixing is the standing explanation for a class of SDR mysteries where a capture
is bad in a way no DSP setting changes. GopherTrunk’s canonical case (issue #764): the same
TETRA site captured on the same Airspy decoded at ~19.7 dB demod SNR from a 2.5 MS/s
capture but ~9.5 dB from a 10 MS/s capture — neither clipping, and the wideband FFT carrier
SNR actually higher at 10 MS/s. Decimating the 10 MS/s file 4:1 with an independent
resampler and replaying it through the proven 2.5 MS/s path reproduced the same ~9.5 dB,
proving the ~10 dB deficit was baked into the captured samples: front-end phase noise at the
device’s native 10 MS/s clock, not the decoder
(pinned by TestDownconverterSNRInvariantAcrossRate in
internal/scanner/ccdecoder/ddc_highrate_test.go). The practical rules that follow: prefer
the sample rate at which your hardware’s clocking is clean, verify a “weak signal” problem
against a capture at a different rate before blaming the decoder, and treat
carrier-clean-but-modulation-degraded as an oscillator finding — a
gain change will not fix it.
Sources
-
Phase noise — Wikipedia, on oscillator phase-noise sidebands and their transfer onto received signals in mixing (reciprocal mixing). ↩