This method, known as swept-sine, log-chirp, swept-tone, or sine sweep uses an increasing frequency sinusoid to stimulate an acoustic device under test. The response is processed to compress the response to an impulse response. This method is robust against noise, time variance, and weak nonlinearities.
% SYNTHSWEEP Synthesize a logarithmic sine sweep.
% [sweep invsweepfft sweepRate] = synthSweep(T,FS,f1,f2)
% generates a logarithmic sine sweep that starts at frequency f1 (Hz),
% stops at frequency f2 (Hz) and duration T (sec) at sample rate FS (Hz).
% EXTRACTIR Extract impulse response from swept-sine response.
% [irLin, irNonLin] = extractIR(sweep_response, invsweepfft)
% Extracts the impulse response from the swept-sine response. Use
% synthSweep.m first to create the stimulus; then pass it through the
% device under test; finally, take the response and process it with the
% inverse swept-sine to produce the linear impulse response and
% non-linear simplified Volterra diagonals. The location of each
% non-linear order can be calculated with the sweepRate - this will be
% implemented as a future revision.