Mis espectros de poder son creíbles? una comparación entre lomb-scargle y fft (scipy.signal y numpy.fft)

¿Podría alguien señalar amablemente por qué obtengo resultados muy diferentes?
Hay muchos picos que no deberían aparecer. De hecho, solo debería haber un pico.
Soy un novato de Python y todos los comentarios sobre mi código a continuación son bienvenidos.

Los datos de prueba están aquí.introduzca la descripción del enlace aquí
Usted puede directamentewget https://clbin.com/YJkwr .
Su primera columna son los tiempos de llegada de una serie de fotones. Una fuente de luz emite fotones al azar. El tiempo total es de 55736s y hay 67398 fotones. Intento detectar algún tipo de periodicidad de intensidad lumínica.
Podemos agrupar el tiempo y la intensidad de la luz es proporcional a los números de fotones en cada intervalo de tiempo.

Intenté numpy.fft y lomb-scargle de scipy.signal para hacer su espectro de potencia, pero obtuve resultados muy diferentes.

fft
 import pylab as pl
 import numpy as np

 timepoints=np.loadtxt('timesequence',usecols=(0,),unpack=True,delimiter=",")
 binshu=50000
 interd=54425./binshu  
 t=np.histogram(timepoints,bins=binshu)[0]
 sp = np.fft.fft(t)
 freq = np.fft.fftfreq(len(t),d=interd)  
 freqnum = np.fft.fftfreq(len(t),d=interd).argsort()  
 pl.xlabel("frequency(Hz)")
 pl.plot(freq[freqnum],np.abs(sp)[freqnum])

Lomb-Scargle
 timepoints=np.loadtxt('timesequence',usecols=(0,),unpack=True,delimiter=",")
 binshu=50000
 intensity=np.histogram(timepoints,bins=binshu)[0].astype('float64') 
 middletime=np.histogram(timepoints,bins=binshu)[1][1:binshu+1]-np.histogram(timepoints,bins=binshu)[1][3]*0.5
 freq1=1./(timepoints.max()-timepoints.min())
 freq2=freq1*len(timepoints)
 freqs=np.linspace(freq1,freq2,1000)
 pm1=spectral.lombscargle(middletime,intensity,freqs)

 pl.xlabel("frequency(Hz)")
 pl.plot(freqs,pm1)
 pl.xlim(0.5*freq1,2*freq2)
 pl.ylim(0,250)
 pl.show()

*********************************
Gracias, Warren, te lo agradezco. Gracias por tu respuesta detallada.

Tienes razón, hay un tiempo de integración, aquí está alrededor de 1.7s.
Hay muchas exposiciones individuales. Cada exposición cuesta 1.7 s
En una sola exposición, no podemos decir con precisión el tiempo de llegada.

Si las series de tiempo son como:
0 1.7 3.4 8.5 8.5

El tiempo de integración de los dos últimos fotones es1.7s,no(8.5-3.4)s.Así que revisaré parte de tu código.

Sin embargo, mi pregunta sigue siendo. Se ajustan varios parámetros para obtener el0.024Hz pico en pico lombriculos hasta cierto punto. Y usas esto para guiar tus parámetros en fft.

Si no sabes el número0.024, tal vez puede usar diferentes parámetros para obtener un pico más alto diferente?

Cómo garantizar cada vez que podamos acertar elnum_ls_freqs ? Puedes ver si elegimos diferentes.num_ls_freqs, los cambios máximos más altos.

Si tengo muchas series de tiempo, ¿cada vez tengo que especificar diferentes parámetros? ¿Y cómo conseguirlos?

Respuestas a la pregunta(2)

Su respuesta a la pregunta