Cosmology
Matter Power Spectrum
One curve, P(k), encodes how clumpy the universe is on every scale at once — the backbone of modern cosmology
P(k) measures cosmic density fluctuations by scale: it rises as k, turns over at matter-radiation equality, then falls as k⁻³, carrying faint BAO wiggles.
- Large scalesP(k) ∝ k (small k)
- Small scalesP(k) ∝ k⁻³ (large k)
- Turnoverk_eq ≈ 0.015 h/Mpc
- BAO wigglesΔk ≈ 0.06 h/Mpc, r_s ≈ 147 Mpc
- Amplitudeσ₈ ≈ 0.81 (8 h⁻¹ Mpc)
- Primordial slopen_s ≈ 0.965 (≈ 1, Harrison-Zeldovich)
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.
One curve to describe the whole universe
Picture the universe as a lumpy field of matter — galaxies strung along filaments, vast empty voids between them, clusters where filaments cross. Now ask a deceptively simple question: how much of that lumpiness lives on each scale? How much structure is there in waves a hundred million light-years long, compared with waves a few million light-years long? The answer, for every scale at once, is encoded in a single function: the matter power spectrum, written P(k). It is, with no exaggeration, the most important measured curve in cosmology. The cosmic microwave background, galaxy surveys, weak gravitational lensing, and the Lyman-α forest are all different windows onto this one curve, and the standard ΛCDM model fits all of them simultaneously across five decades of scale.
The variable k is a wavenumber — large k means small scales, small k means large scales. P(k) is the variance of the density field's Fourier amplitude at that wavenumber. Plotted on log-log axes, P(k) has an unmistakable shape: it rises as k on the largest scales, bends over in a broad turnover, then falls as roughly k⁻³ on small scales, and along the way it carries a faint train of bumps — the baryon-acoustic oscillation wiggles. Every feature of that shape is a fossil of a specific moment in the early universe. Reading the curve is reading cosmic history.
How the spectrum is built
Start with the fractional density contrast at every point in space:
δ(x) = ( ρ(x) − ρ̄ ) / ρ̄
where ρ̄ is the mean cosmic density. Decompose this field into Fourier modes δ_k. The power spectrum is the variance of those amplitudes, averaged over all directions of k:
P(k) = ⟨ |δ_k|² ⟩
Because the early-universe fluctuations were (to exquisite precision) a Gaussian random field, P(k) contains all the statistical information about the linear density field — knowing P(k) is equivalent to knowing the full statistics. The observed P(k) is a product of two pieces:
P(k) = P_primordial(k) × T²(k) × D²(z)
= A_s · k^(n_s) × T²(k) × D²(z)
The primordial spectrum P_prim ∝ k^(n_s) comes out of inflation. A scale-invariant spectrum has n_s = 1 (the Harrison-Zeldovich value); inflation predicts a slight tilt, and Planck measures n_s ≈ 0.965 — a 5σ detection that the spectrum is not perfectly scale-invariant, one of inflation's cleanest confirmations. The transfer function T(k) records how each mode's amplitude was modified between horizon entry and today. The growth factor D(z) simply scales the whole thing up as gravity amplifies structure with time. All the interesting shape — the turnover, the k⁻³ tail, the BAO wiggles — lives in T(k).
Why it rises, turns over, and falls
The shape of T(k) is set by one pivotal event: matter-radiation equality, the moment around redshift z_eq ≈ 3400 when the energy density of matter first exceeded that of radiation. Before equality, the universe was radiation-dominated and density perturbations inside the horizon could not grow — radiation pressure stalled them. This is the Meszaros effect. After equality, matter dominated and perturbations grew freely under gravity.
- Large scales (small k): these modes were larger than the horizon at equality. They entered the horizon only after matter took over, so they never felt radiation pressure and kept their primordial amplitude. Here T ≈ 1 and P(k) ∝ k^(n_s) ≈ k.
- Small scales (large k): these modes entered the horizon while radiation still dominated and were frozen during the radiation era. The earlier a mode entered, the longer it was suppressed, so smaller scales lose more amplitude. The suppression scales as k⁻² in amplitude, giving T² ∝ k⁻⁴ and P(k) ∝ k^(n_s)·k⁻⁴ ≈ k⁻³ (with a slow logarithmic correction from the radiation era).
- The turnover: the peak of P(k) sits where these two regimes meet, at the equality wavenumber k_eq ≈ 0.015 h/Mpc — a physical scale of roughly 400 million light-years. It is the comoving Hubble horizon at z_eq, projected to today.
That single peak is therefore a direct measurement of when the universe stopped being radiation-dominated, which depends on the total matter density Ω_m h². Move k_eq and you change Ω_m h²; the spectrum is a scale that weighs the cosmos.
Worked example: the shape and the numbers
Let us put real numbers on the curve, using the Planck 2018 ΛCDM cosmology (Ω_m ≈ 0.31, Ω_b ≈ 0.049, h ≈ 0.67, n_s ≈ 0.965, σ₈ ≈ 0.81). The amplitude of P(k) at the present day peaks near the turnover at roughly:
k_eq ≈ 0.015 h/Mpc → P(k_eq) ≈ 2–3 × 10⁴ (Mpc/h)³ (the peak)
k = 0.001 h/Mpc (large scale) → P ∝ k → P ≈ 7 × 10³ (Mpc/h)³
k = 0.1 h/Mpc → P ∝ k⁻³ → P ≈ 7 × 10³ (Mpc/h)³
k = 1.0 h/Mpc (small scale) → P ∝ k⁻³ → P ≈ 4 × 10¹ (Mpc/h)³
From the peak at k_eq, increasing k by a factor of 10 drops P by a factor of about 10³ on the falling side — the steep k⁻³ slope. Decreasing k by a factor of 10 from the peak drops P by a factor of about 10 — the gentle k¹ rise. The asymmetry is the visual signature you cannot mistake: a slow climb on the left, a steep cliff on the right.
Now the BAO wiggles. The sound horizon at the baryon drag epoch is r_s ≈ 147 Mpc, so the fundamental wiggle spacing is:
Δk ≈ 2π / r_s ≈ 2π / (147 Mpc) ≈ 0.043 Mpc⁻¹ ≈ 0.06 h/Mpc
So as you sweep from k ≈ 0.05 to 0.3 h/Mpc you cross several wiggles, each only a few percent in amplitude — because baryons are only Ω_b/Ω_m ≈ 0.16 of the total matter, so they modulate but do not dominate the spectrum. Finally, σ₈ ≈ 0.81 fixes the overall height: it is the rms of δ smoothed in spheres of radius 8 h⁻¹ Mpc, the scale where fluctuations are of order unity and structure is just turning nonlinear today.
Regimes and variants of the spectrum
The clean P(k) above is the linear matter power spectrum — valid where δ ≪ 1. Several variants matter in practice:
- Linear vs. nonlinear: on small scales today (k ≳ 0.1–0.2 h/Mpc) gravitational collapse has driven δ ≳ 1, transferring power from large to small scales. The nonlinear P(k) lies above the linear prediction at high k. Codes like HALOFIT and the cosmic-emulator suites model this regime; it is where the bulk of weak-lensing signal lives.
- Dimensionless spectrum Δ²(k): many plots show Δ²(k) = k³P(k)/(2π²), the variance per logarithmic interval in k. In this form the rising and falling slopes become 4 and ≈ 1, and the curve grows monotonically toward small scales until nonlinearity — a useful complementary view.
- Real space vs. redshift space: galaxy surveys measure positions in redshift, so peculiar velocities distort P(k) anisotropically (the Kaiser effect on large scales, fingers-of-God on small scales). The measured redshift-space P(k,μ) must be modeled to recover the real-space spectrum and the growth rate fσ₈.
- Galaxy vs. matter: galaxies are biased tracers, P_gal(k) = b²·P_matter(k) on large scales, so a bias factor b must be fit. Weak lensing avoids this by measuring the matter directly.
- Warm dark matter and neutrino cutoffs: massive neutrinos free-stream and suppress small-scale power by roughly 8% per 0.1 eV of summed neutrino mass; warm dark matter would cut the spectrum off entirely above some k. The high-k tail is a sensitive particle-physics probe.
How we measure it, and what we find
No single instrument sees all of P(k); each probe covers a band of k and they overlap into one continuous curve:
- Cosmic microwave background (Planck): constrains the largest scales and pins the primordial amplitude A_s and tilt n_s from the acoustic peaks at z ≈ 1090.
- Galaxy redshift surveys (SDSS, BOSS, eBOSS, DESI): Fourier-transform the 3D galaxy map to measure P(k) on intermediate scales, where the BAO wiggles are cleanly detected and used as a standard ruler.
- Weak gravitational lensing (KiDS, DES, Euclid): map the projected matter directly, bias-free, constraining σ₈ and Ω_m on mildly nonlinear scales.
- Lyman-α forest: absorption along quasar sightlines probes the smallest scales (largest k), bounding neutrino mass and warm dark matter.
The headline result is that they agree. The 2005 detection of the BAO peak in the SDSS galaxy correlation function (Eisenstein et al.) and the simultaneous CMB measurement of the same sound horizon turned P(k) from theory into a precision standard ruler. The one live tension is the S₈ tension: weak-lensing surveys prefer S₈ = σ₈√(Ω_m/0.3) a few percent lower than the value the CMB extrapolates forward, a 2–3σ discrepancy that is either a systematic or a hint of new physics in how structure grows.
Feature-by-feature: where each part of P(k) comes from
| Feature of P(k) | k range (h/Mpc) | Scaling / value | Physical origin | Probe |
|---|---|---|---|---|
| Large-scale rise | k ≲ 0.01 | P ∝ k^(n_s) ≈ k | Modes entered horizon after equality; unsuppressed | CMB, large surveys |
| Turnover (peak) | k_eq ≈ 0.015 | P_peak ≈ 2–3 × 10⁴ (Mpc/h)³ | Comoving horizon at matter-radiation equality (z_eq ≈ 3400) | CMB + surveys |
| Small-scale fall | k ≳ 0.05 | P ∝ k^(n_s−4) ≈ k⁻³ | Meszaros suppression during radiation era | Surveys, Lyman-α |
| BAO wiggles | 0.05–0.3 | Δk ≈ 0.06; ~5% amplitude | Sound horizon r_s ≈ 147 Mpc frozen at recombination | BOSS, eBOSS, DESI |
| Amplitude (σ₈) | k ≈ 0.13 (8 h⁻¹ Mpc) | σ₈ ≈ 0.81 | Primordial A_s × growth to z = 0 | Weak lensing, clusters |
| Neutrino cutoff | k ≳ 0.5 | ~8% per 0.1 eV Σm_ν | Free-streaming of massive neutrinos | Lyman-α, lensing |
| Nonlinear excess | k ≳ 0.2 | P_NL > P_lin | Gravitational collapse moves power to small scales | Lensing, emulators |
Quantitative analysis: the Meszaros suppression
Why exactly does the small-scale slope come out near k⁻³? The argument is short. Consider a mode of comoving wavenumber k that enters the horizon at scale factor a_enter, when its wavelength equals the Hubble radius. During the radiation era, sub-horizon matter perturbations grow only logarithmically — effectively frozen — until equality at a_eq. A mode that entered earlier (larger k) sits frozen for longer.
The horizon scale grows with time, so the relation between entry time and wavenumber during radiation domination is a_enter ∝ 1/k. The growth a perturbation misses relative to a large-scale mode is the growth that would have occurred between a_enter and a_eq, which in the matter-era-equivalent scales as the ratio (a_enter/a_eq) ∝ 1/k². The transfer function therefore behaves as:
T(k) ∝ k⁻² (with a ln k correction) for k ≫ k_eq
P(k) = A_s · k^(n_s) · T²(k) ∝ k^(n_s) · k⁻⁴ ≈ k⁻³
With n_s = 0.965 the asymptotic slope is k^(0.965−4) = k^(−3.035), so "P ∝ k⁻³" is the leading behavior, slightly steepened by the small red tilt and slowly modified by the logarithm. On the large-scale side T → 1 and P → A_s k^(n_s) ≈ k. The whole curve is thus determined by three ingredients — the inflationary inputs (A_s, n_s) and the equality scale (set by Ω_m h²) — plus the baryon fraction that sets the wiggle amplitude. That four-parameter description fits data over five decades of scale, which is precisely why P(k) earns the title "backbone of cosmology."
Common pitfalls and misconceptions
- "Large k is large scale." Backwards. k is a wavenumber, k ∼ 2π/λ, so large k means small λ (small scales) and small k means large scales. The peak at k_eq ≈ 0.015 h/Mpc is a large-scale feature.
- Confusing the BAO wiggles with the CMB acoustic peaks. They are the same sound horizon seen in two fields: the CMB peaks are order-unity oscillations in the photon temperature on a 2D shell; the matter BAO wiggles are few-percent ripples on the 3D matter P(k). Same ruler, very different amplitude.
- Reading P(k⁻³) as a power law everywhere. The k⁻³ slope is only asymptotic, and only for the linear spectrum. The real curve curves continuously through the turnover, and on small scales today nonlinear growth lifts P(k) well above the linear k⁻³.
- Forgetting galaxy bias. Galaxy surveys measure b²P(k), not P(k). Quoting σ₈ from a galaxy survey without modeling bias gives the wrong amplitude; the bias degeneracy is broken with redshift-space distortions or lensing.
- Treating σ₈ as the amplitude "at" some k. σ₈ is an integral of P(k) over a top-hat window of radius 8 h⁻¹ Mpc, not the value of P at a single wavenumber. It is dominated by k ≈ 0.1–0.2 h/Mpc but mixes a range of scales.
- Assuming the turnover is easy to see. It sits at very large scales where cosmic variance is large and survey volumes are limited; the turnover was only marginally detected in galaxy surveys long after the BAO wiggles, and the CMB constrains the equality scale far more tightly.
Frequently asked questions
What is the matter power spectrum, in one sentence?
The matter power spectrum P(k) is the variance of the cosmic density field decomposed by spatial scale: P(k) = ⟨|δ_k|²⟩, where δ_k is the Fourier amplitude of the fractional overdensity δ = (ρ − ρ̄)/ρ̄ at wavenumber k. Large k means small scales, small k means large scales. A single plot of P versus k tells you how much structure exists on every scale at once — which is why it is called the backbone of cosmology.
Why does P(k) rise as k on large scales and fall as k⁻³ on small scales?
The shape is the primordial spectrum P_prim ∝ k^(n_s) (n_s ≈ 0.965) times the squared transfer function T²(k). Large-scale modes entered the horizon after matter-radiation equality and grew unimpeded, so T ≈ 1 and P(k) ∝ k. Small-scale modes entered during radiation domination, when radiation pressure stalled their growth (the Meszaros effect). They are suppressed by T² ∝ k⁻⁴, so P(k) ∝ k^(n_s)·k⁻⁴ ≈ k⁻³, with a slow logarithmic enhancement.
Where is the turnover and what sets it?
The turnover sits at the equality wavenumber k_eq ≈ 0.015 h/Mpc, a physical scale of roughly 400 million light-years. It is fixed by the comoving Hubble horizon at the moment of matter-radiation equality, z_eq ≈ 3400. Modes larger than that horizon (k < k_eq) keep the primordial slope; modes smaller than it (k > k_eq) were suppressed during radiation domination. The turnover thus measures the total matter density Ω_m h².
What are the BAO wiggles in the power spectrum?
Before recombination, photons and baryons were a single fluid driven by sound waves. At recombination (z ≈ 1090) the pattern froze into the baryons at the sound-horizon radius r_s ≈ 147 Mpc. In Fourier space this single length appears as a series of low-amplitude oscillations — the BAO wiggles — on the smooth P(k), with spacing Δk ≈ 2π/r_s ≈ 0.06 h/Mpc. The amplitude is only a few percent because baryons are about one-sixth of the total matter, but the spacing is a fixed standard ruler for measuring cosmic distances.
What is σ₈ and why does it normalize the spectrum?
σ₈ is the rms fractional density contrast in spheres of radius 8 h⁻¹ Mpc — the scale where structure is just becoming nonlinear. Mathematically σ₈² is an integral of P(k) weighted by a top-hat window of that radius. Because the primordial amplitude only sets the overall height of P(k), cosmologists quote σ₈ ≈ 0.81 (Planck 2018) to pin that height. Combined with the matter density it forms S₈ = σ₈√(Ω_m/0.3), which shows a mild 2–3σ tension between CMB and weak-lensing measurements.
How is P(k) actually measured?
From several probes that each cover a different range of k. The CMB (Planck) constrains the largest scales and the primordial amplitude and slope. Galaxy redshift surveys (SDSS/BOSS/eBOSS, DESI) measure P(k) on intermediate scales by Fourier-transforming the 3D galaxy map, correcting for galaxy bias. Weak lensing (KiDS, DES, Euclid) maps the projected matter directly without bias. The Lyman-α forest probes the smallest scales. They overlap and agree, tracing one continuous P(k) over roughly five decades in scale.
How does P(k) differ from the CMB angular power spectrum C_ℓ?
They are cousins describing different fields. P(k) is the 3D power spectrum of the matter density as a function of comoving wavenumber k. The CMB C_ℓ is the 2D angular power spectrum of temperature on the sky as a function of multipole ℓ. Both descend from the same primordial spectrum, but the CMB acoustic peaks are projected oscillations of the photon-baryon fluid on a single shell at z ≈ 1090, whereas the BAO wiggles in P(k) are the same physics on the 3D matter field at later times. The CMB peaks are order-unity; the matter BAO wiggles are only a few percent.