Field Guide · algorithm

Also known as: Hilbert transform, analytic signal, quadrature filter

The Hilbert transform shifts every frequency component of a real signal by −90° without changing its amplitude, and pairing the original signal with its Hilbert transform on the imaginary axis produces the analytic signal — a complex-valued I/Q representation with no negative-frequency content.12 That real-to-complex conversion is the bridge between a receiver that samples a single real voltage and the complex baseband on which nearly all modern demodulation is done.

real x(t) delay (I) Hilbert 90° (Q) analyticI + jQ
The real input becomes the in-phase (I) arm; a 90-degree Hilbert filter forms the quadrature (Q) arm, and together they make the complex analytic signal.

How it works

In the frequency domain the ideal Hilbert transform is a filter with unit magnitude and a ±90° phase shift: it multiplies positive frequencies by −j and negative frequencies by +j. Adding j·H{x} to the original x doubles the positive frequencies and exactly cancels the negative ones, leaving a one-sided (analytic) spectrum. Written as a complex signal z(t) = x(t) + j·x̂(t), three quantities fall straight out:

  • Envelope — the instantaneous amplitude is |z(t)|, giving distortion-free AM envelope detection.
  • Instantaneous phase and frequency — the angle of z(t) is the instantaneous phase, and its time derivative is the instantaneous frequency, the basis of one kind of FM discriminator.
  • Sideband selection — because z(t) has no negative-frequency image, it can be frequency shifted and its real part taken to synthesise or select one sideband cleanly.

The ideal transform is non-causal and infinite, so in practice it is realised as a finite FIR filter — an odd-length, anti-symmetric kernel that approximates the 90° shift over the band of interest — or, more commonly in DSP, by taking an FFT, zeroing the negative-frequency bins and doubling the positive ones, and inverse-transforming.

In practice

Two closely related structures show up constantly. The Weaver and phasing methods of single-sideband generation and reception use a Hilbert (quadrature) network to reject the unwanted sideband without a steep analog filter. And the general recipe “make the signal complex, then process” almost always starts with an analytic-signal step, whether by Hilbert filtering a real feed or by direct quadrature down-conversion.

Relevance to SDR

Many SDR front ends already deliver complex I/Q by mixing against a local oscillator in two quadrature phases, so no explicit Hilbert stage is needed. But real-input receivers do need one: the Airspy R2/Mini, for example, sample a real IF and apply a real-to-complex conversion — a Hilbert/analytic step — to produce the I/Q the rest of the chain expects, and the same is true of many direct-sampling HF radios and sound-card SDRs. Once the signal is analytic, the Hilbert-derived envelope and instantaneous-frequency operations feed AM and FM demodulation, and the phasing method underpins SSB work.

GopherTrunk consumes complex I/Q from its supported devices and does its quadrature demodulation and symbol recovery on that baseband, so where a device emits real samples the real-to-complex (Hilbert) conversion is part of getting the data into GT’s expected form rather than something GT reinvents in its trunking decoders.

Sources

  1. Hilbert transform — Wikipedia, on the 90-degree phase-shift operator and its filter realisation. 

  2. Analytic signal — Wikipedia, on building a one-sided complex signal and reading envelope and instantaneous frequency from it. 

See also