# time domain and fft correlation paradox

Started by June 17, 2005
```"Thomas Richter" <thor@math.tu-berlin.de> ha scritto nel messaggio
news:d92djc\$2v2\$1@mamenchi.zrz.TU-Berlin.DE...
> tru wrote:

[omissis]

> Here's why: Consider the original signals A and B, and modified signals
>
> A'(x) := A(x) + c
> B'(x) := B(x) + c
>
> where c is a constant. Would you agree that the correlation between
> A and B should give the same result as the correlation between A' and B'?
> I would, at least. However, the presented formula doesn't, it isn't
> shift-invariant.
>
> Fix: Normalize input such that the average of A and B is zero.

Not always valid. When I did the Sodar experiment  that I cited in a my
previous post, I retained the mean value to obtain a significant
correlation. This had to be because what was correlated was not the
turbulence (zero averaged) of the vertical wind but the values of the wind
itself. Sometimes the constant matters.

Angelo

> It is also often useful to normalize the inputs such that their norm is
> one.
>
> So long,
> Thomas
>

```
```Hello Robert,

robert bristow-johnson a =E9crit :
>
>
>     C[n] =3D SUM{ A[j] * B[n-j] }          (summing over all j)
>             j
>
> is very similar to correlation, it is "convolution" and that is equivalent
> to
>
>     C[n] =3D IFFT( FFT(A[n]) * FFT(B[n]) )
>
> when you change B[n-j] to B[n+j], that imposes the conj() operator on the
> FFT of B[n].  it should work out to be the same.
>

Thank you for correcting the equation for convolution of my previous
post. I was confused, of course I should have written

c(x)=3Dsum[a(i)*b(x-i)]   //sum over i

Best regards,

Tilman JOCHEMS
http://mfj.chez.tiscali.fr/html/index_en.html

```
```
tru wrote:

> However this linear correlation thing is not reliable for anything.

Well, it may perhaps not have been useful in your application, but
to leap from there to say that it is not useful for *anything*
seems to be a bit too harsh... ;)

But I agree with your overall view. Test the method and see how
well it works in your application.

Rune

```