Signal processing 脑电小波分析

Signal processing 脑电小波分析,signal-processing,gsl,wavelet,time-frequency,Signal Processing,Gsl,Wavelet,Time Frequency,我想对脑电信号进行时频分析。我找到了计算小波系数的GSL小波函数。如何从该系数中提取实际频带(例如8-12 Hz)?GSL手册上说: 对于前向变换,在压缩三角形存储布局中,原始阵列的元素被离散小波变换f_i->w_{j,k}替换,其中j是级别j=0。。。J-1和K是每个级别内系数的指数,K=0。。。(2^j)-1。级别总数为J=\log\u 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

我想对脑电信号进行时频分析。我找到了计算小波系数的GSL小波函数。如何从该系数中提取实际频带(例如8-12 Hz)?GSL手册上说:

对于前向变换,在压缩三角形存储布局中,原始阵列的元素被离散小波变换
f_i->w_{j,k}
替换,其中
j
是级别
j=0。。。J-1
K
是每个级别内系数的指数,
K=0。。。(2^j)-1
。级别总数为
J=\log\u 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
等等


这意味着我只有频率1Hz,2Hz,4Hz,8Hz,16Hz的振幅。。。如何获得例如以5.3 Hz振荡的频率分量的振幅?如何获得整个频率范围的振幅,例如8-13 Hz的振幅?关于如何获得良好的时频分布,有什么建议吗?

我不确定您对一般信号处理有多熟悉,所以我会尽量说清楚,但不要为您操心

小波从本质上讲是一种非线性的。每个滤波器将给定信号分成两个不重叠的独立高频子带和低频子带,这样就可以通过逆变换进行重构。当连续应用这些过滤器时,您会得到一个过滤器树,其中一个过滤器的输出会反馈给下一个过滤器。构建此类树的最简单、最直观的方法如下:

  • 将信号分解为低频(近似)和高频(细节)分量
  • 取低频分量,并对其执行相同的处理
  • 继续,直到您处理了所需数量的级别
这样做的原因是,您可以随后生成近似信号。例如,如果您的滤波器将采样频率(Fs)为48000 Hz的信号(产生24000 Hz的最大频率)拆分为0到12000 Hz的近似分量和12001到24000 Hz的细节分量,则可以对近似分量进行每秒采样,而无需对信号进行基本上的抽取。这在信号和图像处理中有着广泛的应用

根据此描述,在第一级,您将频率内容从中间向下分割,并创建两个单独的信号。然后你把你的低频分量再从中间分开。现在总共有三个分量:0到6000赫兹、6001到12000赫兹和12001到24000赫兹。您可以看到,两个较新的组件都是第一个详图组件带宽的一半。你会得到这样一张照片:

这与您上面描述的带宽相关(
2^1 Hz
2^2 Hz
2^3 Hz
等等)。然而,使用更广泛的滤波器组定义,我们可以按照自己的喜好安排上述树结构,它仍然是一个滤波器组。例如,我们可以同时提供近似和细节分量,将其分解为两个高频和低频信号,如下所示

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

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


一般来说,我不建议你用小波来做这件事。你可以阅读一些关于设计好的带通滤波器的文献,然后简单地构建一个只允许8-13赫兹脑电图信号通过的滤波器。这是我以前做过的,对我来说效果很好。

Phonon,非常感谢您详尽的回答和链接的文档!这本书很有趣,虽然我已经知道了大部分内容。不幸的是,我的问题没有得到回答,那就是:我如何调整我的小波分析以得到那些滤波器组,我想这与我输入信号的样本大小或样本计数有关。但正如你所说,小波可能不是最好的工具,所以我将切换到带通滤波。你对此有什么建议吗(只是一些提示)?你的信号的采样频率是多少?