Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: correlation function
Replies: 5   Last Post: Nov 27, 2012 3:34 AM

 Messages: [ Previous | Next ]
 Dana DeLouis Posts: 24 Registered: 11/18/12
Re: correlation function
Posted: Nov 27, 2012 3:34 AM

> korelacija1 = ListCorrelate[data, data, {1, 1}];
> korelacija11 = Abs[InverseFourier[Abs[Fourier[data]]^2]];

Oh! Me bad!! I see what you are doing.

I remembered when you said ".. I think I'll just use fourier transform method because it returns symmetric data (which is correct)

SetOptions[{Fourier,InverseFourier},FourierParameters->{1,-1}];

v=RandomInteger[{-9,9},8]
{-2,5,-4,-1,2,7,-5,-3}

ListCorrelate[v,v,{1,1}]
{133,-28,-48,-44,108,-44,-48,-28}

InverseFourier[Abs[Fourier[v]]^2] //Chop
{133.,-28.,-48.,-44.,108.,-44.,-48.,-28.}

%% == %
True

= = = = = = = = = =
HTH :>)
Dana DeLouis
Mac & Mathematica 8
= = = = = = = = = =

On Sunday, November 18, 2012 4:08:45 AM UTC-5, jure lapajne wrote:
> Hello,
>
> I'm having hard time calculating correlation (autocorrelation) function of
>
> two lists (list). I'm trying two different ways of calculating it. One way
>
> is to use fourier transform and second way is to use Mathematica's function
>
> ListCorrelate. I get different results but have no idea why. Here's my code:
>
>
>
> korelacija1 = ListCorrelate[data, data, {1, 1}];
>
> korelacija11 = Abs[InverseFourier[Abs[Fourier[data]]^2]];
>
>
>
> All elements of "data" are real. I have two Abs in second line because for some reason InverseFourier returns small imaginary parts - I know it shouldn't. It's probably only numerical error.
>
>
>
> Thanks for help.

Date Subject Author
11/18/12 Bob Hanlon
11/21/12 Dana DeLouis
11/23/12 Jure
11/24/12 Dana DeLouis
11/27/12 Dana DeLouis