I have data from a periodic one dimensional point process representing the times of events which is also mixed in with lots of data that I regard as noise. The total number of points is of order one million. I would like to detect (approximate) periodicity in the data to reconstruct the periodic point precess. This question is a little vague but what is a good method for doing this?
As an example, if my points are $1,10,25,30,31,50$ I would like to detect $10, 30, 50$ as equally spaced points. As my values are reals I need this to tolerate small errors in the data.
What you are looking for are pulse trains in noise. The pulse train is its own Fourier transform (sort of) and noise (usually) is spread out evenly in the frequency domain.
Here's is a quick and dirty example I put together in Matlab:
There are two series of pulse trains visible in the plot of the magnitude of the FT of x. By visual inspection, one is spaced at 0.0303 and the other at 7.299e-3, which gives time domain periods of 33.0033 and 137.005, respectively.
You may have to tailor the above to your exact situation, but I think something along these lines is doable and easy to implement.