相关疑难解决方法(0)

Python中的Parseval定理

我试图抓住Python的fft功能,而我偶然发现的一个奇怪的事情就是Parseval的定理似乎不适用,因为它现在给出了大约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()
Run Code Online (Sandbox Code Playgroud)

我很确定这是一个规范化因素,但我似乎无法找到它,因为我能找到的关于这个函数的所有信息都是scipy.fftpack.rfft文档.

python math numpy fft scipy

12
推荐指数
1
解决办法
2315
查看次数

标签 统计

fft ×1

math ×1

numpy ×1

python ×1

scipy ×1