Re: finding periodicity in a set
- To: mathgroup at smc.vnet.net
- Subject: [mg39283] Re: finding periodicity in a set
- From: Scott A Centoni <scentoni at stanford.edu>
- Date: Sun, 9 Feb 2003 04:50:32 -0500 (EST)
- References: <b1t5bj$90v$1@smc.vnet.net> <b1votq$pk5$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
The following response from Mihajlo Vanevic has solved my problem, and I
thought it would be helpful to others as well:
>Ok, now I get it... ;o)
>
>But if you know that your error is, say, less than 0.01,
>try this dirty (but rather fast) approach:
>
>In[]:=
>xlist = 0.202 + 1.618 Table[0.001 Random[] + Random[Integer, {3, 17}],
{100}];
>
>In[]:=
>error = 0.01;
>
>In[]:=
>xxlist = First /@ Split[Sort[xlist], #2 - #1 < error &];
>
>In[]:=
>Fit[xxlist, {1, x, x^2}, x]
>
>Regards,
> Mihajlo Vanevic
> mvane at EUnet.yu
> 2003-02-07
>
>**************************************************************
>* At 2003-02-07, 03:07:00
>* Scott A Centoni, scentoni at stanford.edu wrote:
>**************************************************************
>
>>Thanks for the responses! (Particularly from Matt Flax.) I see now
>>that my sample fake data set is misleading, I should have specified it
>>as
>>
>>xlist = 0.202 + 1.618 Table[0.001 Random[] +
>>Random[Integer,{3,17}],{100}]
>>
>>to make it crystal clear that no correlation between successive items in
>>the list is implied and that the order is completely irrelevant.
>>
>>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
>
>**************************************************************
>
>
>
>
>
- Follow-Ups:
- Re: Re: finding periodicity in a set
- From: Dr Bob <drbob@bigfoot.com>
- Re: Re: finding periodicity in a set