में पार्सल का प्रमेय मैं पाइथन की एफएफटी कार्यक्षमता पर कुछ पकड़ पाने की कोशिश कर रहा हूं, और मैंने जो अजीब चीज़ों पर ठोकर खाई है, वह यह है कि Parseval's theorem लागू नहीं होता है, क्योंकि यह लगभग 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 documentation।
सुधार के लिए धन्यवाद! – unutbu
ध्यान दें: भाग में यह सामान्य मुद्दे का एक पहलू है कि फ़्लोटिंग-पॉइंट नंबर वास्तविक संख्याओं के समान नहीं हैं। – Marcin
@ मार्सिन यप ने चेक में '==' को '''' में बदल दिया ... – Jaime