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

Функция ifftn

Функция ifftn выполняет многомерное обратное дискретное преобразование Фурье (ОБПФ) над тензором. Она является обратной по отношению к функции fftn. Первым параметром функция принимает тензор с комплексными числами, вторым параметром можно задать размерность преобразования, третьим - размеры преобразования по каждой оси, четвертым - нормировку.

Синтаксис

torch.fft.ifftn(input, s=None, dim=None, norm=None)

Пример

Давайте выполним обратное преобразование Фурье над двумерным тензором, полученным после прямого преобразования:

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], [7, 8, 9], ], dtype=torch.complex64) res = torch.fft.ifftn(t) print(res)

Результат выполнения кода:

tensor([ [ 5.+0.j, -1.5+0.866j, -1.5-0.866j], [-4.5+2.598j, 0.-0.j, -1.5+0.866j], [-4.5-2.598j, -1.5-0.866j, 0.+0.j], ])

Пример

Давайте выполним обратное преобразование с указанием размерности только по последним двум осям трехмерного тензора:

import torch t = torch.randn(2, 3, 3, dtype=torch.complex64) res = torch.fft.ifftn(t, dim=(-2, -1)) print(res.shape)

Результат выполнения кода:

torch.Size([2, 3, 3])

Пример

Давайте выполним обратное преобразование с изменением размера выходного тензора до (2, 2) для двумерного преобразования:

import torch t = torch.tensor([ [1, 2], [3, 4], ], dtype=torch.complex64) res = torch.fft.ifftn(t, s=(2, 2)) print(res)

Результат выполнения кода:

tensor([ [2.5+0.j, -0.5+0.j], [-1. +0.j, 0. +0.j], ])

Пример

Давайте выполним обратное преобразование с использованием различных типов нормировки. По умолчанию используется нормировка 'backward':

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], ], dtype=torch.complex64) res_backward = torch.fft.ifftn(t, norm='backward') res_forward = torch.fft.ifftn(t, norm='forward') res_ortho = torch.fft.ifftn(t, norm='ortho') print(res_backward[0, 0]) print(res_forward[0, 0]) print(res_ortho[0, 0])

Результат выполнения кода:

(3.5+0j) (0.5833333333333334+0j) (1.0103629711459753+0j)

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

  • функцию fftn,
    которая выполняет многомерное прямое преобразование Фурье
  • функцию ifft2,
    которая выполняет двумерное обратное преобразование Фурье
  • функцию ifft,
    которая выполняет одномерное обратное преобразование Фурье
  • функцию fft,
    которая выполняет одномерное прямое преобразование Фурье
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить