硕士课程可穿戴作业归档之三

news2025/1/19 7:53:10

代码运行

挑战赛要求

根据比赛要求,

As in recent challenges, the data have been divided into three sets:

- **Learning (training) set A**: includes noninvasive fetal ECG signals, as well as the reference annotations for them (for participants' use only; not used to score or rank challenge entries)
- **Open test set B**: noninvasive signals only (reference annotations withheld; for evaluation of challenge entries in events 4, 5, and 6)
- **Hidden test set C**: unpublished records (reserved for evaluation of open-source challenge entries in events 1, 2, and 3)

set-a是训练集,set-b是测试集

image-20211122201036585

根据比赛模板文件的参数设计,知道ECG参数对应的是从四通道的csv文件中读取的矩阵。

运行代码

Podziemski[1]的代码

观察csv数据格式,读取时需要从第一列第二行之后读取

在这里插入图片描述

%这里以训练集a03.csv为例,csvread为matlab读取csv的方法
M = csvread('set-a-text\a03.csv',2,1) 

读取csv,获得矩阵

image-20211122201413390

执行方法

physionet2013(1,M)

在这里插入图片描述

后将结果与a03.fqrs.txt比较(仅展示前14行)

a03.fqrs.txtphysionet2013(double(1),M)loss
91954
5915954
109811035
161216164
212521349
26712666-5
3227327043
377437795
431343196
483648448
535253575
587058755
637463806
687868835

再以测试集b00.csv,进行测试,可以看到如训练集一样,正常运行。

image-20211122203706906

Varanini[2] 的代码

方法同上,读取csv转成矩阵,后作为参数传入方法中,

执行

physionet2013(1,M,'test')

以下为打印输出信息

 --------------------------------------------------------- 
Program: FecgDetrFilt,   record name: test

 --------------------------------------------------------- 
Program: FecgICAm,  record name: test
FastIca, cosh , deflationary 
epsilon=    0.000100 
Component=  1
numIt=  7, 0.000021
Component=  2
numIt= 34, 0.000098
Component=  3
numIt=  5, 0.000020
Component=  4
numIt=  3, 0.000000

 --------------------------------------------------------- 
Program: FecgInterp,  record name: test

 --------------------------------------------------------- 
Program: FecgQRSmDet,   record name: test
Number of detected mother QRSs= 101
RR mean= 0.594,  stdev=0.036

 --------------------------------------------------------- 
Program:  FecgQRSmCanc,  record name: test
Number of QRSs= 101
RR mean= 5.944755e-01,  stdev=3.620722e-02

 --------------------------------------------------------- 
Program: FecgICAf,  record name: test
FastIca, cosh , deflationary 
epsilon=    0.000100 
Component=  1
numIt= 16, 0.000099
Component=  2
numIt=  7, 0.000032
Component=  3
numIt=  4, 0.000018
Component=  4
numIt=  3, 0.000000

 --------------------------------------------------------- 
Program: FecgQRSfDet,   record name: test
channel=1,  meRR= 0.4620,  madRR= 0.0051,  maddRR= 0.0065, cfact= 0.0000, cFMsim= 0.0132
channel=2,  meRR= 0.4577,  madRR= 0.0156,  maddRR= 0.0250, cfact= 0.0000, cFMsim= 0.0130
channel=3,  meRR= 0.4881,  madRR= 0.0248,  maddRR= 0.0421, cfact= 0.0000, cFMsim= 0.0127
channel=4,  meRR= 0.3027,  madRR= 0.0268,  maddRR= 0.0448, cfact= 0.0142, cFMsim= 0.0183
channel=1,  chanIqf= 0.0248
channel=2,  chanIqf= 0.0536
channel=3,  chanIqf= 0.0796
channel=4,  chanIqf= 0.1040
Selected channel=1

ans =

    0.0995
    0.6000
    1.1073
    1.6210
    2.1385
    2.6803
    3.2363
    3.7840
    4.3235
    4.8483
    ...

与ground truth比对(仅展示前14行)

a03.fqrs.txta03.fqrs.txt(/1000)physionet2013(double(1),M)loss
910.0910.09950.0085
5910.5910.60.009
10981.0981.10730.0093
16121.6121.6210.009
21252.1252.13850.0135
26712.6712.68030.0093
32273.2273.23630.0093
37743.7743.7840.01
43134.3134.32350.0105
48364.8364.84830.0123
53525.3525.36150.0095
58705.875.880.01
63746.3746.38450.0105
68786.8786.88830.0103

Podziemski[1]论文阅读

摘要

将检测到的RR间期峰值与胎儿头皮电极测量值进行比较。我们的算法侧重于检测胎儿QRS复合物中最突出的部分,即RS斜率。首先,我们去除远距离趋势,找到具有最优质胎儿心电图的两个通道。然后,我们定位具有所需特性(足够的振幅和斜率)的重极化。

内容

名词介绍

胎儿心电图(Fetal Electro Cardiogram,FECG):是胎心活动的客观指标,其作用是临床听诊和胎儿监护仪所不能取代的一种胎心观察法

母亲腹部心电图 mothers’ abdomen ECG(aECG)

目的

从具有低胎儿QRS幅度的信号检测胎儿QRS复杂位置,寻找一种将尽可能低的原始波形诱导的方法。

数据

aECG 4个通道,采样率为1kHz,持续时间为60秒。

具体模型

架构

image-20211123202727638

算法侧重于检测胎儿QRS信号的最突出的一部分。

RS斜率(见图1)。它可以分为四个主要部分:

  • 信号预处理(步骤1-5),
    • 1-2 翻转,得到8个信号
    • 3-4 过滤杂音
    • 5 降频传到下一步
  • RS斜率检测(6-9),
    • 通过小步长的斜率检测,找到胎儿QRS的特征(RR间隔特征和RS斜率特征)
    • 并用这些特征筛选胎儿信号
  • 协方差信号增强(10-14),
    • 通过信号的平均值与母体模板信号值相减,得到最后的结果
  • 微调(15-17)。
    • 删去不合理的信号

实验结果

在大赛上取得了好成绩

结论

可以通过处理图像斜率的方法来处理信号数据——一个思路。

Varanini[2] 论文阅读

摘要

预处理阶段:移除baseline和移除powerline干扰。用于母亲心电图提取的独立成分分析(ICA);母体QRS检测;使用通过加权奇异值分解(SVD)获得的PQRST近似值进行母体心电图取消;第二次ICA用于增强胎儿心电信号;胎儿 QRS 检测。

内容

名词介绍

独立成分分析(Independent Component Correlation Algorithm,ICA):在信号处理中,这是一种用于将多元信号分离为加性子分量的计算方法。

奇异值分解(Singular Value Decomposition,SVD):是线性代数中一种重要的矩阵分解,奇异值分解则是特征分解在任意矩阵上的推广。

PQRST

  • P – Position/Provoking Factors,代表胸痛的位置和诱发因素
  • Q – Quality,代表性质
  • R – Radiation,代表放射,指的是放射痛
  • S – Severity/Symptoms,代表胸痛的严重程度和伴随症状
  • T – Time,代表时间

处理流程

  1. 预处理:移除 baseline和power line

移除指定信号之后的图

img

  1. 利用ICA 增强母体ECG信号

  1. 4 KHz and 母体QRS 检测

  2. 凭借SVD,使用QRST参考值移除母体ECG信号 (最下方是分离的结果)

img

  1. ICA 增强胎儿ECG信号

  2. 利用RR序列的模型,改善胎儿QRS波谱

实验结果

挑战赛跑分第一名。

谢晓路[3]论文阅读

也是利用挑战赛数据,在2017年,实现检测胎儿R波的高效算法算法。

摘要

通过最小化误差函数构造人工序列,将人工序列与腹部混合信号作差从而自适应地滤除母亲心电信号的波形,以获得较清晰的胎儿心电波形,再经过基于k均值聚类的胎儿R波尖峰检测以及精筛选的步骤,获得正确的胎儿 R 波尖峰。

具体模型

架构

滤除母亲心电波形

构造人工序列 X ={x1,x2,…,xn}(其中,xi 为 第i个点的幅值).

我还是不知道怎么构造的人工序列

利用人工序列与腹部心电信号作差,从而滤除母亲心电波形。

image-20211123213625315

胎儿R波尖峰初步检测,

胎儿R波尖峰精筛选,(就像Podziemski[1]中的微调“删去不合理的信号”和,Varanini[2] 的利用RR序列的模型改善波谱一样),这里利用RR间期均值来筛选R波尖峰。

实验结果

对于波峰幅值不明显和极端的ECG图像,会导致算法不能很好应用。

作者自述

Varanini等的算法在数据集上的平均运行时间略低于本研究提出的算法,但其平均灵敏度和平均阳性检测率较低,准确性无法保障.Podziemsk等的算法在平均灵敏度和平均阳性检测率上的成绩突出,但由于其平均运行时间较长,难以对胎儿R波进行实时提取,而本研究提出的算法平均运行时间短,准确率也处于较高水平.

结论

思路要是面向数据集的诸多特征(这里是针对波峰这个特征,说不定也可以根据波谷…),往往可以激发许多不同的思路。

参考内容

[1]Piotr Podziemski, & Jan Gieraltowski (2013). Fetal heart rate discovery: Algorithm for detection of fetal heart rate from noisy, noninvasive fetal ECG recordings Computing in Cardiology Conference.

[2]Maurizio Varanini, Gennaro Tartarisco, Lucia Billeci, Alberto Macerata, Giovanni Pioggia, & R. Balocchi (2013). A multi-step approach for non-invasive fetal ECG analysis Computing in Cardiology Conference.

[3]谢晓路, 王子叶, 陈干, 宋蕾, 王颖, & 张丽娟. (2017). 一种从母体腹部电极心电信号中检测胎心r波的算法. 厦门大学学报:自然科学版, 56(1), 6.

[4] matlab读取cvs文件的几种方法 - sgggr - 博客园 (cnblogs.com)

[5] 胎儿心电信号实时转换为胎儿胎音的计算机仿真转换方法与流程 (xjishu.com)

[6] PQRST评估法,轻松应对胸痛_PQRST评估_胸痛_心肌梗死_医脉通 (medlive.cn)

环境配置了,但是没用上 利用MATLAB读取PHYSIONET数据库的具体步骤_Sueyi166的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022.9.26DAY678

课程学习:《数据处理技术》讲了“数据查询”的语法格式,语法格式也算是简单,就是没能跟之前的内容联系起来,之前的内容没有及时回顾。 高等数学:“ 函数的概念”,讲了函数的概念,反函数&#…

C语言中 printf函数格式化输出

一. 简介 本文来简单学习一下,C语言中printf函数格式化输出时,因为我们的粗心没有 将数据类型与格式化参数对应,而导致的一些问题。 二. C语言中printf函数的格式化输出 在C语言中,printf函数是用于格式化输出的函数&#xff0…

Idea 的选择文件后定位瞄准器 “Select Opened File“ 的功能不见了

一、问题描述 使用Idea 时 “Select Opened File” 的功能不见了,一般是可以通过点击这个瞄准按钮,定位到文件的位置。 这个非常坑爹。 之前应该是有这个瞄准镜的。 二、解决方法 右键标题框,选择后点击Always Opened File,即…

[C][栈帧]详细讲解

目录 1.栈帧1.进程地址空间2.栈帧说明 2.认识相关寄存器3.认识相关汇编命令4.过程理解5.栈帧总结6.补充 1.栈帧 1.进程地址空间 .进程地址空间 2.栈帧说明 调用函数,形成栈帧函数返回,释放栈帧局部变量是存放在栈区上的栈区内存的使用习惯是&#xff…

阿里云语音合成TTS直播助手软件开发

阿里云的TTS比较便宜,效果比不了开源克隆的那种,比纯机器人效果好一点点 阿里云sambert https://help.aliyun.com/zh/dashscope/developer-reference/quick-start-13 Sambert系列模型 1万字1元 ,每主账号每模型每月3万字免费 创建API-KEY htt…

国产操作系统上Vim的详解03--使用Vundle插件管理器来安装和使用插件 _ 统信 _ 麒麟 _ 中科方德

原文链接:国产操作系统上Vim的详解03–使用Vundle插件管理器来安装和使用插件 | 统信 | 麒麟 | 中科方德 Hello,大家好啊!今天给大家带来一篇在国产操作系统上使用Vundle插件管理器来安装和使用Vim插件的详解文章。Vundle是Vim的一款强大的插…

工业通讯现场中关于EtherCAT转TCPIP网关的现场应用

在当今工业自动化的浪潮中,EtherCAT技术以其高效、实时的特性成为了众多制造业的首选。然而,随着工业互联网的发展,对于数据的远程访问和云平台集成的需求日益增长,这就需要将EtherCAT协议转化为更为通用的TCP/IP协议。于是开疆智…

Day43 代码随想录打卡|二叉树篇---左叶子之和

题目(leecode T404): 给定二叉树的根节点 root ,返回所有左叶子之和。 方法: 迭代法:计算所有的左叶子节点,那我们就必然要找到所有的左叶子节点。那么怎么找呢?如何针对cur->l…

Java实现俄罗斯方块游戏源代码(启动即可玩)

这是一个用Java Swing实现的俄罗斯方块游戏,具有经典的游戏机制和图形界面。游戏中,玩家需要旋转和移动不断下落的方块,使其填满一行来消除该行并得分。 该项目适合学习Java GUI编程、游戏开发基础以及面向对象编程(OOP&#xff0…

【Qt】Qt Style Sheets (QSS) 指南:打造个性化用户界面

文章目录 前言:1. QSS 选择器2. 子控件选择器(Sub-Controls)2.1. 示例:给 QComboBox 给下拉按钮加上图标2.2. 示例:修改进度条颜色 3. 伪类选择器3.1. 代码示例: 设置按钮的伪类样式.3.2. 代码示例: 使用事件方式实现同…

想要成长就要持续地学习,而如何学习更有效率呢

为什么很多人学了知识,但是总感觉记不住,用不上呢? 在学习的过程中,为什么总感觉没什么进步呢? 看了很多书,为什么总感觉没什么用呢? 要说明这些问题,首先我们要知道一个好的、完整的…

语言模型测试系列【9】

语言模型 文心一言讯飞星火通义千问2.5豆包360智脑百小应腾讯元宝KimiC知道 好长时间没有做语言模型的测试了,一方面是没有好的素材,各模型都在升级优化,而且频率很高;另一方面近期在阅读和学习其他的知识,所以更的也…

阿里影业业绩大涨,除了沸腾的文娱市场还有什么原因?

影视文娱市场的火热仍在延续,新定档的电影和演出,不断引人关注这个行业的生机。而这个行业的支持者、受益者,就站在一线。 5月29日晚,阿里影业发布截至2024年3月31日的2024财年业绩公告。社会文娱消费的热情,对优质项…

怎么等比例缩小图片尺寸?这四种方法肯定可以帮到你!

怎么等比例缩小图片尺寸?在当今日常生活中,图片文件是我们不可或缺的一部分,它们以各种形式出现,从社交媒体上的照片到工作文档中的插图,然而,随之而来的问题是,有时这些图片文件的尺寸过大&…

Linux---用户及权限配置

文章目录 目录 文章目录 前言 一.基本概念 二.用户管理 创建用户 修改用户属性 用户组管理 用户授权 前言 用户在操作系统中是非常重要的,我们登录系统,访问共享文件夹等都需要用户进行验证。所以,掌握管理用户的知识非常有必要的 一.基…

Java Web学习笔记2——Web开发介绍

什么是Web? Web:全球广域网,也称为万维网(WWW World Wide Web),能够通过浏览器访问的网站。 1)淘宝、京东、唯品会等电商系统; 2)CRM、OA、ERP企业管理系统&#xff1…

