Field Guide · algorithm

Also known as: quadrature FM demodulator, arctan discriminator, polar discriminator

Quadrature demodulation recovers a frequency- or phase-modulated signal by measuring the phase change between successive complex IQ samples — the rate of phase rotation is the instantaneous frequency, so a differentiated-phase (arctangent) discriminator directly yields the FM baseband.1 It is the workhorse FM/FSK demodulator in software radio and the front end that feeds C4FM symbol slicing in P25 and DMR.

QI z[n]z[n+1]Δφ Δφ = arg( z[n+1] · z*[n] ) Δφ / Δt = demod out
The angle swept between consecutive IQ vectors is the instantaneous frequency; computing it as the argument of z[n+1]·conj(z[n]) is quadrature FM demodulation.

How it works

A complex baseband sample is a vector z[n] = I[n] + jQ[n] whose angle is the signal’s instantaneous phase. Frequency is the time derivative of phase, so the demodulator’s job is to estimate how far the vector rotated from one sample to the next:

  • Phase difference. Multiply the current sample by the conjugate of the previous one, z[n]·z*[n−1]. This product’s angle is exactly the phase increment Δφ between the two samples, and its magnitude is the product of amplitudes (which FM ignores).
  • Take the argument. Δφ = atan2(Q_prod, I_prod). Dividing by the sample interval scales it to Hz, but for demodulation the arctangent output is already the FM message signal. This is the differentiated-phase or polar discriminator.
  • Amplitude-blind. Because only the angle matters, the demodulator is inherently immune to amplitude variations and needs no envelope tracking — ideal for constant-envelope modes like FM and FSK. An AGC or limiter still helps keep the arctangent well-conditioned.
  • Cheap approximations. atan2 can be replaced by a CORDIC rotation or, for small Δφ, by the algebraic form (I·ΔQ − Q·ΔI)/(I²+Q²), which avoids a transcendental call in a hot loop.

Because the whole operation lives in complex baseband after the tuner has mixed the signal to zero IF, it is a natural fit for SDR — no analog discriminator, PLL, or slope detector is needed. It is a non-coherent demodulator: it never reconstructs the carrier’s absolute phase, only the change from sample to sample, so it needs no carrier-recovery loop and locks instantly. The price is a few dB of sensitivity versus a coherent detector, and a characteristic noise behaviour below the FM threshold, where the discriminator output degrades sharply rather than gracefully.

Variants

  • Delay-and-multiply discriminator. The form above, z[n]·z*[n−1], uses a one-sample delay. Using a longer delay narrows the frequency-to-amplitude slope and can trade noise bandwidth against deviation range.
  • Differentiator/divider form. Computing the derivative of I and Q directly and forming (I·Q′ − Q·I′)/(I²+Q²) yields the same instantaneous frequency without an arctangent — the small-angle algebraic path noted above, common in fixed-point implementations.
  • CORDIC phase extraction. A CORDIC rotation extracts the argument with only shifts and adds, which is why FPGA and microcontroller receivers favour it over a library atan2.
  • Imbalance sensitivity. Because the discriminator reads angle, any IQ imbalance or residual DC in a direct-conversion receiver injects a spurious tone and distortion into the demodulated output, so front-end correction matters upstream.

In practice

The raw discriminator output is noisy, so it is normally followed by matched or low-pass filtering. For digital voice the demodulated frequency deviation maps onto discrete symbol levels: four-level C4FM (±1800, ±600 Hz deviations) for P25 Phase 1 and DMR, or two-level FSK for POCSAG and many telemetry links. The demodulator’s output is then symbol-timing-recovered and sliced into dibits or bits — and the distance of each sample from the ideal deviation levels doubles as a soft-decision confidence for the error-correction decoder. A discriminator-based receiver is simple and robust, though for the CQPSK/linear-modulation view of the same C4FM signal a coherent phase-tracking demodulator can perform better on weak signals.

Relevance to SDR

Quadrature demodulation is the standard FM/FSK demod in essentially every SDR stack, and GopherTrunk is no exception: after the digital down-converter tunes and decimates a channel to complex baseband, an arctangent/differentiated-phase discriminator produces the frequency baseband that C4FM and FSK slicers turn into symbols. It is the hinge between raw IQ and bits for P25, DMR, NXDN, and paging modes — the concrete meaning of “demodulation” in the decode chain.

Sources

  1. Frequency modulation — Wikipedia, for instantaneous frequency as the derivative of phase, the basis of the discriminator. 

See also