data = np.random.rand(301) - 0.5
ps = np.abs(np.fft.fft(data)) ** 2
time_step = 1 / 30
freqs = np.fft.fftfreq(data.size, time_step)
idx = np.argsort(freqs)
plt.plot(freqs[idx], ps[idx])
Построение спектра мощности в питоне