# Wavelet transform
The **wavelet transform** analyzes a signal by correlating it against scaled and time-shifted copies
of a single, localized oscillating function called a mother wavelet, rather than against the endless
sinusoids a [[Fourier_transform|Fourier transform]] uses. Stretching the wavelet analyzes slow
variation at a wide, forgiving time resolution; compressing it analyzes fast variation at a narrow
one, so the transform reports not only which scales, or roughly which frequencies, are present in a
signal but approximately when each occurs.
The discrete form, built from dyadic scales and used throughout compression and filter-bank design, is
the [[Discrete_wavelet_transform|discrete wavelet transform]]; this article treats the continuous
transform directly, along with the wavelet series it is built from. The Wavelet transform sketch on
this page computes a continuous transform of a chosen test signal against a complex Morlet wavelet and
builds its scaleogram live, letting the reader drag the wavelet to change its scale and position over
a signal that can mix a sharp transient with a slow trend.
## Definition
A wavelet series expresses a square-integrable function as an orthonormal series generated by
translating and dilating a single mother wavelet. This article's closely related subject is the
continuous wavelet transform, the [[Integral_transform|integral transform]]
`X_w(a,b) = (1/sqrt(a)) * integral of x(t)*conj(psi((t-b)/a)) dt`, which correlates a signal x(t)
against copies of the mother wavelet psi scaled by a and shifted by b. The scale a stretches or
compresses the wavelet in time; because a wavelet oscillates a fixed number of times regardless of a,
stretching it lowers the frequency it responds to and compressing it raises that frequency, so a alone
sets the frequency the transform is sensitive to at a given point in the (a, b) plane, while b slides
that sensitivity along the signal's time axis. Discretizing a and b, typically on a dyadic grid where
each scale is half the one before it, gives the [[Discrete_wavelet_transform|discrete wavelet
transform]] used in compression and most digital filter-bank designs.
## Principle
Where a Fourier transform correlates a signal against sinusoids that extend across all time and so
reports only which frequencies are present, with no record of when, the wavelet transform correlates
it against copies of a wavelet that is localized in time and has, by construction, very little energy
far from its center. The result is a joint description over both time and scale: a large scale a
analyzes slow, low-frequency trends with a wide, forgiving time window, while a small scale a analyzes
fast transients with a narrow one, at the cost of a wider frequency response at that scale. This trade
is not new — any single window, wavelet or otherwise, occupies a fixed-area box in a time-frequency
plane, a limit related to the same [[Uncertainty_principle|uncertainty principle]] that bounds a
quantum particle's position and momentum — but a wavelet's box changes shape as its scale changes: tall
and narrow at small a, short and wide at large a, rather than keeping the one fixed shape a single
window of fixed length keeps at every frequency.
## Wavelet compression
### Method
Wavelet compression applies the transform, almost always in its discrete, dyadic form, through a bank
of digital filters that repeatedly splits a signal or image into a coarse approximation and a detail at
half the resolution, then splits the coarse part again at the next scale; this cascade is exactly a
[[Filter_bank|filter bank]]. Because a wavelet basis concentrates most of a natural image's or audio
signal's energy into a small number of large coefficients, with the rest close to zero, the transform
can be followed by [[Quantization_(signal_processing)|quantization]] that rounds small coefficients
toward zero and an entropy coder that spends few bits recording them, achieving
[[Data_compression|data compression]] with much less visible loss, for the same bit budget, than
discarding information directly in the original domain.
### Evaluation
#### Requirement for image compression
An image codec asks a compression wavelet for several properties at once: compact support, so the
filter's impulse response is short enough to compute quickly and does not smear a coefficient's
influence far from the edge or texture that produced it; enough vanishing moments that smooth regions
compress to almost nothing, leaving bits for genuine detail; and, ordinarily, symmetry, so the filter
does not shift different parts of the image by different amounts.
#### Requirement for shift variance and ringing behavior
An orthogonal wavelet transform is shift-variant: shifting the input by a single sample can rearrange
which coefficients are large, a poor property for a codec that must also tile a large image into
independently coded blocks. The same sharp transitions that give a wavelet filter good frequency
selectivity can also ring, producing a faint oscillation near a sharp edge once the finer coefficients
around it are quantized away, in much the same way a truncated Fourier series rings near a
discontinuity. Practical image standards typically respond by choosing a symmetric, biorthogonal filter
pair instead of a strictly orthogonal one, trading a little coding efficiency for less visible ringing.
#### Derivation of impulse response
A wavelet filter's impulse response is not chosen freely: it is derived from a two-scale relation that
expresses the scaling function associated with the wavelet as a weighted sum of shifted copies of
itself at half the scale, with the wavelet itself built from a related, high-pass combination of the
same coefficients. Solving that relation fixes the filter's taps, and different choices of how many
taps to allow, and how many vanishing moments to demand, give the different named wavelet families in
use.
### Limitations
No single wavelet is best for every signal: a family well matched to sharp edges is not the family
best matched to smooth gradients, and choosing badly gives worse compression than a well-chosen fixed
transform would. The transform is also more expensive to compute for a large image or a long
recording than a block transform of fixed size, and a large installed base of codecs and hardware
already built around other transforms has kept wavelet-based formats a minority choice even where they
compress better.
## Comparison with Fourier transform and time-frequency analysis
A plain Fourier transform of an entire signal reports which frequencies are present but not when; a
[[Short-time_Fourier_transform|short-time Fourier transform]] recovers timing by applying the same idea
section by section through a [[Window_function|window]] of one fixed length, which fixes the shape of
the resolution box at every analysis frequency. With a one-second window analyzing a 10 Hz tone, for
instance, a second tone only 1 Hz away is still merged into one peak, one 2 Hz away is resolved but
biased, and only past about 2.5 Hz of separation does a rectangular window read the pair
cleanly.[^tib98w] A second tone at only one quarter the amplitude of the first fares worse still,
staying hidden under the first tone's skirt at 1 Hz of separation and remaining visibly biased even at
2 Hz.[^tib100w] The wavelet transform instead keeps the resolution box's area fixed but lets its shape
adapt with scale: at high analyzed frequencies the effective window is short, giving sharp timing at
the cost of frequency resolution, while at low analyzed frequencies the window widens, trading timing
for the frequency resolution a plain Fourier transform would give. This is a constant-Q analysis: the
ratio between the analyzed frequency and the width of the response around it stays roughly constant
across scales, unlike a short-time Fourier transform's constant absolute bandwidth, which is why a
wavelet scalogram can show fine detail in the timing of a fast transient and fine detail in the
frequency of a slow oscillation on the same plot.
## Other practical applications
Beyond compression, the transform's ability to localize a signal in both time and scale suits it to
detecting brief events buried in a longer record: a click of static in an audio recording, a sudden
change in a biomedical signal, or the arrival of a seismic wave. Seismology was in fact among the
transform's earliest applications: Jean Morlet, a geophysicist, developed the sliding, scaled
correlation this article describes for analyzing seismic reflection data, and worked with the
physicist Alex Grossmann to place it on a formal mathematical footing.[^grossmann84] The same locality
makes the transform useful for denoising, since a signal's genuine structure often concentrates into a
few large coefficients at scales matched to its features while noise spreads thinly across all of
them, so coefficients below a threshold can be discarded with comparatively little damage to the signal
itself; and for analyzing signals, from [[Speech_coding|speech]] to vibration measurements, whose
frequency content genuinely changes over time in a way a single Fourier transform of the whole record
cannot show.
## Time-causal wavelets
A time-causal wavelet is built to depend only on a signal's past: its analyzing function is zero for
any argument corresponding to a future sample, so a transform built from it can run in real time,
updating each output the instant a new sample arrives rather than waiting for a symmetric neighborhood
of past and future values. This trades away the sharp, symmetric time localization an acausal wavelet
like the Morlet wavelet gets from looking equally forward and backward, in exchange for a transform
usable during a live measurement rather than only afterward, on a signal already fully recorded.
## Synchro-squeezed transform
The synchro-squeezed transform reassigns the energy already computed in a wavelet scalogram to a
sharper estimate of each component's instantaneous frequency, concentrating what is normally a smeared
ridge of energy across nearby scales into a thinner line closer to the true, possibly time-varying
frequency of the underlying signal. It was introduced as a wavelet-based alternative to empirical mode
decomposition for the same purpose: extracting a small number of clean, time-varying frequency tracks
from a signal whose components are not simple, fixed sinusoids.[^dlw2011]
## Microsims
The Wavelet transform sketch computes a continuous wavelet transform of a chosen test signal against a
complex Morlet wavelet and builds up its scaleogram, the plot of the transform's magnitude over time
and scale, as the calculation runs. Dragging the wavelet shown over the signal panel scales and slides
it, changing a and b directly and moving the corresponding point read out on the scaleogram; clicking
the signal control cycles through the available test signals. A diagnostics panel reports that the
product of the wavelet's time width and frequency width at the current scale stays fixed as a changes
even though the box's shape does not: narrow and tall at small scales, short and wide at large ones.
*Try:* Cycle to a signal with both a sharp transient and a slow trend and compare where each shows up
sharpest on the scaleogram, narrow in time near the transient and narrow in scale near the trend.
A sibling three.js build of [[Spectrogram|Spectrogram]] renders the same idea as a scalogram surface,
with short windows analyzing high frequencies and long windows analyzing low ones.
<!-- SIGSIM:BEGIN g35 — Signal Processing portal microsim (framework build, specs/sims/Wavelet_transform.json); do not hand-edit inside -->
**Microsim — three.js (Wikitube framework), pending deploy:** *Wavelet transform: constant Q - short wavelets high, long low* will play here once `https://wikitube-3d-microsims.netlify.app/signal/Wavelet_transform.html` is live.
<!-- pending: <div class="wt-sim" data-src="https://wikitube-3d-microsims.netlify.app/signal/Wavelet_transform.html" data-title="Wavelet transform"></div> -->
*Built from `MICROSIM_GUIDE/specs/sims/Wavelet_transform.json`; part of the [[Signal_processing]] set ([[PORTAL_Signal_Processing]]).*
<!-- SIGSIM:END -->
## Wikipedia : Wikitube
**Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Wavelet_transform) : [Wikitube](https://en.wikitube.io/wiki/Wavelet_transform)
Skeleton mirrored at revision 1363938745. Prose, emphasis and the microsims are Wikitube's own.
## See also
- [[Short-time_Fourier_transform]]
- [[Filter_bank]]
- [[Image_compression]]
- [[Discrete_wavelet_transform]]
- [[Fourier_transform]]
- [[Spectrogram]]
## References
[^tib98w]: 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.
[^tib100w]: Tiberius, C.; Mulder, M. *Engineering Signal Analysis: From Fourier to filtering: Theory*. 2026, p. 100 (PDF page). Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/engineering-signal-analysis-from-fourier-to-filtering-theory . CC BY.
[^grossmann84]: Grossmann, A.; Morlet, J. "Decomposition of Hardy Functions into Square Integrable Wavelets of Constant Shape." SIAM Journal on Mathematical Analysis, 1984.
[^dlw2011]: Daubechies, I.; Lu, J.; Wu, H.-T. "Synchrosqueezed Wavelet Transforms: An Empirical Mode Decomposition-like Tool." Applied and Computational Harmonic Analysis, 2011.
## External links
- Wavelet transform, live sketch: https://editor.p5js.org/sciencenibber/full/7uR8jbXWS
- Wavelet transform, editor fork: https://editor.p5js.org/sciencenibber/sketches/7uR8jbXWS
<!-- Hubs: Signal_processing. Portals: PORTAL_Signal_Processing. Signal Processing portal wave 1 · 2026-09-17 · drafted. -->