主要内容

自动信号标记与自定义功能

此示例演示如何在中使用自定义自动标记函数信号贴标机用于标记心电图信号的QRS复合体和R峰。一个定制函数使用以前训练过的循环深度学习网络来识别和定位QRS复合体。另一个自定义函数使用一个简单的寻峰器来定位R峰。在这个例子中,网络标记两个信号的QRS复合体,这两个信号完全独立于网络训练和测试过程。

QRS波群由ECG波形中的三个偏移组成,反映心脏左右心室的去极化。QRS波也是人类心跳的最高振幅段。研究QRS波群有助于评估一个人心脏的整体健康状况和是否存在异常[1.]。特别是,通过定位QRS波群中的R峰值并查看连续峰值之间的时间间隔,诊断专家可以计算患者的心率变异性并检测心律失常。

介绍了本实例中的深度学习网络基于深度学习的波形分割,使用公开的QT数据库中的ECG信号进行训练[2.] [3.].这些数据包括105名患者大约15分钟的心电图记录,采样频率为250赫兹。为了获得每一个记录,检查人员将两个电极放置在病人胸部的不同位置,这就产生了一个双通道信号。该数据库提供由自动专家系统生成的信号区域标签[1.].添加的标签使使用数据训练深度学习网络成为可能。

加载,重新采样,并将数据导入信号标签

本例中标记的信号来自MIT-BIH心律失常数据库[4.].数据库中的每个信号均以360 Hz的平均频率进行不规则采样,并由两名心脏病专家进行注释,以验证结果。

加载两个MIT数据库信号,对应于记录200和203。以1/250秒的采样时间将信号重新采样到统一的网格中,该采样时间对应于QT数据库数据的标称采样率。

负载mit2001美元=重新取样(ecgsig tm 250);负载mit203y203=重采样(ecgsig,tm,250);

开放信号贴标机.在贴标签机选项卡,单击进口选择从工作区成员列表。在对话框中,选择信号2000年y203.添加时间信息:选择时间,并指定抽样率为250赫兹。点击导入并关闭.信号出现在标记信号集浏览器.通过选择信号名称旁边的复选框来绘制信号。

定义标签

定义要附加到信号的标签。

  1. 定义QRS波群的分类感兴趣区域(ROI)标签。单击添加定义贴标签机选项卡。指定标签名称QRSregions,选择一个标签类型ROI,输入数据类型明确的,再加2类别,QRS不适用在美国,每条线路都有自己的线路。

  2. 定义的子标签QRSregions作为R峰值的数字点标签。单击QRSregions标签定义使用浏览器选择它。单击添加定义选择添加sublabel定义.指定标签名称Rpeaks,选择一个唇形,然后进入数据类型数字

创建自定义自动标记函数

创建两个自定义标签功能,一个用于定位和标记QRS波群,另一个用于定位和标记每个QRS波群内的R峰。(用于findQRSfindRpeaks函数将在示例的后面出现。)要创建每个函数,请在贴标签机选项卡,展开自动化的价值图库和选择添加自定义函数信号贴标机显示一个对话框,询问函数的名称、描述和标签类型。

  1. 对于定位QRS波群的函数,输入findQRS的名字字段并选择ROI作为标签类型.你可以离开描述字段为空,或者您可以输入自己的描述。

  2. 对于定位R峰的函数,输入findRpeaks的名字字段并选择作为标签类型.你可以离开描述字段为空,或者您可以输入自己的描述。

如果您已经编写了函数,并且函数位于当前文件夹或MATLAB®路径中,信号贴标机将函数添加到库中。如果尚未编写函数,信号贴标机在编辑器中打开空白模板,供您键入或粘贴代码。保存文件。保存文件后,功能将显示在库中。

标记QRS波群和R峰

