scipy.fft.

irfft#

scipy.fft.irfft(x, n=None, ось=-1, norm=None, overwrite_x=False, workers=None, *, plan=None)[источник]#

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

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

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

Параметры:
xarray_like

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

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

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

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

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

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

Режим нормализации (см. fft). По умолчанию “backward”.

overwrite_xbool, необязательно

Если True, содержимое x может быть уничтожен; по умолчанию False. См. fft для получения дополнительной информации.

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

Максимальное количество рабочих процессов для параллельных вычислений. Если отрицательное, значение оборачивается с os.cpu_count(). См. fft для получения дополнительной информации.

planобъект, опционально

Этот аргумент зарезервирован для передачи предварительно вычисленного плана, предоставленного поставщиками FFT. В настоящее время не используется в SciPy.

Добавлено в версии 1.5.0.

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

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

Вызывает:
IndexError

Если ось больше, чем последняя ось x.

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

rfft

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

fft

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

irfft2

Обратное 2-D БПФ для вещественного входа.

irfftn

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

Примечания

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

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

Значение по умолчанию для n предполагает чётную длину вывода. Из-за эрмитовой симметрии последняя мнимая компонента должна быть 0 и поэтому игнорируется. Чтобы избежать потери информации, правильная длина вещественного ввода должен должно быть задано.

Примеры

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

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