← Back to list

EEGLAB使用筆記

一、將EEGLAB的路徑移動到MATLAB底下

Shiba_Inu_Cool · 2021-09-16 09:00 · 0 claps · 8.0 min read
#eeglab #matlab #notes #bci #máster
Open on Medium ↗

EEGLAB使用筆記

一、將EEGLAB的路徑移動到MATLAB底下

  1. 打開MATLAB
  2. 從EEGLAB資料夾中的"eeglab.m"直接拖移到MATLA程式中

3.按下RUN

4.按下Add to Path就會自動幫你的路徑用到MATLAB底下了

5.最後,會跑出一個視窗,切記,不要按掉,那是可以讓你跑eeglab功能用的,之後會介紹。

二、在EEGLAB上開啟資料(GDF檔)

1.在EEGLAB介面上依以下方式開啟GDF檔

2.點選workshop底下的A01T.gdf 檔案

3.對於channel,data以及re-reference先不做更動,直接按"OK"即可

4.然後,就會載入。再按下OK

5.以下畫面,代表有載入成功

三、EEGLAB的資料(GDF檔)處理

1.依照底下方式畫圖

2.最後會得到一張圖。

3.由上圖,仔細發現,y座標底下有三個關於EOG的東西是我們不要的,因此決定把它去除。所以,依底下方法進行。

4.上述執行完,會再跳出一個視窗。首先,點選第一個紅框。再來,會出現第二個紅框。再來,選取裡面的內容(記得不要選到EOG)。最後,點選OK。

5.每次只要更動資料,就會跳出底下視窗,是為了要確認是否需要儲存已經修改的資料。所以,再按下OK。

6.可以從底下視窗看出,有把EOG移除了。

7.或者,我們可以開啟EEG的圖(plot data)來確認,方法跟前面講的一樣

四、在EEGLAB上開啟CSV檔

1.data type不一定只有GDF檔,也有可能是CSV檔。sampling rate為200筆每秒。因為每0.005秒產生一筆資料。橫軸為channel,縱軸為time。

2.讀去CSV檔,在MATLAB中開一個Script,並且輸入以下程式碼。

(記住 Script與 CSV檔必須要同一個資料夾中)

csvfile= [‘Data_S02_Sess01.csv’]; ()

data1 = csvread(csvfile, 1, 1);

data1(:,57:58)=[];

data1=transpose(data1);

第一行:讀取指定CSV檔

第二行:將上面檔案 load到 MATLAB裡面

第三行:由於 57以及 58 channel為 EOG 以及 FeedBack為要提除資料。

第四行:做轉置。因為 EEGLAB讀取 signal的格式與該 CSV檔正好相反。

3.可以點選右邊的data1確認是否已經將CSV檔存入MATLAB。雖然沒有time的資訊,但可以透過後面sampling rate的調動來補足。

4.將剛剛建立好的data1載入EEGLAB中。依照底下方式開啟視窗。

5.第一個紅框為填入剛剛load到MATLAB的CSV檔(data1)。再者,第二個紅框為sampling rate,因為原本沒有time去表達。這裡為200筆/秒。最後,再按下OK,一樣又會跑出一個視窗,再按OK即可。

6.完成為下圖

五、Pre-processing

1.利用plot(跟前面一樣),畫data1的圖

2.在進行後面的pre-processing前,必須先做 channel locations。但由於這個檔案(workshop內是沒有的),所以先不用。

(1)補充,這裡以sXD_5678.set為例(非上面的檔案)。

(2)先移除不重要的channel(vehicle position),依照以下方式開啟視窗

(3)先勾選(第一部份紅框),再點右邊的格子(第二紅框),就會跳出右邊視窗,再選取”vehicle position”,最後再點選OK即可。一樣會跳出一個視窗,直接OK就好。

(4)channel location,以底下方式開啟視窗

(5)一樣會先跳出一個視窗,先按OK

(6)又會再跳一個視窗,會顯示一些基本資訊。有時候底下基本資訊必須去網路上抓取,但這裡已經幫我們設定好了。

(7)以底下方式開啟視窗。

(8)最後,plot channel location map

3.從上圖會發現有些線條會交叉,因為他們沒有單一的基準,每個都有各自的baseline(基準),因此要對他們進行調整。

(1)點選上面圖片,執行底下步驟就完成了。

(2)完成以後,就可以完整地看到各個channel

4.執行resampling

(1)執行底下步驟,就會跳出一個視窗

(2)將裡面內容從200改為125,再點選OK即可,一樣會再跳出一個視窗,按下OK,就完成了。

(3)可以明顯看出資料量就變小了

5.執行band pass filter

(1)執行底下步驟,就會跳出一個視窗

(2)第一個紅框為設定下界,而第二個紅框為設定上界。

(3)代表移除了40以上,以及0.5以下的資料了

6.執行re-reference

(1)執行底下步驟,就會跳出一個視窗

(2)依照自己需求去選擇。這裡會使用average re-reference。若需要某些channel去re-reference就在第二個紅框填入想要的channel。最後,執行完,一樣會再跳出一個視窗,直接點OK即可。

7.執行ICA

(1)執行底下步驟,就會跳出一個視窗

(2)直接點OK即可。但,因為沒有channel location,所以會有問題。

8.執行ASR

(1)執行底下步驟,就會跳出一個視窗

(2)勾選中間的即可,按下OK,就會開始"去掉雜訊",最後完成一樣會有個視窗,按下OK就可以了。

六、結語

1.儲存檔案

(1)執行底下步驟

(2)自己取檔名。並且,選擇set檔。

(3)選擇set檔好處就是,可以直接load進MATLAB5中

2.轉成code

目的:未來可能要處理多筆資料或是比較習慣看程式碼。

(1)執行底下步驟

(2)並填入檔名

(3)可以將檔案拉進MATLAB看,裡面的code仔細寫下各個剛剛執行的過程。

3.學長姐的小建議

建議,一步一步慢慢存檔(例如:preprocessing各個步驟儲存),如果不這樣做,只要過程中出錯,可能就要重新來過了。最後,要記得,如果一步一步儲存的話,是用save dataset方式儲存,反之,一次儲存的話,就是用save session。


메타데이터
post_id
5b2c74e2d27d
slug
eeglab使用筆記-5b2c74e2d27d
url
https://medium.com/@chensong-yu/eeglab%E4%BD%BF%E7%94%A8%E7%AD%86%E8%A8%98-5b2c74e2d27d
canonical_url
https://medium.com/@chensong-yu/eeglab%E4%BD%BF%E7%94%A8%E7%AD%86%E8%A8%98-5b2c74e2d27d
author_url
https://medium.com/@chensong-yu
status
ok
fetched_at
2026-07-27 23:51:09