# Low-pass filter
A **low-pass filter** is a [[Filter_(signal_processing)|filter]] that passes the part of a [[Signal|signal]] below a chosen cutoff frequency and attenuates the part above it, so that slow variation survives and fast variation is smoothed away. It is also called a high-cut or treble-cut filter, and is the mirror image of a high-pass filter, which keeps the fast part and discards the slow. The idea recurs at every layer of engineering: as a circuit of a [[Resistor|resistor]] and a [[Capacitor|capacitor]], as a running average down a column of numbers, and as a rule for keeping only the low bins of a [[Fourier_transform|Fourier transform]].
No physical or digital low-pass filter reaches that ideal exactly. A real filter is built from a finite number of energy-storing parts or stored samples, and how many it spends, its order, decides how close the response comes to a perfectly sharp cutoff, at the price of more components, more computation, or more ringing in time. [[Filter_design|Filter design]] is the discipline of choosing that trade rather than wishing it away.
The article's primary microsim, *Low-pass filter*, builds an exact maximally flat filter of adjustable order and lets the reader slide the cutoff across a five-decade Bode plot while a live two-tone scope shows a slow tone surviving and a fast one fading as the corner sweeps past it.
## Examples
Low-pass filtering shows up wherever the useful part of a signal is slow and the unwanted part is fast. In [[Acoustics|acoustics]] and audio electronics a low-pass filter is a hiss filter, or the low path that sends only the bass to a subwoofer while a matching high-pass filter sends the rest elsewhere; in photography and video the same idea, applied optically as a soft blur, keeps a lens from resolving detail finer than a sensor's grid can record. Every [[Analog-to-digital_converter|analog-to-digital converter]] needs a low-pass filter ahead of it, an [[Anti-aliasing_filter|anti-aliasing filter]], because a fast component the sampler cannot resolve reappears as a false slow one once it is sampled, and every [[Digital-to-analog_converter|digital-to-analog converter]] needs one after it, to smooth the staircase its samples produce back into a continuous wave. Away from electronics, a car's suspension is a mechanical low-pass filter that keeps the body from following every pebble in the road, and a seven-day moving average is a low-pass filter run down a spreadsheet column, built to keep the trend in a stock price or a case count while discarding the day-to-day jitter.
## Ideal and real filters
An ideal low-pass filter is a brick wall: unit gain and zero phase shift for every frequency below the cutoff, and nothing at all above it. Such a filter is not just difficult but impossible to build, since its [[Impulse_response|impulse response]] is a `sinc` function that stretches from negative to positive infinity in time, so that its output at any instant would depend on an input that has not happened yet. Every real filter trades that impossible sharpness for a transition band, a stretch of frequencies over which the gain falls gradually rather than at a single point, and for some ripple, a small departure from flatness in the band it passes or the band it rejects. A maximally flat design, the kind the engineer Stephen Butterworth described in 1930,[^butter30] gives up ripple in the passband entirely for the flattest possible response near zero frequency, at the cost of a gentler roll-off just past the cutoff than a design that tolerates ripple in exchange for a sharper knee. The sketch on this page builds exactly this maximally flat response, at an order the reader sets directly.
## Time response
For a first-order low-pass filter, the kind built from a single resistor and capacitor or a single stored sample, the response to a sudden step in the input is an exponential climb, `y(t) = 1 - e^(-t/tau)`, where the time constant `tau` sets the pace: after one time constant the output has covered 1 − e⁻¹, about 63 percent, of the distance to its final value, after three time constants about 95 percent, and after five about 99 percent.[^tib95] Raising the order steepens the [[Frequency_response|frequency response]] but complicates the step response: a maximally flat filter of order two or more can overshoot its final value briefly before settling, because its flat passband comes partly from a pair of complex poles that ring, gently, before the ringing dies away. The higher the order, for a fixed cutoff, the longer that settling takes, the price paid in time for a sharper cutoff in frequency.
### Step input response example
A cutoff of 1 kHz, the sketch's own default, sets a time constant `tau = 1/(2*pi*f_c)` of about 159 microseconds for the equivalent first-order stage. On that clock, the step response reaches 63 percent of its final value in about 159 µs, 95 percent in about 3`tau` ≈ 478 µs, and 99 percent in about 5`tau` ≈ 796 µs (derived from the formula above); a much lower cutoff of 100 Hz stretches every one of those times by a factor of ten, since `tau` scales as the reciprocal of the cutoff. The exact discrete-time version of the same update, `y[n] = y[n-1] + (x[n]-y[n-1])*(1-e^(-dt/tau))`, reproduces this curve sample by sample and is stable for any sampling interval `dt`, unlike a plain forward-difference approximation to the same differential equation, which can overshoot and even oscillate once `dt` is no longer small compared with `tau`.
## Frequency response
The [[Frequency_response|frequency response]] of a low-pass filter is the pair of curves that together say what the filter does to a sine wave at every frequency: how much it is scaled, the magnitude response, and how much it is delayed, the phase response. For the maximally flat design in the sketch, the magnitude falls to exactly 1/√2 of its low-frequency value, −3.01 [[Decibel|dB]], at the cutoff itself, for every order, which is why the cutoff is also called the −3 dB point regardless of how sharp the filter is, and it falls at −20 dB per decade for every pole, so a second-order filter rolls off at −40 dB per decade and a sixth-order one at −120 dB per decade above the corner. At the sketch's default cutoff of 1000 Hz and order 2, an 80 Hz tone passes through essentially unchanged while a 1200 Hz tone, only a little above the corner, is already cut to about 0.57 of its input amplitude, close to −4.9 dB, with a phase lag past 100 degrees.
A textbook figure of the same idea, built from a periodic rather than a single tone, sends a pulse train of period 1 ms through a first-order RC filter at cutoffs of 100 Hz, 1 kHz and 10 kHz: as the cutoff falls, the pulse's sharp corners round off first, since it is the pulse train's high harmonics that a low cutoff removes, while its average height never moves, because a low-pass filter always has unit gain at zero frequency.[^john119fig] A full [[Bode_plot|Bode plot]] of magnitude and phase together, on a logarithmic axis, is the everyday tool for reading off numbers like these at a glance.
## Difference equation through discrete time sampling
A continuous first-order low-pass filter obeys the [[Differential_equation|differential equation]] `RC*dy/dt + y = x`, and sampling the input and output every `dt` seconds turns it into a difference equation a computer can iterate. The exact version, found by solving the equation over one sample interval rather than approximating its slope, is `y[n] = a*y[n-1] + (1-a)*x[n]` with `a = e^(-dt/RC)`; this single-multiply, single-add rule is the discrete-time filter's entire memory, a [[Recurrence_relation|recurrence relation]] because each output feeds back into the next one.[^john118] As `dt` shrinks toward zero, `a` approaches 1 and the filter changes its output only a little each sample, matching the continuous circuit ever more closely; as `dt` grows toward `RC` itself, the filter forgets faster and departs from the circuit it models. Because `a` is always less than 1, this filter's gain at zero frequency is exactly 1 for any cutoff, so a low-pass filter never moves a signal's long-run average, only the fast part riding on top of it.[^john146]
### Error analysis
The exact update above is stable for every sampling interval, because `a = e^(-dt/RC)` always lies strictly between 0 and 1. A cheaper approximation, replacing `dy/dt` with the forward difference `(y[n+1]-y[n])/dt`, gives the simpler rule `y[n+1] = y[n] + (dt/RC)*(x[n]-y[n])`, but it degrades, then destabilises, as `dt/RC` grows: past `dt/RC = 2` the approximation overshoots and rings around a response that should never oscillate, and beyond that it diverges outright. A low-pass filter running on a slow microcontroller has a direct interest in the distinction: the exact update costs one exponential call, made once when the cutoff is set, in exchange for a filter that cannot go unstable no matter how coarsely it is clocked.
## Discrete-time realization
Three different digital filters can all serve as a low-pass filter, each generalising the recurrence relation above in a different direction: one keeps a single feedback term, one sums a finite window of inputs with no feedback, and one edits a block's spectrum directly.
### Simple infinite impulse response filter
The one-pole recurrence `y[n] = a*y[n-1] + (1-a)*x[n]` is the simplest possible [[Infinite_impulse_response|infinite impulse response]] low-pass filter and the discrete-time analogue of the RC circuit: its impulse response is `h[n] = (1-a)*a^n` for `n >= 0`, a geometric decay set by the same `a = e^(-dt/RC)` as the exact update, and its running cost is one multiply and one add per sample no matter how far back its memory reaches.
### Finite impulse response
A [[Finite_impulse_response|finite impulse response]] low-pass filter instead sums a fixed, finite window of past input samples against a set of weights, `y[n] = sum_k b_k*x[n-k]`, and carries no feedback: its impulse response is exactly the sequence of weights `b_k`, and is exactly zero outside that window. The plainest example is the moving average, every `b_k` equal to `1/N` over `N` taps, a low-pass filter because averaging a run of samples cancels a fast wiggle that changes sign from one sample to the next far more than it cancels a slow trend across the same window; the trade for its guaranteed stability and exactly linear phase is that it usually needs more taps than an infinite impulse response filter for the same sharpness of cutoff.
### Fourier transform
A third route uses the [[Fourier_transform|Fourier transform]] directly: transform a block of samples, zero or taper the high-frequency bins, and transform back. Because multiplication in frequency is [[Convolution|convolution]] in time, this is mathematically a finite impulse response filter as long as the block is finite, but it is a convenient way to build one when the cutoff must be exact in frequency rather than in the shape of its taps, and it is the approach that a whole bank of such filters, one per band, generalises into.
## Continuous-time realization
In continuous time the natural language for a low-pass filter is the [[Laplace_transform|Laplace transform]], which turns a filter's differential equation into an algebraic one. The [[Transfer_function|transfer function]] `H(s) = w_c/(s + w_c)` of a first-order low-pass filter, with `w_c = 2*pi*f_c`, has a single pole at `s = -w_c` on the negative real axis; evaluating it at `s = j*w` recovers the frequency response, since the imaginary axis of the `s`-plane is the set of steady sinusoidal frequencies. A maximally flat filter of order `n` places `n` poles evenly around a semicircle of radius `w_c` in the left half of the `s`-plane, all with negative real parts, which is what guarantees stability: a [[Pole–zero_plot|pole in the right half]] would mean a response that grows without bound rather than one that settles.
### Laplace notation
Written out for the sketch's default order of two, the denominator factors into a complex-conjugate pair of poles rather than two real ones, and multiplying the corresponding pair of first-order factors back together gives the standard second-order form `H(s) = w_c^2/(s^2 + sqrt(2)*w_c*s + w_c^2)`, whose damping ratio of `1/sqrt(2) ≈ 0.707` is exactly the value that makes a second-order filter maximally flat rather than peaked or overdamped. Raising the order keeps the poles on the same semicircle but spaces more of them around it, which is why a higher-order maximally flat filter is steeper without changing where the −3 dB point itself falls.
## Electronic low-pass filters
The most familiar low-pass filter is a physical circuit, and its order is set by how many energy-storing components it has: one makes a first-order filter, two a second-order filter, and so on, matching the order of the transfer function above and the number of poles it places in the `s`-plane.
### First-order passive
#### RC filter
A [[Resistor|resistor]] in series with a [[Capacitor|capacitor]] to ground is the archetypal low-pass filter: the capacitor's impedance falls as frequency rises, so more of the input divides across the resistor and less across the capacitor, giving `H(f) = 1/(1 + j*f/f_c)` with `f_c = 1/(2*pi*R*C)`.[^john118] It needs no power supply, and it is the building block the sketch's own model generalises to higher order.
#### RL filter
Swapping the capacitor for an [[Inductor|inductor]] in series, read across the resistor, gives the same first-order response with `f_c = R/(2*pi*L)`; inductors are bulkier and lossier than capacitors at these values, which is the practical reason the RC form is the more common of the two, despite the two circuits being equivalent in principle.
### Second-order passive
#### RLC filter
Adding an inductor and a capacitor to a single resistor gives a second-order filter whose response ranges from overdamped, sluggish but free of overshoot, through critically damped, to underdamped, where the output rings near the cutoff before settling; the sketch's own default corresponds to the one damping ratio, `1/sqrt(2)`, at which the response is as flat as a second-order filter can be made, with no peak at all.
#### Second-order low-pass filter in standard form
Every second-order low-pass filter, however built, can be written in the same standard form, `H(s) = wn^2/(s^2 + 2*zeta*wn*s + wn^2)`, where `wn` is the natural frequency and `zeta` the damping ratio; the same two parameters reappear in the dedicated [[Frequency_response|frequency response]] microsim on this portal, which sweeps `zeta` directly and shows the resonant peak grow once it drops below `1/sqrt(2)`.
### Higher order passive filters
Passive filters of order three and higher chain more capacitors and inductors in a ladder, alternating series and shunt elements; each added element gives roughly 20 dB per decade of extra roll-off, at the cost of another inductor, the bulky, lossy part of the design. Beyond a modest order, both the component count and the response's sensitivity to each part's exact value grow quickly, which is the practical ceiling on a purely passive design before an amplifier is added.
### First order active
Adding an amplifier to a passive stage frees a filter's response from the impedance of whatever load follows it, and lets it provide gain rather than only loss. The simplest active design follows the same one-pole response as the passive RC filter but places the resistor and capacitor around an operational amplifier, which isolates the cutoff from the load and can add passband gain at no cost to the roll-off; the price is a power supply and the amplifier's own bandwidth limit, which eventually overtakes the filter's roll-off at a frequency no purely passive filter would reach.
## Microsims
The page's primary microsim, *Low-pass filter*, builds an exact maximally flat response of adjustable order and draws it as a live Bode plot: a magnitude panel in decibels, a phase panel in degrees, and a two-tone time-domain scope that shows a slow tone and a fast tone passing through the same filter side by side. **f_c** sets the cutoff frequency on a logarithmic scale from 1 Hz to 100 kHz, default 1000 Hz; **order n** sets how many poles the filter uses, from 1 to 6, each one adding 20 dB per decade of roll-off past the corner; and a button cycles the scope's fast tone through 400, 1200, 4000 and 12000 Hz against a slow tone fixed at 80 Hz. The magnitude and phase curves are computed exactly, pole by pole, rather than from the order-one formula alone, so the phase panel stays honest even at high order.
*Try:* Leave the defaults, cutoff 1000 Hz and order 2 against a fast tone of 1200 Hz and a slow tone of 80 Hz, and read the sketch's own numbers: the 80 Hz tone passes at essentially full amplitude while the 1200 Hz tone is cut to about 0.57 of its input, close to −4.9 dB. Then drag the cutoff down past 1200 Hz and watch the fast tone fade out of the scope entirely, and raise the order to 6 and watch the same corner turn from a gentle slope into a wall.
A three.js companion on this page renders a first-order RC corner as a Bode plot, fixed at −3 dB at the corner and a −20 dB-per-decade slope beyond it.
## Wikipedia : Wikitube
**Strict pair:** [Wikipedia](https://en.wikipedia.org/wiki/Low-pass_filter) : [Wikitube](https://en.wikitube.io/wiki/Low-pass_filter)
Skeleton mirrored at revision 1375331859. Prose, emphasis and the microsims are Wikitube's own.
## See also
- [[Anti-aliasing_filter]]
- [[Frequency_response]]
- [[Filter_(signal_processing)]]
- [[Infinite_impulse_response]]
- [[Finite_impulse_response]]
- [[Transfer_function]]
- [[Digital_filter]]
- [[Impulse_response]]
- [[PORTAL_Signal_Processing]]
## References
Page numbers below are PDF pages of the open editions.
[^butter30]: Butterworth, S. "On the Theory of Filter Amplifiers." *Experimental Wireless and the Wireless Engineer*, vol. 7, 1930, pp. 536–541.
[^tib95]: Tiberius, C.; Mulder, M. *Engineering Signal Analysis: From Fourier to filtering: Theory*. 2026, p. 95 (PDF page): the step response of an exponential kernel, reaching 1 − e⁻¹ ≈ 0.63 of its final value at t = 1/α, drawn for α = 1 and 3 per second. Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/engineering-signal-analysis-from-fourier-to-filtering-theory . CC BY.
[^john118]: Johnson, D. *Fundamentals of Electrical Engineering I*. 2014, pp. 118–119 (PDF pages): the periodic RC response `y(t) = sum c_k*H(k/T)*e^(j*2*pi*k*t/T)` and the transfer function `H(f) = 1/(1 + j*2*pi*f*R*C)`, Eqs. 4.27–4.28. Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/fundamentals-of-electrical-engineering-1 . CC BY.
[^john119fig]: Johnson, D. *Fundamentals of Electrical Engineering I*. 2014, p. 119 (PDF page): Fig. 4.10, a 1 ms period pulse train filtered at cutoffs of 100 Hz, 1 kHz and 10 kHz. Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/fundamentals-of-electrical-engineering-1 . CC BY.
[^john146]: Johnson, D. *Fundamentals of Electrical Engineering I*. 2014, p. 146 (PDF page): because H(0) = 1, the output's average equals the input's average for every choice of cutoff. Open Textbook Library: https://open.umn.edu/opentextbooks/textbooks/fundamentals-of-electrical-engineering-1 . CC BY.
## External links
- Low-pass filter, live p5.js sketch: https://editor.p5js.org/sciencenibber/full/QxUuxNjdS
- Fork the sketch in the p5.js editor: https://editor.p5js.org/sciencenibber/sketches/QxUuxNjdS
<!-- Hubs: Signal_processing. Portals: PORTAL_Signal_Processing. Signal Processing portal wave 1 · 2026-09-17 · drafted. -->