|
|
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) So, use Signal, and remove your leading Abs.
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.
|
|