基于EEGLAB的脑电数据预处理
關于EEGLAB這個腦電處理工具包,對于大多是需要處理腦電數據的人來說都不會很陌生,這里放一個EEGLAB官網的鏈接;
https://sccn.ucsd.edu/eeglab/index.php
前言:EEGLAB的優勢
- 具有便于操作的GUI界面,特別適合初學者學習使用
- 支持導入多種數據格式(可以讀取幾乎所有格式的EEG信號)
- 對于高密度的數據可以,支持滾動瀏覽,方便我們查詢腦電的數據
- 交互式的繪圖功能,方便ERP波形繪制和頭皮電壓分布地形圖繪制等工具
- 基于獨立成分ICA的偽跡去除和源分析技術
- 提供多種高級的插件免費下載,滿足各種不同分析需求
1 EEGLAB的安裝
1.1 EEGLAB使用
2 腦電數據的預處理步驟
大部分的預處理都會是上面圖中的操作,有些需要根據自己需要分析的操作相應的預處理步驟
2.1 導入數據
以其中一種腦電數據格式為例
這里使用默認,點擊ok
得到下面的這種情況
這些框里面對于的詳細數據在matlab里面的變量可以找到
2.2 預覽波形圖
通過這個數據的概覽可以方便看到腦電波形圖的大概樣子,方便初步判斷
將鼠標放在腦電波的上面,在右下角就出現相關的信息,通道,幅值信息等
2.3 導入電極坐標
導入了電極坐標之后就可以讓eeglab讀取到每一個chanel的名稱和數值,然后再通過eeglab里面默認的腦電位置排布文件,將具體的腦電即位置按照模板排布,這樣eeglab就能具體知道位置了
這里是將腦電坐標導入進來,需要選擇這個eeglab內置的電極坐標模板
我們一般是選擇默認的模板,除非你有特殊的需求,或者對于這些模板了解的很清楚,可以選擇適合自己的
電極分布圖(2D和3D的展示),電極plot2D和3D這個按鈕
從左邊的圖可以看到有一些電極在頭部的外面,這是因為這些電極在頭部中線以下的位置,所以顯示在外面
我們在完成之后電極ok按鈕,這樣就可以完成電極坐標的導入
這時候你會發現外面展示的信息的channel locations變成了yes
回到matlab的頁面就可以找到相關的文件變量查看剛剛導入的電極信息了
2.4 刪除某一個通道的電極
這里就可以自由選擇需要刪除的電極刪除了
2.5 壞導的檢查和插值
一般先進行數據不好的導聯插值
設置參考的是時候,壞導會影響到數據,需要找出壞導,并且對它進行插值處理
通過繪制光譜圖查看有沒有異常的電極導
哪些地方可以改動過?
第一行的呈現的東西是數據段的長度,這里我們直接保持一整段的數據,不做任何的修改
第二行的呈現是采取數據的多少畫出這個圖,這里選擇的是50%
第三行呈現的信息是放大顯示的是哪個頻率的,這里選擇的是6 10 22HZ的腦電數據
第四行呈現的是哪個頻段范圍的power值是多少,這里選擇的是2 25
選擇完畢之后,點擊ok,得到光譜圖
那我們主要是看這個圖的什么地方呢?
主要就是看各個通道的光譜圖,這里每一根彩色的線都是代表通道的圖,橫軸代表頻率,縱軸代表的是 POWER值,我們這里首先很明顯在50左右的HZ部分升高,是收到了眼電的干擾,頻率越低.power值越高
當你看到某個通道的曲線起伏不定,說明這個通道是可能存在問題的
你用鼠標點擊一下綠色的線,會在命令行出現對于通道的名字
2.6 查看對應的通道電極
選擇通道數和設置對應的頻率
下面的折線圖和上面的是一個意思,只不過我單單提取出這個通道來詳細的查看
左上方是通道的名字和通道的位置
僅僅通過這個通道的曲線變化還不能說明這個通道的圖是有問題的,還需要結合右上角的信息
右上角的圖,橫坐標是時間,縱坐標是幅值信息,每一個橫條代表的是一個幅值信息,最右側的是幅值顏色代表的意思
如果出現異常,就可以看到在一片綠色的地方出現了一點紅色的小點,說明在某個時間點上面出現了異常
還有一種可以自動幫你找到壞導的方法
這個軟件內置了三種算法(Probability\Kurtosis\Spectrum)可以幫你找到壞導,在這里用紅色的線標識出來,并且會在命令行那里告訴你那個電極導是壞導
上面說了很多怎么查找到壞導,那接下來對壞導進行插值處理
使用matlab函數進行壞導插值
這里是用周圍電極的均值來進行插值
在EEGLAB里面也帶有插值的方法
選擇電極導,選擇方法,點擊ok,這樣就能將壞導插值處理了
2.8 提取指定的時間段
這里是將切開的片段保存的設置,包括保存的格式,保存的位置等
修改之后我們很明顯的看到了數據量變小了
2.9 重參考
我們實驗采集到的數據就是因為定位了參考電極,才能得到數據,數值就是電極所在的位置和參考電極之間的電位差
一般腦電記錄的時候參考電極有鼻尖參考,CZ或者頭頂中央參考,單側乳突,雙側乳突參考,全腦平均參考
在腦電數據分析的時候,我們會想要轉換參考點的位置,因為不同的位置參考,會對數據產生影響,比如記錄時候采用的是CZ或者頂部中央參考,自然地,距離CZ比較近的電極點,記錄的電位差會非常小,距離遠的又會非常大,大小的差異并不是因為認知活動產生的,是由于記錄方式產生的,為了能減小這些記錄帶來的誤差,一般變換為雙側乳突參考
這里會涉及平均參考,雙側乳突,零參考rest.等方法
2.10 雙側乳突參考
Tips:這里的Interpolate removed channels可以自動幫你把之前的壞導插值處理
第一個的是平均參考
最下面Retain old reference的勾選了表示的是是否保留參考電極的信息
根據自己需要選擇平均還是雙側乳突的參考,然后按照下面的方法勾選,得到結果
這時候我們發現原來的界面發生了變化,注意reference變成了自己選擇的方法
2.10.1 平均參考
2.10.2 零參考rest
- 參考電極標準化技術(Reference Electrode Standardization Technique)
- 任何參考下的頭表信號Vr都是腦顱內源X產生的,重建等效源X即可重建頭表信號V0
- 非真實腦電,變成真實的腦電
實際上是以無窮遠的地方作為一個參考
EEGLAB本身不帶有這個參考的方法,需要重新下載按照rest插件
2.11 數字濾波
數字濾波分為高通濾波、低通濾波、帶通濾波和凹陷濾波
高通濾波:高于某一頻率的信號可以通過,但是低于這個頻率的信號會被衰減過濾掉
低通濾波:跟高通是相反的,低于某些頻率的可以通過,高于的不行
因此總結上面兩個方法,高通濾波再輸入數值的時候,是一個比較小的數值,低通濾波則是一個較大的數字
帶通濾波:指的是在某個頻率段范圍內的信號可以通過,但這個頻率范圍以外的信號就會被保留下來,這個通常是用來去除50HZ視電的干擾
因為濾波不能完全的過濾出我們想要的頻段,比如30HZ的低通濾波,并不是說30HZ以外的信號就通通被過濾掉了,而是以30HZ為截止頻率,高于這個截止頻率的信號會被逐漸衰減
比如上面這個圖,橫軸為頻率,縱軸為增益系數,在截止頻率f的左邊,最開始的增益系數都是1,指的是信號都乘以1,被完整的保留了下來,而且在接近截止頻率的一定范圍內,增益系數開始逐漸下降,直到我們的截止頻率f處,增益系數剛剛好是0.5,指的是經過了截止頻率為f的低通濾波之后,f這個頻段的數據有50%被過濾,而50%被保留了下來。隨后增益系數再逐漸下降,信號被逐漸衰減,直到接近于0
因此,我們有時候會看到數據在做了30HZ的低通濾波之后,還會再做一個50HZ的凹陷濾波,就是因為,并不是做了30HZ的低通濾波就能夠完全把30HZ以上的信號全部過濾掉,而50HZ的干擾又是非常強的,所以最好還是再做一個50HZ的凹陷濾波
2.11.1 凹陷濾波:為了能完全的過濾掉信息所做的一次濾波
設置通過哪些頻率的波
Tips:低通的一般設置0.5或者1HZ方面濾掉低頻的漂移偽跡
然后使用相同的方法使用高通濾波
一般30HZ以下,包含了我們需要的成分,但是如果后續要做時頻分析,可以設置高一點,一般設置30HZ
如果數據存在50HZ的視電干擾的話,可能需要做一個帶阻濾波或者限波濾波來進行處理,按照下面的結果設置
注意這里勾選Notch filter the data instead of pass band,說明是帶阻濾波或者限波濾波
最好在數據采集的時候就避免視電的信號
2.12 重采樣
自己選擇需要降到的采樣頻率就可以了
2.13 分段和基線校正
分段
因為我們的數據是從實驗開始到實驗結束記錄的,所以很多時候會有冗余的數據,需要根據實際情況切開我們需要的片段
基線校正的原因:為了為了減少偏差,偏差產生的原因是由于數據的不穩定,也就是說數據段之間存在基線差異,可能是低頻漂移或者是其他的偽跡所引起的,這個時候我們做的基線校正的話,實際上就是從每個時間段去移除平均的基線值,從而去移除掉存在的偏差
其實在我們的很多段的腦電數據中,雖然每一段的基線相對值是一樣的,但是絕對值是不一樣的,所以我們要通過基線校正來使得他們在同一水平線上
首先要選擇你的數據段里面的所有時間標記,需要你選擇你需要的哪些段
第二行是你需要選需要的時間窗
上面是分好段之后的操作,執行完之后你會出現到執行基線校正的操作
第一個是比較重要的參數,指的是你選擇需要的時間點,一般是刺激出現的前200ms左右,選擇好之后,ok
2.14 獨立成分分析(ICA)
其他的都保持默認的參數,如果你對自己的研究有其他的想法的話可以自己選擇對應的算法,前提是你對ICA比較熟悉
這里需要注意的是,前面我們有對壞導進行處理,以及選擇重參考的時候,選擇了雙側乳突或者平均參考,這里在第二個空需要填寫相關的信息
這里是選擇雙側乳突的寫法
如果是平均參考這里則不用寫出62-2,通道數是32
我們在做ICA的時候,是需要所有通道的數據都是有效的數據,如果是壞導,就沒有辦法合理進行ICA,它本身會自動的根據周圍的電極數據均值給這個壞導使用,但是這樣就對數據的結果造成很大的影響
在跑完ICA之后,畫出相關的圖
畫出所有電極的縮略圖,主要關注前面的成分,這里只關注前面的20個電極
觀察哪個成分是有問題的
點擊成分圖,可以出現下面的的光譜圖
右上角的是幅值(縱坐標)和時間(橫坐標)圖,下面小的是疊加平均圖
其他上面已經介紹過了
看下面的圖,分辨眨眼的偽跡
如果確定是偽跡,點擊accept,然后點擊ok
當你做完所有的偽跡去除之后,就可以回到原始GUI界面
自動幫你填上剛剛的偽跡個數
確定刪除偽跡成分
在此之前可以點擊Plot ERPs對比查看刪除前后差異
2.14.1 利用ICA去除眼電的偽跡,水平和豎直的眼電
上面的就是豎直眼電信號,下面的是水平眼電信號
2.15 刪除壞段
手動選擇刪除
2.絕對閾值法
第一行是電極個數,第二和第三行表示篩選的閾值范圍,一般選擇-100和100
如果是壞導的部分是會通過這個方法標記出來的,比如下面的圖片所示
3 保存數據
預處理完了之后就可以保存數據了
總結
降低采樣率
采樣率的單位式HZ,1000HZ代表著1s會采樣1000次,在后期的時候我們想要降低采樣率,降到500HZ,或者250HZ,減少數據量,提高計算速度,沒有其他作用,所以這并不是必須的步驟
需要注意的是:
總結
以上是生活随笔為你收集整理的基于EEGLAB的脑电数据预处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【存储测试】vdbench存储性能测试工
- 下一篇: openGL天空盒实现-立方体贴图