R中的脑电数据的Butterworth滤波

问题描述 投票:0回答:1

我对R和EEG信号非常新,所以如果问题的答案很明显,请原谅。

我正在尝试对EEG信号执行Butterworth滤波器以提取Alpha波段。当我执行滤波器时,结果信号看起来非常奇怪,完全不是我所期望的,在时间帧的开头有一个异常大的峰值。我尝试使用eegfilter和bwfilter来查看代码是否有问题但是当我绘制结果时两者之间的差别很小。我无法解释最终结果,如果有人能够向我解释特殊的最终结果,我将不胜感激。

以下是我正在查看的数据示例:https://ufile.io/1ji48wg6

采样率为512。

我想提取alpha波段,因此频率在8到12赫兹之间

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应用Butterworth滤波器的结果。

Plots of data when filters are applied

数据集的标题:

脑电图

-8438.876837

-8442.718979

-8441.877183

-8439.974768

-8443.436883

-8448.900711

-8452.433874

-8441.616546

r filtering spectrum neuroscience spectral
1个回答
0
投票

似乎eegfilter和bwfilter函数在应用过滤器之前在数据前添加0,然后才对其进行标准化。因此,一旦处理完数据,您最终会在数据开头处出现类似于Dirac的内容,从而使过滤后的数据从其原始状态开始:

EEG_raw

一旦你过滤了它:

EEG butterworth filetered

但是,如果将数据标准化为0;在应用过滤器之前从所有值中减去时间序列的第一个值,不会出现类似Dirac的伪像:

EEG normalised followed by butterworth filter

© www.soinside.com 2019 - 2024. All rights reserved.