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], [ 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()
-
© 2005–2019 NumPy Developers
Licensed under the 3-clause BSD License.
https://docs.scipy.org/doc/numpy-1.15.4/reference/generated/numpy.fft.fftn.html