scipy.fft.next_fast_len¶
- scipy.fft.next_fast_len()[源代码]¶
查找输入数据的下一个快速大小
fft
、用于补零等。SciPy的FFT算法通过递归的分而治之策略获得速度。这依赖于输入长度的小素数因子的有效函数。因此,当使用由FFT实现处理的主因数组合时,转换速度最快。如果对所有的根都有有效函数<= n ,则结果将是一个数字 x >=
target
只有素数因子< n 。(也称为 n -平滑数)- 参数
- 退货
- out集成
大于或等于的最小快速长度
target
。
注意事项
此函数的结果将来可能会随着性能考虑因素的更改而更改,例如,如果添加了新的素因数。
呼叫
fft
或ifft
使用真实输入数据执行'R2C'
内部转换。示例
在特定机器上,素数长度的FFT需要11.4毫秒:
>>> from scipy import fft >>> rng = np.random.default_rng() >>> min_len = 93059 # prime length is worst case for speed >>> a = rng.standard_normal(min_len) >>> b = fft.fft(a)
将零填充到下一个规则长度将计算时间减少到1.6毫秒,加速比为7.3倍:
>>> fft.next_fast_len(min_len, real=True) 93312 >>> b = fft.fft(a, 93312)
四舍五入到2的下一个幂不是最优的,计算需要3.0毫秒;比给出的大小长1.9倍
next_fast_len
:>>> b = fft.fft(a, 131072)