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/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