对于一个详细的测试,在
https://gist.github.com/fnielsen/99b981b9da34ae3d5035
我发现,与我通过
pyfftw.interfaces.scipy_fftpack
对pyfftw的简单应用相比,scipy.ftpack的表现很好,除了长度对应于素数的数据。
第一次调用 pyfftw.interfaces.scipy_fftpack.fft 时,似乎有一些设置成本。第二次会更快。Numpy 和 scipy 的 fftpack 在我尝试的数据大小上表现得很糟糕。在这种情况下,CZT更快。几个月前,Scipy的Github上出现了一个关于这个问题的问题,见
https://github.com/scipy/scipy/issues/4288
20000 prime=False
padded_fft : 0.003116
numpy_fft : 0.003502
scipy_fft : 0.001538
czt : 0.035041
fftw_fft : 0.004007
------------------------------------------------------------
20011 prime=True
padded_fft : 0.001070
numpy_fft : 1.263672
scipy_fft : 0.875641
czt : 0.033139
fftw_fft : 0.009980
------------------------------------------------------------
21803 prime=True
padded_fft : 0.001076
numpy_fft : 1.510341
scipy_fft : 1.043572
czt : 0.035129
fftw_fft : 0.011463
------------------------------------------------------------
21804 prime=False
padded_fft : 0.001108
numpy_fft : 0.004672
scipy_fft : 0.001620
czt : 0.033854
fftw_fft : 0.005075
------------------------------------------------------------
21997 prime=True
padded_fft : 0.000940
numpy_fft : 1.534876
scipy_fft : 1.058001
czt : 0.034321
fftw_fft : 0.012839
------------------------------------------------------------
32768 prime=False
padded_fft : 0.001222
numpy_fft : 0.002410
scipy_fft : 0.000925
czt : 0.039275
fftw_fft : 0.005714
------------------------------------------------------------