numpy.fft.fftn#
- fft.fftn(a, s=None, оси=None, norm=None, выход=None)[источник]#
Вычисляет N-мерное дискретное преобразование Фурье.
Эта функция вычисляет N-мерное дискретное преобразование Фурье по любому количеству осей в M-мерный массив с помощью Быстрого Преобразования Фурье (БПФ).
- Параметры:
- aarray_like
Входной массив, может быть комплексным.
- sпоследовательность целых чисел, опционально
Форма (длина каждой преобразованной оси) вывода (
s[0]относится к оси 0,s[1]к оси 1 и т.д.). Это соответствуетnдляfft(x, n). По любой оси, если заданная форма меньше, чем у входа, вход обрезается. Если она больше, вход дополняется нулями.Изменено в версии 2.0: Если это
-1, весь ввод используется (без заполнения/обрезки).Если s не указан, форма ввода по осям, заданным оси используется.
Устарело с версии 2.0: Если s не является
None, оси не должно бытьNoneлюбой.Устарело с версии 2.0: s должен содержать только
ints, а неNoneзначения.Noneтекущие значения означают, что значение по умолчанию дляnиспользуется в соответствующем 1-D преобразовании, но это поведение устарело.- осипоследовательность целых чисел, опционально
Оси, по которым вычисляется БПФ. Если не указано, последние
len(s)используются оси, или все оси, если s также не указан. Повторяющиеся индексы в оси означает, что преобразование по этой оси выполняется несколько раз.Устарело с версии 2.0: Если s указан, соответствующий оси для преобразования также должен быть явно указан.
- norm{“backward”, “ortho”, “forward”}, опционально
Режим нормализации (см.
numpy.fft). По умолчанию — «backward». Указывает, какое направление пары преобразований вперёд/назад масштабируется и с каким коэффициентом нормализации.Новое в версии 1.20.0: Значения "backward", "forward" были добавлены.
- выходcomplex ndarray, опционально
Если предоставлен, результат будет помещён в этот массив. Он должен быть соответствующей формы и типа данных для всех осей (и, следовательно, несовместим с передачей всех, кроме тривиального
s).Новое в версии 2.0.0.
- Возвращает:
- выходкомплексный ndarray
Усечённый или дополненный нулями вход, преобразованный вдоль осей, указанных оси, или комбинацией s и a, как объяснено в разделе параметров выше.
- Вызывает:
- ValueError
Если s и оси имеют разную длину.
- IndexError
Если элемент оси больше, чем количество осей a.
Смотрите также
numpy.fftОбщий обзор дискретных преобразований Фурье с определениями и используемыми соглашениями.
ifftnОбратная величина
fftn, обратная n-мерное БПФ.fftОдномерное быстрое преобразование Фурье с определениями и соглашениями, которые используются.
rfftnThe n-мерным БПФ реального входа.
fft2Двумерное быстрое преобразование Фурье.
fftshiftСдвигает нулевые частотные члены в центр массива
Примечания
Выходные данные, аналогично
fft, содержит член для нулевой частоты в нижнем углу всех осей, члены положительной частоты в первой половине всех осей, член для частоты Найквиста в середине всех осей и члены отрицательной частоты во второй половине всех осей, в порядке убывания отрицательной частоты.См.
numpy.fftдля подробностей, определений и используемых соглашений.Примеры
>>> import numpy as np >>> a = np.mgrid[:3, :3, :3][0] >>> np.fft.fftn(a, axes=(1, 2)) array([[[ 0.+0.j, 0.+0.j, 0.+0.j], # may vary [ 0.+0.j, 0.+0.j, 0.+0.j], [ 0.+0.j, 0.+0.j, 0.+0.j]], [[ 9.+0.j, 0.+0.j, 0.+0.j], [ 0.+0.j, 0.+0.j, 0.+0.j], [ 0.+0.j, 0.+0.j, 0.+0.j]], [[18.+0.j, 0.+0.j, 0.+0.j], [ 0.+0.j, 0.+0.j, 0.+0.j], [ 0.+0.j, 0.+0.j, 0.+0.j]]]) >>> np.fft.fftn(a, (2, 2), axes=(0, 1)) array([[[ 2.+0.j, 2.+0.j, 2.+0.j], # may vary [ 0.+0.j, 0.+0.j, 0.+0.j]], [[-2.+0.j, -2.+0.j, -2.+0.j], [ 0.+0.j, 0.+0.j, 0.+0.j]]])
>>> import matplotlib.pyplot as plt >>> [X, Y] = np.meshgrid(2 * np.pi * np.arange(200) / 12, ... 2 * np.pi * np.arange(200) / 34) >>> S = np.sin(X) + np.cos(Y) + np.random.uniform(0, 1, X.shape) >>> FS = np.fft.fftn(S) >>> plt.imshow(np.log(np.abs(np.fft.fftshift(FS))**2))
>>> plt.show()