R中脑电图数据的巴特沃斯滤波
Butterworth filtering of EEG data in R
我是 R 和 EEG 信号方面的新手,所以如果问题的答案很明显,请原谅。
我正在尝试对 EEG 信号执行 Butterworth 滤波器以提取 Alpha 波段。当我执行过滤器时,生成的信号看起来很奇怪,完全不是我预期的那样,在时间范围的开始处有一个异常大的峰值。我尝试使用 eegfilter 和 bwfilter 来查看代码是否有问题,但是当我绘制结果时,两者之间的差异很小。我无法解释最终结果,如果有人能向我解释特殊的最终结果,我将不胜感激。
这是我正在查看的数据中的一个示例:
https://ufile.io/1ji48wg6
采样率为512。
我想提取 alpha 波段,所以频率在 8 到 12 Hz 之间
library(eegkit)
mturk <- read.csv("EEG_alpha.csv", head = TRUE, sep= ",")
mturk.but <- eegfilter(mturk, Fs = 512, lower = 8, upper = 12, method = "butter", order = 4)
plot(mturk.but)
这是绘制时的数据图片。最左边的图像是原始数据。中央图是使用 eegfilter 应用 Butterworth 滤波器的结果。右图是使用 bwfilter 应用巴特沃斯滤波器的结果。
Plots of data when filters are applied
数据集的Header:
脑电图
-8438.876837
-8442.718979
-8441.877183
-8439.974768
-8443.436883
-8448.900711
-8452.433874
-8441.616546
eegfilter 和 bwfilter 函数似乎在应用过滤器之前在数据前面添加 0,然后才对其进行归一化。因此,一旦数据被处理,您最终会在数据的开头得到类似于 Dirac 的东西,使过滤后的数据从原始状态开始:
EEG_raw
过滤后到此:
EEG butterworth filetered
但是,如果将数据归一化为0;在应用过滤器之前从所有值中减去时间序列的第一个值,不会出现类似 Dirac 的伪影:
EEG normalised followed by butterworth filter
我是 R 和 EEG 信号方面的新手,所以如果问题的答案很明显,请原谅。
我正在尝试对 EEG 信号执行 Butterworth 滤波器以提取 Alpha 波段。当我执行过滤器时,生成的信号看起来很奇怪,完全不是我预期的那样,在时间范围的开始处有一个异常大的峰值。我尝试使用 eegfilter 和 bwfilter 来查看代码是否有问题,但是当我绘制结果时,两者之间的差异很小。我无法解释最终结果,如果有人能向我解释特殊的最终结果,我将不胜感激。
这是我正在查看的数据中的一个示例: https://ufile.io/1ji48wg6
采样率为512。
我想提取 alpha 波段,所以频率在 8 到 12 Hz 之间
library(eegkit)
mturk <- read.csv("EEG_alpha.csv", head = TRUE, sep= ",")
mturk.but <- eegfilter(mturk, Fs = 512, lower = 8, upper = 12, method = "butter", order = 4)
plot(mturk.but)
这是绘制时的数据图片。最左边的图像是原始数据。中央图是使用 eegfilter 应用 Butterworth 滤波器的结果。右图是使用 bwfilter 应用巴特沃斯滤波器的结果。
Plots of data when filters are applied
数据集的Header:
脑电图
-8438.876837
-8442.718979
-8441.877183
-8439.974768
-8443.436883
-8448.900711
-8452.433874
-8441.616546
eegfilter 和 bwfilter 函数似乎在应用过滤器之前在数据前面添加 0,然后才对其进行归一化。因此,一旦数据被处理,您最终会在数据的开头得到类似于 Dirac 的东西,使过滤后的数据从原始状态开始:
EEG_raw
过滤后到此:
EEG butterworth filetered
但是,如果将数据归一化为0;在应用过滤器之前从所有值中减去时间序列的第一个值,不会出现类似 Dirac 的伪影:
EEG normalised followed by butterworth filter