numpy.fft.irfft#

fft.irfft(a, n=None, ось=-1, norm=None, выход=None)[источник]#

Вычисляет обратную матрицу rfft.

Эта функция вычисляет обратную одномерную n-точечное дискретное преобразование Фурье реального входа, вычисленное с помощью rfft. Другими словами, irfft(rfft(a), len(a)) == a с точностью до числовой погрешности. (См. примечания ниже, почему len(a) необходимо здесь.)

Ожидается, что входные данные будут в форме, возвращаемой rfft, т.е. вещественный нулевой частотный член, за которым следуют комплексные положительные частотные члены в порядке возрастания частоты. Поскольку дискретное преобразование Фурье вещественного входа является эрмитово-симметричным, отрицательные частотные члены принимаются как комплексно-сопряжённые соответствующим положительным частотным членам.

Параметры:
aarray_like

Входной массив.

nint, необязательный

Длина преобразованной оси вывода. Для n выходные точки, n//2+1 входные точки необходимы. Если вход длиннее этого, он обрезается. Если он короче, он дополняется нулями. Если n не задано, оно принимается равным 2*(m-1) где m это длина ввода вдоль оси, указанной ось.

осьint, необязательный

Ось, по которой вычисляется обратное БПФ. Если не указана, используется последняя ось.

norm{“backward”, “ortho”, “forward”}, опционально

Режим нормализации (см. numpy.fft). По умолчанию — «backward». Указывает, какое направление пары преобразований вперёд/назад масштабируется и с каким коэффициентом нормализации.

Новое в версии 1.20.0: Значения "backward", "forward" были добавлены.

выходndarray, необязательно

Если предоставлен, результат будет помещён в этот массив. Он должен быть соответствующей формы и dtype.

Новое в версии 2.0.0.

Возвращает:
выходndarray

Усечённый или дополненный нулями вход, преобразованный вдоль оси, указанной ось, или последний, если ось не указано. Длина преобразованной оси равна n, или, если n не задан, 2*(m-1) где m — это длина преобразованной оси входных данных. Чтобы получить нечётное количество выходных точек, n должен быть указан.

Вызывает:
IndexError

Если ось не является допустимой осью для a.

Смотрите также

numpy.fft

Для определения DFT и используемых соглашений.

rfft

Одномерное БПФ действительного входа, из которого irfft является обратным.

fft

Одномерное быстрое преобразование Фурье.

irfft2

Обратное двумерное преобразование Фурье для вещественного ввода.

irfftn

Обратная функция n-мерным БПФ реального входа.

Примечания

Возвращает вещественное значение n-точечное обратное дискретное преобразование Фурье a, где a содержит неотрицательные частотные члены эрмитово-симметричной последовательности. n — это длина результата, а не входных данных.

Если вы укажете n такой, что a должен быть дополнен нулями или усечен, дополнительные/удаленные значения будут добавлены/удалены на высоких частотах. Таким образом, можно передискретизировать ряд до m точек с помощью интерполяции Фурье: a_resamp = irfft(rfft(a), m).

Правильная интерпретация эрмитова ввода зависит от длины исходных данных, заданной n. Это связано с тем, что каждая входная форма может соответствовать сигналу нечетной или четной длины. По умолчанию, irfft предполагает четную длину вывода, которая помещает последнюю запись на частоте Найквиста; алиасинг с его симметричным аналогом. По эрмитовой симметрии, значение, таким образом, рассматривается как чисто вещественное. Чтобы избежать потери информации, правильная длина вещественного ввода должен должен быть указан.

Примеры

>>> import numpy as np
>>> np.fft.ifft([1, -1j, -1, 1j])
array([0.+0.j,  1.+0.j,  0.+0.j,  0.+0.j]) # may vary
>>> np.fft.irfft([1, -1j, -1])
array([0.,  1.,  0.,  0.])

Обратите внимание, как последний член во входных данных для обычного ifft является комплексно сопряжённым ко второму члену, и выходные данные имеют нулевую мнимую часть везде. При вызове irfft, отрицательные частоты не указаны, и выходной массив является чисто вещественным.