본문 바로가기
Brain Engineering/EEGLAB

[EEGLAB] Channel location / Re-referencing / Detrending

by goatlab 2022. 3. 14.
728x90
반응형
SMALL

EEGLAB으로 데이터 로드

 

1. matlab command 창에서 >>> eeglab을 입력하여 eeglab을 실행한다.

 

2. Neuroscan을 통해 측정된 데이터는 cnt 파일이기 때문에 File > Import data > Using EEGLAB funtions and plugins > From Neuroscan .CNT file을 클릭해서 파일을 로드한다.

 

 

3. import 클릭 후 다음 화면이 뜨면 기본 default setting을 모두 OK 를 눌러서 진행한다.

 

 

 

4. EEGLAB으로 데이터가 정상적으로 로드

 

 

기본 데이터 전처리

 

1. Channel location

 

ICA를 돌리기 위해서는 채널 로케이션 정보를 먼저 입력해주어야 한다. 지금 예제에 사용된 64chan.ced 파일은 뉴로스캔 홈페이지에서 제공된다. 이것을 입력한다.

 

 

2. Edit > Channel locations를 선택한다.

 

 

3. 다운받은 64chan.ced를 입력한다. 본 파일이 없더라도 64 channel에 맞는 라벨을 EEGLAB에서 기본 제공하고 있다.

 

 

4. Ok 버튼을 누르면 다음과 같은 창이 뜬다.

 

 

5. 66개의 채널 정보가 잘 들어왔는지 확인한다.

 

 

6. [Ok] 버튼을 눌러서 나오면 다음과 같이 channel location이 잘 반영된 것을 확인할 수 있다. 본 작업은 여러 실험 파일에 모두 동일한 작업을 해야하기 때문에 일일히 하지 않고, 추후에 matlab script로 돌린다. 이를 위해 방금 한 작업을 matlab 코드로 확인하려면 eegh() 함수를 사용한다.

 

>> eegh()
[ALLEEG EEG CURRENTSET ALLCOM] = eeglab;
EEG = pop_loadcnt('D:\EEG 파일 모음\내 실험\Ex1_n2pc_tar\뇌파데이터\n2pc_02_23_03.cnt' , 'dataformat', 'auto', 'memmapfile', '');
[ALLEEG EEG CURRENTSET] = pop_newset(ALLEEG, EEG, 1,'gui','off'); 
EEG = eeg_checkset( EEG );
EEG=pop_chanedit(EEG, 'lookup','D:\\백업\\프로그래밍_대학원\\뇌파\\64chan.ced');
[ALLEEG EEG] = eeg_store(ALLEEG, EEG, CURRENTSET);

 

또는 EEG.history 값을 사용해서 확인하는 방법이 있다.

 

>> EEG.history
ans =

    '
     EEG.etc.eeglabvers = '14.1.2'; % this tracks which version of EEGLAB is being used, you may ignore it
     EEG = pop_loadcnt('D:\EEG 파일 모음\내 실험\Ex1_n2pc_tar\뇌파데이터\n2pc_02_23_03.cnt' , 'dataformat', 'auto', 'memmapfile', '');
     EEG = eeg_checkset( EEG );
     EEG=pop_chanedit(EEG, 'lookup','D:\\백업\\개인자료\\프로그래밍_대학원\\뇌파\\64chan.ced');
     EEG = eeg_checkset( EEG );'

 

Re-referencing

 

1. 실험 진행시 default로 설정된 reference는 64 채널 캡 중앙에 있는 'reference' 전극 (= vertex)이다. 하지만 많은 ERP 연구들에서 귀 뒤에 reference용으로 측정한 M1과 M2를 reference로 많이 사용하고 있기 때문에, 이를 새로운 reference로 설정한다.

 

2. Tools > Re-reference 를 선택한다.

 

 

3. 다음 창에서 [...] 버튼을 눌러서 M1 과 M2를 선택한다. 동시에 2개를 선택하는 방법은 하나를 선택 후 ctrl 버튼을 눌러서 원하는 것을 동시에 눌러준다.

 

 

4. reference가 변경된 것을 확인할 수 있다.

 

 

Re-referencing을 위한 matlab 코드는 다음과 같다.

 

EEG = pop_reref( EEG, [33 43] );

 

Detrending

 

1. 뇌파 측정 기기 등의 영향으로 시간에 따라 뇌파 신호가 점차 강해지거나 약해지는 trending이 있을 수 있는데, 이를 ICA 전에 미리 제거해준다. (하지만 모든 논문에서 ICA 전 Detrending을 해주는 것은 아니다) detrend는 Matlab의 내장함수이기 때문에 Mathworks 공식 홈페이지 또는 Matlab 도움말을 사용해서 함수의 기능을 확인할 수 있다.

 

 

2. 위는 Mathworks 홈페이지에서 제공되는 detrend와 관련된 이미지이다. 뇌파 측정 시간이 길어지면 전반적인 뇌파의 신호가 점차 상승하거나 하강하는 형태가 나타날 수 있다 (slow drift). 이것은 측정 과정에서 생긴 문제이기 때문에 분석 전에 이러한 trend를 없애주어야 한다.

 

Matlab 코드 예시

 

for i = 1:EEG.trials, EEG.data(:,:,i) = detrend(EEG.data(:,:,i)')'; end;
[ALLEEG EEG CURRENTSET] = eeg_store(ALLEEG, EEG);

 

Matlab으로 EEGLAB을 실행한 후 데이터를 import하고, Matlab 스크립트 혹은 명령어로 위의 두 줄을 입력해서 실행하면 된다.

 

https://wikidocs.net/32541

 

2-2-1. Re-referencing, Filtering, Downsampling

[TOC] ## eeglab으로 데이터 로드 * matlab command 창에서 `>>> eeglab` 을 입력하여 eeglab을 실행시켜줍니다. * Neuroscan 을 ...

wikidocs.net

 

728x90
반응형
LIST

'Brain Engineering > EEGLAB' 카테고리의 다른 글

[EEGLAB] 샘플 EEGLAB 데이터세트 로드  (0) 2022.04.13
[EEGLAB] 설치 및 시작  (0) 2022.04.13
[EEGLAB] Independent Component Analysis  (0) 2022.03.28
[EEGLAB] Filtering / Downsampling  (0) 2022.03.14
EEGLAB  (0) 2022.03.14