事件相关电位(ERP)的简单处理流程(含MATLAB代码)
事件相關電位的呈現是在特定頻帶下的時域波形,從這個角度出發的話,其處理就涉及到濾波;此外由于腦電信號易受噪聲干擾,所以單獨測出的每兩次的數據肯定是不同的,甚至會差別很大,即使是在同一條件下,這就需要去除噪聲(這里不做詳細介紹)、去除基線和疊加平均。
簡單的處理流程:
濾波(filt raw): 濾波的作用有兩個,第一,取出我們關注的ERP特征最明顯的頻段的數據,比如8~13Hz;第二,濾除低頻漂移(線性趨勢),有的時候觀察原始波形,發現會有一個線性上升或者下降,經過低頻濾波便可去除,比如過濾掉3Hz以下的數據。
一個典型的MATLAB濾波函數如下:
分段&加標簽(epoch & label): 我們一般獲取到的數據是連續多個任務的,還涉及到任務之間短暫休息時候的信號,這些信號是沒用的,分段&加標簽的作用就是把有用的時間段的數據取出來。由于一般我們采用多通道的電極采集信號,所以得到的原始數據一般是二維的,比如得到的數據是16x120000個,可以認為是16通道每個通道120000個數據點,如果采樣率是1200,那就是100s的數據。假設任務周期是10s,關注的是每個10s中的第4~7s共3s的數據,那么是不是16x3600x10的數據結構比較好了,如果這10個任務中,有一半是任務1,另外一半是任務2,就需要一個標簽文件標注第幾個是任務幾了(一般采集數據的時候就完成了);也可以將數據分為兩個16x3600x5的,這樣就不需要標簽文件了,只需要備注好數據名就好。
(由于每個人打標簽的方法可能都不同,這里就不放我的代碼了,我的代碼很亂)
去基線:(remove baseline) 去基線的原因是,我們獲取到的腦電信號,有正有負,但是我們不能說這個就是腦電信號的絕對值,腦電信號獲取到的都是相對的電壓值(所以才會有重參考的概念);或者可以認為去基線就是為了在畫圖的時候,任務開始的0時刻之前的數據靠近或者為0,這樣才會有任務期間時域波形的相對變化。我們一般取任務開始0時刻之前的100ms~200ms作為基線,每一次任務期間,基線的值可能都不同,所以不去除基線的話,下一步的疊加平均是無效的,因為沒有基準,比如有的基線為負,有的基線為正,這樣的情況下執行疊加平均,在基線抵消的時候,可能任務期間的波形也會抵消,也就獲取不到ERP了。
去基線的具體方式就是,對于單次任務的腦電信號,對基線期間的腦電信號進行疊平均,然后用所有的腦電信號,減去這個平均值,得到去基線之后的信號,新的信號在基線期間是靠近0線的。
疊加平均:(average) 這個就不解釋了
代碼:
如果你的信號比較好,經過簡單的四步,就能得到自己想要的ERP了,如果不行,就需要添加一些去除噪聲的步驟了,所以最好的辦法就是一開始就獲取到好的信號。
題圖來源:維基百科
https://en.wikipedia.org/wiki/Event-related_potential
總結
以上是生活随笔為你收集整理的事件相关电位(ERP)的简单处理流程(含MATLAB代码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云计算入门书籍,你有没有推荐
- 下一篇: 开源多媒体项目汇总与分析