Calcular un espectro de potencia

Me gustaría calcular un espectro de potencia usando Python3. De otro hilo sobre este tema obtuve los ingredientes básicos. Creo que debería ser algo como:

ps = np.abs(np.fft.fft(x))**2
timeres = t[1]-t[0]
freqs = np.fft.fftfreq(x.size, timeres)
idx = np.argsort(freqs)
plt.plot(freqs[idx], ps[idx])
plt.show()

aquít son los tiempos yx es el recuento de fotones. También he intentado:

W = fftfreq(x.size, timeres=t[1]-t[0])
f_x = rfft(x)
plt.plot(W,f_x)
plt.show()

Pero ambos en su mayoría solo me dan un pico alrededor de cero (aunque no son lo mismo). Estoy tratando de calcular el espectro de potencia a partir de esto:

Lo que debería darme una señal alrededor de 580Hz. ¿Qué estoy haciendo mal aquí?

Respuestas a la pregunta(2)

Su respuesta a la pregunta