◀ Back to Theory of operation

The exponential sine sweep in practice

About this page. This is a short summary, in our own words, of a hands-on article: "How I was listening to a sine sweep all day long" by Mikhail Baranov (Medium, 2016), which walks through implementing Angelo Farina's exponential-sweep measurement end to end. All credit belongs to the original - read it there for the full story, code and plots. The underlying method is Farina's AES paper, referenced below.

The problem

A linear, time-invariant system - a room, an amplifier, a filter - is completely described by its impulse response[3]: what comes out when an infinitely short click goes in. Measuring it directly with a real click is hopeless (far too little energy), so the practical methods all play a long, energy-rich probe signal and mathematically compress the recording back into an impulse.

Why the exponential sweep wins

Farina's probe[2] is a sine whose frequency rises exponentially with time - the same signal as equation (9) of the generator chapter. Compared to noise-like probes (MLS and relatives) it delivers a substantially better signal-to-noise ratio for the same measurement time (the article[1] demonstrates a ~20 dB advantage in its test setup), and it has one almost magical property: harmonic distortion separates itself from the linear response. Because each frequency occurs at a known time, a distortion harmonic of the momentary tone arrives as if it belonged to a frequency the sweep reaches only later - after deconvolution, all distortion products land at negative delays, cleanly ahead of the linear impulse response, where they can simply be windowed away (or analysed on purpose).

The recipe

  1. Play the exponential sweep through the system and record the result.
  2. Build the inverse filter: the sweep reversed in time, with a gain tilt of −6 dB per octave to compensate for the sweep spending exponentially longer in the low octaves.
  3. Convolve the recording with the inverse filter. The result is the impulse response; a Fourier transform of it is the complex frequency response - magnitude and phase.

This is precisely the pipeline behind Phonalyser.web's frequency-response module, with one engineering refinement described in the generator chapter: the sweep is pre-rendered, so the deconvolution reference is identical, sample for sample, to what the DAC actually played.

References

  1. M. Baranov, "How I was listening to a sine sweep all day long", Medium, 2016 - the original article this page summarises.
  2. A. Farina, "Simultaneous measurement of impulse response and distortion with a swept-sine technique", 108th AES Convention, 2000 - the method itself.
  3. Wikipedia: Impulse response and Wikipedia: Deconvolution - background on the concepts.

◀ Back to Theory of operation