日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【肌电信号】基于matlab GUI MUAP波形【含Matlab源码 736期】

發(fā)布時(shí)間:2023/12/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【肌电信号】基于matlab GUI MUAP波形【含Matlab源码 736期】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、簡(jiǎn)介

EMG 信號(hào)是很容易采集的,但是要想理解和解釋所采集到的EMG信號(hào)是非常困難的。對(duì)EMG信號(hào)進(jìn)行分析可以讓我們具備理解肌肉中力的產(chǎn)生機(jī)制以及肌肉如何產(chǎn)生運(yùn)動(dòng)的能力。但如何提取這些信息取決于適當(dāng)?shù)男盘?hào)獲取辦法。
1 EMG信號(hào)提取過(guò)程
信號(hào)采集,信號(hào)調(diào)節(jié)和信號(hào)處理。流程圖如下所示

2 信號(hào)采集
肌肉收縮可以引起皮膚表面電流發(fā)生變化,此電流的大小可以通過(guò)放置在皮膚表面的電極來(lái)測(cè)量得到。電極與皮膚接觸的區(qū)域被稱為測(cè)量表面(detection surface)。利用表面電極測(cè)量得到的生理學(xué)數(shù)據(jù)被稱為表面肌電流(sEMG)。sEMG是電極測(cè)量的來(lái)自于所有活躍運(yùn)動(dòng)單元的MUAPTs的總和。

隨著肌肉輸出力的增加,活躍運(yùn)動(dòng)單元的數(shù)量也隨著增加。由于肌肉收縮時(shí)許多運(yùn)動(dòng)單元都是活躍的,因此,電極測(cè)量到的信號(hào)來(lái)自于許多不同的運(yùn)動(dòng)單元。MUAP的形狀和幅值取決于肌纖維和電極的相對(duì)方向(和其他因素相比)。在一個(gè)MUAPT中,如果電極和肌纖維的相對(duì)位置保持不變,電極的屬性保持不變以及肌肉組織的生物化學(xué)屬性沒(méi)有改變,則MUAP的的波形保持不變。
有作者在144篇文章里發(fā)現(xiàn)了352種采集表面肌電流信號(hào)時(shí)電極安放位置的描述。其中大部分的方法都是通用的,并且提到肌腹(肌肉中部較厚的區(qū)域),Motor point(軸突和肌纖維接觸的地方),或者肌肉中點(diǎn)。

