# STFT

# 函数简介

本函数对输入序列进行短时傅里叶变换。将输入序列划分为若干个等长的窗口,并对每一个窗口进行傅里叶变换,计算各个频率分量的幅值。

函数名: STFT

输入序列: 仅支持单个输入序列,类型为 INT32 / INT64 / FLOAT / DOUBLE

参数:

  • nfft:短时傅里叶变换的窗口大小,最后一个窗口可能小于该值。在缺省情况下,所有输入数据都被作为一个窗口。
  • beta:量化等级,即将量化为。默认值为0,仅在不给定T_SNR时使用。
  • T_SNR:目标SNR,通过该参数可以自动确定

输出序列: 输出单个序列,类型为DOUBLE,与输入序列的时间戳一一对应。

# 使用示例

输入序列:

+-----------------------------+---------------+
|                         Time|root.test.d1.s1|
+-----------------------------+---------------+
|1970-01-01T08:00:00.000+08:00|            0.0|
|1970-01-01T08:00:01.000+08:00|            1.0|
|1970-01-01T08:00:02.000+08:00|            0.0|
|1970-01-01T08:00:03.000+08:00|           -1.0|
|1970-01-01T08:00:04.000+08:00|            0.0|
|1970-01-01T08:00:05.000+08:00|           -2.0|
|1970-01-01T08:00:06.000+08:00|            0.0|
|1970-01-01T08:00:07.000+08:00|            2.0|
+-----------------------------+---------------+

用于查询的SQL语句:

select stft(s1,'nfft'='4') from root.test.d1

输出序列:

+-----------------------------+---------------------------------+
|                         Time|stft(root.test.d1.s1, "nfft"="4")|
+-----------------------------+---------------------------------+
|1970-01-01T08:00:00.000+08:00|                              0.0|
|1970-01-01T08:00:01.000+08:00|                              1.0|
|1970-01-01T08:00:02.000+08:00|                              0.0|
|1970-01-01T08:00:03.000+08:00|                              0.0|
|1970-01-01T08:00:04.000+08:00|                              0.0|
|1970-01-01T08:00:05.000+08:00|                              2.0|
|1970-01-01T08:00:06.000+08:00|                              0.0|
|1970-01-01T08:00:07.000+08:00|                              0.0|
+-----------------------------+---------------------------------+