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

Функция ifftshift

Функция ifftshift выполняет обратное преобразование сдвига нулевой частоты, восстанавливая исходный порядок элементов после применения fftshift. Она полезна при работе с быстрым преобразованием Фурье, когда требуется привести данные обратно к формату, ожидаемому функциями ifft, ifft2 или ifftn. Первым параметром функция принимает тензор, вторым параметром можно указать размерность, по которой выполняется сдвиг.

Синтаксис

torch.fft.ifftshift(input, [dim])

Пример

Давайте создадим одномерный тензор и применим к нему fftshift, а затем восстановим исходный порядок с помощью ifftshift:

import torch t = torch.tensor([1, 2, 3, 4, 5]) shifted = torch.fft.fftshift(t) res = torch.fft.ifftshift(shifted) print(res)

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

tensor([1, 2, 3, 4, 5])

Пример

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

import torch t = torch.tensor([ [1, 2, 3], [4, 5, 6], [7, 8, 9], ]) shifted = torch.fft.fftshift(t) res = torch.fft.ifftshift(shifted) print(res)

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

tensor([ [1, 2, 3], [4, 5, 6], [7, 8, 9], ])

Пример

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

import torch t = torch.tensor([ [1, 2, 3, 4], [5, 6, 7, 8], ]) shifted = torch.fft.fftshift(t, dim=1) res = torch.fft.ifftshift(shifted, dim=1) print(res)

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

tensor([ [1, 2, 3, 4], [5, 6, 7, 8], ])

Пример

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

import torch t = torch.tensor([1.0, 2.0, 3.0, 4.0]) fft_res = torch.fft.fft(t) shifted = torch.fft.fftshift(fft_res) unshifted = torch.fft.ifftshift(shifted) res = torch.fft.ifft(unshifted) print(res)

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

tensor([1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j])

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

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