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–2016 NumPy Developers
Licensed under the NumPy License.
https://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.fft.fftn.html