过滤来自EEG信号的噪音

时间:2012-12-10 12:48:31

标签: filter matlab

我最近以256Hz的采样率记录了EEG信号。信号将以4-64Hz通过。我需要一个代码来过滤eeg数据。在matlab中有任何类型的滤波器最适合过滤神器或来自信号的噪音??

2 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分: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

希望这会有所帮助。