Waves & Oscillations
Dispersion Relation
How a wave's frequency depends on its wavelength
A dispersion relation is the function ω(k) that links a wave's angular frequency to its wavenumber — equivalently, how its frequency depends on its wavelength. From this single curve you read off the phase velocity (ω/k), the group velocity (dω/dk), and the rate at which a wave packet spreads (d²ω/dk²). When ω/k changes with k the medium is dispersive: colors of light, pitches of sound, and quantum de Broglie waves all march at different speeds, and a sharp pulse smears as it travels.
- Defining relationω = ω(k), with k = 2π/λ
- Phase velocityv_p = ω / k
- Group velocityv_g = dω / dk
- Light in vacuumω = c·k, v_p = v_g = 299,792,458 m/s
- Free quantum particleω = ℏk² / 2m, so v_g = 2·v_p
- Deep-water wavesω = √(g·k), so v_g = v_p / 2
Interactive visualization
Press play, or step through manually. The visualization is yours to drive — try it before reading on.
Watch the 60-second explainer
A condensed visual walkthrough — narrated, captioned, under a minute.
What the dispersion relation tells you
Every traveling plane wave can be written as a phase that advances in space and time:
ψ(x, t) = A · cos(kx − ωt)
Here k is the wavenumber (radians of phase per metre, k = 2π/λ) and ω is the angular frequency (radians of phase per second, ω = 2πf). A single plane wave can have any k you like, but the medium decides what ω goes with that k. That rule — the function ω(k) — is the dispersion relation. It is the fingerprint of the medium: give me ω(k) and I can tell you how any wave behaves in it without ever solving the underlying equation again.
Two velocities fall straight out of the curve. A single crest sits at constant phase kx − ωt, so it moves at the phase velocity
v_p = ω / k (slope of the line from the origin to the point on the curve)
A real signal is never a single wavelength; it is a packet built from a narrow band of wavenumbers. The envelope of that packet — where the energy and information actually live — moves at the group velocity
v_g = dω / dk (slope of the tangent to the curve at k)
If the curve is a straight line through the origin, the line-to-origin slope and the tangent slope are identical, so v_p = v_g and the medium is non-dispersive: a pulse keeps its shape forever. The moment the curve bends, the two slopes separate, and the medium disperses.
Phase velocity vs. group velocity
The cleanest way to see the split is to add two waves of nearly equal wavenumber, k ± Δk, and frequency ω ± Δω. The sum is a fast carrier wave modulated by a slow envelope:
cos((k−Δk)x − (ω−Δω)t) + cos((k+Δk)x − (ω+Δω)t)
= 2 · cos(Δk·x − Δω·t) · cos(kx − ωt)
└─ envelope ─┘ └─ carrier ─┘
The carrier crests move at ω/k = v_p; the envelope moves at Δω/Δk → dω/dk = v_g. Watch a wave packet on deep water and you will literally see crests being born at the back of the group, sprinting forward through it, and dying at the front — because there v_p is twice v_g.
| Quantity | Definition | What it physically moves |
|---|---|---|
| Phase velocity v_p | ω / k | An individual crest / the carrier |
| Group velocity v_g | dω / dk | The envelope — energy and information |
| Relation | v_g = v_p + k·(dv_p/dk) | Equal only when v_p is constant in k |
| Group velocity dispersion | d²ω/dk² (or β₂ in fibers) | Spreading / chirping of the packet |
A useful identity, equivalent to the relations above, is written in terms of wavelength: v_g = v_p − λ·(dv_p/dλ). When the phase velocity grows with wavelength (normal dispersion, dv_p/dλ > 0), the group lags the phase, v_g < v_p. When it shrinks with wavelength, v_g > v_p.
Canonical dispersion relations
Different physics gives different ω(k). Memorizing a handful of them lets you predict behaviour at a glance.
| System | Dispersion relation ω(k) | Character |
|---|---|---|
| Light in vacuum | ω = c·k | Linear — non-dispersive, v_p = v_g = c |
| Sound in air (low f) | ω = c_s·k, c_s ≈ 343 m/s | Nearly linear — non-dispersive |
| Light in glass | ω = c·k / n(ω) | n rises with ω → prism splits colors |
| Free quantum particle | ω = ℏk² / 2m | Quadratic — v_g = 2 v_p; packets spread |
| Deep-water gravity waves | ω = √(g·k) | v_p = √(g/k), v_g = ½ v_p |
| Shallow-water waves | ω = √(g·h)·k | Linear — non-dispersive, depth h sets speed |
| Cold plasma (EM wave) | ω² = ω_p² + c²k² | Cutoff: no propagation below ω_p |
| 1-D mass–spring lattice | ω = 2√(K/m)·|sin(ka/2)| | Periodic; flattens at zone edge |
| Relativistic de Broglie | (ℏω)² = (ℏck)² + (mc²)² | Massive field; v_p > c, v_g < c |
Notice the patterns. A relation that is linear through the origin (light in vacuum, sound, shallow water) is non-dispersive — every component travels together and pulses hold their shape. A relation that curves upward (the quantum particle, the plasma) makes higher-k components outrun lower-k ones, so packets broaden. A relation with a cutoff (cold plasma, waveguides) simply forbids propagation below a critical frequency — which is exactly why the ionosphere reflects AM radio but lets your GPS signal through.
Numerical examples
| Scenario | Numbers |
|---|---|
| Deep-water swell, λ = 100 m | k = 0.063 m⁻¹, v_p = √(g/k) ≈ 12.5 m/s, v_g ≈ 6.25 m/s |
| Electron, λ = 1 nm (de Broglie) | k = 6.28×10⁹ m⁻¹, v_g = ℏk/m ≈ 7.3×10⁵ m/s, v_p = ½ that |
| 1064 nm pulse in silica fiber | β₂ ≈ −28 ps²/km → 1 ps pulse over 100 km broadens by ~tens of ps |
| Ionospheric plasma, f_p ≈ 9 MHz | Waves below ~9 MHz reflected; above pass through to satellites |
| Crown glass, n at 486 nm vs 656 nm | n ≈ 1.522 (blue) vs 1.514 (red) → ~0.5% slower blue, prism fans light |
Why a wave packet spreads
Expand the dispersion relation around the packet's central wavenumber k₀:
ω(k) ≈ ω₀ + v_g·(k − k₀) + ½·β₂·(k − k₀)²
where v_g = dω/dk|₀ and β₂ = d²ω/dk²|₀
The first two terms simply translate the whole packet rigidly at v_g. The quadratic term — the group velocity dispersion β₂ — is the troublemaker: it makes each Fourier component arrive at a slightly different time, so a packet of initial width Δx broadens as it travels a distance L. For a Gaussian packet the width grows like √(Δx² + (β₂ L Δk)²). The bigger the curvature β₂ and the broader the band Δk, the faster the spread. This is precisely why a 1-picosecond laser pulse smears out in a kilometre of optical fiber, and why telecom engineers either operate near the fiber's zero-dispersion wavelength (~1.31 µm in standard silica) or splice in dispersion-compensating fiber with the opposite-sign β₂.
JavaScript — reading off the velocities
// Phase and group velocity from a sampled dispersion relation omega(k)
function phaseVelocity(omega, k) {
return omega / k; // slope of line to origin
}
function groupVelocity(omegaFn, k, dk = 1e-6) {
// central difference approximation of d(omega)/dk
return (omegaFn(k + dk) - omegaFn(k - dk)) / (2 * dk);
}
// --- Light in vacuum: linear, non-dispersive ---
const c = 299792458;
const lightOmega = k => c * k;
console.log(phaseVelocity(lightOmega(0.01), 0.01)); // 299792458
console.log(groupVelocity(lightOmega, 0.01)); // 299792458 (equal!)
// --- Free electron: omega = hbar k^2 / 2m -> v_g = 2 v_p ---
const hbar = 1.054571817e-34, m_e = 9.1093837e-31;
const electronOmega = k => hbar * k * k / (2 * m_e);
const k0 = 6.283e9; // ~1 nm de Broglie wave
const vp = phaseVelocity(electronOmega(k0), k0);
const vg = groupVelocity(electronOmega, k0);
console.log(vp.toExponential(2), vg.toExponential(2), (vg / vp).toFixed(2)); // ~3.6e5, ~7.3e5, 2.00
// --- Deep water: omega = sqrt(g k) -> v_g = v_p / 2 ---
const g = 9.81;
const waterOmega = k => Math.sqrt(g * k);
const kw = 2 * Math.PI / 100; // 100 m swell
console.log(phaseVelocity(waterOmega(kw), kw).toFixed(2)); // 12.49 m/s
console.log(groupVelocity(waterOmega, kw).toFixed(2)); // 6.25 m/s (half)
// --- Spreading of a Gaussian packet under GVD ---
// beta2 in SI s^2/m: 28 ps^2/km = 28 * (1e-12)^2 / 1e3 = 28e-27 s^2/m
function packetWidth(width0, beta2, L, dk) {
return Math.sqrt(width0 ** 2 + (beta2 * L * dk) ** 2);
}
const beta2 = 28e-27; // 28 ps^2/km, in s^2/m
console.log(packetWidth(1e-12, beta2, 100e3, 4e9)); // broadened pulse width (s)
Where dispersion relations show up
- Optics & photonics. Prisms, rainbows, chromatic aberration, and pulse stretching in fibers all follow n(ω); fiber-optic links are engineered around β₂.
- Quantum mechanics. The Schrödinger equation gives ω = ℏk²/2m, so every matter wave packet spreads — the reason a confined electron has a minimum kinetic energy.
- Solid-state physics. Phonon and electron band structures are dispersion relations ω(k) or E(k) over the Brillouin zone; their curvature sets effective mass and the speed of sound.
- Oceanography. ω = √(gk·tanh(kh)) explains why long swells outrun storm waves and arrive at distant shores first.
- Plasma & radio. The plasma cutoff ω_p reflects AM radio off the ionosphere and blacks out spacecraft on re-entry.
- Seismology. Surface (Rayleigh and Love) waves are dispersive; analysing their ω(k) reveals Earth's layered structure.
- Electronics. Waveguides and transmission lines have cutoff dispersion relations that fix which modes a cable can carry.
Common mistakes
- Confusing phase and group velocity. Energy and signals ride the group velocity dω/dk, not the phase velocity ω/k. A crest can move faster than the packet (water) or even faster than light (a massive field) without anything physical outrunning the group.
- Assuming a straight line. Only light in vacuum and idealised sound are truly linear. Treating glass, water, or a quantum particle as non-dispersive throws away the entire effect.
- Thinking superluminal group velocity breaks relativity. In anomalous-dispersion regions v_g can exceed c or go negative, but the signal front — the true information speed — never beats c.
- Forgetting the medium. ω(k) is a property of the medium, not the wave. The same source produces different shifts and speeds in air vs. water vs. glass because each has its own dispersion relation.
- Ignoring curvature. A pulse that holds its shape over a metre can smear over a kilometre. Spreading is controlled by d²ω/dk², which is invisible if you only look at v_p and v_g at one point.
- Mixing up k and λ trends. Larger k means shorter wavelength. "Normal dispersion" (index rising with frequency) corresponds to phase velocity falling as wavelength shortens — keep the direction straight.
Frequently asked questions
What is a dispersion relation?
A dispersion relation is the function ω(k) that ties a wave's angular frequency ω to its wavenumber k (or equivalently frequency to wavelength). It encodes everything about how a medium carries waves: ω/k is the phase velocity, dω/dk is the group velocity, and d²ω/dk² controls how fast a pulse spreads. Light in vacuum has ω = ck (non-dispersive); water, glass, plasmas, and quantum particles do not.
What is the difference between phase velocity and group velocity?
Phase velocity v_p = ω/k is the speed of a single crest. Group velocity v_g = dω/dk is the speed of the envelope — the wave packet that carries energy and information. In a non-dispersive medium they're equal. In a dispersive one they differ: deep-water waves have v_g = v_p/2, so crests run forward through the group twice as fast as the group itself moves.
Why does a wave packet spread out?
A packet is built from a band of wavenumbers around some central k₀. If the dispersion relation is curved (d²ω/dk² ≠ 0), each component travels at a slightly different group velocity, so the packet broadens as it propagates. This group velocity dispersion is why an optical pulse stretches in a fiber and why you must compensate it with engineered fibers or gratings.
Is the dispersion relation always linear?
No. ω = ck (light in vacuum) and ω = c_s·k (sound in air, to good approximation) are the linear, non-dispersive cases. But a free quantum particle has ω = ℏk²/2m (quadratic), deep-water gravity waves have ω = √(gk), a cold plasma has ω² = ω_p² + c²k², and waves on a discrete lattice follow ω = 2√(K/m)·|sin(ka/2)|. Each curve makes its medium disperse differently.
Can group velocity exceed the speed of light?
Near a sharp absorption line the dispersion relation can become so steep that the computed group velocity exceeds c — or even goes negative — a regime called anomalous dispersion. This does not violate relativity, because no information rides the packet's peak there; the true front of a signal never travels faster than c. Group velocity only equals signal speed in transparent, normally dispersive regions.
Why is a prism able to split white light?
Glass has a dispersion relation in which the refractive index n(ω) rises with frequency, so blue light (higher ω) travels slower and bends more than red. The phase velocity c/n differs by color, so the prism fans white light into a spectrum. This frequency-dependent index is the everyday face of the dispersion relation.