Spec-Zone.ru › PyTorch 1

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, чтобы огибающая, созданная суммированием всех окон, никогда не была равна нулю в определённый момент времени. В частности, ∑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 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(), может быть комплексным (channel, fft_size, n_frame) или вещественным (channel, fft_size, n_frame, 2), где размерность channel необязательна.

    Устарело начиная с версии 1.8.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]) – Необязательная функция окна. (По умолчанию: 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]) – Количество элементов для обрезки сигнала (т.е. исходная длина сигнала). (По умолчанию: весь сигнал)
  • return_complex (Optional[bool]) – Должен ли вывод быть комплексным, или ввод должен предполагаться полученным от действительного сигнала и окна. Обратите внимание, что это несовместимо с onesided=True. (По умолчанию: False)
Returns:

Оценку исходного сигнала по методу наименьших квадратов размера (…, signal_length)

Return type:

Tensor

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

Spec-Zone.ru

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