Parsevals Satz in Python

Ich versuche, Pythons FFT-Funktionalität in den Griff zu bekommen, und eines der seltsamen Dinge, über die ich gestolpert bin, ist dasParsevals Satz scheint nicht zuzutreffen, da es jetzt einen Unterschied von ungefähr 50 ergibt, während es 0 sein sollte.

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()

Ich bin mir ziemlich sicher, dass es ein Normalisierungsfaktor ist, aber ich scheine ihn nicht finden zu können, da alle Informationen, die ich über diese Funktion finden kann, die sindscipy.fftpack.rfft Dokumentation.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage