【肌电信号】肌电信号处理系统含Matlab源码
1 简介
研究目的通过使用Matlab平台,实现运动生物力学研究中常用的表面肌电(s EMG)信号处理方法,为不会使
用编程进行表面肌电(s EMG)信号数据处理的体育科研人员在表面肌电(s EMG)信号的处理过程中提供一
个高效、简单的处理软件。研究方法通过对运动人体科学文献中常用的表面肌电信号(s EMG)处理方法进
行总结,并获取进行表面肌电信号处理时常用的处理方法的算法,然后利用Matlab编程语言对各处理方法
进行实现,并且实现为交互式的GUI软件。通过与现有商用软件处理结果的比较,对实现的各方法在数据处
理过程中的准确性进行验证。然后将其应用到实验室的表面肌电(s EMG)信号数据处理当中,通过招募无
编程基础的人员使用实验室的商业软件和本软件分别进行相同的数据处理过程,比较两者的效率。结果
Matlab编写完成了一套涵盖表面肌电信号(s EMG)在体育科学研究中处理基本功能的软件。除了包含现
有商业软件实现的处理功能外,还包括一些体育研究中未使用,而在其他领域使用的信号降噪方法,以及指
标提取方法。该软件涵盖了传统表面肌电s EMG信号处理过程中常用的信号处理函数,主要包括预处理、
指标提取和统计分析等函数;预处理主要是进行降噪处理和指标提取前的数据准备;指标提取包括时域、频
域、时频特征指标提取;以及后期对指标的部分整合处理函数。
2 部分代码
function varargout = bishe1(varargin)% BISHE1 MATLAB code for bishe1.fig%
BISHE1, by itself, creates a new BISHE1 or raises the existing%
singleton*.%% H = BISHE1 returns the handle to a new BISHE1 or the handle
to% the existing singleton*.%%
BISHE1('CALLBACK',hObject,eventData,handles,...) calls the local% function
named CALLBACK in BISHE1.M with the given input arguments.%%
BISHE1('Property','Value',...) creates a new BISHE1 or raises the% existing
singleton*. Starting from the left, property value pairs are% applied to
the GUI before bishe1_OpeningFcn gets called. An% unrecognized property
name or invalid value makes property application% stop. All inputs are
passed to bishe1_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% Edit the above text to modify the response
to help bishe1% Last Modified by GUIDE v2.5 25-May-2021 12:43:46% Begin
initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct('gui_Name',
mfilename, ... 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @bishe1_OpeningFcn, ...
'gui_OutputFcn', @bishe1_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{:});else
gui_mainfcn(gui_State, varargin{:});end% End initialization code - DO NOT EDIT% -
-- Executes just before bishe1 is made visible.function
bishe1_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 bishe1 (see
VARARGIN)% Choose default command line output for bishe1handles.output =
hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes bishe1
wait for user response (see UIRESUME)% uiwait(handles.figure1);% --- Outputs from
this function are returned to the command line.function varargout =
bishe1_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
structurevarargout{1} = handles.output;% --- Executes during object creation,
after setting all properties.function axes2_CreateFcn(hObject, eventdata,
handles)% hObject handle to axes2 (see GCBO)% eventdata reserved - to be
defined in a future version of MATLAB% handles empty - handles not created
until after all CreateFcns called% Hint: place code in OpeningFcn to populate
axes2% --- Executes during object creation, after setting all properties.function
axes1_CreateFcn(hObject, eventdata, handles)% hObject handle to axes1 (see
GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles
empty - handles not created until after all CreateFcns called% Hint: place
code in OpeningFcn to populate axes1% --- Executes during object creation, after
setting all properties.function axes3_CreateFcn(hObject, eventdata, handles)%
hObject handle to axes3 (see GCBO)% eventdata reserved - to be defined in a
future version of MATLAB% handles empty - handles not created until after all
CreateFcns called% Hint: place code in OpeningFcn to populate axes3% --- Executes
during object creation, after setting all properties.function
axes4_CreateFcn(hObject, eventdata, handles)% hObject handle to axes4 (see
GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles
empty - handles not created until after all CreateFcns called% Hint: place
code in OpeningFcn to populate axes4% --- Executes on button press in
pushbutton6.function pushbutton6_Callback(hObject, eventdata, handles)% hObject
handle to pushbutton6 (see GCBO)% eventdata reserved - to be defined in a future
version of MATLAB% handles structure with handles and user data (see
GUIDATA)selection=questdlg(['是否关闭',get(gcf,'Name'),'这个面板?'], ...