Я пытаюсь получить некоторое влияние на функциональность Python fft, и одна из странных вещей, на которые я наткнулся, заключается в том, что Парасевальная теорема, похоже, не применяется, так как теперь он имеет значение около 50, тогда как оно должно быть 0.
import numpy as np
import matplotlib.pyplot as plt
import scipy.fftpack as fftpack
pi = np.pi
tdata = np.arange(5999.)/300
dt = tdata[1]-tdata[0]
datay = np.sin(pi*tdata)+2*np.sin(pi*2*tdata)
N = len(datay)
fouriery = abs(fftpack.rfft(datay))/N
freqs = fftpack.rfftfreq(len(datay), d=(tdata[1]-tdata[0]))
df = freqs[1] - freqs[0]
parceval = sum(datay**2)*dt - sum(fouriery**2)*df
print parceval
plt.plot(freqs, fouriery, 'b-')
plt.xlim(0,3)
plt.show()
Я уверен, что это нормализация, но я, похоже, не могу ее найти, так как вся информация, которую я могу найти об этой функции, - это документация scipy.fftpack.rfft.