解锁财富新篇章:消费增值模式引领未来消费趋势

你是否曾对日常消费感到一丝单调,认为它仅仅是一种物质上的交换,而非财富增长的途径?那么,让我们为你打开一扇全新的消费之门——消费增值模式。这不仅是一种全新的消费体验,更是一种让你的资金在消费过程中不断积累与…

【并发】Synchronized的底层原理

基本概念 Synchronized【对象锁】采用互斥的方式让同一时刻最多只有一个线程能够持有【对象锁】,如果其他线程想要获取这个【对象锁】就会被阻塞住 底层实现原理 我们可能听过,synchronized底层是通过Monitor来实现的,但如何直观的观察呢&…

kingbase重置序列

1、建立表接口 drop table if exists ncc_apple; CREATE TABLE ncc_apple ( id BIGSERIAL NOT null PRIMARY KEY, apple_name VARCHAR(128), creator BIGINT, create_time timestamp DEFAULT CURRENT_TIMESTAMP, updater INT8, update_time timestamp …

欧洲历史的五个阶段

欧洲的历史基本上都是分裂的,大致可以分为五个时期,分别为古希腊时代、罗马帝国时代、中世纪时代,文艺复兴时代、工业革命时代。 一,古希腊时代 古希腊是西方文明的源头,也是最重要和最直接的文明起源,首…