【肌电处理】肌电信号EMG积分肌电值+均方根值+中值频率+平均功率频率【含Matlab源码 3386期】

✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。
🍎个人主页:海神之光
🏆代码获取方式:
海神之光Matlab王者学习之路—代码获取方式
⛳️座右铭:行百里者,半于九十。

更多Matlab仿真内容点击👇
Matlab图像处理(进阶版)
路径规划(Matlab)
神经网络预测与分类(Matlab)
优化求解(Matlab)
语音处理(Matlab)
信号处理(Matlab)
车间调度(Matlab)

⛄一、案例简介

表面肌电信号(Surface Electromyography)是众多生物电信号中的一种,也是相对来说最容易获取的一种电生理信号。将电极片放置在人体的皮肤表面,可以记录到皮肤表面因肌肉收缩而产生的微弱的电位差,而这个微弱的电位信号通过肌电采集电路的放大和转换就形成了可用作处理的表面肌电信号。sEMG是及其微弱的,下面是肌电与常见电源的电压值比较。

其实人体的各种运动的源头信号均来自于大脑,相当于一个指挥官在给身体的各个组织部分发送命令。当人体做出某个动作时,脊髓神经会产生一个控制信号并利用神经肌肉接头作为媒介传递到肌纤维,与每个神经元关联的肌纤维有很多条,这些部分合在一起就构成了所谓的运动单元。肌纤维细胞经过去极化和复极化操作,在神经肌肉接头处产生动作电位,这个动作电位会沿着神经元的轴突传导到末梢神经和肌肉接点,一旦运动神经接触到肌肉,那么它的轴突将会分支到多个肌纤维上,每个分支终止在肌纤维上形成运动突出的过程称为运动终板。传导到轴突末梢的动作电位使神经与肌肉的接点释放化学物质乙酸胆碱,它使得运动终板的离子通透性发生变化产生终板电位,而后,该终板电位使肌细胞膜达到去极化阈值电位,并产生肌纤维的动作电位,这个动作电位沿着肌纤维向两个肌腱端传播,引起了肌纤维内的一系列变化,导致肌纤维的收缩,大量肌纤维收缩产生肌肉力,并在其周围组织中产生细胞外电场。周围组织经过滤波操作,便可由表面电极或针电极检测到人体软组织中因电流场而表现出的电位差,记录这种肌肉动作电位的曲线称为肌电图(Electromyography, EMG),即所谓的肌电信号。

总结一句比较好理解的就是:你想抬胳膊的时候,这个想法从大脑给出,通过神经介质啥的传递到能执行抬胳膊的肌肉处,一系列的化学反应之后促使肌肉收缩从而在肌肉纤维上产生动作电位,形成电势差,恰好你把特殊装置(肌电贴片)贴合在皮肤表面就获取到了这个电势差的变化,产生的微弱的电位信号。加入我们在胳膊的前臂上贴了足够多的有效电极,那么手部的任何运动在各个电极上产生的电位信号的组合是不相同的,是可区分的。因此,我们可以通过肌电信号来把手势动作分割出来(对应到整个手臂动作、腿部动作、咽喉部动作、背部动作均可以区分)。

研究发现EMG信号随着人体疲劳程度的加深,其幅值会增大,频率会降低,因此
通过分析EMG信号来检测驾驶员的疲劳状态。通过对处理后的数据进行时域分析和频域分析,得到肌电信号的特征参数:积分肌电值(IEMG)、均方根值(RMS)、平均功率频率(MPF)、中位频率(MF)。
IEMG是指在一定时间内肌肉中参与活动的运动单位放电总量,通常其幅值随疲劳程度的加深而增加。RMS反映了运动单位数量的募集程度及其放电频率的同步化程度。

⛄二、部分源代码

s= load(‘D2M1T1.csv’);
fs=3000;
x1=s(1:184,1);
x2=s(1:184,2);
x3=s(1:184,3);
x4=s(1:184,4);
x5=s(1:184,5);
x6=s(1:184,6);
iemg1=sum(abs(x1))/length(x1)
iemg2=sum(abs(x2))/length(x2)
iemg3=sum(abs(x3))/length(x3)
iemg4=sum(abs(x4))/length(x4)
iemg5=sum(abs(x5))/length(x5)
iemg6=sum(abs(x6))/length(x6) %求积分肌电值
rms1=sqrt(sum(x1.^2)/length(x1))
rms2=sqrt(sum(x2.^2)/length(x2))
rms3=sqrt(sum(x3.^2)/length(x3))
rms4=sqrt(sum(x4.^2)/length(x4))
rms5=sqrt(sum(x5.^2)/length(x5))
rms6=sqrt(sum(x6.^2)/length(x6)) %求均方根值
L1=length(x1);
cx1=xcorr(x1,‘unbiased’);
cxk1=fft(cx1,L1);
px1=abs(cxk1);%求功率谱密度
pxx1=10log10(px1);
f1=(0:L1-1)fs/L1;
subplot(3,2,1),plot(f1(1:L1/2),pxx1(1:L1/2))
xlabel(‘频率/Hz’);ylabel(‘功率谱/dB’);
title(‘平均功率谱图’);
grid on %做功率谱图
df1=fs/L1;
p1=(sum(px1(1:L1/2-1))+sum(px1(1:L1/2)))/2.df1;
pf1=(sum(px1(1:L1/2-1).
[1:L1/2-1]‘.df1)+sum(px1(1:L1/2).[1:L1/2]’.df1))/2df1;
MPF1=pf1/p1 %求平均功率频率
N1=1;pp1=0;
while abs(pp1-p1/2)>(px1(N1)+px1(N1+1))/2
df1
pp1=pp1+(px1(N1)+px1(N1+1))/2
df1;
N1=N1+1;
end

