# problem with fft on autocorrelation data

Started by March 31, 2007
```Hi all,

I am having problems with matlab fft on autocorrelation data.
When performing a fft on my normalised autocorrelation data
i got a imagnary part that is not equal to zero around x=0 and also at the
near end of the x-axis, but, in between all points are equal to zero.
Imagnary plot that i got looked like below,

Positive
value
|
x=0_______________|
|              x=end
Negative     |
value

The positive and negative values are too large to be ignored as compared
to
my real plot's value. And, fft of the autocorrelation data should be equal
to zero in the imagnary plot.

Anyone have any solutions or comments?

Thank You!

_____________________________________
Do you know a company who employs DSP engineers?
Is it already listed at http://dsprelated.com/employers.php ?
```
```On Mar 31, 12:17 pm, "acc" <etac0...@hotmail.com> wrote:
> Hi all,
>
>
> I am having problems with matlab fft on autocorrelation data.
> When performing a fft on my normalised autocorrelation data
> i got a imagnary part that is not equal to zero around x=0 and also at the
> near end of the x-axis, but, in between all points are equal to zero.
> Imagnary plot that i got looked like below,
>
>                                Positive
>                                value
>                              |
>            x=0_______________|
>              |              x=end
> Negative     |
> value
>
> The positive and negative values are too large to be ignored as compared
> to
> my real plot's value. And, fft of the autocorrelation data should be equal
> to zero in the imagnary plot.
>

How are you calculating your autocorrelation data?

--
Oli

```
```On Mar 31, 6:44 am, "Oli Charlesworth" <c...@olifilth.co.uk> wrote:

> How are you calculating your autocorrelation data?
>
> --
> Oli

I'm with Oli here.  By definition, autocorrelation must be
purely real for x=0.  So whatever you are computing is
not an autocorrelation :-).

Perhaps it's the novice mistake of forgetting a conjugation
somewhere?

Julius

```
```On 31 Mar, 13:17, "acc" <etac0...@hotmail.com> wrote:
> Hi all,
>
>
> I am having problems with matlab fft on autocorrelation data.
> When performing a fft on my normalised autocorrelation data
> i got a imagnary part that is not equal to zero around x=0 and also at the
> near end of the x-axis, but, in between all points are equal to zero.
> Imagnary plot that i got looked like below,
>
>                                Positive
>                                value
>                              |
>            x=0_______________|
>              |              x=end
> Negative     |
> value
>
> The positive and negative values are too large to be ignored as compared
> to
> my real plot's value. And, fft of the autocorrelation data should be equal
> to zero in the imagnary plot.

I would like to see some numbers for the imaginary vs real parts

Apart from that, a purely symmetrical autocorrelation sequence
will have an odd nomber of samples, whereas a lot of FFT
implementations require the number of data points to be a
power of 2. If you use such an implementation, the sequence
is not (numerically) symmetric and the result will not be
purely real.

Rune

```
```Hi all,

Thanks for all the suggestions, it took me a few days to locate my own
message. Am totally new to here was searching eagerly for my own message
under fft column. HAHA! Anyway thanks once again for the replies.

1) My auotcorrelations are computed from a data consist of x,y, by using
fortran program.
Where x=time and y=velocity and yy=the next velocity after a timestep.

Am building the auotcorrelation on the fluctuations by tau=1000

sumVar = sumVar + ((y)**2)   %this is for total sample length as in loop
sumVariance= sumVar + sumN   %sumN = total sample length
sumVarf = sumVariance - mean**2

acorsum = acorsum + (y-mean)*(yy-mean) %auotcorrelation
acorsum = acorsum /(sumN)      %sumN= totalsample - tau
sumTimef = acorsum / sumVarf   % Normalised autocorrelation

This is how i get my autocorrelation based on the fluctuations

In Matlab
I performed a fft(sumTimef) and compute fequency axes by 0:fn/tau:fn
Results that i got:

85.1781 + 0i
15.2218 - 24.8651i
10.2131 - 16.7117i
6.0774 - 13.2611i
5.789 - 10.7412i
4.5314 - 9.6015i

all the way till

0.4796 + 0i

all the way till

4.5314 + 9.6015i
5.789 + 10.7412i
6.0774 + 13.2611i
10.2131 + 16.7117i
15.2218 + 24.8651i

AS for getting the modulus of the fft(data) i can't remember why i
didn't perform one. Will check it out.