当前位置: 首页 > news >正文

【肌电图信号分析】通道肌电图并查找收缩周期的数量、振幅、最大值和持续时间(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代码实现

相关文章:

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

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

python 定时器,如何进行周期性的函数运行、状态检查,百分比计算?

文章大纲 schedulescheschedule线程实现1实现2实现3协程(coroutine)参考文献schedule https://stackoverflow.com/questions/373335/how-do-i-get-a-cron-like-scheduler-in-python https://docs.python.org/3/library/sched.html sche schedule import schedule import ti…...

无涯教程-Perl - fcntl函数

描述 该函数是系统fcntl()函数的Perl版本。使用FILEHANDLE上的SCALAR执行FUNCTION指定的功能。 SCALAR包含函数要使用的值,或者是任何返回信息的位置。 语法 以下是此函数的简单语法- fcntl FILEHANDLE, FUNCTION, SCALAR返回值 该函数返回0,但如果fcntl()的返回值为0,则返…...

docker 命令解析

docker命令解析的文章参考 build 和 commit build适合从头创建一个清晰干净的镜像。 build是从Dockfile产生新的镜像,对于使用者能清晰的知道镜像中包含了哪些内容。commit适合将已有的容器打包提供给其他使用者。 commit是从已经存在的容器产生镜像,这…...

Map集合 实体类对象的相互转换

一、Map转实体类 1. fastjson工具类 导入依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.54</version> </dependency>代码实现 Map<String, Object> authorMap n…...

用chatGPT从左右眼图片生成点云数据

左右眼图片 需求 需要将左右眼图像利用视差生成三维点云数据 先问问chatGPT相关知识 进一步问有没有现成的软件 chatGPT提到了OpenCV&#xff0c;我们让chatGPT用OpenCV写一个程序来做这个事情 当然&#xff0c;代码里面会有一些错误&#xff0c;chatGPT写的代码并不会做模…...

dy六神参数记录分析(立秋篇)

version&#xff1a; 23.9 X-SSSTUB: 搜索&#xff1a;x-tt-dt var hashMap Java.use("java.util.HashMap");hashMap.put.implementation function (a, b) {console.log("hashMap.put: ", a, b);return this.put(a, b);}https://codeooo.blog.csdn.n…...

微信-jssdk使用

需求: h5中使用微信的jsSDK,后续实现微信定位以及多图上传 微信文档 申请测试公众号 1.测试公众号进行配置 其中的域名是本地的ip地址 config接口进行权限配置,动态获取JS-SDK权限验证的签名 获取公众号accessToken以及jsTicket public static String WeChatAppId="wx…...

guava-retry使用笔记

guava-retry使用笔记 xml依赖 <dependency><groupId>com.github.rholder</groupId><artifactId>guava-retrying</artifactId><version>2.0.0</version> </dependency>使用案例 重试3次&#xff0c;每次间隔3秒 /*** 重试…...

P1226 【模板】快速幂 | 取余运算

【模板】快速幂 | 取余运算 题目描述 给你三个整数 a , b , p a,b,p a,b,p&#xff0c;求 a b m o d p a^b \bmod p abmodp。 输入格式 输入只有一行三个整数&#xff0c;分别代表 a , b , p a,b,p a,b,p。 输出格式 输出一行一个字符串 a^b mod ps&#xff0c;其中 …...

常用开源的弱口令检查审计工具

常用开源的弱口令检查审计工具 1、SNETCracker 1.1、超级弱口令检查工具 SNETCracker超级弱口令检查工具是一款开源的Windows平台的弱口令安全审计工具&#xff0c;支持批量多线程检查&#xff0c;可快速发现弱密码、弱口令账号&#xff0c;密码支持和用户名结合进行检查&am…...

云监控插件cloudmonitor安装保姆级教程

1、 需要isv把这些域名和ip加入到hosts中&#xff1b; 192.168.31.61 update.aegis.cloud.jiashan.gov.cn&#xff1b; 192.168.31.61 update.aegis.aliyun.com&#xff1b; 192.168.31.61 update2.aegis.cloud.jiashan.gov.cn&#xff1b; 192.168.31.61 update2.aegis.aliyun…...

借用和引用

文章目录 所有权引用和借用可变引用悬垂引用 所有权 Rust通过所有权来管理内存&#xff0c;最妙的是&#xff0c;这种检查只发生在编译期&#xff0c;因此对于程序运行期&#xff0c;不会有任何性能上的损失。 使用堆和栈的性能区别&#xff1a; 写入方面&#xff1a;入栈比在…...

WPF上位机9——Lambda和Linq

Lambda Linq 操作集合 使用类sql形式查询 Linq To SQL...

从0到1搭建uniapp

一、什么是uniapp UniApp是一款基于Vue.js框架的全端开发工具&#xff0c;可以实现同时开发多个平台&#xff08;包括H5、小程序、APP等&#xff09;应用的能力。使用UniApp&#xff0c;开发者只需要编写一份代码就可以快速地发布到多个平台&#xff0c;极大地提高了开发效率和…...

安全杂记 - Linux文本三剑客之awk

目录 1.什么是AWK2.正则表达式3.语法4.内置变量示例printf命令5.复现awk经典实例(1).插入几个新字段(2).格式化空白(3).筛选IPv4地址(4).筛选给定时间范围内的日志 1.什么是AWK awk、grep、sed是linux操作文本的三大利器&#xff0c;合称文本三剑客。三者的功能都是处理文本&a…...

Android 开发者选项日志存储路径

android开发者选项中存在两个item是关于系统日志的。 1.日志记录器缓冲区大小 2.在设备上永久存储日志记录器数据 一个是用来设置缓冲区大小&#xff0c;一个是用来日志存储开关及过滤。 通过分析 system/core/logcat/logcatd.rc mkdir /data/misc/logd 0770 logd log 日志的…...

jupyter lab build失败,提示需要安装版本>=12.0.0的nodejs但其实已从官网安装18.17.0版本 的解决方法

出现的问题如题目所示&#xff0c;这个问题差点要把我搞死了。。。但还是在没有重装的情况下解决了&#x1f618;。 问题来源 初衷是想安装lsp扩展&#xff0c;直接在jupyter lab网页界面的extensions中搜索lsp并点击install krassowski/jupyterlab-lsp&#xff0c;会提示需要…...

【set】个人练习-Leetcode-817. Linked List Components

题目链接&#xff1a;https://leetcode.cn/problems/linked-list-components/description/ 题目大意&#xff1a;给出一个vector<int> nums&#xff0c;其中有一些数字。再给出一个链表的头指针head&#xff0c;链表内的元素各不相同。如果链表中有某一段&#xff08;长…...

Linux IPIP隧道连通两个局域网

拓扑结构 现有两台主机&#xff0c;它们具有两个网口分别接入到不同网络中。 主机A&#xff1a; eth0&#xff1a;处于 10.0.1.2/24 网段eth1&#xff1a; 处于192.168.1.100/24 网段 主机B&#xff1a; eth0&#xff1a;处于10.0.2.3/24 网段eth1&#xff1a; 处于192.168.2…...

告别野火原子,用江科大STM32F103模板+Keil5,30分钟搞定RT-Thread Nano 3.0.3移植

江科大STM32F103模板Keil5快速移植RT-Thread Nano 3.0.3实战指南 如果你正在使用江科大的STM32F103教学模板&#xff0c;想要快速实现RT-Thread Nano 3.0.3的移植&#xff0c;这篇文章将为你提供一个30分钟完成的详细方案。相比野火、正点原子等开发板&#xff0c;江科大模板在…...

Intv_AI_MK11 Python数据分析搭档:环境配置与自动化脚本生成

Intv_AI_MK11 Python数据分析搭档&#xff1a;环境配置与自动化脚本生成 1. 为什么需要AI辅助的数据分析环境 数据分析师每天要处理大量重复性工作&#xff1a;数据清洗、报告撰写、图表生成。这些工作既耗时又容易出错。Intv_AI_MK11作为新一代AI助手&#xff0c;可以帮你自…...

5分钟掌握:终极地图填充插件的完整指南

5分钟掌握&#xff1a;终极地图填充插件的完整指南 【免费下载链接】sketch-map-generator Sketch plugin to fill a shape with a map generated from a given location using Google Maps and Mapbox 项目地址: https://gitcode.com/gh_mirrors/sk/sketch-map-generator …...

微信数据解密技术全解析:从原理到合规应用

微信数据解密技术全解析&#xff1a;从原理到合规应用 【免费下载链接】PyWxDump 删库 项目地址: https://gitcode.com/GitHub_Trending/py/PyWxDump 合规使用声明 本文所介绍的技术与工具仅适用于个人合法拥有的数据管理场景。使用者必须确保&#xff1a;1) 仅对本人所…...

5分钟快速上手:解锁付费内容的终极指南

5分钟快速上手&#xff1a;解锁付费内容的终极指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在信息时代&#xff0c;优质内容常常被付费墙阻隔&#xff0c;但今天我要为你介绍一…...

如何进行 SEO 网站建设的链接优化

如何进行 SEO 网站建设的链接优化 在当今的数字化时代&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;无疑是任何网站建设项目中不可或缺的一部分。尤其是在百度这样的主要搜索引擎上&#xff0c;SEO的重要性更是不言而喻。如何进行 SEO 网站建设的链接优化呢&#xff1…...

避坑指南:uniapp小程序自定义tabbar闪屏问题终极解决方案(含page.json配置)

避坑指南&#xff1a;uniapp小程序自定义tabbar闪屏问题终极解决方案&#xff08;含page.json配置&#xff09; 第一次在uniapp里尝试自定义tabbar时&#xff0c;那个刺眼的闪屏效果简直让人崩溃——页面切换时像老式电视机换台一样闪烁&#xff0c;用户体验直接跌到谷底。这问…...

PowerShell中的环境变量与编码问题

在使用PowerShell脚本处理配置文件和环境变量时,编码问题常常是开发者们面临的一个挑战。本文将通过一个具体的实例,探讨如何处理PowerShell中的环境变量编码问题,特别是当环境变量包含特殊字符(如反引号)时。 问题描述 假设你正在使用Drone CI执行一些PowerShell命令,…...

如何快速解密网易云音乐NCM文件:5分钟掌握完整转换指南

如何快速解密网易云音乐NCM文件&#xff1a;5分钟掌握完整转换指南 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 还在为网易云音乐下载的加密NCM文件无法在其他播放器上播放而烦恼吗&#xff1f;ncmd…...

STM32C8T6新手入门:用定时器中断和外部中断做一个99秒倒计时器(附完整代码)

STM32C8T6实战&#xff1a;构建高精度99秒倒计时器的5个关键步骤 第一次拿到STM32开发板时&#xff0c;我盯着那些密密麻麻的引脚发呆——这玩意儿真能做出实用的倒计时器&#xff1f;直到成功完成这个项目后才发现&#xff0c;原来从零开始构建一个稳定可靠的倒计时系统&#…...