If I take the Fourier transform of data $x \pm \sigma$, is there a standard approach to what the error in the outputs will be? Would the best way be a direct evaluation of the upper and lower bounds?

  • $\begingroup$ The Fourier transform is linear - the error in Fourier domain should thus be the Fourier transform of the error in x domain. $\endgroup$
    – AlexE
    Jan 25 '18 at 5:41
  • $\begingroup$ If sigma is understood as a spread or variance instead of as a function of x, you can use the Fourier transform's uncertainty relation. $\endgroup$
    – AlexE
    Jan 25 '18 at 22:11
  • $\begingroup$ @AlexE would you consider converting your comment into an answer? also, you might want to mention this post where this is demonstrated on a particular example with some python code. $\endgroup$
    – Anton Menshov
    May 19 '19 at 6:31

Assembled from comments of @AlexE:

The Fourier transform is linear, so the error in the Fourier domain is the Fourier transform of the error in the spatial (original) domain.

So, if $\sigma$ is understood as a variance spread not being a function of $x$, one can use the Fourier transform's uncertainty relation.

This StackOverflow post demonstrates this behaviour using Python code.

  • 2
    $\begingroup$ I don't think that appealing just to linearity is enough, shouldn't the conditioning / condition number be mentioned here? That said, the Fourier transform is unitary (condition number of 1) so I don't disagree with the conclusion. $\endgroup$ Jun 11 '19 at 19:42
  • $\begingroup$ @rchilton1980 I agree. I would be happy for a reference with some rigorous analysis that I can read without diving into deep derivations. $\endgroup$
    – Anton Menshov
    Jun 12 '19 at 21:22

I've pondered this question before. The best I can come up with is as follows.

The Fourier transform y = fft(x) can be expressed as some matrix, $X$, dot producted with $x$.

See scipy documentation examples for how to generate the Fourier matrix here

This matrix representation means that the Fourier transform can be thought of as a linear least squares problem. That is, the Fourier coefficients are the fit parameters. The problem of estimating the fit parameters' standard deviation has a known known solution.

See here the wikipedia article hereUnbiasedness and variance of $\beta$ for how to do so.

For the sake of completeness, the quantity on wishes to find is the standard deviation of the fit parameters, $\sigma_\beta$.

Using the wikipedia article above

$\sigma_\beta^2 =E[(\hat{\beta}-\beta)(\hat{\beta}-\beta)] = \sigma \sigma^T (X^T X)^{-1}$

Where $X$ is the fourier matrix.

Note that $\sigma \sigma^T$ is a covariance matrix, not a scalar. In your case, it will most likely be a diagonal matrix


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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