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 (Тензор) – входной тензор формы
(B?, L)гдеB?— это необязательное размерность пакет - n_fft (int) – размер преобразования Фурье
-
hop_length (int, необязательно) – расстояние между соседними кадрами скользящего окна. По умолчанию:
None(считается равнымfloor(n_fft / 4)) -
win_length (int, необязательно) – размер кадра окна и фильтра STFT. По умолчанию:
None(считается равнымn_fft) -
window (Тензор, необязательно) – необязательная функция окна. Форма должна быть одномерной и
<= 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 (Тензор) – входной тензор формы
- Возвращаемые значения
-
-
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?— необязательное двумерное измерение вещественной и мнимой компонент, присутствующее, когдаreturn_complex=False.
-
-
- Тип возвращаемого значения
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.stft.html