Функция ifft
Функция ifft выполняет обратное одномерное дискретное
преобразование Фурье над входным комплексным массивом.
Первым параметром функция принимает массив комплексных чисел
в частотной области. Вторым параметром можно указать длину
преобразования. Третьим параметром задаётся размерность,
по которой выполняется преобразование. Четвёртым параметром
можно управлять масштабированием результата.
Синтаксис
np.fft.ifft(a, [n, axis, norm])
Параметры
Основные параметры функции ifft:
-
a- входной массив комплексных чисел в частотной области. -
n- длина преобразования. Если не указан, используется длина входного массива. -
axis- размерность, по которой выполняется преобразование. По умолчанию-1(последняя размерность). -
norm- режим нормализации. Может принимать значенияNone,'ortho'или'forward'.
Пример
Выполним прямое преобразование Фурье массива, а затем восстановим исходный сигнал с помощью обратного преобразования:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
freq = np.fft.fft(arr)
res = np.fft.ifft(freq)
print(res)
Результат выполнения кода:
[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j]
Пример
Используем параметр n для изменения длины преобразования.
Если указать длину меньше исходной, произойдёт усечение:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
freq = np.fft.fft(arr)
res = np.fft.ifft(freq, n=3)
print(res)
Результат выполнения кода:
[ 3.+0.j -1.5+0.8660254j -1.5-0.8660254j]
Пример
Применим преобразование к двумерному массиву по первой размерности,
используя параметр axis:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
freq = np.fft.fft(arr, axis=0)
res = np.fft.ifft(freq, axis=0)
print(res)
Результат выполнения кода:
[[1.+0.j 2.+0.j 3.+0.j]
[4.+0.j 5.+0.j 6.+0.j]]
Пример
Используем параметр norm для ортогональной нормализации
обратного преобразования:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
freq = np.fft.fft(arr, norm='ortho')
res = np.fft.ifft(freq, norm='ortho')
print(res)
Результат выполнения кода:
[1.+0.j 2.+0.j 3.+0.j 4.+0.j 5.+0.j]