影響EMG穩(wěn)定性的因素包括:

  • 運(yùn)動(dòng)單元/肌腱
  • 附近其他活躍肌肉
  • 活躍肌肉纖維和測(cè)量點(diǎn)的距離
  • 電極的濾波特性
  • 神經(jīng)區(qū)域(innervation zone)和電極的位置之間的關(guān)系
  • 通常,雙極點(diǎn)電極相對(duì)于肌纖維平行放置,并且兩電極中心距離在20 mm以上的時(shí)候可以取得較好的結(jié)果。這種距離足夠小可以避免信號(hào)的串?dāng)_,并且足夠大選擇眾多的運(yùn)動(dòng)單元。

    參考電極應(yīng)該放置在中性組織上(i.e. 骨頭突出的部分),以便于給電極放大器提供一個(gè)公用的參考。

    3 信號(hào)調(diào)節(jié)
    電極-放大器用來(lái)減小電極-皮膚的阻抗。
    信號(hào)調(diào)節(jié)用來(lái)進(jìn)一步改善EMG信號(hào)的質(zhì)量。
    信號(hào)調(diào)節(jié)的方法包括:

    濾波以減小運(yùn)動(dòng)偽跡
    電極運(yùn)動(dòng)偽跡可能來(lái)自于表面電極區(qū)域下的皮膚變形,或者電極電荷層的擾動(dòng)。運(yùn)動(dòng)偽跡的功率密度小于20 Hz。因此,高通濾波器可用于改善信號(hào)的質(zhì)量。這種濾波器的轉(zhuǎn)折頻率應(yīng)該在10 Hz和20 Hz之間,但是不能大于20 Hz,否則會(huì)導(dǎo)致EMG信號(hào)能量的丟失。
    用于運(yùn)動(dòng)偽逆的濾波技術(shù)包括:

  • 8th order Chebychev high pass filters
  • adaptive filtering based on orthogonal Meyer wavelets
    EMG信號(hào)放大
  • 要特別注意工頻噪聲的干擾。
    power line interference

    4 信號(hào)處理
    EMG 信號(hào)用作控制信號(hào):

    • 多功能假肢
    • 輪椅
    • 抓握控制
    • 虛擬鍵盤(pán)
    • 基于姿勢(shì)的控制接口

    5 數(shù)據(jù)分割
    EMG信號(hào)有兩種狀態(tài):

    • 瞬態(tài): 肌肉從靜止到自主收縮
    • 穩(wěn)態(tài): 肌肉產(chǎn)生常力收縮
      瞬態(tài)EMG信號(hào)比穩(wěn)態(tài)EMG信號(hào)處理起來(lái)要更困難一些。

    6 特征提取
    時(shí)域特征
    EMG幅值和活躍運(yùn)動(dòng)單元的數(shù)量以及他們的活躍水平有關(guān)系。
    形成EMG幅值的方法有:

    • 模擬修正和平滑(低通)
    • 平均絕對(duì)值(MAV)處理
    • 均方根(RMS)處理

    對(duì)于高層次的收縮,可以采用高斯模型對(duì)EMG信號(hào)進(jìn)行擬合;對(duì)較弱的肌肉收縮和處于肌肉疲勞狀態(tài)的收縮可以采用LaPlacian進(jìn)行擬合。
    其他EMG時(shí)域特征包括:平均絕對(duì)值(MAVs)斜率,zero crossing,斜率符號(hào)改變和波形長(zhǎng)度。

    7 頻域特征
    時(shí)域-頻域特征
    專業(yè)用語(yǔ)
    surface EMG( sEMG): 表面肌電信號(hào)
    MU (motor unit): 運(yùn)動(dòng)單元
    MUAPTs (motor unit action potential trains): 動(dòng)作電位序列
    motion artifact: 運(yùn)動(dòng)偽跡

    二、部分源代碼

    function varargout = MUAPgui(varargin) % MUAPGUI M-file for MUAPgui.fig % MUAPGUI, by itself, creates a new MUAPGUI or raises the existing % singleton*. % % H = MUAPGUI returns the handle to a new MUAPGUI or the handle to % the existing singleton*. % % MUAPGUI('CALLBACK',hObject,eventData,handles,...) calls the local % function named CALLBACK in MUAPGUI.M with the given input arguments. % % MUAPGUI('Property','Value',...) creates a new MUAPGUI or raises the % existing singleton*. Starting from the left, property value pairs are % applied to the GUI before MUAPgui_OpeningFunction gets called. An % unrecognized property name or invalid value makes property application % stop. All inputs are passed to MUAPgui_OpeningFcn via varargin. % % *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one % instance to run (singleton)". % % See also: GUIDE, GUIDATA, GUIHANDLES% Copyright 2002-2003 The MathWorks, Inc.% Edit the above text to modify the response to help MUAPgui% Last Modified by GUIDE v2.5 27-Dec-2006 12:09:22% Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ...'gui_Singleton', gui_Singleton, ...'gui_OpeningFcn', @MUAPgui_OpeningFcn, ...'gui_OutputFcn', @MUAPgui_OutputFcn, ...'gui_LayoutFcn', [] , ...'gui_Callback', []); if nargin && ischar(varargin{1})gui_State.gui_Callback = str2func(varargin{1}); endif nargout[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); elsegui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT% --- Executes just before MUAPgui is made visible. function MUAPgui_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to MUAPgui (see VARARGIN)% Choose default command line output for MUAPgui handles.output = hObject;% Update handles structure guidata(hObject, handles); clear all; % UIWAIT makes MUAPgui wait for user response (see UIRESUME) % uiwait(handles.figure1);% --- Outputs from this function are returned to the command line. function varargout = MUAPgui_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Get default command line output from handles structure varargout{1} = handles.output;% --- Executes on button press in Laplace. function Laplace_Callback(hObject, eventdata, handles) % hObject handle to Laplace (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)global muap; lapmuap=4*muap(2,:)-muap(1,:)-muap(3,:)-muap(4,:)-muap(5,:); axes(handles.axes1); HH=plot(lapmuap); set(HH,'LineWidth',2); clear HH;% --- Executes on button press in Bipolar. function Bipolar_Callback(hObject, eventdata, handles) % hObject handle to Bipolar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global muap;biomuap=muap(1,:)-muap(2,:); axes(handles.axes2); HH=plot(biomuap); set(HH,'LineWidth',2); clear HH;% --- Executes on button press in Monopolar. function Monopolar_Callback(hObject, eventdata, handles) % hObject handle to Monopolar (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)global muap;axes(handles.axes3); HH=plot(muap(2,:)); set(HH,'LineWidth',2); clear HH;function nf_Callback(hObject, eventdata, handles) % hObject handle to nf (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of nf as text % str2double(get(hObject,'String')) returns contents of nf as a double% --- Executes during object creation, after setting all properties. function nf_CreateFcn(hObject, eventdata, handles) % hObject handle to nf (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispcset(hObject,'BackgroundColor','white'); elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); endfunction skinfat_Callback(hObject, eventdata, handles) % hObject handle to skinfat (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of skinfat as text % str2double(get(hObject,'String')) returns contents of skinfat as a double% --- Executes during object creation, after setting all properties. function skinfat_CreateFcn(hObject, eventdata, handles) % hObject handle to skinfat (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispcset(hObject,'BackgroundColor','white'); elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); endfunction x_Callback(hObject, eventdata, handles) % hObject handle to x (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)% Hints: get(hObject,'String') returns contents of x as text % str2double(get(hObject,'String')) returns contents of x as a double% --- Executes during object creation, after setting all properties. function x_CreateFcn(hObject, eventdata, handles) % hObject handle to x (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called% Hint: edit controls usually ave a white background on Windows. % See ISPC and COMPUTER. if ispcset(hObject,'BackgroundColor','white'); elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor')); end

    三、運(yùn)行結(jié)果


    四、matlab版本及參考文獻(xiàn)

    1 matlab版本
    2014a

    2 參考文獻(xiàn)
    [1] 沈再陽(yáng).精通MATLAB信號(hào)處理[M].清華大學(xué)出版社,2015.
    [2]高寶建,彭進(jìn)業(yè),王琳,潘建壽.信號(hào)與系統(tǒng)——使用MATLAB分析與實(shí)現(xiàn)[M].清華大學(xué)出版社,2020.
    [3]王文光,魏少明,任欣.信號(hào)處理與系統(tǒng)分析的MATLAB實(shí)現(xiàn)[M].電子工業(yè)出版社,2018.
    [4]徐潔.基于小波分析的脈搏波信號(hào)處理[J].電子設(shè)計(jì)工程. 2013,21(11)

    總結(jié)

    以上是生活随笔為你收集整理的【肌电信号】基于matlab GUI MUAP波形【含Matlab源码 736期】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。