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)[source] -
Коротковременное преобразование Фурье (STFT).
Предупреждение
С версии 1.8.0,
return_complexвсегда должны быть заданы явно для вещественных входных данных иreturn_complex=Falseустарело. Сильно предпочтительнееreturn_complex=True, так как в будущей версии PyTorch эта функция будет возвращать только комплексные тензоры.Обратите внимание, что
torch.view_as_real()можно использовать для восстановления вещественного тензора с дополнительным последним измерением для вещественной и мнимой компонент.STFT вычисляет преобразование Фурье коротких перекрывающихся окон входных данных. Это дает частотные компоненты сигнала, как они меняются со временем. Интерфейс этой функции смоделирован по (но не является прямым заменителем) функции librosa stft.
Игнорируя необязательное размерность пакета, этот метод вычисляет следующее выражение:
где — индекс скользящего окна, а — частота для
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верно, или вещественный тензор размера . Где — необязательный размер пакетаinput, — количество частот, к которым применяется STFT, а — общее количество кадров.Предупреждение
Эта функция изменила сигнатуру в версии 0.4.1. Вызов с предыдущей сигнатурой может привести к ошибке или возвратить неверный результат.
-
- Параметры:
-
- input (Tensor) – входной тензор
- n_fft (int) – размер преобразования Фурье
-
hop_length (int, optional) – расстояние между соседними кадрами скользящего окна. По умолчанию:
None(считается равнымfloor(n_fft / 4)) -
win_length (int, optional) – размер кадра окна и фильтра STFT. По умолчанию:
None(считается равнымn_fft) -
window (Tensor, optional) – опциональная функция окна. По умолчанию:
None(считается окном со значениями ) -
center (bool, optional) – нужно ли добавлять заполнитель
inputс обеих сторон, чтобы -й кадр был центрирован во времени . По умолчанию:True -
pad_mode (str, optional) – определяет метод заполнения, используемый, когда
centerравноTrue. По умолчанию:"reflect" -
normalized (bool, optional) – определяет, нужно ли возвращать нормализованные результаты STFT. По умолчанию:
False -
onesided (bool, optional) – определяет, нужно ли возвращать половину результатов для избежания дублирования для вещественных входных данных. По умолчанию:
Trueдля вещественныхinputиwindow,Falseв противном случае. - return_complex (bool, optional) – нужно ли возвращать комплексный тензор или вещественный тензор с дополнительным последним измерением для вещественной и мнимой составляющих.
- Возвращаемое значение:
-
Тензор, содержащий результат STFT с формой, описанной выше
- Тип возвращаемого значения:
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.stft.html