numpy.fft.ifftn
- fft.ifftn(a, s=None, axes=None, norm=None, out=None)[source]
-
Вычислить N-мерное обратное дискретное преобразование Фурье.
Эта функция вычисляет обратное N-мерное дискретное преобразование Фурье по любому количеству осей в массиве размерности M с помощью Быстрого преобразования Фурье (FFT). Другими словами,
ifftn(fftn(a)) == aдо точности вычислений. Для описания определений и используемых соглашений см.numpy.fft.Входные данные, аналогично
ifft, должны быть упорядочены так же, как возвращаетfftn, т. е. термин для нулевой частоты на всех осях должен быть в левом нижнем углу, положительные частоты — в первой половине всех осей, термин для частоты Найквиста — посередине всех осей, а отрицательные частоты — во второй половине осей в порядке убывания отрицательной частоты.- Parameters:
-
- aarray_like
-
Входной массив, может быть комплексным.
- sпоследовательность целых чисел, необязательно
-
Форма (длина каждой преобразованной оси) выходного массива (
s[0]относится к оси 0,s[1]— к оси 1 и т. д.). Это соответствуетnдляifft(x, n). По любой оси, если заданная форма меньше, чем у входных данных, входные данные обрезаются. Если она больше, входные данные дополняются нулями.Изменено в версии 2.0: Если это
-1, весь вход используется (без дополнения/обрезания).Если
sне задано, используется форма входных данных по осям, указанным вaxes. См. заметки по проблеме с заполнением нулями вifft.Устарело начиная с версии 2.0: Если
sнеNone,axesтоже не должно бытьNone.Устарело начиная с версии 2.0:
sдолжно содержать толькоint, а не значенияNone. ЗначенияNoneв настоящее время означают, что для соответствующего 1-D преобразования используется значение по умолчанию дляn, но это поведение устарело. - axesпоследовательность целых чисел, необязательно
-
Оси, по которым вычисляется обратное ПФ. Если не указано, используются последние
len(s)оси, или все оси, еслиsтоже не указано. Повторные индексы вaxesозначают, что обратное преобразование по данной оси выполняется несколько раз.Устарело начиная с версии 2.0: Если
sуказано, соответствующееaxesдля преобразования должно быть также явно указано. - norm{“backward”, “ortho”, “forward”}, optional
-
Новое в версии 1.10.0.
Режим нормализации (см.
numpy.fft). По умолчанию — “backward”. Указывает, какой из направлений прямой/обратной пары преобразований масштабируется и с каким коэффициентом нормализации.Новое в версии 1.20.0: Добавлены значения “backward”, “forward”.
- outcomplex ndarray, optional
-
Если предоставлено, результат будет помещён в этот массив. Он должен иметь соответствующую форму и тип данных для всех осей (и, следовательно, несовместим с передачей всего, кроме тривиальных
s).Новое в версии 2.0.0.
- Returns:
-
- outcomplex ndarray
-
Усечённый или заполненный нулями вход, преобразованный по осям, указанным в
axes, или по комбинацииsилиa, как описано в разделе параметров выше.
- Raises:
-
- ValueError
-
Если
sиaxesимеют разную длину. - IndexError
-
Если элемент
axesбольше, чем количество осей уa.
См. также
numpy.fft-
Общий обзор дискретных преобразований Фурье с определениями и используемыми соглашениями.
fftn-
Прямое N-мерное Фурье, обратное к которому является
ifftn. ifft-
Одномерное обратное Фурье.
ifft2-
Двумерное обратное Фурье.
ifftshift-
Отменяет
fftshift, перемещает члены нулевой частоты в начало массива.
Примечания
См.
numpy.fftдля определений и соглашений, используемых.Заполнение нулями, аналогично
ifft, выполняется добавлением нулей к входным данным по указанной оси. Хотя это распространённый подход, он может привести к неожиданным результатам. Если требуется другая форма заполнения нулями, она должна быть выполнена до вызоваifftn.Примеры
>>> a = np.eye(4) >>> np.fft.ifftn(np.fft.fftn(a, axes=(0,)), axes=(1,)) array([[1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j], # may vary [0.+0.j, 1.+0.j, 0.+0.j, 0.+0.j], [0.+0.j, 0.+0.j, 1.+0.j, 0.+0.j], [0.+0.j, 0.+0.j, 0.+0.j, 1.+0.j]])Создать и отобразить изображение с ограниченным по полосе частот содержанием:
>>> import matplotlib.pyplot as plt >>> n = np.zeros((200,200), dtype=complex) >>> n[60:80, 20:40] = np.exp(1j*np.random.uniform(0, 2*np.pi, (20, 20))) >>> im = np.fft.ifftn(n).real >>> plt.imshow(im) <matplotlib.image.AxesImage object at 0x...> >>> plt.show()
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.fft.ifftn.html