Re: finding periodicity in a set
- To: mathgroup at smc.vnet.net
- Subject: [mg39266] Re: finding periodicity in a set
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Fri, 7 Feb 2003 03:07:01 -0500 (EST)
- Organization: Universitaet Leipzig
- References: <b1t5bj$90v$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
- Sender: owner-wri-mathgroup at wolfram.com
Hi, and what is periodic on a linear function like xlist = 0.202+1.618(0.001 Random[ ] + Range[3, 17]) ? Fit[xlist, {1, x}, x] gives 3.43829 + 1.618 x and Fit[xlist, {1, x}, x] /. a_ + b_*x :> {Mod[a, b], b} {0.202285, 1.618} Regards Jens Scott A Centoni wrote: > > 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