numpy.fft.irfftn#
- fft.irfftn(a, s=None, оси=None, norm=None, выход=None)[источник]#
Вычисляет обратную матрицу
rfftn.Эта функция вычисляет обратное N-мерное дискретное преобразование Фурье для вещественного ввода по любому количеству осей в M-мерном массиве с помощью быстрого преобразования Фурье (БПФ). Другими словами,
irfftn(rfftn(a), a.shape) == aс численной точностью. (a.shapeнеобходимо, какlen(a)предназначен дляirfft, и по той же причине.)Входные данные должны быть упорядочены так же, как возвращается функцией
rfftn, т.е. как дляirfftдля конечной оси преобразования, и как дляifftnвдоль всех остальных осей.- Параметры:
- aarray_like
Входной массив.
- sпоследовательность целых чисел, опционально
Форма (длина каждой преобразованной оси) вывода (
s[0]относится к оси 0,s[1]к оси 1 и т.д.). s также является количеством входных точек, используемых вдоль этой оси, за исключением последней оси, гдеs[-1]//2+1точки ввода используются. По любой оси, если форма, указанная s меньше, чем у входных данных, входные данные обрезаются. Если больше, входные данные дополняются нулями.Изменено в версии 2.0: Если это
-1, весь ввод используется (без заполнения/обрезки).Если s если не задан, используется форма ввода вдоль осей, указанных axes. За исключением последней оси, которая принимается за
2*(m-1)гдеm— это длина входных данных вдоль этой оси.Устарело с версии 2.0: Если s не является
None, оси не должно бытьNoneлюбой.Устарело с версии 2.0: s должен содержать только
ints, а неNoneзначения.Noneтекущие значения означают, что значение по умолчанию дляnиспользуется в соответствующем 1-D преобразовании, но это поведение устарело.- осипоследовательность целых чисел, опционально
Оси, по которым вычисляется обратное БПФ. Если не указано, последние len(s) используются оси, или все оси, если s также не указан. Повторяющиеся индексы в оси означает, что обратное преобразование по этой оси выполняется несколько раз.
Устарело с версии 2.0: Если s указан, соответствующий оси для преобразования также должен быть явно указан.
- norm{“backward”, “ortho”, “forward”}, опционально
Режим нормализации (см.
numpy.fft). По умолчанию — «backward». Указывает, какое направление пары преобразований вперёд/назад масштабируется и с каким коэффициентом нормализации.Новое в версии 1.20.0: Значения "backward", "forward" были добавлены.
- выходndarray, необязательно
Если предоставлено, результат будет помещен в этот массив. Он должен быть соответствующей формы и dtype для последнего преобразования.
Новое в версии 2.0.0.
- Возвращает:
- выходndarray
Усечённый или дополненный нулями вход, преобразованный вдоль осей, указанных оси, или комбинацией s или a, как объяснено в разделе параметров выше. Длина каждой преобразованной оси указана соответствующим элементом из s, или длина ввода по каждой оси, кроме последней, если s не задано. В конечной преобразованной оси длина вывода, когда s не указано, это
2*(m-1)гдеmявляется длиной конечной преобразованной оси входных данных. Чтобы получить нечетное количество выходных точек в конечной оси, s должен быть указан.
- Вызывает:
- ValueError
Если s и оси имеют разную длину.
- IndexError
Если элемент оси больше, чем количество осей a.
Смотрите также
rfftnПрямое n-мерное БПФ реального ввода, из которого
ifftnявляется обратным.fftОдномерное быстрое преобразование Фурье с определениями и соглашениями, которые используются.
irfftОбратное преобразование одномерного БПФ для вещественного ввода.
irfft2Обратное двумерное преобразование Фурье для вещественного ввода.
Примечания
См.
fftдля определений и используемых соглашений.См.
rfftдля определений и соглашений, используемых для вещественного ввода.Правильная интерпретация эрмитова ввода зависит от формы исходных данных, как задано s. Это связано с тем, что каждая входная форма может соответствовать сигналу нечетной или четной длины. По умолчанию,
irfftnпредполагает четную длину вывода, которая помещает последнюю запись на частоте Найквиста; алиасинг с его симметричным аналогом. При выполнении финального преобразования из комплексного в вещественное, последнее значение обрабатывается как чисто вещественное. Чтобы избежать потери информации, правильная форма вещественного ввода должен должен быть указан.Примеры
>>> import numpy as np >>> a = np.zeros((3, 2, 2)) >>> a[0, 0, 0] = 3 * 2 * 2 >>> np.fft.irfftn(a) array([[[1., 1.], [1., 1.]], [[1., 1.], [1., 1.]], [[1., 1.], [1., 1.]]])