我最近以256Hz的采样率记录了EEG信号。信号将以4-64Hz通过。我需要一个代码来过滤eeg数据。在matlab中有任何类型的滤波器最适合过滤神器或来自信号的噪音??
答案 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
希望这会有所帮助。