湯 璐,辛 霖
(上海理工大學醫療器械與食品學院,上海 200093)
肌肉疲勞是指人體肌肉經過長時間或劇烈運動后產生的酸痛、乏力等不適狀態,可使人體肌肉最大自主收縮能力下降[1-2]。疲勞過度會導致肌肉損傷,肌疲勞程度的檢測可及時避免肌肉受損。目前,肌疲勞檢測已廣泛應用于生物力學、臨床醫學、生理學領域[3-5],用于分析運動過程中肌肉疲勞程度以及診斷神經肌肉疾病。
評估肌肉疲勞的方法主要包括主觀體力感等級評定量表、肌氧檢測技術[6]、超聲圖像檢測[7]、超聲衰減法[8]、肌電信號檢測[9]等。肌電信號檢測是對運動過程中的表面肌電信號(surface Electromyography,sEMG)進行評估,具有安全、無創、獲取方便、即時的優點[9]。因此,本文選取肌電信號檢測法評估肌疲勞程度。
目前,基于sEMG 信號的肌疲勞分析大多集中在線下的數據處理與分析,如郭旻[10]在Windows 端通過計算sEMG 信號的積分肌電值和中值頻率判斷肌肉疲勞狀態;糜超等[11]利用sEMG 信號的時域特征值,通過機器學習分類識別肌疲勞與非肌疲勞狀態。為改善肌疲勞分析系統穿戴不便的缺點,Heaffey 等[12]設計了一款基于肌肉纖維傳導速度評估局部肌疲勞的低功耗可穿戴設備;Chen 等[13]設計了一款基于sEMG 信號頻域參數評估肌疲勞的柔性可穿戴設備。該類設備大多應用于醫院,價格較高。盡管基于sEMG 信號的肌疲勞分析研究已取得一定進展,但目前實現局部肌肉疲勞實時檢測與分析的研究成果較少,且未在日常體育健身和康復領域得到充分使用。
隨著5G 網絡的發展以及智能手機的高頻使用,本文開發了一款基于Android 平臺的肌疲勞檢測與分析系統。該系統采用32 位STM32 微控制器,實現兩通道局部肌肉疲勞檢測與分析,同時增加了非線性特征值作為肌疲勞狀態分析參數,具有實時檢測、攜帶方便、成本低等特點,在體育運動和日常健身方面具有一定應用前景。
肌疲勞分析系統包括硬件端表面肌電采集系統和軟件端肌疲勞分析軟件。表面肌電采集系統對采集的信號進行一系列預處理,通過藍牙模塊發送給肌疲勞分析軟件進行肌疲勞檢測與分析。硬件端主要實現表面肌電信號采集、預處理及傳輸的功能,軟件端主要實現sEMG 信號實時顯示、肌疲勞檢測與分析及相關數據存儲的功能。
表面肌電采集系統的設計如圖1 所示,具體包括表面肌電電極、信號調理電路、主控電路、藍牙模塊。其中,信號調理電路由前置放大電路、右腿驅動電路、信號濾波電路、后級放大電路和反相加法器組成[14]。本系統采取無創無痛、操作簡單、抗干擾能力強的紐扣式貼片電極采集微弱的sEMG 信號[15]。由于sEMG 信號電壓在幾千μV 以下,頻率為10~1 000 Hz,因此將信號調理電路幅值增益設置為2 000 倍,采用帶通濾波電路,頻率范圍為10~1 000Hz。主控芯片選用32 位的STM32F103RCT6R,具有高性能、低功耗的特點。為實現主控電路與肌疲勞分析軟件端通信,本系統采用傳輸穩定、收發效率高的HC-05 藍牙模塊。
表面肌電采集系統程序流程包括模數(AD)采樣控制、采樣增益控制、數據串口收發,如圖2 所示。首先對程序進行初始化設置,包括ADC、中斷、串口初始化、采樣率和采樣通道設置。本文采樣率設置為1KHz,選取兩個通道進行測試。隨后表面肌電采集系統等待肌疲勞分析軟件發送采集開始指令,若收到采集指令,主控程序開啟定時器,定時觸發ADC 對表面肌電信號進行采樣并以數據幀的格式進行記錄,其中數據幀由幀頭、幀尾和兩個通道的肌電數據組成。當記錄的數據寫滿一個數據幀時,通過藍牙串口將數據幀發送給肌疲勞分析軟件進行處理。當肌電采集系統接收到結束采樣指令時,則終止采樣。