找到并标记输入信号的QRS波群。

  1. 标记信号集浏览器,选中旁边的复选框2000年

  2. 选择QRSregions标签定义浏览器

  3. 自动化的价值画廊,选择findQRS

  4. 点击Auto-Label选择Auto-Label所有信号。在出现的对话框中,输入250采样频率论据字段并单击好吧

信号贴标机为所有信号定位和标记QRS复合体,但只显示复选框被选中的信号的标签。QRS复合体在绘图和标签查看器轴上以阴影区域的形式出现。通过单击激活平移器淘洗沙金的人显示标签并放大标记信号的区域。

找到并标记与QRS波群对应的R峰。

  1. 选择Rpeaks标签定义浏览器

  2. 回去贴标签机选项卡。在自动化的价值画廊,选择findRpeaks

  3. 点击Auto-Label选择Auto-Label所有信号点击好吧在显示的对话框中。

标签及其数值显示在绘图和标签查看器轴中。

输出标记信号和计算心率变异性

导出标记的信号以比较每位患者的心率变异性。在贴标签机选项卡,单击出口选择标记信号设置为文件。在出现的对话框中,输入名称心率表添加到标记的信号集,并添加可选的简短描述。单击出口

回到MATLAB®命令窗口。加载标记信号集。对于集合中的每个信号,计算心率变异性作为连续心跳之间的时间差的标准差。绘制差异的直方图并显示心率变异性。

负载心率nms=GetMemberName(心率);对于k = 1:心率。NumMembers v = getLabelValues(心脏,k,{“QRS区域”,“Rpeaks”})hr=diff(cellfun(@(x)x.Location,v));子图(2,1,k)直方图(hr,0.5:0.025:1.5)图例([“hrv=”num2str(std(hr))])ylabel(nms(k))ylim([06])终止

图中包含2个轴对象。轴对象1包含直方图类型的对象。此对象表示hrv=0.18764。轴对象2包含直方图类型的对象。此对象表示hrv=0.17064。

findQRS功能:查找QRS波群

这个findQRS函数查找并标记输入信号的QRS波群。

该函数使用辅助函数,计算机软件,对输入数据进行整形,并计算傅里叶同步压缩变换(FSST)。你可以选择存储计算机软件在同一目录中的单独文件中,或将其嵌套在其中findQRS在决赛前插入它终止陈述

findQRS使用分类(深度学习工具箱)函数和训练的深度学习网络识别QRS区域。深度学习网络输出一个分类数组,将输入信号的每个点标记为属于P区域、QRS复合波、T区域或不属于这些区域。此函数使用signalMask然后扔掉剩下的df参数仅选择持续时间大于20个采样的QRS波群作为感兴趣区域。如果未指定采样率,函数将使用默认值250 Hz。

函数[labelVals, labelLocs] = findQRS (x, t, parentLabelVal parentLabelLoc,变长度输入宗量)%这是一个模板,用于创建自动标记的自定义函数%%x是一个矩阵,其中每列包含对应于%通道。如果通道的长度不同,那么x是一个单元数组%列向量的定义。%% t是一个矩阵,其中每一列包含对应于a的时间%通道。如果通道的长度不同,则t是一个单元数组%列向量的定义。%%parentLabelVal是与输出关联的父标签值%当输出不是子标签时为子标签或空。% parentLabelLoc在父标签为属性,当父标签是一个ROI或一个点时,ROI限制向量%父标签为点时的位置。%%labelVals必须是具有数字、逻辑或字符串输出的列向量%值。当输出标签是属性时,% labelLocs必须是一个空向量%当输出标签为ROI或一列时,ROI限制的两列矩阵%输出标签为点时点位置的向量。labelVals =细胞(2,1);labelLocs =细胞(2,1);如果nargin<5fs=250;其他的Fs =变长度输入宗量{1};终止df=20;荷载(“trainedQTSegmentationNetwork”,“净”)对于kj=1:尺寸(x,2)sig=x(:,kj);重塑输入和计算傅里叶同步压缩变换mitFSST=计算温度(sig,Fs);%使用经过训练的网络预测哪些点属于QRS区域mitFSST netPreds =分类(净,“MiniBatchSize”, 50);%为QRS区域创建信号掩码并指定最小序列长度QRS = categorical([netPreds{1} netPreds{2}]) ',“QRS”)msk=信号屏蔽(QRS,“最小长度”,df,“采样器”,Fs);r=ROI掩模(msk);%标记QRS复合体作为感兴趣区域labelVals {kj} = r.Value;labelLocs {kj} = r.ROILimits;终止labelVals=vertcat(labelVals{:});labelLocs=cell2mat(labelLocs);%如果您想在findQRS中嵌套它,请在这里插入computeFSST。终止

