【肌电图信号分析】通道肌电图并查找收缩周期的数量、振幅、最大值和持续时间(Matlab代码实现)

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

该算法接受来自一块肌肉的肌电图信号,并根据用户输入的参数找到收缩期的数量、幅度、最大值和持续时间。输出保存为逗号分隔文本 (csv) 和图像(图 png)。该算法首先使用合成肌电图信号进行测试,然后使用在吃中等强硬食物和睡眠期间记录的咬肌肌的真实肌电图信号。
我们的算法是使用短时快速傅里叶变换的替代方法,以检测咀嚼频率。这是在程序中通过计算每个咀嚼周期周期的倒数获得的。

目前广泛用于苏黎世大学(瑞士)牙科医学中心,用于评估健康受试者和磨牙症咬肌的日常和夜间活动。该脚本还用于同一中心的一项试点研究,以调查佩戴夜间咬合器具对咬肌活动的影响。

要分析肌电图信号并查找收缩周期的数量、振幅、最大值和持续时间,按照以下步骤进行:

1. 采集肌电图信号:使用合适的电极将肌肉的电活动信号采集下来。确保信号采集设备与肌肉相连,并设置适当的采样率和增益。

2. 数据预处理:对采集到的肌电图信号进行预处理。这包括滤波、降噪和放大,以提高信号质量和可分析性。

3. 分析收缩周期数量:通过观察信号波形的周期性特征,可以估计收缩周期的数量。可以使用自相关函数或傅里叶变换等方法来检测信号的周期性。

4. 计算振幅和最大值:通过测量信号的幅值,可以计算振幅和最大值。振幅是信号波形的振幅大小,而最大值是信号中的最大幅值。

5. 计算持续时间:基于收缩周期的识别,可以计算每个收缩周期的持续时间。持续时间是指从一个收缩周期开始到下一个收缩周期开始的时间间隔。

通过上述步骤,你可以对肌电图信号进行分析,并获得收缩周期的数量、振幅、最大值和持续时间。这些分析结果可以用于评估肌肉活动和相关的生理特征。请注意,具体的信号处理和分析方法可能因具体应用而有所不同。

📚2 运行结果

 

 

 

 

 

 

 

 

 

 

部分代码:

% ---------- READ INPUT -----------------------------------------------
  Numeric = dlmread('Input.csv',';', 'b3..b10');
        % input file is of prescribed structure
        % can be opend using MO excel, OpenOffice Calc, or Notepad

    Threshold = Numeric(1,1);   % Threshold for the signal
    TimePause = Numeric(2,1);   % [s], what time devide the activites
    ChannelInfo = Numeric(3,1); % which channel is cosen (1-left,2-right)
    ActDur = Numeric(4,1);      % minimal duration of the activity [s]
    MVC = Numeric(5,1);         % [mV] for maximal voluntary contraction 
    StartTime = Numeric(6,1);   % from when to load the signal [s]
    StopTime = Numeric(7,1);    % when to stop reading the file [s]
    RectDecision = Numeric(8,1);% full-wave rectification (0-no, 1-yes)

% ----------------------------------------------------------------------     
% Pick the experimental wav file file  
 [fileName,expPathname] = uigetfile('*.wav','Pick an experimental file');
 disp('                                                               ')

% -----------------------------
% file informations 
[y, fs, nbits, opts]=wavread2(fileName);
disp('----------- Information about the whole file -------------- ')
fprintf('Information of the sound file "%s":\n', fileName);
TotalDuration  = length(y)/fs;
fprintf('Total duration of the file = %g seconds\n', TotalDuration );
fprintf('Sampling rate = %g samples/second\n', fs);
fprintf('Bit resolution = %g bits/sample\n', nbits);
dt = 1/fs;
disp(['dt =', num2str(dt)]) % disp('7) time between adjacent steps')
tot_samples = length(y); % length of the file
 disp(['Total length of the loaded file is ', num2str(tot_samples )])

 size(y)
 %pause
disp('------------ Aditional informations -----------------------')
opts.fmt
disp('Output')
disp('1) format tag of the wave file')
disp('2) number of channels')
disp('3) number of samples per second (sampling rate)')
disp('4) number of bytes per second')
disp('5) ratio between nAveBytesPerSec and nSamplePerSec')
disp('6) bit resolution')

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]成莹,马元超,陈震宇.运动想象辅助干预对脑卒中肢体功能障碍及肌电图信号的影响[J].检验医学与临床,2023,20(01):112-115.

[2]游淼,邹国栋,林婉华等.基于肌动图与肌电图信号的假肢控制系统的研究[J].北京生物医学工程,2011,30(06):574-577.

[3]罗琦琨,张庆陵,向明等.WIN98环境下肌电图信号高速采样的实现[J].上海生物医学工程,2002(01):49-53.

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/87868.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在本地搭建Jellyfin影音服务器,支持公网远程访问影音库的方法分享

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 1. 前言 随着移动智能设备的普及,各种各样的使用需求也被开发出来&…

threejs贴图系列(一)canvas贴图

threejs不仅支持各种texture的导入生成贴图,还可以利用canvas绘制图片作为贴图。这就用到了CanvasTexture,它接受一个canas对象。只要我们绘制好canvas,就可以作为贴图了。这里我们利用一张图片来实现这个效果。 基础代码: impo…

sizeof和strlen的对比

文章目录 🚩前言🚩sizeof🚩strlen🚩sizeof和strlen对比 🚩前言 很多小白在学习中,经常将sizeof和strlen弄混了。本篇文章,小编讲解一下sizeof和strlen的区别。🤷‍♂️ &#x1f6a9…

分享好用的翻译软件

网易有道翻译→网易有道翻译

npm install 安装依赖,报错 Host key verification failed

