∿ LEARN DSPFrom signal to HF transceiver
Part roadmap

The Hilbert transform and the analytic signal

Understand how to build a complex signal without negative frequencies and use it for SSB.

Goal

Understand how to build a complex signal without negative frequencies and use it for SSB.

Prerequisites: Parts 02–04; a first look at demodulation in Part 07 is useful.

Future lessons

  1. The analytic signal x + j·Hilbert(x); removal of negative frequencies and special cases at zero and at the Nyquist frequency.
  2. Implementation with the FFT and with an FIR filter; finite length and distortion at the edges of the record.
  3. USB/LSB generation and matching of the I/Q delays.
  4. A comparison of the filter, phasing and Weaver methods, with a return to Part 07.

Lab plan

  • Build the signal with scipy.signal.hilbert and measure the suppression of negative frequencies.
  • Get USB/LSB at a test intermediate frequency and measure the unwanted sideband.
  • Add amplitude, phase and delay errors between I and Q and measure their effect.

We do the experiments in Python with NumPy, SciPy and Matplotlib. We keep the parameters, units and plots. The base models use float64 and complex128; we add bit-depth limits in separate experiments.

Completion criteria

  • I can tell the difference between any complex signal and the analytic signal of a real sequence.
  • I can explain how the sideband is selected and the effect of I/Q matching errors.

Result for the main project

An SSB modulator with measurement of the unwanted sideband suppression.