Re: correlation function

• To: mathgroup at smc.vnet.net
• Subject: [mg128703] Re: correlation function
• From: Bob Hanlon <hanlonr357 at gmail.com>
• Date: Sun, 18 Nov 2012 17:15:41 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-newout@smc.vnet.net
• Delivered-to: mathgroup-newsend@smc.vnet.net
• References: <20121118085638.5969C6A26@smc.vnet.net>

Use ListConvolve

data = RandomReal[1000, RandomInteger[{20, 50}]];

n = Length[data]

41

Simplify[InverseFourier[Fourier[data]^2] ==
ListConvolve[data, data, {1, 1}]/Sqrt[n]]

True

Bob Hanlon

On Sun, Nov 18, 2012 at 3:56 AM, jure lapajne <lapajne.jure at gmail.com> 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.
>

• Prev by Date: Re: correlation function
• Next by Date: Re: Subscript on plus expression
• Previous by thread: correlation function
• Next by thread: Re: correlation function