Propagating error through a Fast Fourier transform

107 Views Asked by At

I am trying to propagate the error associated with a Fast Fourier transform of $x_{n}$. I know the error (variance) for $x_{n}$. Then, I calculated the following quantity:

$$Y=Im\left ( i\omega FFT(x_{n})/length(x_{n}) \right )$$

I calculated the variance according to:

$$\sigma_{X_{k}}^{2}=\sum \frac{\sigma_{x_{n}}^{2}}{length(x_{n}))^{2}} $$

and then I think with propagation of error it should be

$$\sigma_{Y}^{2}=|i\omega|^{2}\sigma_{X_{k}}^{2}$$

but $\sigma_{Y}$ is a few orders of magnitude greater than $Y$, which makes me skeptical that I'm doing this correctly since the error for $x_{n}$ is an order of magnitude less than $x_{n}$. Is this truly how to propagate error through the FFT and then through this calculation for $Y$, or am I misunderstanding the propagation?

1

There are 1 best solutions below

3
On

Are you trying to find the variance of the error associated with the FFT of $x_n$?

It's best to do this starting from the DFT definition $y_k = \frac{1}{N} \sum_{n=0}^{N-1}x_n e^{-\frac{2\pi j k n}{N}}$. I am going to assume $x_n$ is zero mean to make the calculation simpler.

If we stack the signal $x_n$ into the vector $\pmb{x} = [x_0, \cdots, x_{N-1}]^\top$, and its DFT into the vector $\pmb{y} = [y_0, \cdots, y_{N-1}]^\top$, then we can write $\pmb{y} = \pmb{Wx}$ where $\pmb{W}$ is the $N \times N$ DFT matrix.

The sample-variance of $\pmb{y}$ is \begin{align} \frac{1}{N}(\pmb{y}^H \pmb{y}) &= \frac{1}{N} \sum_{k=0}^{N-1} |y_k|^2 \\ = \frac{1}{N}((\pmb{Wx})^H \pmb{Wx}) &= \frac{1}{N}(\pmb{x}^H \pmb{W}^H \pmb{Wx}) = \frac{1}{N^2}(\pmb{x}^H \pmb{x}) \end{align} This is because the DFT matrix is unitary, and $\pmb{W}^H \pmb{W} = \frac{1}{N}\pmb{I}$. Since the sample-variance of $\pmb{x}$ is $\frac{1}{N} (\pmb{x}^H \pmb{x})$, we can see that

\begin{align} \sigma_y^2 = \frac{1}{N} \sigma_x^2 \end{align}