torch.stft
-
torch.stft(input, n_fft, hop_length=None, win_length=None, window=None, center=True, pad_mode='reflect', normalized=False, onesided=None, return_complex=None, align_to_window=None)[исходный код] -
Кратковременное преобразование Фурье (STFT).
Предупреждение
Начиная с версии 1.8.0, для вещественных входных данных параметр
return_complexнеобходимо всегда указывать явно, аreturn_complex=Falseсчитается устаревшим. Настоятельно рекомендуется использоватьreturn_complex=True, поскольку в будущей версии PyTorch эта функция будет возвращать только комплексные тензоры.Обратите внимание, что для восстановления вещественного тензора с дополнительным последним измерением для вещественной и мнимой частей можно использовать
torch.view_as_real().Предупреждение
Начиная с версии 2.1, будет выводиться предупреждение, если параметр
windowне указан. В будущей версии этот атрибут станет обязательным. Если окно не указано, сейчас по умолчанию используется прямоугольное окно, что может привести к нежелательным артефактам. Рекомендуется использовать окна с плавным спадом, напримерtorch.hann_window().STFT вычисляет преобразование Фурье для коротких перекрывающихся окон входного сигнала. В результате получаются частотные компоненты сигнала и их изменения во времени. Интерфейс этой функции разработан по образцу функции stft из библиотеки librosa (но не является её прямой заменой).
Если не учитывать необязательное измерение пакета, этот метод вычисляет следующее выражение:
где — индекс скользящего окна, а — частота для
onesided=Falseили дляonesided=True.-
inputдолжен быть одномерной временной последовательностью или двумерным пакетом временных последовательностей. - Если
hop_lengthравноNone(значение по умолчанию), оно считается равнымfloor(n_fft / 4). - Если
win_lengthравноNone(значение по умолчанию), оно считается равнымn_fft. -
windowможет быть одномерным тензором размераwin_length, например, созданным с помощьюtorch.hann_window(). ЕслиwindowравноNone(значение по умолчанию), считается, что оно везде в окне имеет значение . Если ,windowдополняется с обеих сторон до длиныn_fftперед применением. - Если
centerравноTrue(значение по умолчанию),inputдополняется с обеих сторон так, чтобы -й кадр был центрирован по времени . В противном случае -й кадр начинается по времени . -
pad_modeзадаёт способ дополнения, используемый дляinput, когдаcenterравноTrue. Все доступные варианты см. вtorch.nn.functional.pad(). Значение по умолчанию:"reflect". - Если
onesidedравноTrue(значение по умолчанию для вещественных входных данных), возвращаются только значения для из диапазона , поскольку преобразование Фурье из вещественных значений в комплексные обладает сопряжённой симметрией, то есть . Обратите внимание: если входные тензоры или тензоры окна комплексные, выводonesidedневозможен. - Если
normalizedравноTrue(значение по умолчанию —False), функция возвращает нормализованные результаты STFT, то есть умноженные на . - Если
return_complexравноTrue(значение по умолчанию, если входные данные комплексные), результатом будет комплексный тензор размерностиinput.dim() + 1. ЕслиFalse, результатом будет вещественный тензор размерностиinput.dim() + 2, где последнее измерение представляет вещественную и мнимую части.
Возвращает комплексный тензор размера , если
return_complexимеет значение true, или вещественный тензор размера . Здесь — необязательный размер пакета дляinput, — число частот, для которых применяется STFT, а — общее число используемых кадров.Предупреждение
Сигнатура этой функции изменилась в версии 0.4.1. Вызов с предыдущей сигнатурой может привести к ошибке или возврату неверного результата.
- Параметры:
-
-
input (Tensor) – входной тензор формы
(B?, L), гдеB?— необязательное измерение пакета - n_fft (int) – размер преобразования Фурье
-
hop_length (int, необязательно) – расстояние между соседними кадрами скользящего окна. Значение по умолчанию:
None(считается равнымfloor(n_fft / 4)) -
win_length (int, необязательно) – размер кадра окна и фильтра STFT. Значение по умолчанию:
None(считается равнымn_fft) -
window (Tensor, необязательно) – необязательная оконная функция. Форма должна быть одномерной и
<= n_fft. Значение по умолчанию:None(считается окном, состоящим из единиц ) -
center (bool, необязательно) – следует ли дополнять
inputс обеих сторон так, чтобы -й кадр был центрирован по времени . Значение по умолчанию:True -
pad_mode (str, необязательно) – задаёт способ дополнения, используемый, когда
centerравноTrue. Значение по умолчанию:"reflect" -
normalized (bool, необязательно) – определяет, возвращать ли нормализованные результаты STFT. Значение по умолчанию:
False -
onesided (bool, необязательно) – определяет, возвращать ли половину результатов во избежание избыточности для вещественных входных данных. Значение по умолчанию:
Trueдля вещественныхinputиwindow, в противном случае —False. -
return_complex (bool, необязательно) –
возвращать ли комплексный тензор или вещественный тензор с дополнительным последним измерением для вещественной и мнимой частей.
Изменено в версии 2.0:
return_complexтеперь является обязательным аргументом для вещественных входных данных, поскольку значение по умолчанию переводится наTrue.Устарело с версии 2.0:
return_complex=Falseсчитается устаревшим; вместо него используйтеreturn_complex=True. Обратите внимание: вызовtorch.view_as_real()для выходных данных восстановит устаревший формат результата.
-
input (Tensor) – входной тензор формы
- Возвращает:
-
-
A tensor containing the STFT result with shape (B?, N, T, C?) where -
-
B?— необязательное измерение пакета из входных данных. -
N— число частотных отсчётов:(n_fft // 2) + 1дляonesided=Trueилиn_fftв противном случае. -
T— число кадров:1 + L // hop_lengthдляcenter=Trueили1 + (L - n_fft) // hop_lengthв противном случае. -
C?— необязательное измерение длины 2 для вещественной и мнимой частей; присутствует приreturn_complex=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.stft.html