设置 git 的身份和邮箱 git config --global user.name "你的名字" > 用户名 git config --global user.email “你的邮箱" > 邮箱进入 > 用户 > [你的用户名] > .ssh文件夹下,删除 known_hosts 文件即可 进入之后有可能会看到 known_hosts…

css实现文字的渐变,适合大屏

1 在全局写一个全局样式,文字渐变 2 在组件中使用 CSS3利用-webkit-background-clip: text;实现文字渐变效果_css如何把盒子底部的文字变成透明渐变_I俩月亮的博客-CSDN博客 CSS 如何实现文字渐变色 ?_css字体颜色渐变_一个水瓶座程序猿.的博客-CSDN博客…

docker 安装 redis

目录 1、下载镜像文件 2、创建实例并启动 3、使用 redis 镜像执行 redis-cli 命令连接 4、redis持久化操作 5、然后按照第3点,再试一试,看看redis持久化是否配置成功。 6、最后与redis可视化工具测试连接 大家先 su root,这让输入命令就…

goland 中的调试器 -- Evaluate

今天一个好朋友 找到我,问我关于goland中Evaluate 小计算器的使用方式,说实话,我在此之前也没用过这个东西,然后我就找一些相关文档,但是这类文档少的可怜,所以我就稍微研究一下,找找材料&#…

【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】

【QT5-自我学习-线程qThread移植与使用-通过代码完成自己需要功能-移植小记3】 1、前言2、实验环境3、自我总结(1)文件的编写(2)信号与槽的新理解(3)线程数据的传递 4、移植步骤第一步:添加新文…

华为云Stack的学习(一)

一、华为云Stack架构 1.HCS 物理分散、逻辑统一、业务驱动、运管协同、业务感知 2.华为云Stack的特点 可靠性 包括整体可靠性、数据可靠性和单一设备可靠性。通过云平台的分布式架构,从整体系统上提高可靠性,降低系统对单设备可靠性的要求。 可用性…

2023年国赛 高教社杯数学建模思路 - 案例:退火算法

文章目录 1 退火算法原理1.1 物理背景1.2 背后的数学模型 2 退火算法实现2.1 算法流程2.2算法实现 建模资料 ## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上&a…

Windows10批处理命令行设置环境变量笔记,无需重新安装python与chrome

近期,工作中经常安装、部署python生产、开发环境,比较麻烦,也没有心情去优化。突然,我的电脑崩溃了,在重新安装电脑的过程中,保留了原来的安装软件(有的没有放在系统盘中)&#xff0…

【生态经济学】利用R语言进行经济学研究技术——从数据的收集与清洗、综合建模评价、数据的分析与可视化、因果推断等方面入手

查看原文>>>如何快速掌握利用R语言进行经济学研究技术——从数据的收集与清洗、综合建模评价、数据的分析与可视化、因果推断等方面入手 近年来,人工智能领域已经取得突破性进展,对经济社会各个领域都产生了重大影响,结合了统计学、…

vue 简单实验 自定义组件 component

1.代码 <script src"https://unpkg.com/vuenext" rel"external nofollow" ></script> <div id"components-demo"><button-counter></button-counter> </div> <script> // 创建一个Vue 应用 const ap…

6种方法Word中的页眉横线如何删除

01 如何给Word添加页眉&#xff1f; 方法1&#xff1a; 打开Word文档&#xff0c;将鼠标放在Word顶部&#xff0c;双击鼠标&#xff0c;就可以进入页眉编辑状态&#xff0c;这时候&#xff0c;直接添加页眉内容就好了。 方法2&#xff1a; 在Word文档顶部菜单栏点击【插入】…

【数据结构】C语言实现栈(详细解读)

前言: &#x1f4a5;&#x1f388;个人主页:​​​​​​Dream_Chaser&#xff5e; &#x1f388;&#x1f4a5; ✨✨专栏:http://t.csdn.cn/oXkBa ⛳⛳本篇内容:c语言数据结构--C语言实现栈 目录 什么是栈 栈的概念及结构 实现栈的方式 链表的优缺点: 顺序表的优缺点: 栈…

高性能网络模式-Reactor

事实上&#xff0c;Reactor 模式也叫Dispatcher模式&#xff0c;即I/O 多路复⽤监听事件&#xff0c;收到事件后&#xff0c;根据事件类型分配&#xff08;Dispatch&#xff09;给某个进程/线程。Reactor 模式也是一种非阻塞同步网络模式。 Reactor 模式主要由 Reactor部分和处…

platform相关资料

Step 1: Hardware Settings for Vitis Platform — Vitis™ Tutorials 2021.2 documentationhttps://xilinx.github.io/Vitis-Tutorials/2021-2/build/html/docs/Vitis_Platform_Creation/Introduction/03_Edge_VCK190/step1.html https://www.cnblogs.com/VagueCheung/p/1313…

Jmeter 快速生成测试报告

我们使用Jmeter工具进行接口测试或性能测试后一般是通过察看结果数、聚合报告等监听器来查看响应结果。如果要跟领导汇报测试结果&#xff0c;无法直接通过监听器的结果来进行展示和汇报&#xff0c;因为太low了&#xff0c;因此测试完成后去整理一个数据齐全且美观的报告是非常…

如何基于亚马逊云科技打造高性能的 SQL 向量数据库 MyScale

MyScale 是一款完全托管于亚马逊云科技、支持 SQL 的高效向量数据库。MyScale 的优势在于&#xff0c;它在提供与专用向量数据库相匹敌甚至优于的性能的同时&#xff0c;还支持完整的 SQL 语法。在这篇文章中&#xff0c;我们将阐述 MyScale 是如何借助亚马逊云科技的基础设施&…