# FFT frequency-magnitude not correct when a positive gain EQ point is applied

I have a measurement system, which applies a log sine sweep as stimulus to a DUT and records the return signal.

I then extract the impulse response, and perform an FFT on this to examing phase and magnitude in the frequency domain of the device. In this scenario, I have an audio interface connected to my computer, the output goes to an audio processor, where I have a single EQ filter, and the output back to my audio interface.

When I measure the device with no EQ inserted, I am given a flat response in both phase and magnitude. If I give the EQ point negative gain, I see the filter as expected. If I give the EQ positive gain, the phase looks correct, however the magnitude seems smeared over several bins.

Below is the measurement with the EQ point just above 1k.

Below is the same EQ point but boosted:

I have tried several measurements, including averaging across 3 measurements, and the result is the same, which leads me to think my methodology is incorrect.

1. I have the two audio signals. (one my original stimulus, and one the recorded return signal)

2. I get the impulse response by performing a forward FFT on each signal, then dividing the referenceFFT by the recordedFFT. Finally I perform an inverse FFT to get back to the time domain, giving me my impulse.

3. To get the magnitudes, I window the impulse response, and then perform a forward FFT on this. I then use:

$$\text{mag} = 20 \log_{10} \left(\sqrt{\Re^2 + \Im^2}\right)$$

for each complex result to give me my magnitude in dB.

Does anyone know why I cannot detect positive EQ correctly? and if so, how I rectify this?

• dunno what your EQ is. – robert bristow-johnson Nov 9 '19 at 7:51
• I missed this, The DUT is a processor which measures correctly using other applications. The EQ filter is correct in the top screenshot, a filter with a tight Q of 6, and gain of -20dB at 1050Hz. In the second screenshot, all that has changed is the gain is now +20dB. However as you can see, this measures a very wide filter that is nowehere near +20dB. Other applications measure the correct version which should just be a gain inversion of the first screenshot filter. – samp17 Nov 9 '19 at 9:38
• How long is your sweep? The impulse response for this filter will be pretty long, so to avoid smearing, your sweep might need to be fairly slow. – Bob Nov 10 '19 at 4:08