Impulse response measurements

2006/08/10

To measure the impulse response of a noisy system, you don't want to just send an impulse and see what comes out. Instead, you will play a signal that has succifiently high energy (long instead of loud), record the outcome and deconvolve from it your original signal, giving you the impulse response.

Golay codes

I measured these impulse responses from the home audio system of my friend Mikko Nelo at his city flat (check the pic for an overview. There might have been a subwoofer somewhere too, but I don't remember...). Hehe, at least the bass is there. Miniature microphones were plugged into my ears, a minidisc recorder operated as a pre-amp and a laptop I borrowed from work as the player/recorder. A lengthy pair of Golay codes was used as the measurement signal because that way it was easy to deconvolve with existing tools. The following measurements are in binaural stereo 44100Hz 16bit WAV: ir_left.wav (158kB), ir_right.wav (112kB), ir_mono.wav (113kB). Here's a piece of music unprocessed/processed to demonstrate the use of the impulse responses: irtest.mp3 (559kB). Headphones required!

Chirp signals

Any signal with a perfectly flat frequency content can be deconvolved by convolving with its reverse. Chirp signals (a.k.a. frequency sweeps) made using IFFT can be perfectly flat in the periodic signal sense. Here is such a 65536-sample chirp: chirp64k.wav (WARNING: SOUNDS NASTY). It can be used to analyze up to one second impulse responses. You must play the chirp signal in a loop a few times, record the result, deconvolve, and pick one of the middle impulse responses. Using this method, I have made inverse filters for headphones, which can be used for example with the RealReverb plugin for WinAmp.