STFT

STFT - 17

版本

  • 名稱: STFT (GitHub)

  • 網域: main

  • since_version: 17

  • 函數: False

  • 支援等級: SupportType.COMMON

  • 形狀推斷: True

此版本的運算符自版本 17 起可用。

摘要

計算訊號的短時傅立葉轉換。

屬性

  • onesided - INT (預設為 '1')

    如果 onesided 為 1,則僅傳回 w 在 [0, 1, 2, …, floor(n_fft/2) + 1] 中的值,因為實數到複數傅立葉轉換滿足共軛對稱性,即 X[m, w] = X[m,w]=X[m,n_fft-w]*。請注意,如果輸入或視窗張量是複數,則無法進行單邊輸出。使用實數輸入啟用單邊會執行實數快速傅立葉轉換 (RFFT)。當使用實數或複數輸入調用時,預設值為 1。值可以是 0 或 1。

輸入

介於 2 到 4 個輸入之間。

  • 訊號 (異質) - T1

    表示實數或複數訊號的輸入張量。對於實數輸入,預期形狀如下:[batch_size][signal_length][1]。對於複數輸入,預期形狀如下:[batch_size][signal_length][2],其中 [batch_size][signal_length][0] 表示實數部分,[batch_size][signal_length][1] 表示訊號的虛數部分。

  • frame_step (異質) - T2

    連續 DFT 之間步進的樣本數。

  • 視窗 (可選,異質) - T1

    表示將在訊號上滑動的視窗的張量。視窗的秩必須為 1,形狀為:[window_shape]。這是一個可選值。

  • frame_length (可選,異質) - T2

    表示 DFT 大小的純量。這是一個可選值。

輸出

  • 輸出 (異質) - T1

    訊號的短時傅立葉轉換。如果 onesided 為 1,則輸出形狀如下:[batch_size][frames][dft_unique_bins][2],其中 dft_unique_bins 為 frame_length // 2 + 1(DFT 的唯一分量)。如果 onesided 為 0,則輸出形狀如下:[batch_size][frames][frame_length][2],其中 frame_length 為 DFT 的長度。

類型約束

  • T1 in ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) )

    限制訊號和輸出為浮點數張量。

  • T2 in ( tensor(int32), tensor(int64) )

    限制純量長度類型為 int64_t。