我有许多EEG信号,我想使用线性方法(例如STFT(短时傅立叶变换))进行分析。在STFT中,如何优化分析窗口的长度,以适当的方式反映每个分析窗口的频谱?
我有许多EEG信号,我想使用线性方法(例如STFT(短时傅立叶变换))进行分析。在STFT中,如何优化分析窗口的长度,以适当的方式反映每个分析窗口的频谱?
Answers:
最佳窗口长度将取决于您的应用程序。如果您的应用程序需要精确的时域信息,请减小窗口的大小。如果应用程序要求频域信息更具体,则增加窗口的大小。正如希尔马(Hilmar)所提到的,Uncertainty Principle
真正让您别无选择。您无法同时在两个域中获得完美的分辨率。您只能在一个域中获得完美的分辨率,而在另一个域(时域和频域)或介于两者之间的分辨率为零时,却在两个域中都可以获得零分辨率。
我不知道这是否回答了您的问题,因为您专门询问过STFT。您可以尝试使用wavelet transforms
信号中的信息。Wavelet transforms
通过在多个窗口分辨率下分析信号,将为您提供更大范围的分辨率。
我花了很多时间在时频分析或滤波器组中优化窗口。可以优化它们以进行检测,降噪,信号分离……这非常取决于应用程序。由于时频分析通常是多余的,因此优化分析或综合窗口是不同的任务。并且在窗口设计中仅长度一个参数。
该问题甚至更加复杂,因为最优离散化公式比连续时域情况复杂得多(请参见例如局部时频分量的最佳集中Gabor变换)。
因此,我目前的实用经验法则是:从看起来合适的窗口形状和长度开始。然后,用两个长度为两倍和一半的窗口重复分析,并将结果合并。
通常,宽的窗口大小会提供更好的频率分辨率,但时间分辨率会很差,反之亦然。看一下这个示例,在该示例中,我从C ++代码生成了一个5kHz,采样率为22050Hz的正弦波频谱图。
上面的频谱图具有2048个样本的窗口大小和1024个样本的重叠。
看一下这个频谱图:
这个窗口大小为512个样本,重叠为256个样本。
你能看到区别么?第一个具有比第二个更好的频率分辨率。但是第二个相比第一个具有更好的时间分辨率。因此,选择窗口大小取决于您的应用程序。如果要处理语音样本以跟踪音高,则选择较大的窗口尺寸应该是合适的选择。