РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
167 of 541 menu

Функция 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]

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

  • функцию fft,
    которая выполняет прямое быстрое преобразование Фурье
  • функцию rfft,
    которая выполняет преобразование Фурье для вещественных данных
  • функцию fftfreq,
    которая возвращает частоты для БПФ
  • функцию fftshift,
    которая смещает нулевую частоту в центр спектра
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить