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

Функция rfft

Функция rfft вычисляет одномерное дискретное преобразование Фурье (ДПФ) для вещественного входного тензора. В отличие от fft, эта функция возвращает только уникальные частотные компоненты, соответствующие положительным частотам, что позволяет эффективно работать с вещественными сигналами. Первым параметром функция принимает входной тензор, вторым параметром можно указать размерность преобразования, третьим параметром задаётся нормализация, четвёртым параметром указывается размерность, по которой выполняется преобразование.

Синтаксис

torch.fft.rfft(input, n=None, dim=-1, norm=None)

Параметры

input - входной тензор с вещественными значениями.

n - длина преобразования. Если значение не указано, используется длина входного тензора по указанной размерности.

dim - размерность, вдоль которой выполняется преобразование. По умолчанию преобразование выполняется по последней размерности.

norm - тип нормализации. Может принимать значения 'backward', 'ortho' или 'forward'. По умолчанию используется 'backward'.

Пример

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

import torch import torch.fft as fft t = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0]) res = fft.rfft(t) print(res)

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

tensor([15.0000+0.0000j, -2.5000+3.4410j, -2.5000+0.8123j])

Пример

Выполним преобразование с указанием длины и нормализацией:

import torch import torch.fft as fft t = torch.tensor([1.0, 2.0, 3.0, 4.0, 5.0]) res = fft.rfft(t, n=8, norm='ortho') print(res)

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

tensor([ 5.3033+0.0000j, -0.6807+1.9021j, -1.8529+1.3013j, -0.6807+0.6312j, -0.9241+0.0000j])

Пример

Применим преобразование к двумерному сигналу по указанному измерению:

import torch import torch.fft as fft t = torch.tensor([ [1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0] ]) res = fft.rfft(t, dim=0) print(res)

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

tensor([ [12.0000+0.0000j, 15.0000+0.0000j, 18.0000+0.0000j], [-6.0000+3.4641j, -6.0000+3.4641j, -6.0000+3.4641j] ])

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

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