∿ LEARN DSPFrom signal to HF transceiver
Part roadmap

Complex numbers and I/Q

Learn to read a complex sample as a pair of coordinates and as a vector.

Goal

Learn to read a complex sample as a pair of coordinates and as a vector.

Prerequisites: Part 01.

Lessons and next steps

  1. A complex number as a vector: I and Q: coordinates, magnitude, phase, conjugate and Euler’s formula.
  2. Positive and negative frequencies: speed and direction of rotation.
  3. A cosine as a sum of two rotations: how a cosine splits into two rotations, and how to show a signal relative to the tuning frequency.

Lab: experiments for this part

  • Show one signal on the I/Q plane and on plots of the coordinates, magnitude and phase.
  • Compare rotations in opposite directions and their sum; add spectra after Part 03.
  • Change the amplitude and phase, calculate the coordinates, and get the length and angle back from them.

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 find the magnitude and phase from I/Q, and I take radians and the quadrant of the plane into account.
  • I can explain the conjugate and the difference between positive and negative frequencies.

Result for the main project

A complex tone generator and diagrams to observe I/Q.