finding periodicity in a set

• To: mathgroup at smc.vnet.net
• Subject: [mg39250] finding periodicity in a set
• From: Scott A Centoni <scentoni at stanford.edu>
• Date: Thu, 6 Feb 2003 03:07:01 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```I have a list of coordinates where I want to find the period and offset
(modulo the period).  To illustrate, let's create the fake data set

xlist = 0.202+1.618(0.001 Random[ ] + Range[3, 17])

I want a function that will return

periodicity[xlist]

{1.618,0.202}

_pace_ an error in the third decimal place.  Note that the order of the
data in the list is irrelevant; it's to be considered a set, not a vector.

My first thought is to turn this into a sum of delta functions

xfunc = Plus@@(DiracDelta[x-#]&/@xlist)

and then Fourier transform this

kfunc = FourierTransform[xfunc,x,k]

and find the first nontrivial peak.  Does someone have a better way?  Or
if not, what's the "best" way of locating the peak?

Thanks,
Scott

```

• Prev by Date: Re: Complex root finding
• Next by Date: spline derivatives
• Previous by thread: Re: Trouble with Integrate
• Next by thread: Re: finding periodicity in a set