# Waterfall plot
A **waterfall plot** is a chart that shows a sequence of spectra (amplitude plotted against frequency) laid out like a stack of ridgelines receding into the distance, one ridge per moment in time or per some other swept quantity, such as a machine's rotational speed. Each ridge is an ordinary [[Frequency_domain|frequency-domain]] trace; what the plot adds is a sense of depth, built by nudging every later trace back and up and by letting the nearer ridges cover the ones further away, so a feature that persists across many spectra reads as a continuous ridge running off into the distance while a feature that appears only briefly reads as a single rise that comes up out of the terrain and sinks back into it.
The same three quantities can instead be drawn flat, as a [[Spectrogram]], with amplitude coded by colour or brightness rather than by height and hidden lines; the waterfall plot is the older, three-dimensional way of showing exactly the same information. This page carries a spectrum analyzer sketch: it sweeps a narrow filter across a span of frequencies and reports the power it measures, which is the single spectrum a waterfall display repeats and stacks moment after moment, and it lets a reader trade that filter's resolution bandwidth against how long a sweep takes and how deep the noise floor sits below the signals of interest.
## Uses
The clearest use is the one the sketch on this page is built around: an instrument reports a spectrum many times a second, and stacking those reports turns a signal that a single spectrum shows only as one snapshot into one that shows its whole history. Radio-spectrum monitoring, [[Sonar]] and pulse-Doppler [[Radar]] all rely on exactly this stacking: a tone that drifts in frequency — a Doppler-shifted echo, or an interfering carrier being retuned — draws a diagonal ridge across the plot rather than the single vertical spike it would be in one spectrum, and an operator reading a waterfall recognises the shape of that ridge, straight or curved or chirped, well before any one instantaneous spectrum would give it away.
Where the swept quantity is a machine's rotational speed rather than time, the same construction is usually called an order-tracking waterfall. The rotor's own turning frequency and its low multiples form a family of straight ridges called orders, fanning out from the origin because they are proportional to speed, while a resonance of the machine's structure instead forms a ridge that sits at one fixed frequency no matter how fast the shaft turns. Telling the two kinds of ridge apart — the ones that move with speed and the one that does not — is how the plot separates a forcing frequency from a structural response without a second, separate measurement of the structure alone. In turbomachinery this particular form is sometimes called a Campbell diagram, and its main job is to confirm that no structural-resonance ridge crosses an order ridge anywhere inside the machine's ordinary operating-speed range, since a crossing there would mean the machine resonates at a speed it is meant to run at continuously.
In loudspeaker measurement the third axis is often a short delay after an impulsive stimulus rather than an external variable at all: successive spectra are taken at increasing delays after the impulse, and a cabinet or driver resonance that keeps ringing after the main sound has passed shows up as a ridge that survives long after the direct sound beside it has decayed away. That is a way of finding exactly which frequencies a [[Loudspeaker]] keeps sounding after it should already have stopped, and it is read from the same kind of plot as the radar and vibration cases even though nothing here is literally a radio or a shaft.
The masking convention that gives a waterfall plot its sense of depth is also its chief limitation: a ridge sitting directly behind a taller, nearer one is simply not drawn, so a plot tuned to show one feature clearly can hide a smaller one right behind it. Rotating the viewpoint, thinning the nearer ridges to translucency, or falling back on the flat, colour-coded spectrogram for the same data are the usual ways around that trade-off, chosen according to whether the reader most needs the three-dimensional sense of a ridge's shape or the guarantee that nothing is hidden.
The third axis also need not advance in even steps. In a coast-down test, where a machine is switched off and its rotor slows under its own friction rather than being held at a fixed speed, the order ridges curve rather than run straight, and the curvature itself — how quickly the ridges sweep back toward lower frequency — is a direct picture of the deceleration rate, read off the plot without a separate tachometer trace alongside it.
Every ridge in a waterfall plot is itself computed the way any spectrum is: from a finite stretch of signal transformed into the frequency domain, with a bin spacing set by how long that stretch runs[^tib-bins]. That link between duration and detail is what the sketch's resolution-bandwidth control stands in for: two tones separated by less than roughly the reciprocal of the observation time merge into a single hump, they are only marginally split apart at twice that spacing, and their apparent positions stop drifting only once the window is several times longer still[^tib-res]. The same arithmetic, worked once per slice, sets how finely a waterfall plot can tell two nearby ridges apart at any one point along its depth axis. That limit is a specific case of a more general one: a signal cannot be sharply localised in frequency and in time at once, a fact signal processing usually meets as the time–frequency [[Uncertainty_principle]], and a waterfall plot is one way of looking directly at whatever compromise between the two the analyst has chosen when setting the length of each slice.
Two practical points carry over directly from that single-spectrum arithmetic. Tapering each segment with a [[Window_function|window]] such as the Hann function trades a wider central ridge for much lower ridges to either side of it, usually the right trade when a strong tone would otherwise leak sideways and bury a weak neighbour[^tib-hann]. Padding a segment with zeros before transforming it, on the other hand, draws a smoother-looking ridge without adding any frequency detail that was not already present[^tib-pad] — a distinction worth keeping in mind, because a smoother waterfall plot can look more resolved than it actually is.
How many ridges a waterfall plot can hold before it turns into visual noise is a practical limit as much as a mathematical one. Too few slices and a slow drift looks like a jump between one ridge and the next; too many, drawn too close together, and the near ridges bury so much of the far ones that the plot's whole advantage over a flat spectrogram — seeing a ridge's own shape, not just its colour — is lost. Software that draws waterfall plots for radio or audio work typically lets an operator set both the number of ridges kept on screen and how far apart they sit, which is a display choice rather than a change to any of the underlying spectra.
## Microsims
The carried sketch, spectrum analyzer, models a swept instrument rather than a single fast transform: a narrow filter is stepped across a span of frequency and the power passing through it at each step is drawn as the trace, so the picture is the true line spectrum smeared by the filter's own shape plus a noise floor. Two sliders set the filter's resolution bandwidth (RBW) and the background noise level; the sketch reports the sweep time and the displayed noise floor as numbers, both of which move whenever the resolution bandwidth does. Narrowing the filter lets two close tones separate and lowers the noise floor at the same time, because a narrower filter admits less noise power, but it also lengthens the sweep, since a narrow filter settles more slowly and the sweep must cross the same span in smaller, slower steps. In the sketch's own model the displayed floor is `DANL = N0 + 10*log10(RBW_Hz)`, so halving the resolution bandwidth buys about 3 dB less noise every time, while the sweep time it reports grows quadratically, `T_sweep ~ k*Span/RBW^2`, because a narrower filter both settles more slowly and must be stepped through more points to cross the same span. That quadratic cost, set against a merely logarithmic gain in noise floor, is the trade-off the sketch is built to make visible.
A three.js companion, built alongside the [[Spectrogram]] sim family, renders this same idea in the plot's proper three dimensions: spectra stacked in time as a field of ridged lines, the view this article is named for.
*Try:* Narrow the resolution bandwidth in the spectrum analyzer sketch until the two marked tones pull apart, then watch the sweep-time readout grow as the noise floor drops out from under them.
<!-- SIGSIM:BEGIN g35 — Signal Processing portal microsim (framework build, specs/sims/Waterfall_plot.json); do not hand-edit inside -->
**Microsim — three.js (Wikitube framework), pending deploy:** *Waterfall plot: spectra stacked in time as ridge lines* will play here once `https://wikitube-3d-microsims.netlify.app/signal/Waterfall_plot.html` is live.
<!-- pending: <div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/signal/Waterfall_plot.html" data-title="Waterfall plot"></div> -->
*Built from `MICROSIM_GUIDE/specs/sims/Waterfall_plot.json`; part of the [[Signal_processing]] set ([[PORTAL_Signal_Processing]]).*
<!-- SIGSIM:END -->
## Wikipedia : Wikitube
**Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Waterfall_plot) : [Wikitube](https://en.wikitube.io/wiki/Waterfall_plot)
Skeleton mirrored at revision 1369789168. Prose, emphasis and the microsims are Wikitube's own.
## See also
- [[Spectrogram]]
- [[Sonar]]
- [[Radar]]
- [[Short-time_Fourier_transform]]
- [[Window_function]]
- [[Spectral_density]]
- [[Loudspeaker]]
- [[Discrete_Fourier_transform]]
## References
Page numbers below are PDF pages of the open editions cited, not the printed textbook's own page numbers.
[^tib-bins]: Tiberius, C.; Mulder, M. *Engineering Signal Analysis: From Fourier to filtering: Theory*. 2026, pp. 129-133 (PDF pages). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/engineering-signal-analysis-from-fourier-to-filtering-theory . CC BY.
[^tib-res]: Tiberius, C.; Mulder, M. *Engineering Signal Analysis: From Fourier to filtering: Theory*. 2026, pp. 98-100 (PDF pages). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/engineering-signal-analysis-from-fourier-to-filtering-theory . CC BY.
[^tib-hann]: Tiberius, C.; Mulder, M. *Engineering Signal Analysis: From Fourier to filtering: Theory*. 2026, pp. 101-102 (PDF pages). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/engineering-signal-analysis-from-fourier-to-filtering-theory . CC BY.
[^tib-pad]: Tiberius, C.; Mulder, M. *Engineering Signal Analysis: From Fourier to filtering: Theory*. 2026, p. 144 (PDF pages). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/engineering-signal-analysis-from-fourier-to-filtering-theory . CC BY.
## External links
- Spectrum analyzer sketch (live): https://editor.p5js.org/sciencenibber/full/qrDfeNKk7
- Spectrum analyzer sketch (editor): https://editor.p5js.org/sciencenibber/sketches/qrDfeNKk7
<!-- Hubs: Signal_processing. Portals: PORTAL_Signal_Processing. Signal Processing portal wave 1 · 2026-09-17 · drafted. -->