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().У него те же параметры (+ дополнительный необязательный параметр
length) и он должен возвращать оценку исходного сигнала методом наименьших квадратов. Алгоритм проверит условие NOLA (ненулевое перекрытие).Важно учесть параметры
windowиcenter, чтобы огибающая, созданная суммированием всех окон, никогда не была равна нулю в какой-то момент времени. В частности, .Поскольку
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 and J. S. Lim, “Signal estimation from modified short-time Fourier transform,” IEEE Trans. ASSP, vol.32, no.2, pp.236-243, Apr. 1984.
- Parameters
-
-
input (Tensor) –
Входной тензор. Ожидается, что он будет в формате
stft(), output. Это комплексный тензор формы(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]) – Необязательная функция окна. Форма должна быть 1d и
<= n_fft(По умолчанию:torch.ones(win_length)) -
center (bool) – Является ли
inputзаполненным с обеих сторон, чтобы кадр -й был центрирован во времени . (По умолчанию: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)
-
- Returns
-
-
Least squares estimation of the original signal of shape (B?, length) where -
B?— необязательное пакетное измерение из входного тензора.
-
- Return type
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.istft.html