Don Stephenson Don Stephenson

Fourier Series

Every periodic signal is a chord of sine waves

Watch the epicycle stack trace the curve — showing how f(t) = Σ Aₙ·sin(nωt + φₙ) builds a waveform one spinning circle at a time. Drag a spectrum stem to set amplitude, rotate its handle to set phase, or load a preset (square, sawtooth, AM, FM…) to see the frequency-domain signature behind each shape.

Fourier Series

f(t) = Σ Aₙ·sin(nωt + φₙ)  Â·  each circle is one term, stacked tip-to-tail
Frequency domain — amplitude spectrum |Aₙ| vs ω drag stem ↕ = amplitude (circle radius) · drag ○ handle ⟳ = phase (start angle) · position = frequency (spin rate)
Reference notes — DFT · modulation · where this shows up in AI

DFT — the inverse of this app

This page does synthesis: you pick the spectrum, it builds the wave. The Discrete Fourier Transform does analysis: given N samples x[k], it recovers each stem via X[n] = Σₖ x[k]·e^(−i2πnk/N). |X[n]| is the stem height, arg X[n] is the handle angle. The FFT is just a fast (O(N log N)) way to compute it. Synthesis and analysis are exact inverses — nothing is lost either way.

Modulation — AM vs FM

AM multiplies a carrier by the message: multiplication in time = shifting in frequency, so the message reappears as two mirror sidebands at ωc±ωm (3 lines total). FM wobbles the carrier's frequency instead: even one sine message spawns an infinite Bessel-weighted comb Jₙ(β) of sidebands. That's why FM needs more bandwidth but keeps a constant envelope — noise that clips amplitude doesn't touch the information.

Where AI uses this

Convolution theorem: convolution in time = multiplication in frequency — the trick behind fast CNN layers and why filters are "frequency selectors". Transformer positional encoding is literally this app: position t is encoded as sin/cos(ωₙt) at geometrically spaced ωₙ, a Fourier basis for "where am I in the sequence". Fourier features / SIREN nets use sin(Wx+φ) activations so networks can learn high-frequency detail — a learned Fourier series. And spectral decay ⇄ smoothness (square vs triangle here) is the same idea as spectral bias: neural nets learn low frequencies first.
y(t) = 0.000   t = 0.00 rad
Power — computed two ways
Time domain  âŸ¨y(t)²⟩
0.0000
=
Frequency domain  Î£ ½Aₙ²
0.0000
✓ match
RMS0.0000
Peak0.0000
Crest factor—
Power by harmonic
Presets
DRAG THE SPECTRUM STEM FOR AMPLITUDE · DRAG THE HANDLE FOR PHASE
PROJECT: LIGHTSTRUC AISHEET: TOOLS · FOURIER SERIESSOURCE: fourier-series.htmlREV 2.1