The formula
For the continuous Fourier transform, with X(f) the transform of x(t):
∫ |x(t)|² dt = ∫ |X(f)|² df
Reading: total energy computed in the time domain equals total energy computed in the frequency domain. The integral is over all time on the left, all frequency on the right.
For a Fourier series — a periodic signal built from harmonics with coefficients cₙ:
(1/T) ∫ |x(t)|² dt = Σ |cₙ|² (sum over all n)
Reading: the mean-square value over one period equals the sum of the squared magnitudes of the harmonics. Written with amplitudes instead of complex coefficients, a signal x(t) = A₀ + Σ Aₙ·cos(nω₀t + φₙ) has mean square A₀² + Σ Aₙ²/2.
For the DFT of N samples, X[k] = FFT(x[n]):
Σ |x[n]|² = (1/N) Σ |X[k]|² (both sums k, n = 0 … N-1)
Reading: sum of squared samples equals the sum of squared FFT bins divided by N. That 1/N is the whole ballgame on a bench — get it wrong and your energy is off by a factor of N.
Where you meet it
PSD measurements on a vibration test stand. A power spectral density plot claims to tell you how much energy sits in each frequency band. The reason you can trust that claim — the reason the area under the PSD curve equals the mean-square acceleration your accelerometer actually saw — is Parseval's theorem. Integrate the PSD across the band and take the square root and you get grms; that number had better match the RMS you read straight off the time record. When it doesn't, your window correction or your scaling is wrong, not the physics.
RF spectrum analyzer versus power meter. Point a spectrum analyzer at a signal, integrate the power across all the displayed bins, and you should land on the same total the broadband power meter reads. Parseval is the bookkeeping that says those two instruments have to agree. A mismatch is a resolution-bandwidth or noise-floor accounting error.
Filter design review board. When someone claims a filter "removes 90% of the noise energy," they are implicitly integrating
|H(f)|²·PSD(f)across the stopband and comparing it to the total. That energy argument only holds because the transform preserves energy in the first place.Data-acquisition sanity check. After an FFT, a quick Parseval check — sum the squared time samples, sum the squared bins, confirm the
1/Nrelationship — catches scaling bugs, dropped samples, and window-normalization mistakes before they end up in a report.
How it works
The deep reason is that the Fourier transform is unitary: it rotates a signal into a new set of coordinates (the frequency axes) without stretching or shrinking it. Rotating a vector changes its components but not its length. Energy is that length, squared. So energy is conserved for the same reason the length of a wrench doesn't change when you turn it in your hand.
The gotchas are almost all bookkeeping, not concept:
The normalization constant. Continuous transforms, Fourier series, and the DFT each carry the
2π,1/T, or1/Nfactor in a different spot depending on which convention your textbook or your software uses. NumPy'sfftputs the whole1/Non the inverse; MATLAB does the same. If your two sides don't match, you've almost certainly split that factor wrong. Verify it numerically once for your toolchain and write it down.One-sided versus two-sided spectra. Real signals have symmetric spectra, so half the energy sits at negative frequencies. A one-sided PSD folds that back by doubling every bin except DC and Nyquist. Double DC or Nyquist by mistake and you'll overstate energy at exactly the two bins people forget to check.
Windowing. Apply a Hann or flat-top window before the FFT and you've multiplied the signal by something less than one almost everywhere — you removed energy. To make Parseval balance you must divide by the window's mean-square value (the noise-power bandwidth correction). Skip it and your PSD area is low by a fixed, quiet factor.
Square-integrable only. The theorem needs the signal to have finite energy — formally, to be square-integrable (an L² function). A pure sine wave running for all time has infinite total energy, so you work with power (energy per unit time) instead, and the theorem carries over in its mean-square / PSD form. A step or a ramp that never settles doesn't have a clean Fourier transform at all; that's a limit of validity, not a bug in your code.
The mistake people actually make: they compare an RMS number from the time record against an FFT magnitude and expect them to match directly. They won't — one is energy, one is amplitude, and the window and normalization sit in between. Parseval tells you they can be reconciled, but only after you account for every constant.
A quick numerical check settles arguments. Take x[n] = eight random complex samples, run the FFT, and you'll find Σ|x[n]|² equals (1/N)Σ|X[k]|² to machine precision. Take x(t) = 3 + 2·cos(2π·5t): its mean square over a period is 3² + 2²/2 = 11, which is exactly what you get integrating the time signal directly. When the two sides agree, your scaling is right.
History
Marc-Antoine Parseval des Chênes (born 27 April 1755, Rosières-aux-Salines; died 16 August 1836, Paris) was a French mathematician who touched greatness exactly once and mostly by accident [1][2]. In a memoir dated 5 April 1799, working on the summation of infinite series, he wrote down the relation that now carries his name — and then declined to prove it, remarking that it followed obviously from a result of de Moivre [1][2]. His first version had trouble with imaginary parts that refused to cancel; he cleaned it up in a follow-up memoir dated 5 July 1801 [2]. He was a royalist in the wrong decade — jailed in 1792, later fled France over poetry he'd written against Napoleon — and he submitted only five papers to the Académie des Sciences, which turned down his membership all five times he was nominated [2]. He never once mentioned Fourier analysis or energy. The energy reading came later.
That reading arrived from two directions. John William Strutt, Lord Rayleigh (12 November 1842 – 30 June 1919), the physicist who would win the 1904 Nobel Prize for discovering argon, was deep in the problem of how energy distributes itself across the spectrum of radiation in the 1880s [3][4]. His spectral-energy work is why the identity is also called Rayleigh's energy theorem — the version an engineer actually cares about, where the squared magnitude is power. Then the Swiss mathematician Michel Plancherel (16 January 1885 – 4 March 1967) proved the fully general result in 1910, extending it to any square-integrable function and nailing down that the Fourier transform preserves the L² norm [5][6]. So the theorem an engineer scribbles on a whiteboard has three names stacked on it: Parseval stated the algebra and wouldn't prove it, Rayleigh gave it the energy meaning, and Plancherel proved it held wherever it needed to.
Related tools
- /tools/rms-peak
- /tools/db-converter
- /tools/thermal-noise-floor
- /tools/decibel-power-sum
- /tools/db-voltage-ratio
- /tools/rf-power-density
Sources
- https://en.wikipedia.org/wiki/Marc-Antoine_Parseval
- https://mathshistory.st-andrews.ac.uk/Biographies/Parseval/
- https://en.wikipedia.org/wiki/John_William_Strutt,_3rd_Baron_Rayleigh
- https://www.britannica.com/biography/John-William-Strutt-3rd-Baron-Rayleigh
- https://en.wikipedia.org/wiki/Plancherel_theorem
- https://mathshistory.st-andrews.ac.uk/Biographies/Plancherel/