numpy.fft.fftn
-
numpy.fft.fftn(a, s=None, axes=None, norm=None)[source] -
Вычисление n-мерного дискретного преобразования Фурье.
Эта функция вычисляет N-мерное дискретное преобразование Фурье по любому числу осей в массиве M-мерном с помощью быстрого преобразования Фурье (БПФ).
Параметры: a : array_like
Входной массив, может быть комплексным.
s : последовательность целых чисел, необязательно
Форма (длина каждой преобразованной оси) выходного массива (
s[0]относится к оси 0,s[1]к оси 1 и т.д.). Это соответствуетnдляfft(x, n). По любой оси, если заданная форма меньше, чем форма входного массива, входной массив усекается. Если она больше, входной массив дополняется нулями. Еслиsне задано, используется форма входного массива по осям, указанным вaxes.axes : последовательность целых чисел, необязательно
Оси, по которым вычисляется БПФ. Если не указаны, используются последние
len(s)оси, или все оси, еслиsтакже не указано. Повторные индексы вaxesозначают, что преобразование по этой оси выполняется несколько раз.norm : {None, “ortho”}, необязательно
Новое в версии 1.10.0.
Режим нормализации (см.
numpy.fft). Значение по умолчанию — None.Возвращает: out : комплексный массив ndarray
Усечённый или дополненный нулями входной массив, преобразованный по осям, указанным в
axes, или по комбинацииsиa, как описано в разделе параметров выше.Возможные исключения: ValueError
Если
sиaxesимеют различную длину.IndexError
Если элемент
axesбольше, чем количество осейa.См. также
-
numpy.fft - Обзор дискретных преобразований Фурье, с определениями и используемыми соглашениями.
-
ifftn - Обратное преобразование
fftn, обратное n-мерное БПФ. -
fft - Одномерное БПФ, с определениями и используемыми соглашениями.
-
rfftn - n-мерное БПФ для вещественного входного массива.
-
fft2 - Двумерное БПФ.
-
fftshift - Смещает члены нулевой частоты в центр массива.
Примечания
Выходной массив, аналогично
fft, содержит член нулевой частоты в углу с низким порядком всех осей, положительные частоты в первой половине всех осей, член частоты Найквиста посередине всех осей и отрицательные частоты во второй половине всех осей в порядке убывания отрицательной частоты.См.
numpy.fftдля деталей, определений и используемых соглашений.Примеры
>>> a = np.mgrid[:3, :3, :3][0] >>> np.fft.fftn(a, axes=(1, 2)) array([[[ 0.+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]], [[ 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], [ 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)) <matplotlib.image.AxesImage object at 0x...> >>> plt.show()
(Исходный код, png, pdf)
-
© 2008–2017 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.fft.fftn.html