快捷方式

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]

引數 n_ffthop_lengthwin_length 都相同,這使得無法計算右側填充。這些額外的值可能是零,也可能是訊號的反射,因此提供 length 可能很有用。如果 lengthNone,則填充將被積極地移除(會損失部分訊號)。

[1] D. W. Griffin and J. S. Lim,“Signal estimation from modified short-time Fourier transform”,IEEE Trans. ASSP,第 32 卷,第 2 期,第 236-243 頁,1984 年 4 月。

引數
  • input (Tensor) –

    輸入張量。期望格式與 stft() 的輸出相同。即形狀為 (B?, N, T) 的複數張量,其中

    • B? 是可選的批次維度

    • N 是頻率樣本數,對於 onesided 輸入是 (n_fft // 2) + 1,否則是 n_fft

    • T 是幀數,對於 centered stft 是 1 + length // hop_length,否則是 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]) – 可選的視窗函式。形狀必須是一維且 <= n_fft。(預設值: torch.ones(win_length))

  • center (bool) – 輸入是否在兩側進行填充,使得第 tt 幀以時間 t×hop_lengtht \times \text{hop\_length} 為中心。(預設值: True)

  • normalized (bool) – STFT 是否已歸一化。(預設值: False)

  • onesided (Optional[bool]) – STFT 是否是單側的。(預設值: 如果輸入大小中的 n_fft != fft_size 則為 True)

  • length (Optional[int]) – 訊號的修剪量(即原始訊號長度)。對於 centered stft,預設為 (T - 1) * hop_length,否則為 n_fft + (T - 1) * hop_length,其中 T 是輸入幀數。

  • return_complex (Optional[bool]) – 輸出是否應為複數,或者輸入是否應假定源自實訊號和視窗。請注意,這與 onesided=True 不相容。(預設值: False)

返回值

原始訊號的最小二乘估計,形狀為 (B?, length),其中

B? 是輸入張量中的可選批次維度。

返回型別

Tensor

文件

查閱 PyTorch 的全面開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深入教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源