scipy.fftpack.

next_fast_len#

scipy.fftpack.next_fast_len(цель)[источник]#

Найти следующий быстрый размер входных данных для fft, для дополнения нулями и т.д.

FFTPACK в SciPy содержит эффективные функции для оснований {2, 3, 4, 5}, поэтому возвращается следующее составное число из простых множителей 2, 3 и 5, которое больше или равно цель. (Также известны как 5-гладкие числа, регулярные числа или числа Хэмминга.)

Параметры:
цельint

Длина, с которой начинать поиск. Должна быть положительным целым числом.

Возвращает:
выходint

Первое 5-гладкое число, большее или равное цель.

Примечания

Добавлено в версии 0.18.0.

Примеры

На конкретной машине БПФ простой длины занимает 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 мкс для вычисления, в 1,7 раза дольше, чем размер с гладкостью 5:

>>> b = fftpack.fft(a, 16384)