scipy.fft.

ihfft#

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

Вычислить обратное БПФ сигнала, имеющего эрмитову симметрию.

Параметры:
xarray_like

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

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

Длина обратного БПФ, количество точек вдоль оси преобразования во входных данных для использования. Если n меньше, чем длина входа, вход обрезается. Если она больше, вход дополняется нулями. Если n не указана, длина входа вдоль оси, заданной ось используется.

ось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//2 + 1.

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

hfft, irfft

Примечания

hfft/ihfft являются парой, аналогичной rfft/irfft, но для противоположного случая: здесь сигнал имеет эрмитову симметрию во временной области и является вещественным в частотной области. Таким образом, здесь это hfft, для которого необходимо указать длину результата, если она должна быть нечётной: * чётная: ihfft(hfft(a, 2*len(a) - 2) == a, в пределах погрешности округления, * нечетный: ihfft(hfft(a, 2*len(a) - 1) == aв пределах погрешности округления.

Примеры

>>> from scipy.fft import ifft, ihfft
>>> import numpy as np
>>> spectrum = np.array([ 15, -4, 0, -1, 0, -4])
>>> ifft(spectrum)
array([1.+0.j,  2.+0.j,  3.+0.j,  4.+0.j,  3.+0.j,  2.+0.j]) # may vary
>>> ihfft(spectrum)
array([ 1.-0.j,  2.-0.j,  3.-0.j,  4.-0.j]) # may vary