torch.fft.irfftn
-
torch.fft.irfftn(input, s=None, dim=None, norm=None, *, out=None) → Tensor[исходный код] -
Вычисляет обратное преобразование
rfftn().inputинтерпретируется как односторонний эрмитов сигнал в частотной области, полученный с помощьюrfftn(). В силу эрмитова свойства выходные значения будут вещественными.Примечание
Чтобы удовлетворить эрмитову свойству, некоторые входные частоты должны быть вещественными. В таких случаях мнимая часть будет игнорироваться. Например, любая мнимая часть в члене нулевой частоты не может быть представлена в вещественном выходе и поэтому всегда будет игнорироваться.
Примечание
Правильная интерпретация эрмитова входа зависит от длины исходных данных, заданной с помощью
s. Это связано с тем, что каждой входной форме могут соответствовать сигналы как нечётной, так и чётной длины. По умолчанию предполагается, что длина сигнала чётная, поэтому для сигналов нечётной длины обратное преобразование не восстановит исходные данные. Рекомендуется всегда передавать форму сигналаs.Примечание
Поддерживаются torch.half и torch.chalf на CUDA с архитектурой GPU SM53 или выше. Однако длина сигнала во всех преобразуемых измерениях должна быть степенью двойки. При аргументах по умолчанию размер последнего измерения должен быть равен (2^n + 1), так как аргумент
sпо умолчанию задаёт чётный размер выходных данных = 2 * (last_dim_size - 1)- Параметры:
-
- input (Tensor) – входной тензор
-
s (Tuple[int], optional) – Размер сигнала в преобразуемых измерениях. Если задан, каждое измерение
dim[i]будет дополнено нулями или обрезано до длиныs[i]перед вычислением вещественного БПФ. Если длина-1не задана, в этом измерении дополнение не выполняется. По умолчанию выходной размер последнего измерения считается чётным:s[-1] = 2*(input.size(dim[-1]) - 1). -
dim (Tuple[int], optional) – Измерения, которые нужно преобразовать. Последнее измерение должно быть сжатым измерением полуспектра Эрмита. По умолчанию преобразуются все измерения или последние
len(s)измерения, если заданоs. -
norm (str, optional) –
Режим нормализации. Для обратного преобразования (
irfftn()) ему соответствуют следующие значения:-
"forward"— без нормализации -
"backward"— нормализация на1/n -
"ortho"— нормализация на1/sqrt(n)(обеспечивает ортонормированность вещественного обратного БПФ)
Здесь
n = prod(s)— логический размер обратного БПФ. Вызов прямого преобразования (rfftn()) с тем же режимом нормализации обеспечит общую нормализацию1/nдля обоих преобразований. Это необходимо, чтобыirfftn()было точным обратным преобразованием.По умолчанию используется
"backward"(нормализация на1/n). -
- Именованные аргументы:
-
out (Tensor, optional) – выходной тензор.
Пример
>>> t = torch.rand(10, 9) >>> T = torch.fft.rfftn(t)
Если не указать длину выходных данных для
irfft(), обратное преобразование не восстановит исходные данные, поскольку входные данные имеют нечётную длину в последнем измерении:>>> torch.fft.irfftn(T).size() torch.Size([10, 8])
Поэтому рекомендуется всегда передавать форму сигнала
s.>>> roundtrip = torch.fft.irfftn(T, t.size()) >>> roundtrip.size() torch.Size([10, 9]) >>> 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.irfftn.html