본문 바로가기
Brain Engineering

[EEGLAB] 데이터 전처리 (Filtering) (1)

by goatlab 2022. 4. 15.
728x90
반응형
SMALL

데이터 전처리

 

EEG 데이터는 행동 관련 EEG 파생 측정을 계산하기 전에 사전 처리되어야 한다.

 

Filtering

 

아래는 컷오프 주파수, 통과 대역, 정지 대역 및 전환 대역의 의미에 대한 그래픽 설명입니다.

 

 

기본 Windowed Sync 필터에서 필터 차수에 대한 몇 가지 합리적인 시작 값을 제공한다. 2 * 고역 통과 및 대역 통과에 대한 차단 주파수 (차단 < 2Hz의 경우), 저역 통과의 경우 차단 주파수의 20 ~ 40%, line noise 대역 정지의 경우 1 ~ 5Hz이다. 기본 규칙은 아티팩트를 피하기 위해 가능한 한 넓은 전환 대역을 갖는 것이다 (roll-off soft). 그러나 관심 신호에서 분리된다.

 

데이터 필터링

 

linear trends을 제거하기 위해 데이터를 고역 통과 필터링하는 것이 종종 바람직하다. 1Hz에서 데이터를 고역 통과 필터링하는 것도 좋은 품질의 ICA 분해를 얻기 위해 권장된다 (Klug & Grammann, 2020). 저역 통과 필터링 고주파 노이즈도 때때로 필요하다.

 

1) 샘플 EEGLAB 데이터세트 로드

 

메뉴 항목 File을 선택하고 하위 메뉴 항목 Load existing dataset를 누른다 . EEGLAB의 "sample_data" 폴더에 있는 툴박스와 함께 배포되는 "eeglab_data.set" 튜토리얼 파일을 선택한다. 그런 다음 Open를 누른다.

 

 

2) linear trends 제거

 

Epoch 또는 인공물 제거 전에 연속 EEG 데이터를 필터링하는 것이 좋지만, Epoch 데이터도 이 기능으로 필터링할 수 있다 (각 Epoch는 별도로 필터링됨). 연속 데이터를 필터링하면 에포크 경계에서 필터링 아티팩트의 도입이 최소화된다.

 

Tools → Filter the data → Basic FIR filter (신규, 기본값)를 선택 하고 하단 에지 주파수로 1 (Hz)을 입력 하고 확인 을 누른다.

 

EEGLAB legacy 필터는 더 이상 권장되지 않지만 이전 버전과의 호환성을 위해서만 유지 관리된다 (Widmann & Schröger, 2012).

 

 

새 데이터 세트의 이름을 묻는 창이 나타난다. 데이터세트 이름을 수정하고 상위 데이터세트 덮어쓰기 확인란을 선택한 다음 확인 버튼을 눌러 상위 데이터세트를 덮어쓰도록 선택한다.

 

고역 통과 차단 주파수와 저역 통과 차단 주파수가 모두 선택된 경우 저역 통과 부분과 고역 통과 부분은 동일한 기울기를 갖는다. 따라서 종종 저역 통과 경사가 필요 이상으로 가파르게 된다. 이 문제를 방지하려면 먼저 저역 통과 필터를 적용한 다음 두 번째 호출에서 고역 통과 필터 (또는 그 반대)를 적용하는 것이 좋다.

 

Plot → Channel spectra and maps 메뉴 항목을 선택하여 데이터 스펙트럼을 플롯 하여 필터가 적용되었는지 확인한다. 필터링된 주파수 영역에 '파문'이 표시될 수 있다. 이는 피할 수 없지만 허용 가능한 필터링 아티팩트이다.

 

필터링이 "양호한" 데이터 위에 아티팩트를 "확산"할 수 있으므로 필터링 후 더 많은 데이터를 거부해야 하므로 필터링하기 전에 데이터의 큰 스파이크와 같은 주요 아티팩트를 포함하는 데이터 부분 (시각 검사에 의해)을 제거하는 것이 바람직할 수 있다. 주요 아티팩트를 제거하면 "경계" 이벤트가 제거된 데이터를 대체한다. 필터링은 경계가 아닌 연속 데이터 세그먼트에만 적용된다.

 

