MathGroup Archive 2003

[Date Index] [Thread Index] [Author Index]

Search the Archive

finding periodicity in a set


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