除 STFT、DWT、ConstantQ-Transform 之外的其他时频平面平铺:多分辨率 STFT?

信息处理 小波 stft 时频 载重吨
2022-02-24 15:34:20

众所周知

  • a) STFT 给出了时频平面的矩形平铺

  • b) 小波变换给出了非线性平铺(低频更好的频率分辨率,以及更高频率的更好的时域分辨率)

    在此处输入图像描述

  • c) 恒定 Q 变换(例如 NonStationaryGaborTransform)具有频率区间的对数刻度(而不是与 STFT 线性),并且具有像这样的时频平铺(y 轴对数):

    在此处输入图像描述

问题:

有没有这样的变换:

在此处输入图像描述

即像普通的 STFT,但FFT 大小会随着连续的时间帧而改变。

示例:如果存在瞬态,FFT 尺寸较小(512)以保持良好的时域分辨率,那么几个时间帧后信号相当平稳,因此 FFT 尺寸较大(8192)具有良好的频率分辨率。

这就像一个自适应/多分辨率 STFT。

最后但并非最不重要的一点:当然,在连续的时间帧上执行具有不同窗口长度的 FFT 总是可能的,所以我描述的前向变换可能很容易做到

我在这里要问的是一个可逆的变换,即我们可以计算一个逆变换来恢复初始信号。

这在 Matlab 或 Python 中是否存在?

2个回答

您的时频网格是蒙德里安形状的:本质上,矩形支持时间或频率轴的二元分割。因此,您可以轻松地开始任何可逆时频平铺,并进一步将其任何矩形切割到另一个可逆平铺上。有些人称之为分层或嵌套的时间尺度/时间频率分解。只要每个都是可逆的,组合就保持可逆。

此外,只有通过对系数进行分组,才能将二元和二次幂统一分解转换为另一个。例如,这在1996 年的基于 DCT 的嵌入式图像编码器中使用:一个八(或23) 多频带滤波器组 DCT 变成了 3 级二元结构。

所以,结合二进小波和2K窗口滤波器组,您可以根据需要获得可逆方案。

但是有一个问题:如何选择如何嵌套这些不同的嵌入式分解?被视为小波或局部余弦、重叠变换包,可以使用熵概念,但多样性可能很大。

蒙德里安绘画

在典型的离散傅里叶变换 (DFT) 中:

X[k]=n=0N1x[n]ej2πknN,k[0..NDFT1]

在哪里N是长度xNDFT是 DFT 和的评估点数。X[k]是复杂的并且代表kthDFT 的 bin。与相关的自然频率kf(k)=kFsNDFT. 在这种情况下,每两个连续的值f(k),f(k+1)将有一个恒定的“步骤”(这就是我所说的b[k]早作为kth b )。

当你以 STFT 方式应用它时,你所做的就是“重新索引”x[n]. 变换保持不变。所有改变的是您应用变换的信号“切片”以及您重新组合这些中间 DFT 的方法(我在这里指的是重叠添加重叠保存)。

现在,没有什么能阻止你使用一些NDFT[u]这将代表每帧的不同数量的 DFT 点u的 STFT。

你可以改变一些框架uNDFT[u]=256点和下一个在NDFT[u+1]=1024.

真正的问题是您使用什么信号来驱动您选择NDFT[u]? .

从不同的角度来看,这相当于改变采样频率Fs取决于信号在给定时间的“有趣程度”。例如,您可能有一个信号在一段时间内相当稳定,直到它突然变得更加复杂和弯曲。你不需要很多正弦曲线来描述一个相当恒定的信号,但你确实需要很多正弦曲线来描述一个更复杂的信号。

在计算机图形学中,有时您这样做是为了描述复杂的对象(曲线、曲面)。例如看一下这个,你可以根据数据集的稀疏性改变空间细分,或者当你走另一种方式时,在曲线简化中,只要它们不扭曲,你就可以从曲线中删除点它太多了。

所以,是的,没有什么能阻止你做你所描述的事情,但真正的困难在于提出一个指标,当在本地应用时,它告诉你该区域的信号“更有趣”并且(正如 Laurent Duval 所说) 选择太多,有不同的解释。

希望这可以帮助。