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