點擊上面"腦機接口社區"關注咱們
python
更多技術乾貨第一時間送達算法
感謝簡書ID:亞內士多德數據庫
受權分享微信
EEG腦電數據預處理-操做篇
關於EEG數據預處理的原理,前面已經介紹過了,你們能夠查看《手把手教你EEG腦電數據預處理-原理篇》。下面是亞內士多德分享的操做篇。網絡
基本步驟
定位通道位置app
刪除無用通道機器學習
濾波svg
分段學習
基線校訂測試
重參考
下降採樣率
插值壞導
獨立主成分分析
剔除壞段
導入數據
選擇要導入的數據格式
接下來會彈出一個對話框,是否要對數據進行選擇性導入,通常都是所有導入,直接點OK便可。
接下來又會再彈出一個對話框,是否要對數據進行命名。基本上在EEGLAB的每一步操做以後都會彈出這樣的對話框,詢問你是否須要對新產生的數據進行命名,根據本身須要選擇便可。
對數據進行初步認識
channel per frame:64 指導入的數據有64個通道
frames per epoch:一段數據的總長度,是439880採樣點
epochs:指當前數據的段數,原始數據尚未進行分段,所以顯示只有一段
events:檢測到當前數據一共有202個events
sampling rate(HZ):數據的採樣率爲1000HZ
epoch start和epoch end: 這個的分段是從0秒開始,到439.879秒結束。尚未進行分段因此看這個數值沒有意義
reference: 指數據的參考點,重參考後會顯示重參考的電極點,或者average,目前尚未進行重參考因此是unknown
channel locations:是否有對通道進行定位,目前顯示沒有,定位後會顯示爲yes
ICA weights:是否對數據進行了ICA獨立主成分分析,分析後會顯示yes
dataset size:數據的大小
電極定位
默認文件是standard-10-5-cap385.elp,點擊肯定便可
channel locations
channel locations
點擊OK以後能夠進入下一步查看數據
channel locations info
若是檢查到某個電極點的座標信息爲空白(如上圖所示),多是該通道的名稱在加載的模板文件中找不到,那麼
若是肯定該通道是根據國際排布系統來肯定的,那能夠修改label名稱後再點擊下方的look up locs來更新通道位置信息,好比上圖的VEO改成VEOG,而後更新位置信息以後就能夠看到了
若是不是國際排布系統,能夠向廠家要電極的座標位置信息
若是知道該電極點的精確座標,能夠手動輸入
雙側乳突的電極點位置可能會根據腦電系統的不一樣而不一樣,好比TP9 TP10,A1 A2, M1 M2這三對都是指雙側乳突
更新後的電極點座標
移除無用電極
此處咱們要移除掉兩個眼電數據
select data
select data
select data
重參考
此處要將數據轉換爲雙側乳突平均參考,即TP9,TP10
re-reference
re-reference
重採樣
不必定每一個數據都須要進行重採樣,可根據須要進行。
re-sampling
re-sampling
濾波
此處選擇默認的濾波器進行0.1-30Hz的濾波
filter
依次在第一框中填入0.1和第二個框中填入30進行計算,兩個一塊兒填表明進行帶通濾波,建議分開進行
filter
分段和基線校訂
extract epochs
extract epochs
點擊OK後會彈出下一個要求基線校訂的對話框,默認是event前的數據做爲基線來進行校訂,點擊OK便可。
baseline correction
插值壞導
對數據進行檢查,若是發現某個通道的數據壞了,能夠用插值的方式來進行校訂,此處要校訂的通道爲FC3,選擇插值的通道爲它周圍的四個電極點,F3,FC1,C3,FC5
第一種方法是代碼操做
EEG.data(a,:,:) = mean(EEG.data([b c d],:,:)) ;
其中a表明壞掉的電極點數值,b c d 表明要進行插值平均的電極點數值
若是不肯定通道數值是多少,能夠經過Plot - channel locations - by name 來進行查看。
畫出通道圖以後,能夠經過單擊通道名字來查看通道數值。
channel name
channel name
因此這句代碼爲
EEG.data(17,:,:) = mean(EEG.data([8 18 26 16],:,:)) ;
這句代碼的意思是指,第17個通道的數值,用第8,18,26,16這四個通道數值的平均值來代替。
第二種方法是面板操做,用eeglab的默認算法進行
interpolate electrodes
interpolate electrodes
ICA
使用ICA算法剔除僞跡,此步操做耗時較長
run ICA
由於咱們有一個壞通道的數據是用其餘通道的數據生成的,至關於咱們損失了一個有效通道數據,而ICA默認是在全部通道都是有效數據的狀況下進行的,因此此處咱們須要進行一些修改,在'extended', 1後面加上'pca', 59,中間用逗號和空格隔開,逗號要用英文輸入法下的
run ICA
點擊肯定以後會出現一個對話框,顯示正在進行ICA計算,計算結束後該對話框會消失
run ICA
在跑完ICA以後建議保存當前數據,在進行僞跡剔除操做。這樣作能夠保證在剔除不當的時候隨時回到未剔除的狀態下從新進行選擇。
此時會保存爲eeglab的.set的格式文件
save dataset
在跑完ICA以後就能夠用ICA進行僞跡剔除了
reject ICA
選擇要畫出的成分數,此處咱們選擇默認狀態
plot ICA
eeglab提示咱們一張畫布只能畫下35個圖,剩下的會在第二張畫布中畫出,點擊OK便可
plot ICA
plot ICA
此時咱們能夠對全部的ICA成分進行查看和標記,點擊成分數字,會出現該成分的詳細狀況。若是以爲該成分表明僞跡成分,想要剔除的話,能夠先將它標記起來。標記的方式是單機下方綠色的ACCEPT,單擊以後會變成紅色的REJECT
plot ICA
這一步須要對每個成分進行查看和判斷,而後將想要剔除的成分先標記起來。ICA能夠進行眼電僞跡,肌電僞跡,壞導僞跡以及心電僞跡等的辨識與剔除,可是此處咱們只進行眼電僞跡的剔除,咱們將第一個成分和第13個成分標記起來,標記了的成分數會變成紅色。而後點OK。此時尚未進行剔除操做。
mark ICA
除了上面那種方式以外,還可使用逐個成分畫出的方式來查看和標記
plot ICA
plot ICA
剔除ICA成分
remove ICA
eeglab默認兩個框都是同樣的信息,此時記得把第二個框的信息給清除掉
remove ICA
在接下來的對話框裏,咱們能夠對剔除了ICA成分和未剔除的數據進行比較
check data
紅色表明未剔除的數據,藍色表明剔除後的數據
全部通道的ERP圖
從紅色框中的部分能夠看到,咱們仍是頗有效地剔除了眼動僞跡的
全部通道單個trial的圖
檢查確認無誤後點擊accept進行剔除操做
剔除壞段
絕對閾值法
此處咱們選擇剔除掉超出±100μV的trial。
reject epoch
reject epoch
目視檢查法
channel data
逐個trial進行查看,若是發現有僞跡過大的trial想要剔除的話,單擊該trial,它會變成黃色。選擇完全部trials後,點擊下方的reject便可。此處選中的兩個trials僅僅做爲演示用。
reject trials
保存數據
至此EEG數據的預處理就基本完成了,咱們能夠再次將這個數據保存起來,以供下一步操做。
更多閱讀
letswave7中文教程3:腦電數據預處理-ICA去除僞影
此次我終於弄懂了院士、傑青、長江、百千萬人才的區別了以及評選有多難了?評選條件瞭解一下
腦機接口BCI學習交流QQ羣:941473018
微信羣請掃碼添加,Rose拉你進羣
(請務必填寫備註,eg. 姓名+專業/領域+單位)
長按加羣
長按關注咱們
本文分享自微信公衆號 - 腦機接口社區(Brain_Computer)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。