numpy.fft.fftn
-
numpy.fft.fftn(a, s=None, axes=None, norm=None)[source] -
Вычисление N-мерного дискретного преобразования Фурье.
Эта функция вычисляет N-мерное дискретное преобразование Фурье по любому количеству осей в массиве размерности M с помощью быстрого преобразования Фурье (FFT).
Параметры: a : array_like
Входной массив, может быть комплексным.
s : последовательность целых чисел, необязательно
Форма (длина каждой преобразованной оси) выходного массива (
s[0]относится к оси 0,s[1]к оси 1 и т. д.). Это соответствуетnдляfft(x, n). По любой оси, если заданная форма меньше, чем форма входного массива, входной массив усекается. Если она больше, входной массив дополняется нулями. Еслиsне задано, используется форма входного массива по указанным осямaxes.axes : последовательность целых чисел, необязательно
Оси, по которым вычисляется FFT. Если не указано, используются последние
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–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.11.0/reference/generated/numpy.fft.fftn.html