Spec-Zone.ru › NumPy 2.0

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()
../../_images/numpy-fft-ifftn-1.png

© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.fft.ifftn.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API