scipy.fftpack.
next_fast_len#
- scipy.fftpack.next_fast_len(target)[源代码]#
查找用于
fft
的输入数据的下一个快速大小,用于零填充等。SciPy 的 FFTPACK 具有针对基数 {2, 3, 4, 5} 的高效函数,因此返回大于或等于 target 的素因子 2、3 和 5 的下一个组合。(这些也称为 5-光滑数、正则数或汉明数。)
- 参数:
- targetint
开始搜索的长度。必须是正整数。
- 返回:
- outint
大于或等于 target 的第一个 5-光滑数。
备注
在 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)