⛄三、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1] 沈再阳.精通MATLAB信号处理[M].清华大学出版社,2015.
[2]高宝建,彭进业,王琳,潘建寿.信号与系统——使用MATLAB分析与实现[M].清华大学出版社,2020.
[3]王文光,魏少明,任欣.信号处理与系统分析的MATLAB实现[M].电子工业出版社,2018.

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 肌电平均功率频率可以通过matlab代码进行计算。下面是一个简单的步骤: 1. 首先,你需要加载你的肌电数据到matlab中。 2. 接下来,你需要将数据进行滤波。你可以使用一个低通滤波器来去除高频噪声。 3. 然后,你需要对数据进行分段,通常每个段长为1秒。你可以使用matlab的“buffer”函数来实现。 4. 然后,你可以计算每个段的平均功率。你可以使用matlab的“mean”函数来计算平值。 5. 接下来,你需要计算每个段的功率频率。你可以使用matlab的“pwelch”函数来计算功率谱密度估计。 6. 最后,你可以计算每个段的平均功率频率。你可以使用matlab的“mean”函数来计算平值。 以上就是计算肌电平均功率频率的简单步骤。当然,实现的具体代码因数据处理方法、具体的计算公式和算法有差异。为了得到更加准确的结果,你可能需要进行更加复杂的处理。 ### 回答2: 肌电信号是一种反映肌肉电活动的生理信号,可以用来研究肌肉的运动特性和神经控制机制。肌电信号的功率频率分析是肌电信号处理的重要内容之一。本文介绍肌电平均功率频率matlab代码的编写。 肌电信号的功率频率分析可以用功率谱密度函数(PSD)实现,PSD表示信号在不同频率范围内所包的功率分布情况。常用的PSD算法有傅里叶变换、自相关函数等。本文以傅里叶变换为例,介绍肌电平均功率频率matlab代码的编写过程。 (1)加载数据 首先,需要加载肌电信号数据文件。可以使用matlab中的load函数或csvread函数,将数据文件加载到matlab工作区中。数据文件应该包两列数据,一列时间序列,一列信号值。 (2)预处理肌电信号数据 在进行功率频率分析前,需要对信号进行预处理。常见的预处理方法包括滤波、去趋势等。本文中使用了一个简单的去趋势方法,即计算信号的移动平值,并将原始信号减去平值。 (3)进行傅里叶变换 在进行傅里叶变换前,需要对信号进行一定的归一化处理,以避免傅里叶变换结果受到信号长度和振幅的影响。常见的归一化方法包括零值归一化、单位长度归一化等。本文中使用了零值归一化方法,即将信号减去值,并除以信号标准差。 进行傅里叶变换可以使用matlab中的fft函数。将归一化后的信号输入fft函数中即可得到相应的频率幅值谱。 (4)计算平均功率频率 得到频率幅值谱之后,即可计算平均功率频率平均功率频率是信号在不同频率范围内功率的加权平值,通常用公式求解:“平均功率频率=∑(功率×频率)/∑功率”。其中,“功率”指频率范围内的信号功率,“频率”指该频率下的信号频率。通常将频率范围划分成几段进行加权平。 (5)遗留部分 由于我不清楚数据格式,无法为此代码提供符合数据的实际程序,以上是一个基本的肌电平均功率频率matlab代码的大致编写过程,读者可以参考此方法进行编写,但需要注意根据实际数据条件进行修改或添加必要的处理步骤。 ### 回答3: 肌电平均功率频率是指肌肉收缩时,肌肉平产生的功率和频率。在运动生理学和医学领域,肌电平均功率频率被广泛应用于肌肉力量、疾病诊断和运动控制方面的研究。Matlab是一个强大的科学计算和数据分析工具,实现肌电平均功率频率的计算也可以使用该工具。 实现肌电平均功率频率的计算步骤如下: 1. 将肌电信号通过滤波器滤波,得到滤波后的信号,去除噪声和干扰。 2. 对滤波后的信号进行时域分析,得到功率谱密度函数。 3. 根据功率谱密度函数,计算信号的平均功率频率,并作为肌电平均功率频率的数据结果。 下面是Matlab实现肌电平均功率频率的简单代码: % 假设已获得肌电信号EMGdata % 设定采样率和时间序列长度 SamplingRate = 1000; % 采样率1000Hz timeLength = length(EMGdata)/SamplingRate; % 信号时间序列长度 % 滤波器参数,可以根据需求修改 Fn = SamplingRate/2; % 滤波器截止频率为采样率的一半 FilterOrder = 4; % 设置滤波器阶数 Bandwidth = 50; % 设置带宽,一般选取20-200Hz filterCoeffs = fir1(FilterOrder,[Bandwidth/Fn Bandwidth/Fn*1.5]); % 滤波器滤波,得到滤波后的信号EMGdataFiltered EMGdataFiltered = filtfilt(filterCoeffs,1,EMGdata); % 时域分析 windowLength = floor(SamplingRate/2); % 每个窗口的长度 windowOverlap = 0; % 窗口重叠为0 [PSD,F] = welch_psd(EMGdataFiltered,windowLength,SamplingRate,windowOverlap); % 计算平均功率频率 AvgPower = mean(PSD); AvgFrequency = sum(PSD.*F)/sum(PSD); % 输出结果 disp(['平均功率为:',num2str(AvgPower)]); disp(['平频率为:',num2str(AvgFrequency)]); 以上是计算肌电平均功率频率的基本步骤和Matlab代码示例。实际使用时,还需要根据具体情况进行优化和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值