EEG小波分析

4
我想对一个脑电信号进行时频分析。我发现GSL小波函数可以计算小波系数。如何从这些系数中提取实际的频率带(例如8-12 Hz)? GSL手册上说:
对于正向变换,原始数组的元素被离散小波变换f_i -> w_{j,k}所替换,以紧密的三角形存储布局为基础,其中J是级别的索引j = 0 ... J-1和K是每个级别内系数的索引,k = 0 ... (2^j)-1。总共的级别数量为J = log_2(n)。
输出数据具有以下形式,(s_{-1,0}, d_{0,0}, d_{1,0}, d_{1,1}, d_{2,0}, ..., d_{j,k}, ..., d_{J-1,2^{J-1}-1})
如果我理解正确,输出数组data[]在位置1(例如data[1])包含频率带2^0 = 1Hz的幅度。
data[2] = 2^1 Hz  
data[3] = 2^1 Hz  
data[4] = 2^2 Hz  
until  
data[7] = 2^2 Hz  
data[8] = 2^3 Hz

意思是我只有1Hz、2Hz、4Hz、8Hz、16Hz等频率的振幅。如果我想得到5.3Hz振荡频率的分量的振幅,该怎么办?如果我想要整个频率范围比如8-13Hz的振幅,又该怎么做呢?是否有一些好的建议可以获取良好的时频分布呢?

1个回答

12

我不确定你对一般的信号处理熟悉到什么程度,因此我会尽量清晰地解释,但不会为你准备好所有细节。

小波本质上是一种滤波器组。每个滤波器将一个给定的信号分成两个非重叠、独立的高频和低频子带,然后通过逆变换手段进行重构。当这些滤波器连续应用时,就形成了一个滤波树,其中一个输出被送入下一个输入。最简单、最直观的方法是按以下方式构建这样的树:

  • 将信号分解为低频(近似)和高频(细节)组件
  • 对低频部分进行相同的处理
  • 重复以上过程,直到达到所需级别

这样做的原因是可以下采样结果的近似信号。例如,如果你的滤波器将采样频率(Fs)为48000 Hz 的信号(根据奈奎斯特定理,最大频率为24000 Hz)分成0到12000 Hz 的近似组件和12001到24000 Hz 的细节组件,你可以采用每个近似组件的第二个样本,而不会混叠,从而对信号进行降采样。这在信号和图像压缩中被广泛使用。

根据这个描述,在第一级上,你将频率内容分成两部分并创建两个单独的信号。然后,您将低频组件再次分成两部分。现在您总共获得三个组件:0到6000 Hz,6001到12000 Hz和12001到24000 Hz。您会发现,两个新组件都是第一个详细组件的带宽的一半。您可以得到这样一张图片: enter image description here 这与您上面描述的带宽相对应(2 ^ 1 Hz,2 ^ 2 Hz,2 ^ 3 Hz等)。但是,使用更广泛的滤波器库定义,我们可以按照自己的方式排列上述树形结构,并且它仍将保持为滤波器库。例如,我们可以将逼近和详细组件同时馈送到拆分为两个高频和低频信号,如下所示: enter image description here 如果您仔细观察,您会发现高频和低频组件在它们的频率中间,并且结果您会获得一个均匀滤波器库,其频率分离看起来更像是这样: enter image description here 请注意,所有频段的大小相同。通过构建具有N级别的均匀滤波器库,您最终会获得2 ^(N-1)个频段通带滤波器的响应。您可以微调您的滤波器库,最终给您所需的频段(8-13 Hz)。
一般来说,我不建议您使用小波进行此操作。您可以查阅一些关于设计良好的带通滤波器的文献,并简单地构建一个仅允许您的EEG信号中8-13 Hz通过的滤波器。这就是我以前所做的,并且对我效果很好。

Phonon,非常感谢您详尽的回答和提供的链接文档!虽然我已经了解了大部分内容,但这些都是非常有趣的阅读。不幸的是,我的问题仍未得到解答,即:我该如何调整小波分析以获得那些滤波器组,我猜这可能与输入信号的样本大小或样本数量有关。但正如您所说,小波可能不是最好的工具,因此我将转向带通滤波。您对此有任何建议(只是一些提示)吗? - Michael
你的信号采样频率是多少? - Phonon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接