scipy.fftpack.
next_fast_len#
- scipy.fftpack.next_fast_len(target)[源代码][源代码]#
查找输入数据的下一个快速大小以进行
fft
,用于零填充等。SciPy 的 FFTPACK 对基数 {2, 3, 4, 5} 有高效的函数,因此这会返回大于或等于 target 的下一个由质因数 2、3 和 5 组成的合数。(这些也被称为 5-光滑数、正则数或汉明数。)
- 参数:
- 目标整数
开始搜索的长度。必须是一个正整数。
- 返回:
- 出整数
大于或等于 target 的第一个5-光滑数。
注释
Added in version 0.18.0.
示例
在一台特定的机器上,一个长度为质数的FFT需要133毫秒:
>>> from scipy import fftpack >>> import numpy as np >>> rng = np.random.default_rng() >>> min_len = 10007 # prime length is worst case for speed >>> a = rng.standard_normal(min_len) >>> b = fftpack.fft(a)
将填充到下一个5-平滑长度,计算时间减少到211微秒,速度提高了630倍:
>>> fftpack.next_fast_len(min_len) 10125 >>> b = fftpack.fft(a, 10125)
向上舍入到下一个2的幂不是最优的,计算时间为367微秒,是5-光滑尺寸的1.7倍长:
>>> b = fftpack.fft(a, 16384)