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

评论

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

@Maen:您想分析EEG信号以对其进行处理?

需要投票和最佳答案验证

#1 楼

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

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

#2 楼

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

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

#3 楼

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

#4 楼

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

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

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

#5 楼

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



上面的声谱图的窗口大小为2048个样本,重叠为1024个样本。

查看此频谱图:



此图具有512个样本的窗口大小和256个样本的重叠。

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

评论


$ \ begingroup $
简单的正弦波不能解释频率分辨率。即使是正弦波也更好。
$ \ endgroup $
–jojek♦
16年1月26日在17:03

$ \ begingroup $
那么,根据您的说法,什么样的输入会比较好?
$ \ endgroup $
–vishnu
16年1月26日在17:56

$ \ begingroup $
我已经在上面提到了。
$ \ endgroup $
–jojek♦
16 Jan 26 '17:58



$ \ begingroup $
你的意思是正弦波?我还能使用其他信号吗?我有一个关于频谱图的演示文稿,并希望在我的有关Windows的幻灯片中显示一些好东西。将不胜感激任何技巧:)
$ \ endgroup $
–vishnu
16年1月26日在18:00