脑电波小波分析

时间:2011-06-27 13:43:21

标签: signal-processing gsl wavelet time-frequency

我想对EEG信号进行时频分析。我找到了用于计算小波系数的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 = 1 Hz,并且

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

依旧......

这意味着我只有1 Hz,2 Hz,4 Hz,8 Hz,16 Hz频率的幅度......我怎样才能获得振荡频率为5.3 Hz的频率分量?如何获得整个频率范围的幅度,例如幅度为8 - 13 Hz?任何建议如何获得良好的时频分布?

1 个答案:

答案 0 :(得分:12)

我不确定你对一般的信号处理有多熟悉,所以我会尽量清楚,但不要为你咀嚼食物。

小波基本上是filter banks。每个滤波器将给定信号分成两个非重叠的独立高频和低频子带,使得它然后可以通过逆变换重建。当连续应用这样的过滤器时,您会得到一个过滤器树,其输出为1。构建此类树的最简单,最直观的方法如下:

  • 将信号分解为低频(近似)和高频(细节)分量
  • 获取低频分量,并对其执行相同的处理
  • 继续进行,直到您处理了所需的级别数

原因是你可以downsample得到的近似信号。例如,如果您的滤波器将采样频率(Fs)为48000 Hz(最大频率为24000 Hz,Nyquist Theorem - 分为0到12000 Hz近似分量和12001到24000 Hz细节分量的信号,然后,可以在不使用aliasing的情况下获取近似分量的每个第二个样本,基本上是对信号进行抽取。这广泛用于信号和图像compression

根据此说明,在第一级,您将频率内容分成中间,并创建两个单独的信号。然后你拿下你的低频成分并再次将它分成中间。您现在总共获得三个组件:0到6000 Hz,6001到12000 Hz和12001到24000 Hz。您会看到两个较新的组件都是第一个细节组件带宽的一半。你会得到这样的图片:

enter image description here

这与您在上面描述的带宽相关(2^1 Hz2^2 Hz2^3 Hz等等。但是,使用更广泛的过滤器库定义,我们可以根据需要安排上述树结构,它仍然是一个过滤器库。例如,我们可以将两个近似和细节分量输入到分成两个高频和低频信号,如此

enter image description here

如果你仔细观察,你会看到频率中间的高频和低频分量都在中间位置,因此你会得到一个均匀滤波器组,它的频率分离看起来更像这样:

enter image description here

请注意,所有波段都具有相同的大小。通过构建具有N级的均匀滤波器组,您最终得到2 ^(N-1)个带低音滤波器的响应。您可以微调滤波器组,最终为您提供所需的频段(8-13 Hz)。

一般情况下,我不会建议你用小波来做这件事。您可以阅读一些有关设计良好带通滤波器的文献,并简单地构建一个只允许通过8-13 Hz的EEG信号的滤波器。这就是我以前做过的,对我来说效果很好。