2

我最近记录了采样率为 256Hz 的脑电信号。信号将以 4-64Hz 的频率通过。我需要一个代码来过滤脑电数据。matlab 中是否有任何类型的滤波器最适合过滤伪影或噪声信号??

4

2 回答 2

2

您可以在 50 或 60 Hz 处应用陷波滤波器

来自眼球运动的伪影通常具有 2-5 Hz 的频率范围,因此您可以在那里应用高通滤波器。

小波具有阈值机制,可以使用小波包分解过滤掉噪声(硬阈值和软阈值)。

于 2014-01-12T05:09:34.137 回答
2

如果您的 Fs =1000 Hz,请使用此代码过滤信号并提取特征波段(alpha、beta、...)

S = "your EEG-Data-Row";
waveletFunction = 'db8' OR 'sym8' ;
[C,L] = wavedec(S,8,waveletFunction);
%% Calculation The Coificients Vectors
cD1 = detcoef(C,L,1);                   %NOISY
cD2 = detcoef(C,L,2);                   %NOISY
cD3 = detcoef(C,L,3);                   %NOISY
cD4 = detcoef(C,L,4);                   %NOISY
cD5 = detcoef(C,L,5);                   %GAMA
cD6 = detcoef(C,L,6);                   %BETA
cD7 = detcoef(C,L,7);                   %ALPHA
cD8 = detcoef(C,L,8);                   %THETA
cA8 = appcoef(C,L,waveletFunction,8);   %DELTA
%%%% Calculation the Details Vectors
D1 = wrcoef('d',C,L,waveletFunction,1); %NOISY
D2 = wrcoef('d',C,L,waveletFunction,2); %NOISY
D3 = wrcoef('d',C,L,waveletFunction,3); %NOISY
D4 = wrcoef('d',C,L,waveletFunction,4); %NOISY
D5 = wrcoef('d',C,L,waveletFunction,5); %GAMMA
D6 = wrcoef('d',C,L,waveletFunction,6); %BETA
D7 = wrcoef('d',C,L,waveletFunction,7); %ALPHA
D8 = wrcoef('d',C,L,waveletFunction,8); %THETA
A8 = wrcoef('a',C,L,waveletFunction,8); %DELTA

希望这会有所帮助。

于 2014-05-01T12:47:08.797 回答