Given $A$ is an input signal and $B$ is an output signal:

I know that the frequency response function (FRF) is defined as the Cross Power of $A$ and $B$ divided by the Auto Power of $A$.

Logic tells me I should be able to get the same results using FFT of both signals by taking $\cfrac{\texttt{FFT}(B)}{\texttt{FFT}(A)}$

When I do this and compare results between using $\cfrac{\texttt{cross}(A,B)}{\texttt{auto}(A)}$ and $\cfrac{\texttt{FFT}(B)}{\texttt{FFT}(A)}$, I get nearly the same FRF result... magnitude is the same but the phase is inverted (i.e. the real parts of both calculations are identical, but the imaginary parts are opposite.)

Any thoughts on why?

  • $\begingroup$ I am not 100% sure what you mean by cross, since a cross-product can only be applied to vectors in 3D. As far as I know the crosspower would be defined as $B\bar{A}$, where $\bar{A}$ is the complex conjugate of $A$ (in frequency domain). Maybe you are looking at the wrong half of the FFT, since it also gives values for negative frequencies, which is equal to the complex conjugate of the positive frequency when the time domain signal is real. $\endgroup$
    – fibonatic
    Feb 19, 2015 at 4:36

2 Answers 2


short answer

The reason the phase is reversed is because you are computing $$\frac{\texttt{cross}(AB)}{\texttt{auto}(A)}$$ when you should be computing $$\frac{\texttt{cross}(BA)}{\texttt{auto}(A)}$$

long answer

The FRF defined by the OP is a often-used estimator of the true frequency response of a LTI system.

In a practical measurement scenario, there is always some noise (at least in the measured output), which is problematic if one is to use a straight-forward frequency-domain ratio such as $H = Y/X$, $Y$ being the noisy output and $X$ the perhaps-noisy input.

One way to mitigate the effect of noise in the output is to use transfer function estimators. A straight-forward one is: $$\tilde{H}(\omega) = \frac{P_{yx}(\omega)}{P_{x}(\omega)}$$ where $P_{yx}(\omega)$ is the Cross Power Spectral Density of $x$ and $y$ and $P_{x}(\omega)$ is the Power Spectral Density of $x$. These can be computed in many different ways, such as the Welch method.
Notice the order $_{yx}$ in $P_{yx}$ for the CPSD (see short answer above).

So, why do we use this estimator?

  • In Frequency domain, we have: $$Y = X\cdot H$$ so you'd be tempted to simply re-arrange to get the frequency response: $$H = \dfrac{Y}{X}$$ This is problematic if there's noise $N_0$ in the output: the resulting estimate is: $$\tilde{H} = \frac{Y+N_0}{X} = H + \frac{N_0}{X} = H+\frac{1}{\texttt{SNR}}$$ The lower the $\texttt{SNR}$, the higher the estimator's bias.

  • Here comes the frequency averaging estimator: Let's look at the definition of the Cross Power Spectral Density: \begin{align} P_{yx} &= \mathbb{E}\left[ \overline{X}\cdot(Y+N_0) \right]\\ &= \mathbb{E}\left[ \overline{X}\cdot Y + \overline{X}\cdot N_0\right]\\ &= \mathbb{E}\left[ \overline{X}\cdot HX + \overline{X}\cdot N_0\right]\\ &= H\cdot\mathbb{E}\left[\overline{X}X\right] + \mathbb{E}\left[\overline{X}\cdot N_0\right]\\ &= HP_{x} + \mathbb{E}\left[\overline{X}\cdot N_0\right] \tag{1} \end{align}

  • Assuming the noise in the output, $N_0$, is un-correlated with the input, we have $$\mathbb{E}\left[\overline{X}\cdot N_0\right] = 0$$ so (1) becomes: $$P_{yx} = HP_{x}$$ and we get $$H = \frac{P_{yx}}{P_{x}} = \tilde{H} $$ i.e., the estimator is perfect.

Of course this is just theory, since the Expected Value Operator $\mathbb{E}$ is a statistical operator based in infinite time. In a practical measurement scenario (finite time, noisy), the cross term $\overline{X}\cdot N_0$ is never actually $0$, but by using frequency averaging (Welch's method) to compute $P_{yx}$, the cross term $\overline{X}\cdot N_0$ does go towards 0 since $X$ and $N_0$ are un-correlated, resulting in a better estimate of $H(\omega)$ than simply dividing the output spectrum by the input spectrum.

Note: When the noise is in the input, and un-correlated with the output, the estimator should be: $$\tilde{H}(\omega) = \frac{P_y(\omega)}{P_{xy}(\omega)}$$


This is only 8 years late, but the calculations above are different.

  1. Crosspower of AB / Autopower (AA)

  2. FFT(B)/FFT(A) is effectively (BB)/(AA) or autopower (B)/autopower(A)

I believe if you look at how Fast Fourier Transforms, or in this case more likely Discrete Fourier Transforms (on a computer) are calculated, you will see that the amplitude is effectively squared, so AA or BB


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.