Spec-Zone.ru › PyTorch 2.14

torch.istft

torch.istft(input, n_fft, hop_length=None, win_length=None, window=None, center=True, normalized=False, onesided=None, length=None, return_complex=False) → Tensor:

Обратное кратковременное преобразование Фурье. Предполагается, что это обратное преобразование к stft().

Предупреждение

Начиная с версии 2.1 будет выдаваться предупреждение, если window не указано. В будущей версии этот атрибут станет обязательным. Укажите то же окно, которое использовалось при вызове stft.

У этой функции те же параметры (+ дополнительный необязательный параметр length), и она должна возвращать оценку исходного сигнала методом наименьших квадратов. Алгоритм проверяет выполнение условия NOLA (ненулевого перекрытия).

При указании параметров window и center важно следить за тем, чтобы огибающая, создаваемая суммой всех окон, никогда не была равна нулю в какой-либо момент времени. В частности, ∑t=−∞∞∣w∣2[n−t×hop_length]=0\sum_{t=-\infty}^{\infty} |w|^2[n-t\times hop\_length] \cancel{=} 0.

Поскольку stft() отбрасывает элементы в конце сигнала, если они не помещаются в кадр, istft может вернуть сигнал короче исходного (это может произойти, если center имеет значение False, поскольку сигнал не дополнен). Если в аргументах задано length и оно длиннее ожидаемого, istft дополнит возвращаемый сигнал нулями в конце.

Если center равно True, то будет добавлено дополнение, например 'constant', 'reflect' и т. д. Дополнение слева можно точно обрезать, поскольку его можно вычислить, а дополнение справа вычислить невозможно без дополнительной информации.

Пример: пусть последнее окно имеет вид [17, 18, 0, 0, 0] или [18, 0, 0, 0, 0]

Значения n_fft, hop_length, win_length совпадают, поэтому вычислить дополнение справа невозможно. Эти дополнительные значения могут быть нулями или отражением сигнала, поэтому может быть полезно указать length. Если length равно None, дополнение будет удалено максимально агрессивно (с некоторой потерей сигнала).

[1] D. W. Griffin и J. S. Lim, «Оценка сигнала по модифицированному кратковременному преобразованию Фурье», IEEE Trans. ASSP, т. 32, № 2, с. 236–243, апрель 1984 г.

Параметры:
  • input (Tensor) –

    Входной тензор. Ожидается, что он имеет формат выходных данных stft(). То есть это комплексный тензор формы (B?, N, T), где

    • B? — необязательное измерение пакета
    • N — число частотных отсчётов: (n_fft // 2) + 1 для одностороннего входа или n_fft в противном случае.
    • T — число кадров: 1 + length // hop_length для центрированного STFT или 1 + (length - n_fft) // hop_length в противном случае.

    Изменено в версии 2.0: Входные данные вещественного типа больше не поддерживаются. Теперь входные данные должны иметь комплексный тип, как у результата stft(..., return_complex=True).

  • n_fft (int) – Размер преобразования Фурье
  • hop_length (Optional[int]) – Расстояние между соседними кадрами скользящего окна. (По умолчанию: n_fft // 4)
  • win_length (Optional[int]) – Размер оконного кадра и фильтра STFT. (По умолчанию: n_fft)
  • window (Optional[torch.Tensor]) – Необязательная оконная функция. Форма должна быть одномерной, а <= n_fft (По умолчанию: torch.ones(win_length))
  • center (bool) – Был ли input дополнен с обеих сторон, чтобы tt-й кадр был центрирован по времени t×hop_lengtht \times \text{hop\_length}. (По умолчанию: True)
  • normalized (bool) – Был ли STFT нормализован. (По умолчанию: False)
  • onesided (Optional[bool]) – Был ли STFT односторонним. (По умолчанию: True, если n_fft != fft_size в размере входных данных)
  • length (Optional[int]) – Длина, до которой нужно обрезать сигнал (то есть длина исходного сигнала). По умолчанию используется (T - 1) * hop_length для центрированного STFT или n_fft + (T - 1) * hop_length в противном случае, где T — число входных кадров.
  • return_complex (Optional[bool]) – Должен ли выходной результат быть комплексным или следует считать, что входные данные получены из вещественного сигнала и окна. Обратите внимание, что этот параметр несовместим с onesided=True. (По умолчанию: False)
Возвращает:
Least squares estimation of the original signal of shape (B?, length) where

B? — необязательное измерение пакета из входного тензора.

Тип возвращаемого значения:

Tensor

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

Spec-Zone.ru

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