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