Shortcuts

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() 的逆运算。

警告

从版本 2.1 开始,如果未指定 window,将会提供警告。在未来的版本中,此属性将是必需的。请提供与 stft 调用中使用的相同的窗口。

它具有相同的参数(+ 额外的可选参数 length),并且应该返回原始信号的最小二乘估计。该算法将使用NOLA条件(非零重叠)进行检查。

参数中的重要考虑因素 windowcenter 以确保所有窗口的总和在某些时间点上不会为零。具体来说, t=w2[nt×hop_length]=0\sum_{t=-\infty}^{\infty} |w|^2[n-t\times hop\_length] \cancel{=} 0

由于 stft() 会丢弃信号末尾的元素(如果它们不适合一个帧), istft 可能会返回比原始信号更短的信号(如果 center 为 False,则可能会发生这种情况,因为信号没有填充)。如果在参数中给出了 length 并且比预期的更长, istft 将在返回信号的末尾填充零。

如果 centerTrue,则会有填充,例如 'constant''reflect' 等。 左填充可以被精确地裁剪掉,因为它们可以被计算出来,但右填充在没有额外信息的情况下无法被计算出来。

示例:假设最后一个窗口是: [17, 18, 0, 0, 0] 对比 [18, 0, 0, 0, 0]

The n_fft, hop_length, win_length 都是相同的,这会阻止右填充的计算。这些额外的值可能是零或信号的反射,因此提供length可能是有用的。如果lengthNone,那么填充将被积极地移除(可能会丢失一些信号)。

[1] D. W. Griffin 和 J. S. Lim, “从修改后的短时傅里叶变换中估计信号,” IEEE Trans. ASSP, 第32卷, 第2期, 第236-243页, 1984年4月.

Parameters
  • 输入 (张量) –

    输入张量。预期为 stft() 的输出格式。即形状为 (B?, N, T) 的复数张量,其中

    • B? 是可选的批次维度

    • N 是频率样本的数量,对于单边输入为 (n_fft // 2) + 1,否则为 n_fft

    • T 是帧的数量,对于中心化的 STFT 为 1 + length // hop_length,否则为 1 + (length - n_fft) // hop_length

    版本 2.0 中的更改: 不再支持实数数据类型的输入。输入现在必须具有复数数据类型,如 stft(..., return_complex=True) 返回的那样。

  • n_fft (int) – 傅里叶变换的大小

  • hop_length (可选[int]) – 相邻滑动窗口帧之间的距离。 (默认值: n_fft // 4)

  • win_length (可选[int]) – 窗口帧和STFT滤波器的大小。(默认值: n_fft)

  • 窗口 (可选[torch.Tensor]) – 可选的窗口函数。 形状必须为1维且 <= n_fft (默认值: torch.ones(win_length))

  • center (bool) – 是否在两侧填充input,以便第tt帧在时间t×hop_lengtht \times \text{hop\_length}处居中。 (默认值: True)

  • 归一化 (bool) – STFT是否被归一化。(默认值: False)

  • onesided (可选[bool]) – STFT是否为单边。 (默认值: True 如果 n_fft != fft_size 在输入大小中)

  • 长度 (可选[int]) – 要修剪信号的数量(即原始信号长度)。默认为 (T - 1) * hop_length 对于居中的 stft,或者 n_fft + (T - 1) * hop_length 否则,其中 T 是输入帧的数量。

  • return_complex (可选[布尔值]) – 输出是否应为复数,或者输入是否应被假定为来自实信号和窗口。 注意,这与onesided=True不兼容。 (默认值: False)

Returns

原始信号的形状 (B?, length) 的最小二乘估计,其中

B? 是来自输入张量的可选批次维度。

Return type

张量