Fig.1 Design of sEMG acquisition system圖1 表面肌電采集系統設計
肌疲勞分析軟件設計采用MVC(Model View Controller)框架模式,其中M 為模型層,V 為視圖層,C 為控制層。控制層和視圖層的相關操作可在Activity 組件中進行,降低了系統各層之間的耦合,具體設計如圖3 所示。本文模型層包括藍牙通信的設計、登錄信息數據和采集評估數據的保存以及肌疲勞評估模塊的設計;視圖層包括用戶登錄注冊界面、肌電顯示界面以及肌疲勞評估分析界面;控制層包括藍牙相關設置和肌電評估的相關控制[16]。
登錄注冊界面設計流程如圖4 所示,包括用戶登錄界面和用戶注冊界面,其作用是管理用戶,保證安全使用。登錄注冊界面的設計使用SharePreference 保存用戶名和密碼,以XML 文件格式保存數據。用戶注冊界面通過設計兩次輸入程序,確保用戶正確輸入密碼,同時對輸入的密碼進行加密運算,保證用戶安全使用。已注冊的用戶可直接在用戶登錄界面輸入用戶名和匹配的密碼進行登錄。

Fig.4 Login registration interface flow圖4 登錄注冊界面流程
sEMG 信號實時顯示界面可以保存并實時顯示原始sEMG 信號。Android 端接收肌電采集端藍牙發送來的數據,檢驗數據幀的幀頭,提取每幀數據中的sEMG 信號并實時顯示在手機界面。SurfaceView 類具有雙緩沖機制和更新界面速度快的優點,利用一個同時繼承SurfaceView 類和實現SurfaceHolder.Callback 接口的自定義控件可實時顯示sEMG 信號[17],具體步驟為:①繪制前通過SurfaceHolder 的lockCanvas()方法鎖定畫布;②在Canvas 上繪制坐標系、坐標刻度及sEMG 信號;③通過調用SurfaceHolder 的unlock-CanvasAndPost()方法解鎖畫布并將繪制的sEMG 信號顯示在最上層以實現實時肌電顯示。
藍牙通信實現表面肌電采集系統與肌疲勞分析軟件的通信。肌疲勞分析軟件通過藍牙接受肌電采集端發送的數據并進行解析保存。手機藍牙(服務端)與肌電采集系統(客戶端)藍牙模塊間通信協議采用TCP 協議的Socket通信模式[18]。藍牙通信設計如圖5 所示,包括藍牙的開啟、掃描、配對、連接和通信。藍牙設計前要對其權限進行設置,隨后獲取藍牙適配器并判斷設備是否支持藍牙。開發過程中,首先對藍牙進行開啟操作,確保手機藍牙可掃描周圍藍牙設備和被搜索。手機端通過廣播的方式接受周圍藍牙掃描的結果,如果掃描到肌電采集端藍牙設備,關閉藍牙掃描并進行配對。配對的藍牙需建立線程進行通信,服務端設計了一個繼承Thread 類的AcceptThread 子類,用作連接等待的線程,通過藍牙適配器的listenUsingRfcommWithServiceRecord()方法獲取BluetoothServerSocket 的實例對象,用來監聽客戶端的請求信號,請求成功并連接后方可進行通信[19]。

Fig.5 Bluetooth design flow圖5 藍牙設計流程
肌疲勞分析界面實現肌疲勞檢測與分析,流程如圖6所示。sEMG 信號通過5 階的巴特沃斯帶通濾波器獲得20~500Hz 的信號[20]。設計幀長為64,步進為32 的窗對濾波后的信號進行分幀處理,根據式(1)和式(2)計算每幀的短時能量En和短時過零率Zn,再利用雙門限法對各幀的En和Zn進行判決,提取信號的活動段[21]。按活動段計算信號的頻域、時域和非線性的特征值。

其中N 為幀長,En為第n 幀的短時能量。


