如何在STFT中优化窗口长度?


12

我有许多EEG信号,我想使用线性方法(例如STFT(短时傅立叶变换))进行分析。在STFT中,如何优化分析窗口的长度,以适当的方式反映每个分析窗口的频谱?


如果要优化某些东西,则需要客观的措施。您的问题并没有真正说明如何测量“最佳”窗口长度。用“适当的方式”反映频谱是什么意思?
詹森·R

@Maen:您想分析EEG信号对它们做什么?
斯里拉姆

需要投票和最佳答案确认
Laurent Duval

Answers:


5

这是傅立叶变换的经典“不确定性原理”。您可以在时间上具有高分辨率,也可以在频率上具有高分辨率,但不能同时具有两者。窗口长度允许您在两者之间进行权衡。

如果要以例如10ms的分辨率检测EEG信号中的“事件”,则这应该是您的窗口长度。这将为您提供约100 Hz的频率分辨率。


3

最佳窗口长度将取决于您的应用程序。如果您的应用程序需要精确的时域信息,请减小窗口的大小。如果应用程序要求频域信息更具体,则增加窗口的大小。正如希尔马(Hilmar)所提到的,Uncertainty Principle真正让您别无选择。您无法同时在两个域中获得完美的分辨率。您只能在一个域中获得完美的分辨率,而在另一个域(时域和频域)或介于两者之间的分辨率为零时,却在两个域中都可以获得零分辨率。

我不知道这是否回答了您的问题,因为您专门询问过STFT。您可以尝试使用wavelet transforms信号中的信息。Wavelet transforms通过在多个窗口分辨率下分析信号,将为您提供更大范围的分辨率。


0

我不了解脑电图,但是使用STFT时的基本(也许应该说基本)问题是选择适当的窗口长度。如果您的脑电图是周期性的,并且您想解决基波和谐波,则应使用“长”窗。如果您想检测某个事件的开始或存在,或者您对频谱的包络更感兴趣,可以使用“短”窗口。


0

我花了很多时间在时频分析或滤波器组中优化窗口。可以优化它们以进行检测,降噪,信号分离……这非常取决于应用程序。由于时频分析通常是多余的,因此优化分析或综合窗口是不同的任务。并且在窗口设计中仅长度一个参数。

该问题甚至更加复杂,因为最优离散化公式比连续时域情况复杂得多(请参见例如局部时频分量的最佳集中Gabor变换)。

因此,我目前的实用经验法则是:从看起来合适的窗口形状和长度开始。然后,用两个长度为两倍和一半的窗口重复分析,并将结果合并。


-1

通常,宽的窗口大小会提供更好的频率分辨率,但时间分辨率会很差,反之亦然。看一下这个示例,在该示例中,我从C ++代码生成了一个5kHz,采样率为22050Hz的正弦波频谱图。

在此处输入图片说明

上面的频谱图具有2048个样本的窗口大小和1024个样本的重叠。

看一下这个频谱图:

在此处输入图片说明

这个窗口大小为512个样本,重叠为256个样本。

你能看到区别么?第一个具有比第二个更好的频率分辨率。但是第二个相比第一个具有更好的时间分辨率。因此,选择窗口大小取决于您的应用程序。如果要处理语音样本以跟踪音高,则选择较大的窗口尺寸应该是合适的选择。


简单的正弦波不利于解释频率分辨率。即使是正弦波也更好。
jojek

那么,根据您的说法,哪种输入是好的?
vishnu '16

我已经在上面提到了。
jojek

您是说正弦波吗?我还能使用其他信号吗?我有一个关于频谱图的演示文稿,并希望在我的有关Windows的幻灯片中显示一些好东西。将不胜感激任何技巧:)
vishnu '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.