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
- Follow-Ups:
- Re: finding periodicity in a set
- From: Matt Flax <flatmax@ieee.org>
- Re: finding periodicity in a set