Fig.6 Flow of sEMG signal analysis圖6 sEMG 信號分析流程
時域特征值選取積分肌電值(Integrated Electromyogram,iEMG)和均方根值(Root Mean Square,RMS),其表達如式(3)和式(4)所示,iEMG 值和RMS 值隨著運動過程中肌疲勞程度的加深而變大。頻域分析特征值為中位頻率(Median Frequency,MF)和平均功率頻率(Mean Power Frequency,MPF),其表達如式(5)和式(6)所示,MF 和MPF 兩個特征值隨著運動過程中肌疲勞程度的加深而逐漸減小[22]。

其中EMG(t)為t 時刻的sEMG 信號幅值。

其中,p(f)是sEMG 信號的功率譜密度函數。
非線性分析選擇模糊熵計算特征值。模糊近似熵(Fuzzy Approximate Entropy,fApEn)可用來衡量一個時間序列的復雜度,熵值和復雜度呈正相關,可有效分析肌肉疲勞的狀態,隨著肌肉逐漸達到疲勞狀態,模糊熵值逐漸減小[23]。模糊熵的表達如式(7)所示,利用長為m 的比較窗將N 點時間序列劃分成N-m+1 個m 維序列,計算每個序列除自身外與所有序列的距離,并利用模糊隸屬度函數計算距離的模糊隸屬度,再求出除自身外的所有模糊隸屬度的平均值φm,增長窗m 為m+1,求φm+1,由式(7)求取N 點的模糊熵值[24]。

時域、頻域和非線性特征值結果保存在SQLite 數據庫中,對數據庫中的各參數值進行不同階數擬合,可繪制肌疲勞分析結果曲線。用戶可分別進入時域、頻域和非線性分析界面查看相關分析結果,實現不同擬合曲線階數下的分析結果。分析界面繪制過程使用開源的GraphView,布局文件中分析曲線控件的顯示需要調用com.jjoe64.graphview.GraphView,分析組件的onCreate()函數中初始化相關控件及參數,在確認按鈕點擊事件中實現分析參數點和擬合曲線的繪制。
本系統對募集的6 名受試者(性別:男,年齡:23.0±1.2歲)進行肌疲勞實驗測試。受試者無肌肉疾病,近期肌肉未受過傷,未進行超負荷運動。受試者正坐在椅子上,慣用手正握啞鈴,固定上臂位置,以肘關節為支點,前臂掌心向上勻速做曲前臂、曲肘向上臂彎舉運動,測量最大負重。休息10min,將表面肌電電極置于肱二頭肌和肱三頭肌表面,調整負重為最大負重的60%左右,直至不能達到最高固定位。
受試者在進行實驗測試期間,使用本文研制的設備對肱二頭肌和肱三頭肌同步采集sEMG 信號,分析sEMG 信號肌疲勞特征值并加以保存。以其中一名受試者為例,其運動過程中肱二頭肌和肱三頭肌的原始sEMG 信號如圖7 所示。兩塊肌肉各活動段對應的時域、頻域和非線性肌疲勞參數及二次擬合分析結果如圖8、圖9、圖10 所示(彩圖掃OSID 碼可見)。

Fig.7 Real-time sEMG signal display圖7 實時sEMG 信號顯示

Fig.8 Time domain analysis圖8 時域分析
其中,隨著肌疲勞程度加深,時域參數擬合曲線呈現上升趨勢,而頻域參數和非線性參數擬合曲線呈現下降趨勢;肱二頭肌的模糊熵變化率為76.41%,肱三頭肌的模糊熵值變化率為66.06%,肱二頭肌相較于肱三頭肌變化更加明顯。運動結束后,肌疲勞分析軟件讀取保存在外置存儲卡中txt 文件的sEMG 信號,繪制出整個運動過程的原始sEMG 信號,如圖11 所示。

Fig.9 Frequency domain analysis圖9 頻域分析

Fig.10 Nonlinear analysis圖10 非線性分析

Fig.11 sEMG signal display during fatigue process圖11 疲勞過程sEMG 信號顯示
本文設計了一款基于Android 平臺的肌疲勞分析系統,并對6 名受試者進行了肌疲勞分析實驗。實驗結果表明,該系統可對運動過程中的sEMG 信號進行實時顯示和保存,同時可在時域、頻域和非線性方面對肌疲勞進行分析。本文研制的肌疲勞分析系統彌補了目前市場上肌疲勞分析設備昂貴、不便攜帶的缺點,適用于體育運動和日常健身領域。然而本系統在設計過程中仍存在一定不足,未來可在實時分析肌疲勞程度這一功能方面進一步完善。