信號處理算法(3):肌肉激活度(Muscle Activation)

   近兩年,生命科學及醫療相關的研究逐漸得到了投資界的認可。腦機接口、康復機器人、手術機器人、智能假肢等相關技術蓬勃發展,創業公司也逐漸增多,未來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代碼及數據】
   是以爲記!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章