Computando um espectro de potência

Gostaria de calcular um espectro de potência usando Python3. De outro tópico sobre esse tópico, obtive os ingredientes básicos. Eu acho que deveria 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()

Aquit são os tempos ex é a contagem de fótons. Eu também tentei:

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

Mas os dois me dão um pico em torno de zero (embora não sejam os mesmos). Estou tentando calcular o espectro de potência a partir disso:

O que deve me dar um sinal em torno de 580Hz. O que eu estou fazendo errado aqui?