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.
Смотрите также
Примечания
Возвращает вещественное значение 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, отрицательные частоты не указаны, и выходной массив является чисто вещественным.