计算机软件功能:重塑输入并计算傅里叶变换

此函数使用fsst函数来计算输入的傅里叶同步压缩变换(FSST)。讨论了在基于深度学习的波形分割,当把每个训练或测试信号的时频图作为输入时,网络的性能最好。FSST产生了一组对循环网络特别有用的特征,因为变换与原始输入具有相同的时间分辨率。功能:

  • 用随机数填充输入数据,并将其重塑为预期的2×5000单元阵列堆栈

  • 指定长度为128和默认形状因子的Kaiser窗口 β = 0 5. 提供足够的频率分辨率。

  • 在0.5 Hz到40hz的频率范围内提取数据。

  • 将FSST的实部和虚部视为单独的特征。

  • 通过减去平均值并除以标准差对数据进行归一化。

函数signalsfst=computefst(xd,Fs)xd=reformate([xd;randn(10000长度(xd),1)/100],5000,2);signalsfst=cell(1,2);对于k=1:2[ss,ff]=fsst(xd(:,k),Fs,kaiser(128));sp=ss(ff>0.5&ff<40,:);signalsfst{k}=normalize([real(sp);imag(sp)],2);终止终止

findRpeaks功能:查找R峰值

该功能定位由以下方法发现的QRS感兴趣区域的最显著峰值:findQRS.该函数采用MATLAB®islocalmax函数的绝对值位于的区间内findQRS

函数[labelVals,labelLocs]=findRpeaks(x,t,parentLabelVal,parentLabelLoc,varargin)labelVals=0(size(parentLabelLoc,1),1);labelLocs=0(size(parentLabelLoc,1),1);对于KJ=1:大小(PARTABLLLOC,1)TVALL=t>=PARTROBLelLoc(KJ,1)&t<=PARTABLLLOCC(KJ,2);Ti=T(TVALL);席席=X(TVALL);LC= ISROCALMAX(ABS(XI));“MaxNumExtrema”1);labelVals (kj) = xi (lc);labelLocs (kj) = ti (lc);终止终止

参考文献

[1] 多导联ECG信号中波边界的自动检测:CSE数据库验证计算机和生物医学研究。第27卷,第1期,1994年,45-60页。

[2] 戈德伯格、阿瑞·勒、路易斯·阿马拉尔、利昂·格拉斯、杰弗里·豪斯多夫、普拉曼·伊万诺夫、罗杰·G·马克、约瑟夫·E·密特斯、乔治·B·穆迪、钟康鹏和H·尤金·斯坦利。“生理库、生理工具包和生理网:复杂生理信号新研究资源的组成部分。”循环Vol. 21, No. 2, 2000, pp. e215-e220。(循环电子页:http://circ.ahajournals.org/content/101/23/e215.full].

[3] 拉古娜、巴勃罗、罗杰·G·马克、艾利·L·戈德伯格和乔治·B·穆迪。"用于评估心电图中QT和其他波形间隔测量算法的数据库。"心脏病学中的计算机。1997年第24卷,第673-676页。

[4] Moody,George B.和Roger G.Mark.“麻省理工学院波黑心律失常数据库的影响。”IEEE医学和生物学工程杂志第20卷,第3期,2001年5月至6月,第45-50页。

另见

应用程序

物体

相关实例

更多关于