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
- The analytic signal x + j·Hilbert(x); removal of negative frequencies and special cases at zero and at the Nyquist frequency.
- Implementation with the FFT and with an FIR filter; finite length and distortion at the edges of the record.
- USB/LSB generation and matching of the I/Q delays.
- 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.