近兩年,生命科學及醫療相關的研究逐漸得到了投資界的認可。腦機接口、康復機器人、手術機器人、智能假肢等相關技術蓬勃發展,創業公司也逐漸增多,未來10年整個行業必然會有較大的變革。
表面肌電信號(sEMG)因爲可以反應人的運動意圖,且和肌力大小相關,所以在康復機器人應用中舉足輕重。利用sEMG估計肌力就要求解肌肉激活度,本文介紹了利用原始sEMG信號求解肌肉激活度的方法。
本文的Matlab源代碼、sEMG原始數據和最大自主收縮時sEMG信號數據可以從這裏下載【肌肉激活度Matlab代碼及數據】
1.肌肉激活度求解方法
整個求解肌肉激活度的流程如圖所示:
1.1數據預處理
首先對原始sEMG信號進行預處理,預處理主要包括3步:(1)50Hz陷波,去除工頻干擾;(2)30Hz零相移高通濾波,去除運動僞跡;(3)全波整流,將信號取絕對值,信號的負半軸會翻轉到正半軸。
1.2低通濾波器
低通濾波器採用5Hz零相移低通濾波器,低通濾波器主要是模擬肌肉的低通濾波器特性。
1.3歸一化
用同樣的方法(數據預處理–>低通濾波器)處理最大自主收縮(MVC)時的sEMG信號,找到最大自主收縮sEMG信號的最大值,將該最大值視爲100%肌肉激活度時的信號。
將處理過的(數據預處理–>低通濾波器)正常運動時的肌電信號,除以該最大值,得到歸一化後的信號e(t)。
1.4神經激活模型
利用歸一化後的肌電信號求解神經激活強度u(t),方程如下:
這是一個遞歸模型,單次的神經激活強度u(t)和前2次的神經激活強度u(t-1)、u(t-2)有關。電極延遲時間d一般取10ms。
1.5肌肉激活模型
根據神經激活度u(t) 求解肌肉激活度a(t) 的方法有很多種,這裏採用比較常用的非線性模型。
A是非線性形狀係數,代表神經激活強度u(t) 和肌肉激活強度a(t) 的非線性程度。A可以取-1.5。
到這裏就實現了利用原始sEMG信號求解肌肉激活度。
2.實驗結果
利用上面提出的方法,計算1次屈肘運動時肱二頭肌的肌肉激活度,各步驟得到的結果如圖所示:
圖中紫色的線是肱二頭肌肌肉激活度,肌肉激活度很好地反映了肌肉的收縮狀況,其類似於原始肌電信號的包絡線,但是比原始肌電信號更加穩定,因此可以用來控制康復機器人等設備。
3.Matlab代碼
本文使用的Matlab源代碼、sEMG原始數據和最大自主收縮時sEMG信號數據可以從這裏下載【肌肉激活度Matlab代碼及數據】
是以爲記!