根据短时傅立叶变换(STFT)算法,计算联合时频域中信号的能量分布。


icon

输入/输出

  • ccclst.png 时频配置

    时频配置指定频率区间的配置。时频配置还可确定STFT时频图{X}的列数。

  • cbool.png 强制频率区间为2的幂?

    强制频率区间为2的幂?指定是否强制使频率区间为2的幂。强制频率区间为2的幂?的值为TRUE且频率区间不是2的幂,该VI将设置频率区间为最近的2的幂。默认值为TRUE。

  • cbool.png 不包括Nyquist频率?

    不包括Nyquist频率?指定STFT时频图{X}中是否包含Nyquist频率的能量。

    频率区间为偶数且不包括Nyquist频率?的值为TRUE,则STFT时频图{X}不包括Nyquist频率的能量。如频率区间为奇数,LabVIEW将忽略不包括Nyquist频率?参数的值。默认值为TRUE。

  • c1ddbl.png X

    X指定输入的时域信号。

  • cnclst.png 时频采样信息

    时频采样信息指定用于对联合时频域中的信号进行采样的密度以及输出的二维时频数组的大小。

  • ci32.png 时间步长

    时间步长指定对滑动窗进行移动所需的采样数。

    时间步长小于等于0时,VI将通过自动调整时间步长使STFT时频图{X}中的行数小于512。默认值为-1

  • ci32.png 频率区间

    频率区间指定STFT的FFT大小。如频率区间小于等于0,VI将设置频率区间为512。如频率区间为1,VI将强制转换频率区间为2。默认值为512。

  • cnclst.png 窗信息

    窗信息指定用于计算STFT窗的信息。

  • cu32.png 类型

    类型指定用于计算STFT的窗的类型。默认值为Hanning

    0矩形
    1Hanning
    2Hamming
    3Blackman-Harris
    4Exact Blackman
    5Blackman
    6Flat Top
    74阶B-Harris
    87阶B-Harris
    9低旁波瓣
    11Blackman Nuttall
    30三角
    31Bartlett-Hanning
    32Bohman
    33Parzen
    34Welch
    60Kaiser
    61Dolph-Chebyshev
    62高斯
  • ci32.png 长度

    长度指定采样中窗的长度。如长度小于等于0,VI将设置长度为64。默认值为64。

  • cdbl.png 窗参数

    窗参数是Kaiser窗的beta参数、高斯窗的标准差,或Dolph-Chebyshev窗的主瓣与旁瓣的比率s。如窗类型是其它窗,VI可忽略该输入。

    窗参数的默认值是NaN,可设置Kaiser窗的beta参数为0、高斯窗的标准差为,或设置Dolph-Chebyshev窗的s为60。L是窗的长度

  • cbool.png 能量守恒?

    能量守恒指定是否缩放STFT时频图{X},用于保证联合时频域中的能量与时域中的能量相等。默认值为TRUE。

  • i2ddbl.png STFT时频图{X}

    STFT时频图{X}该二维数组用于描述联合时频域中的时间波形能量分布。

  • ii32.png 错误

    错误返回VI的任何错误或警告。将错误连接至错误代码至错误簇转换VI,可将错误代码或警告转换为错误簇。

  • 计算STFT时频图{X}之前,VI先计算X的STFT。VI通过滑动窗使信号分解为多个数据快,得到X的STFT。然后,VI通过对每个数据块进行N点快速傅立叶变换获取每个数据块中的频率信息,N频率区间。STFT使用第一个滑动窗的中间作为信号X的第一个采样,并通过在信号的开始部分添加0扩展信号。然后,滑动窗可移动时间步长个采样,到达下一个数据块。如滑动窗移出信号X,该VI使用0对信号X进行填充。

    下图为该VI计算STFT的示意图。

    强制频率区间为2的幂?的值为TRUE,频率区间不是2的幂,可使用下列方程:

    K = 2[log2(频率区间)]

    [ ]是最近整数运算。

    否则,K = 频率区间

    如STFT运算的结果是STFT{X}矩阵,STFT{X}为M行-K列,则下列等式成立:

    • LX中元素的数量
    • 是向下取整运算

    通过下列方程可用STFT{X}逼近联合时频域的能量:

    结果几乎与时域中的能量相同。如下列表达式所示:

    VI先计算X的STFT,然后计算X的STFT时频图。VI通过计算STFT{X}中元素的幅度平方得到STFT时频图。由于FFT返回对称的结果,VI只需计算STFT{X}左边的STFT时频图{X}。如下列方程所示:

    下列等式成立:

    • i = 0,1,..., M-1
    • j = 0,1,..., N-1
    • 是向上取整运算。

    时间步长的值较小,则VI返回的时频图可能较大,需要较长的计算时间和大量的内存。NI建议设置的时间步长值不能使谱图中的行数大于512。如需使用较小的采样率获取更多详细信息,在信号长度较大时,可使信号划分为较小的部分,分别计算每个部分的时频图。

    窗的长度可影响STFT的时间精度和频率精度。较窄的窗的持续时间较短、带宽较大,可得到更好的时间精度,但频率精度不理想。较宽的窗的持续时间较长、带宽较窄,可得到更好的频率精度,但时间精度不理想。

    如果将 " force freq bins to power of 2?"、" exclude Nyquistfrequency? "和 " energy conservation? "设置 "TRUE",则该 VI 返回的结果与 LabVIEW 高级信号处理工具包中的 TFA STFT Spectrogram VI 相同。

    范例

    请参考LabVIEW附带的下列范例文件。

    • labview\examples\Signal Processing\Transforms\STFT Spectrogram Demo.vi