湯 璐,辛 霖
(上海理工大學醫(yī)療器械與食品學院,上海 200093)
肌肉疲勞是指人體肌肉經(jīng)過長時間或劇烈運動后產(chǎn)生的酸痛、乏力等不適狀態(tài),可使人體肌肉最大自主收縮能力下降[1-2]。疲勞過度會導致肌肉損傷,肌疲勞程度的檢測可及時避免肌肉受損。目前,肌疲勞檢測已廣泛應(yīng)用于生物力學、臨床醫(yī)學、生理學領(lǐng)域[3-5],用于分析運動過程中肌肉疲勞程度以及診斷神經(jīng)肌肉疾病。
評估肌肉疲勞的方法主要包括主觀體力感等級評定量表、肌氧檢測技術(shù)[6]、超聲圖像檢測[7]、超聲衰減法[8]、肌電信號檢測[9]等。肌電信號檢測是對運動過程中的表面肌電信號(surface Electromyography,sEMG)進行評估,具有安全、無創(chuàng)、獲取方便、即時的優(yōu)點[9]。因此,本文選取肌電信號檢測法評估肌疲勞程度。
目前,基于sEMG 信號的肌疲勞分析大多集中在線下的數(shù)據(jù)處理與分析,如郭旻[10]在Windows 端通過計算sEMG 信號的積分肌電值和中值頻率判斷肌肉疲勞狀態(tài);糜超等[11]利用sEMG 信號的時域特征值,通過機器學習分類識別肌疲勞與非肌疲勞狀態(tài)。為改善肌疲勞分析系統(tǒng)穿戴不便的缺點,Heaffey 等[12]設(shè)計了一款基于肌肉纖維傳導速度評估局部肌疲勞的低功耗可穿戴設(shè)備;Chen 等[13]設(shè)計了一款基于sEMG 信號頻域參數(shù)評估肌疲勞的柔性可穿戴設(shè)備。該類設(shè)備大多應(yīng)用于醫(yī)院,價格較高。盡管基于sEMG 信號的肌疲勞分析研究已取得一定進展,但目前實現(xiàn)局部肌肉疲勞實時檢測與分析的研究成果較少,且未在日常體育健身和康復(fù)領(lǐng)域得到充分使用。
隨著5G 網(wǎng)絡(luò)的發(fā)展以及智能手機的高頻使用,本文開發(fā)了一款基于Android 平臺的肌疲勞檢測與分析系統(tǒng)。該系統(tǒng)采用32 位STM32 微控制器,實現(xiàn)兩通道局部肌肉疲勞檢測與分析,同時增加了非線性特征值作為肌疲勞狀態(tài)分析參數(shù),具有實時檢測、攜帶方便、成本低等特點,在體育運動和日常健身方面具有一定應(yīng)用前景。
肌疲勞分析系統(tǒng)包括硬件端表面肌電采集系統(tǒng)和軟件端肌疲勞分析軟件。表面肌電采集系統(tǒng)對采集的信號進行一系列預(yù)處理,通過藍牙模塊發(fā)送給肌疲勞分析軟件進行肌疲勞檢測與分析。硬件端主要實現(xiàn)表面肌電信號采集、預(yù)處理及傳輸?shù)墓δ?,軟件端主要實現(xiàn)sEMG 信號實時顯示、肌疲勞檢測與分析及相關(guān)數(shù)據(jù)存儲的功能。
表面肌電采集系統(tǒng)的設(shè)計如圖1 所示,具體包括表面肌電電極、信號調(diào)理電路、主控電路、藍牙模塊。其中,信號調(diào)理電路由前置放大電路、右腿驅(qū)動電路、信號濾波電路、后級放大電路和反相加法器組成[14]。本系統(tǒng)采取無創(chuàng)無痛、操作簡單、抗干擾能力強的紐扣式貼片電極采集微弱的sEMG 信號[15]。由于sEMG 信號電壓在幾千μV 以下,頻率為10~1 000 Hz,因此將信號調(diào)理電路幅值增益設(shè)置為2 000 倍,采用帶通濾波電路,頻率范圍為10~1 000Hz。主控芯片選用32 位的STM32F103RCT6R,具有高性能、低功耗的特點。為實現(xiàn)主控電路與肌疲勞分析軟件端通信,本系統(tǒng)采用傳輸穩(wěn)定、收發(fā)效率高的HC-05 藍牙模塊。
表面肌電采集系統(tǒng)程序流程包括模數(shù)(AD)采樣控制、采樣增益控制、數(shù)據(jù)串口收發(fā),如圖2 所示。首先對程序進行初始化設(shè)置,包括ADC、中斷、串口初始化、采樣率和采樣通道設(shè)置。本文采樣率設(shè)置為1KHz,選取兩個通道進行測試。隨后表面肌電采集系統(tǒng)等待肌疲勞分析軟件發(fā)送采集開始指令,若收到采集指令,主控程序開啟定時器,定時觸發(fā)ADC 對表面肌電信號進行采樣并以數(shù)據(jù)幀的格式進行記錄,其中數(shù)據(jù)幀由幀頭、幀尾和兩個通道的肌電數(shù)據(jù)組成。當記錄的數(shù)據(jù)寫滿一個數(shù)據(jù)幀時,通過藍牙串口將數(shù)據(jù)幀發(fā)送給肌疲勞分析軟件進行處理。當肌電采集系統(tǒng)接收到結(jié)束采樣指令時,則終止采樣。
Fig.1 Design of sEMG acquisition system圖1 表面肌電采集系統(tǒng)設(shè)計
肌疲勞分析軟件設(shè)計采用MVC(Model View Controller)框架模式,其中M 為模型層,V 為視圖層,C 為控制層??刂茖雍鸵晥D層的相關(guān)操作可在Activity 組件中進行,降低了系統(tǒng)各層之間的耦合,具體設(shè)計如圖3 所示。本文模型層包括藍牙通信的設(shè)計、登錄信息數(shù)據(jù)和采集評估數(shù)據(jù)的保存以及肌疲勞評估模塊的設(shè)計;視圖層包括用戶登錄注冊界面、肌電顯示界面以及肌疲勞評估分析界面;控制層包括藍牙相關(guān)設(shè)置和肌電評估的相關(guān)控制[16]。
登錄注冊界面設(shè)計流程如圖4 所示,包括用戶登錄界面和用戶注冊界面,其作用是管理用戶,保證安全使用。登錄注冊界面的設(shè)計使用SharePreference 保存用戶名和密碼,以XML 文件格式保存數(shù)據(jù)。用戶注冊界面通過設(shè)計兩次輸入程序,確保用戶正確輸入密碼,同時對輸入的密碼進行加密運算,保證用戶安全使用。已注冊的用戶可直接在用戶登錄界面輸入用戶名和匹配的密碼進行登錄。
Fig.4 Login registration interface flow圖4 登錄注冊界面流程
sEMG 信號實時顯示界面可以保存并實時顯示原始sEMG 信號。Android 端接收肌電采集端藍牙發(fā)送來的數(shù)據(jù),檢驗數(shù)據(jù)幀的幀頭,提取每幀數(shù)據(jù)中的sEMG 信號并實時顯示在手機界面。SurfaceView 類具有雙緩沖機制和更新界面速度快的優(yōu)點,利用一個同時繼承SurfaceView 類和實現(xiàn)SurfaceHolder.Callback 接口的自定義控件可實時顯示sEMG 信號[17],具體步驟為:①繪制前通過SurfaceHolder 的lockCanvas()方法鎖定畫布;②在Canvas 上繪制坐標系、坐標刻度及sEMG 信號;③通過調(diào)用SurfaceHolder 的unlock-CanvasAndPost()方法解鎖畫布并將繪制的sEMG 信號顯示在最上層以實現(xiàn)實時肌電顯示。
藍牙通信實現(xiàn)表面肌電采集系統(tǒng)與肌疲勞分析軟件的通信。肌疲勞分析軟件通過藍牙接受肌電采集端發(fā)送的數(shù)據(jù)并進行解析保存。手機藍牙(服務(wù)端)與肌電采集系統(tǒng)(客戶端)藍牙模塊間通信協(xié)議采用TCP 協(xié)議的Socket通信模式[18]。藍牙通信設(shè)計如圖5 所示,包括藍牙的開啟、掃描、配對、連接和通信。藍牙設(shè)計前要對其權(quán)限進行設(shè)置,隨后獲取藍牙適配器并判斷設(shè)備是否支持藍牙。開發(fā)過程中,首先對藍牙進行開啟操作,確保手機藍牙可掃描周圍藍牙設(shè)備和被搜索。手機端通過廣播的方式接受周圍藍牙掃描的結(jié)果,如果掃描到肌電采集端藍牙設(shè)備,關(guān)閉藍牙掃描并進行配對。配對的藍牙需建立線程進行通信,服務(wù)端設(shè)計了一個繼承Thread 類的AcceptThread 子類,用作連接等待的線程,通過藍牙適配器的listenUsingRfcommWithServiceRecord()方法獲取BluetoothServerSocket 的實例對象,用來監(jiān)聽客戶端的請求信號,請求成功并連接后方可進行通信[19]。
Fig.5 Bluetooth design flow圖5 藍牙設(shè)計流程
肌疲勞分析界面實現(xiàn)肌疲勞檢測與分析,流程如圖6所示。sEMG 信號通過5 階的巴特沃斯帶通濾波器獲得20~500Hz 的信號[20]。設(shè)計幀長為64,步進為32 的窗對濾波后的信號進行分幀處理,根據(jù)式(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 信號的功率譜密度函數(shù)。
非線性分析選擇模糊熵計算特征值。模糊近似熵(Fuzzy Approximate Entropy,fApEn)可用來衡量一個時間序列的復(fù)雜度,熵值和復(fù)雜度呈正相關(guān),可有效分析肌肉疲勞的狀態(tài),隨著肌肉逐漸達到疲勞狀態(tài),模糊熵值逐漸減?。?3]。模糊熵的表達如式(7)所示,利用長為m 的比較窗將N 點時間序列劃分成N-m+1 個m 維序列,計算每個序列除自身外與所有序列的距離,并利用模糊隸屬度函數(shù)計算距離的模糊隸屬度,再求出除自身外的所有模糊隸屬度的平均值φm,增長窗m 為m+1,求φm+1,由式(7)求取N 點的模糊熵值[24]。
時域、頻域和非線性特征值結(jié)果保存在SQLite 數(shù)據(jù)庫中,對數(shù)據(jù)庫中的各參數(shù)值進行不同階數(shù)擬合,可繪制肌疲勞分析結(jié)果曲線。用戶可分別進入時域、頻域和非線性分析界面查看相關(guān)分析結(jié)果,實現(xiàn)不同擬合曲線階數(shù)下的分析結(jié)果。分析界面繪制過程使用開源的GraphView,布局文件中分析曲線控件的顯示需要調(diào)用com.jjoe64.graphview.GraphView,分析組件的onCreate()函數(shù)中初始化相關(guān)控件及參數(shù),在確認按鈕點擊事件中實現(xiàn)分析參數(shù)點和擬合曲線的繪制。
本系統(tǒng)對募集的6 名受試者(性別:男,年齡:23.0±1.2歲)進行肌疲勞實驗測試。受試者無肌肉疾病,近期肌肉未受過傷,未進行超負荷運動。受試者正坐在椅子上,慣用手正握啞鈴,固定上臂位置,以肘關(guān)節(jié)為支點,前臂掌心向上勻速做曲前臂、曲肘向上臂彎舉運動,測量最大負重。休息10min,將表面肌電電極置于肱二頭肌和肱三頭肌表面,調(diào)整負重為最大負重的60%左右,直至不能達到最高固定位。
受試者在進行實驗測試期間,使用本文研制的設(shè)備對肱二頭肌和肱三頭肌同步采集sEMG 信號,分析sEMG 信號肌疲勞特征值并加以保存。以其中一名受試者為例,其運動過程中肱二頭肌和肱三頭肌的原始sEMG 信號如圖7 所示。兩塊肌肉各活動段對應(yīng)的時域、頻域和非線性肌疲勞參數(shù)及二次擬合分析結(jié)果如圖8、圖9、圖10 所示(彩圖掃OSID 碼可見)。
Fig.7 Real-time sEMG signal display圖7 實時sEMG 信號顯示
Fig.8 Time domain analysis圖8 時域分析
其中,隨著肌疲勞程度加深,時域參數(shù)擬合曲線呈現(xiàn)上升趨勢,而頻域參數(shù)和非線性參數(shù)擬合曲線呈現(xiàn)下降趨勢;肱二頭肌的模糊熵變化率為76.41%,肱三頭肌的模糊熵值變化率為66.06%,肱二頭肌相較于肱三頭肌變化更加明顯。運動結(jié)束后,肌疲勞分析軟件讀取保存在外置存儲卡中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 信號顯示
本文設(shè)計了一款基于Android 平臺的肌疲勞分析系統(tǒng),并對6 名受試者進行了肌疲勞分析實驗。實驗結(jié)果表明,該系統(tǒng)可對運動過程中的sEMG 信號進行實時顯示和保存,同時可在時域、頻域和非線性方面對肌疲勞進行分析。本文研制的肌疲勞分析系統(tǒng)彌補了目前市場上肌疲勞分析設(shè)備昂貴、不便攜帶的缺點,適用于體育運動和日常健身領(lǐng)域。然而本系統(tǒng)在設(shè)計過程中仍存在一定不足,未來可在實時分析肌疲勞程度這一功能方面進一步完善。