Drag the angle to move the point ejθ = cos θ + j·sin θ around the unit circle. Enter a tone and a sample rate to see how many radians the phasor advances per sample (ω = 2πf/fs), then press “Next sample” to step through it.
What to try
- Enter f = 1,000 Hz and fs = 8,000 Hz: each sample advances 45° (π/4 rad), so one cycle takes 8 samples.
- Set f to exactly fs/2: the point jumps between +1 and −1, the fastest a sampled signal can change.
- Set f a little above fs/2: the point appears to turn the other way. That is aliasing seen on the circle.
Euler’s formula
Every point on the unit circle can be written as a complex exponential:
The horizontal coordinate is the cosine (the real part) and the vertical coordinate is the sine (the imaginary part). As θ grows, the point turns counter-clockwise. A complex tone \(e^{j 2\pi f t}\) is just this point turning f times per second.
Radians per sample
Once a signal is sampled, time is counted in samples, not seconds. The phasor then advances by a fixed angle each sample, the normalized angular frequency:
With f = 1 kHz and fs = 8 kHz, ω = π/4 rad = 45°, so 2π/ω = 8 samples per cycle. When f = fs/2, ω = π: the largest step that still has an unambiguous direction. Any step larger than π looks the same as a smaller step the other way (2π − ω), which is why frequencies above fs/2 alias.
The unit circle in the z-plane
In the z-transform, the unit circle is the set of points \(z = e^{j\omega}\). Evaluating a system’s transfer function H(z) on that circle gives its frequency response: going once round the circle sweeps frequency from 0 up to fs/2 (top half) and back through the negative frequencies (bottom half). A causal filter is stable when all its poles lie inside the circle, and zeros on the circle block those frequencies completely.
The same points appear in the FFT as “twiddle factors” \(W_N^k = e^{-j 2\pi k / N}\), N equally spaced points on the circle. See how the radix-2 FFT works.
FAQ
What is a negative frequency?
A phasor turning clockwise instead of counter-clockwise. A real cosine is the sum of two phasors turning in opposite directions, \(\cos\theta = (e^{j\theta} + e^{-j\theta})/2\), which is why real signals have mirror-image spectra.
Why measure frequency in radians per sample?
It makes the maths independent of the sample rate. A filter designed for ω = π/4 works at 8 kHz (1 kHz cutoff) or at 48 kHz (6 kHz cutoff) without changing a single coefficient.
Why is fs/2 the highest frequency?
At fs/2 the phasor moves half a turn (π) per sample. A step of more than half a turn is indistinguishable from a shorter step in the opposite direction, so higher frequencies fold back.
Background lesson: The unit circle. See aliasing in the time domain with the aliasing demo.
References
- Oppenheim, A. V. & Schafer, R. W., Discrete-Time Signal Processing, 3rd ed., Pearson, 2010, chapters on discrete-time signals and the z-transform.
- Lyons, R. G., Understanding Digital Signal Processing, 3rd ed., Prentice Hall, 2011, chapter on quadrature signals and appendix on complex numbers.