Compute Transfer Function from FFT of Input and Output

1.4k Views Asked by At

I tried the method described in a previous answer (https://math.stackexchange.com/a/718856/451691) to compute the transfer function of a system I am studying, where:

In(t) = a(t); Out(t) = b(t)

I did as suggested below using a Scilab code:

Let A(f) and B(f) be the FFT's from a(t) respectively b(t).

Then you're supposed to take the inverse FFT from B(f)/A(f). It will result > in an array of real values that identifies the transfer function with respect to time.

But, when I multiply this array (that I call h) by the array of input values, the result is massively different from the output values I computed resolving the system's differential equations. In symbols:

h = IFFT(B(f)/A(f))

In(t)*h ~= Out(t)

What is wrong with this method?