✅博主简介:热爱科研的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))/2df1
pp1=pp1+(px1(N1)+px1(N1+1))/2df1;
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 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合