DSP TOOLBOX · MEASUREMENT

Measuring an Impulse Response

Previously we invented h[n]. Now we measure it. We send a known signal through a room, loudspeaker, processor or other system, record what comes back, and recover the system's impulse response.

The new idea is measurement — not new convolution maths. Once we have the measured IR, everything from the previous page still applies.

1. Why not just make a pop?

SHARP IMPULSE → ROOM / SYSTEM → RECORD THE RESPONSE → TRIM → IR

A balloon pop, clap or other short transient can approximate an impulse. It is wonderfully intuitive: excite many frequencies at once, then listen to what the system does after the event.

Why it works

A very short event contains energy across a broad range of frequencies. The recording reveals direct sound, reflections and decay.

Why we can do better

A real pop is not an ideal, spectrally flat mathematical impulse. Excitation and signal-to-noise ratio can be uneven — especially when we want a clean measurement across the whole audible range and deep into a reverb tail.

Instead of trying to create a perfect physical impulse, we can probe the system with a precisely known signal.

2. From a linear sweep to an exponential sweep

A sine sweep excites frequencies one after another. The important question is how frequency changes with time.

Linear
Equal change in Hz per second. Because the high-frequency range contains so many more Hz, the sweep traverses the low octaves very quickly.
Exponential
Equal frequency ratios take equal time. Each doubling — each octave — receives the same amount of sweep time.
20–40
40–80
80–160
160–320
320–640
640–1.28k
1.28–2.56k
2.56–5.12k
5.12–10.24k
10.24–20k
Teaching comparison only: the buttons above change the sweep trajectory shown in the visual explanation. The actual measurement sweep generated, played and downloaded below is always exponential / ESS.

Farina's swept-sine method: Angelo Farina's 2000 AES paper described an exponentially swept-sine technique for impulse-response measurement in loudspeakers, audio components and room acoustics. A further 2007 paper developed practical aspects of sine-sweep measurement, including signal-to-noise and pre-ringing considerations.

3. Build the measurement sweep

⚠ MONITORS DOWN. A full-range sine sweep can become surprisingly loud and uncomfortable. Sweep monitoring starts very low and is completely separate from the later snare/loop audition level. Increase it only if necessary.
Advanced measurement options
200 Hz
0 dB
ADVANCED: shelf off · 48 kHz · automatic peak protection ON

Automatic peak protection is always on. If shelf EQ would push the sweep above the selected file level, the whole sweep is attenuated so it cannot clip. This is optional excitation shaping, not part of Farina ESS. The exact shaped sweep is retained as the deconvolution reference.

READY · 20 Hz · 0.00 s

Waveform

Spectrogram / frequency through time

Why is the ESS a straight line? Frequency is shown on a logarithmic vertical axis, so an exponential sweep appears approximately as a straight diagonal. A linear-Hz sweep appears curved. The Linear / ESS buttons are a visual comparison only; the measurement file itself is always ESS. During playback the moving playhead shows the instantaneous ESS frequency.

4. Why exponential?

Equal time per octave

For an exponential sweep, the ratio between frequencies grows uniformly with time. 20→40 Hz takes the same time as 5→10 kHz.

f(t) = f₀ · (f₁ / f₀)^(t / T)

A known excitation

Because we know exactly what signal went into the system, we can mathematically remove that excitation from the recording and recover the response of the system itself.

known sweep x[n] → system h[n] → recording y[n] DECONVOLUTION: x[n] + y[n] → estimate h[n]

Farina's ESS method is particularly useful because, after the appropriate inverse/deconvolution process, nonlinear harmonic-distortion responses can be separated in time from the linear impulse response rather than simply being mixed into it.

5. Make the measurement

DOWNLOAD / PLAY SWEEP ↓ LOUDSPEAKER / ROOM / DEVICE UNDER TEST ↓ MICROPHONE / RECORDER / AUDIO INTERFACE ↓ RECORD THE COMPLETE SWEEP + TAIL
Record beyond the end of the sweep. If you are measuring a reverberant space, leave enough time after the sweep for the room to decay.

The playback loudspeaker, microphone, their positions and the recording chain are part of what you measure unless they are separately calibrated or compensated.

6. Load the reference and the recording

The deconvolver needs the exact sweep that was played and the recording made through the system. If you generated the sweep on this page, the current generated sweep can be used as the reference. A mono response produces a mono IR; a stereo response is deconvolved as independent left and right channels and produces a stereo IR.

REFERENCE: current generated ESS · RECORDING: not loaded

7. Deconvolve → recover h[n]

Pressing Deconvolve estimates the transfer function in the frequency domain, then transforms it back into the time-domain impulse response. This browser implementation uses regularised FFT deconvolution of the exact reference sweep and recorded response.

H[k] ≈ Y[k] X*[k] / ( |X[k]|² + ε ) then: h[n] = IFFT { H[k] }
Same destination, different route: Farina's classic ESS treatment can be expressed using an appropriately weighted inverse sweep. Here we use the exact known reference and perform the equivalent linear-system recovery in the frequency domain. The reference must match what was actually played.
WAITING FOR RECORDED RESPONSE

Energy decay / RT60

RT60: waiting for recovered IR · TRIM: waiting

The page estimates the late residual/noise floor first, removes its expected contribution from the Schroeder backwards integration, then fits only the useful decay region. Where possible it uses a T30-style fit (−5 to −35 dB), falling back to T20/T10 if necessary. If the recording does not contain a trustworthy decay range it reports RT60 as insufficient rather than inventing a value. The suggested trim follows the observed useful tail, keeps a short safety margin, then fades — RT60 is reported as a measurement, not treated as a hard cut point.

8. Verify the recovered IR

Do not stop at “the maths produced a waveform.” Audition it. Compare the recovered convolution against the system you measured and investigate repeatable differences.

-18 dB
20% wet
-12 dB

Sweep monitoring and IR auditioning use separate output gains. The audition level controls the snare/loop only; Wet Return Trim lets you balance unusually energetic recovered IRs without changing the IR file itself.

Practical note: a recovered IR may show a repeatable spectral difference from the original system. In practical work, corrective EQ can sometimes make the reproduction match more closely. That EQ is not an intrinsic part of Farina's ESS method; a mismatch is a reason to examine the sweep/inverse process, playback and recording chain, calibration, alignment and other measurement factors.

9. Export the measured impulse response

Channel format is preserved automatically: mono recording → mono IR; stereo recording → stereo L/R IR.

Previously: we invented h[n].
Here: we measured h[n].

Once it is an impulse response, the convolver does not care how we obtained it.

References / further reading

Farina, A. (2000). Simultaneous Measurement of Impulse Response and Distortion with a Swept-Sine Technique. 108th Audio Engineering Society Convention, Paper 5093.

Farina, A. (2007). Advancements in Impulse Response Measurements by Sine Sweeps. 122nd Audio Engineering Society Convention, Paper 7121.