STFT

STFT - 17

版本

  • 名称: STFT (GitHub)

  • : main

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

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

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

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