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)