Wednesday, 9 July 2014

Valid dual FFT measurement

On several instances last week I have been talking to people how to acquire valid  dual FFT measurements.
It really stroke my how much miss understanding there still floats about, so here we go:
Crash course measurements in KBLsystems-style:

Dual FFT means we can finally get rid of that annoying pink/white noise at terrorising levels.
Just use your favorite music!
As long as it contains enough spectral content it will be a perfect source and you can use both eye and ear in your system tuning.
Keep a keen eye on your coherence tracer to see if your program material works.

Surely you can use the 'delay finder' function to find the overall time difference between the reference signal and the measurement signal, but be aware that all software will make this snap to the maximum of the impulse response which can be
a) quite challenging when the IR is smeared over time e.a. in a filtered sub respons
b)  will yield the 'wrong' phase response

Let me elaborate the latter:


This represents a close mic measurement of mid speaker. Clearly one can see the low end magnitude roll-off and it's associated phase behavior of a small speaker in a closed cabinet.
In the following picture the above graph shows  the IR with the delay finder nicely snapped to the maximum of the IR:

We will now show you why this is wrong.
The high end roll-off in magnitude which is (partly) due to the inductance of the voice coil should also find its counterpart in phase behavior. But in above graph one is to believed that this would not be the case.
Next picture is a simulation I made:

The black ine is the imported measurement and the red line is a constructed model based on this measurement.
The thin red line show the associated (min.) phase behavior.
So the measured phase should look like this. In fact the thin black line all ready shows the 'correct' trend.

Now how do we acquire this?
Adjust the delay finder by hand to the ONSET of the impulse response:

Valid measurement!
Now break your heads on what I 'm actually doing here <grin> ;)