연결 분석을 위한 필터링

 

고역 통과 필터링은 인접 데이터 샘플에 종속성을 도입하고 연결 분석에 권장되지 않는 경우가 많다. 이 경우 일반적으로 조각별 추세 제거를 적용하여 데이터 추세를 제거하는 것이 좋다. 예를 들어, 조각별 추세 제거는 SIFT EEGLAB 플러그인에서 사용할 수 있다.

 

인과 분석의 경우 (한 프로세스가 다른 프로세스를 유발하는지 평가) 메뉴 항목 Tools → Filter the data → Basic FIR filter (legacy) 인과 필터 사용 확인란을 선택한다 . 기본적으로 EEGLAB 레거시 필터는 필터를 앞으로 적용한 다음 다시 뒤로 적용하여 필터에 의해 도입된 위상 지연이 무효화되도록 한다. 인과관계 필터를 사용하는 경우 필터는 순방향으로만 적용되기 때문에 위상 지연이 발생하고 보상되지 않을 수 있다. 그러나 인과 관계는 유지된다.

 

신호 처리 도구 상자 없이 필터링

 

MATLAB Signal Processing Toolbox가 있는 경우 EEGLAB 레거시 필터는 MATLAB 루틴 filtfilt.m 을 사용한다 . 이렇게 하면 필터를 앞으로 적용한 다음 다시 뒤로 적용하여 필터에 의해 도입된 위상 지연이 무효화되도록 한다.

 

MATLAB 신호 처리 도구 상자가 없는 경우 EEGLAB 레거시 필터는 역 푸리에 변환을 포함하는 간단한 필터링 방법을 사용할 수 있다. 이렇게 하려면 Tools → Filter the data → Basic FIR filter (legacy) FIR 필터링 대신 (더 선명한) FFT 선형 필터 사용 확인란을 선택한다.

 

비선형 무한 임펄스 응답 필터 및 기타 필터

 

IIR(무한 임펄스 응답) 필터 플러그인도 EEGLAB에 대한 플러그인으로 배포된다. iirfilt 플러그인이 설치 되면 Tools → Filter the data → Short IIR filter 메뉴 항목에서 액세스할 수 있다 . 이 기능은 위에서 설명한 FIR 필터링 옵션과 동일한 그래픽 인터페이스를 사용한다. IIR 필터는 일반적으로 서로 다른 주파수에서 서로 다른 위상 지연을 도입하지만 MATLAB 함수 filtfilt.m을 사용하여 역으로 필터링을 적용하여 이를 보상한다. 무한 임펄스 응답(IIR) 필터의 차수는 재귀 연산으로 인해 차수 유한 임펄스 응답 (FIR) 필터와 직접 비교할 수 없다.

 

MATLAB 자체에서 사용할 수 있는 필터링 및 더 많은 필터링 옵션에 대해 배울 것이 훨씬 더 많다. EEG 데이터에 이상적인 필터도 없다. 관련 참조가 포함 된 Q/A 필터링 페이지  참조하십시오. 정의와 개념에 대한 소개는 Widmann et al., 2015를 참조하면 된다.

 

라인 노이즈 제거를 위한 필터링의 대안

 

대역통과 필터링의 또 다른 일반적인 용도는 50Hz 또는 60Hz 라인 노이즈 (노치 필터링이라고도 함)를 제거하는 것이다. 그러나 라인 노이즈를 제거하기 위해 CleanLine EEGLAB 플러그인을 사용할 수도 있다. 이 플러그인은 다중 테이퍼링과 Thompson F-통계를 융합하여 정현파 (ex. 라인) 노이즈를 적응적으로 추정하고 제거한다. PREP 파이프라인에서 구현된 CleanLine 버전은 이 주장이 아직 확인되지 않았지만 중요한 수정 PREP 가 있다고 주장한다. 아래 비교 그림에서 볼 수 있듯이 이 방법이 작동할 때 (항상 작동하는 것은 아님) 결과는 훌륭할 수 있다.

 

https://eeglab.org/tutorials/05_Preprocess/Filtering.html

 

a. Filtering

EEGLAB Documentation including tutorials and workshops information

eeglab.org

 

728x90
반응형
LIST