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