Spec-Zone.ru › PyTorch 2.14

torch.fft.irfft

torch.fft.irfft(input, n=None, dim=-1, norm=None, *, out=None) → Tensor [source]

Вычисляет обратное преобразование функции rfft().

input интерпретируется как односторонний эрмитов сигнал в частотной области, полученный с помощью rfft(). В силу эрмитова свойства результат будет вещественным.

Примечание

Для соблюдения эрмитова свойства некоторые входные частоты должны быть вещественными. В таких случаях мнимая часть игнорируется. Например, мнимая часть компоненты нулевой частоты не может быть представлена в вещественном результате и поэтому всегда игнорируется.

Примечание

Правильная интерпретация эрмитова входа зависит от длины исходных данных, задаваемой параметром n. Это связано с тем, что каждой форме входных данных может соответствовать сигнал как нечётной, так и чётной длины. По умолчанию предполагается, что длина сигнала чётная, поэтому для сигналов нечётной длины обратное преобразование не восстановит исходные данные должным образом. Поэтому рекомендуется всегда передавать длину сигнала n.

Примечание

Поддерживаются torch.half и torch.chalf на CUDA с архитектурой GPU SM53 или выше. Однако длина сигнала в каждом преобразуемом измерении должна быть степенью 2. При аргументах по умолчанию размер преобразуемого измерения должен быть равен (2^n + 1), поскольку аргумент n по умолчанию задаёт чётный размер результата = 2 * (transformed_dim_size - 1)

Параметры:
  • input (Tensor) – входной тензор, представляющий собой полусимметричный эрмитов сигнал
  • n (int, необязательный) – Длина выходного сигнала. Определяет длину выходного сигнала. Если задано, перед вычислением вещественного обратного БПФ входные данные будут дополнены нулями или обрезаны до этой длины. По умолчанию используется чётная длина результата: n=2*(input.size(dim) - 1).
  • dim (int, необязательный) – Измерение, вдоль которого выполняется одномерное вещественное обратное БПФ.
  • norm (str, необязательный) –

    Режим нормализации. Для обратного преобразования (irfft()) соответствуют следующие варианты:

    • "forward" — без нормализации
    • "backward" — нормализация на 1/n
    • "ortho" — нормализация на 1/sqrt(n) (вещественное обратное БПФ становится ортонормированным)

    Вызов прямого преобразования (rfft()) с тем же режимом нормализации обеспечит общую нормализацию 1/n между двумя преобразованиями. Это необходимо, чтобы irfft() было точным обратным преобразованием.

    По умолчанию используется "backward" (нормализация на 1/n).

Именованные аргументы:

out (Tensor, необязательный) – выходной тензор.

Пример

>>> t = torch.linspace(0, 1, 5)
>>> t
tensor([0.0000, 0.2500, 0.5000, 0.7500, 1.0000])
>>> T = torch.fft.rfft(t)
>>> T
tensor([ 2.5000+0.0000j, -0.6250+0.8602j, -0.6250+0.2031j])

Если не указать длину результата для irfft(), результат не восстановит исходные данные должным образом, поскольку длина входных данных нечётная:

>>> torch.fft.irfft(T)
tensor([0.1562, 0.3511, 0.7812, 1.2114])

Поэтому рекомендуется всегда передавать длину сигнала n:

>>> roundtrip = torch.fft.irfft(T, t.numel())
>>> torch.testing.assert_close(roundtrip, t, check_stride=False)

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.fft.irfft.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API