STFT

STFT - 17

版本

  • 名称: STFT (GitHub)

  • 域名: main

  • since_version: 17

  • 函数: False

  • support_level: 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]*。请注意,如果输入或窗口张量是复数,则无法进行onesided输出。启用onesided并使用实数输入时,将执行实值快速傅里叶变换(RFFT)。当使用实数或复数输入调用时,默认值为1。值可以为0或1。

输入

介于2到4个输入之间。

  • signal (异构) - 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之间步进的样本数。

  • window (可选, 异构) - T1:

    表示将在信号上滑动的窗口的张量。窗口必须具有形状为[window_shape]的秩1。这是一个可选值。

  • 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 在 ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) ) 中:

    将信号和输出限制为浮点张量。

  • T2 在 ( tensor(int32), tensor(int64) ) 中:

    将标量长度类型限制为int64_t。