AES-2id Signal Processing: Deconvolution, Windowing, and Truncation

|

TL;DR

AES-2id describes the signal processing chain for extracting impulse responses from recorded measurements. For swept sine, deconvolution uses the inverse filter method (Farina): convolve the recorded signal with the time-reversed, amplitude-compensated version of the excitation sweep. This is performed in the frequency domain: H(f) = Y(f)/X(f) where Y is the recorded spectrum and X is the excitation spectrum. The result is the room impulse response with harmonic distortion products appearing as separate pre-echoes. Windowing removes pre-echo artifacts and truncation handles the noise tail.

Deconvolution: Inverse Filter Method

For logarithmic swept sine excitation, the Farina inverse filter is the standard deconvolution approach:

  1. Generate the inverse filter by time-reversing the excitation sweep and applying amplitude compensation (6 dB/octave for logarithmic sweep)
  2. Convolve the recorded signal with the inverse filter (multiply spectra in frequency domain)
  3. The result is the impulse response, with harmonic distortion products appearing as discrete arrivals before t=0

The frequency-domain operation is: h(t) = IFFT[ Y(f) · X_inv(f) ] where X_inv(f) is the spectrum of the inverse filter.

Spectral Division Alternative

Direct spectral division H(f) = Y(f)/X(f) is mathematically equivalent but numerically less stable at frequencies where the excitation spectrum approaches zero. AES-2id recommends the inverse filter method or regularized spectral division (adding a small constant to the denominator) to avoid division-by-zero artifacts.

Harmonic Distortion Separation

A key advantage of logarithmic sweep deconvolution is that harmonic distortion products (H2, H3, etc.) appear as separate impulse responses at negative times — before the main impulse at t=0. The 2nd harmonic appears at t = -T·ln(2)/ln(f₂/f₁), the 3rd at t = -T·ln(3)/ln(f₂/f₁). This allows the linear impulse response to be extracted cleanly by windowing out the pre-echoes.

Windowing

After deconvolution, apply a window to isolate the usable impulse response:

  • Pre-window: Zero out everything before the direct sound arrival (removes distortion artifacts)
  • Post-window: Apply a fade-out where the impulse response meets the noise floor

The Lundeby algorithm automatically detects the intersection point between the decay curve and noise floor for optimal truncation.

Truncation

Truncation at the noise floor prevents noise energy from contaminating Schroeder integration. AES-2id recommends truncation at 10-20 dB above the noise floor, with a cosine-squared fade-out of 10-50 ms. Too-early truncation shortens the apparent RT60; too-late truncation adds noise energy that biases C80 and D50 calculations.

MLS Deconvolution

For MLS excitation, deconvolution uses circular cross-correlation: h = (1/N)·x ⊛ y, where ⊛ denotes circular cross-correlation and N is the MLS length. This is computed efficiently via FFT. MLS deconvolution does not separate harmonic distortion — it appears as raised noise floor.

SonaVyx Processing

The SonaVyx Rust DSP engine implements both Farina deconvolution (for swept sine) and circular cross-correlation (for MLS). The IR tool performs deconvolution automatically after capture, displaying the impulse response with INR quality assessment. For export formats, see file formats.

Try It Now

Open this measurement tool in your browser — free, no download required.

Open Tool

Last updated: March 19, 2026