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 viaX[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 combJₙ(β) 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 assin/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