主要内容

使用深度学习网络标记QRS复合物和ECG信号的R峰值

这个例子展示了如何使用自定义自标签函数信号贴标器标记QRS复合物和心电图(ECG)信号的R峰值。一个自定义函数使用先前培训的反复间深入学习网络来识别和定位QRS复合物。另一个自定义函数使用简单的峰值查找器来定位R峰值。在该示例中,网络标记了两个信号的QRS复合物,其完全独立于网络训练和测试过程。

QRS复波由心电波形中的三个偏转组成,反映了心脏左右心室的去极化。QRS也是人类心跳振幅最高的部分。QRS复合体的研究可以帮助评估一个人心脏的整体健康状况和是否存在异常[1]。特别地,通过在QRS复合物内定位R峰并观察连续峰之间的时间间隔,诊断师可以计算患者的心率变异性并检测心律失常。

在此示例中引入了深度学习网络利用深度学习的波形分割,它使用来自公开可用的Qt数据库的ECG信号进行培训[2] [3.]。这些数据由总共105名患者的ECG录音组成,在250 Hz中取样。为了获得每次录音,考官将两个电极放在患者的胸部上的不同位置,导致双通道信号。数据库提供由自动专家系统生成的信号区域标签[1]。添加的标签使得可以使用数据来培训深度学习网络。

加载,重新示例和将数据导入信号贴标器

在该示例中标记的信号来自MIT-BIH心律失常数据库[4.]。数据库中的每个信号以360 Hz的平均速率不规则地采样,并由两个心脏病学家注释,允许验证结果。

加载两个MIT数据库信号,对应于记录200和203.将信号重叠为均匀网格,其采样时间为1/250秒,其对应于Qt数据库数据的标称采样率。

加载mit200Y200 =重组(ECGSIG,TM,250);加载mit203y203 =重新取样(ecgsig tm 250);

打开信号贴标器.在贴标者选项卡,单击进口并选择来自工作区成员列表。在对话框中,选择信号1美元y203.添加时间信息:选择时间从下拉列表中指定采样率250.赫兹。点击进口并关闭对话框。信号出现在标记信号集浏览器.通过选择信号名称旁边的复选框绘制信号。

定义标签

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

  1. 为QRS复合物定义一个分类的兴趣区域(ROI)标签。点击添加定义在这一点贴标者标签。指定标签名称作为QRSREGIONS,选择一个标签类型ROI., 输入数据类型作为分类,并加两个分类,QRS.N/A,每个都在自己的线上。

  2. 定义的子标签QRSREGIONS作为R峰的数字点标签。点击QRSREGIONS标签定义浏览器选择它。点击添加定义并选择添加sublabel定义.指定标签名称作为rpeaks.,选择一个LabelType观点,并输入数据类型作为数字

创建自定义自标签函数

创建二自定义标签功能,一个要定位并标记QRS复合物,另一个用于定位并标记每个QRS复合物中的R峰值。(代码findqrs.findrpeaks.函数稍后在示例稍后。)要创建每个函数,请在贴标者选项卡中,扩大自动化价值画廊和选择添加自定义功能信号贴标器显示一个对话框,询问函数的名称,描述和标签类型。

  1. 对于定位QRS复合物的函数,输入findqrs.名称字段和选择ROI.作为标签类型.你可以离开描述字段空或您可以输入您自己的描述。

  2. 对于定位R峰值的函数,请输入findrpeaks.名称字段和选择观点作为标签类型.你可以离开描述字段空或您可以输入您自己的描述。

如果您已经编写了函数,并且函数在当前文件夹或MATLAB®路径中,信号贴标器将函数添加到库中。如果您还没有写入功能,信号贴标器在编辑器中打开空白模板,以便键入或粘贴代码。保存文件。保存文件后,函数就会出现在库中。

标记QRS复合物和R峰

找出并标记输入信号的QRS复形。

  1. 在里面标记信号集浏览器,选中旁边的复选框1美元

  2. 选择QRSREGIONS标签定义浏览器。

  3. 在里面自动化价值画廊,选择findqrs.

  4. 点击自动标签并选择自动标记所有信号.在出现的对话框中,输入250.Hz采样率在参数字段并点击

信号贴标器找到并标记所有信号的QRS复合物,但仅显示标签仅针对选中复选框的信号。QRS复合物在绘图中显示为阴影区域,并在标签查看器轴上。通过单击激活Panner在这一点展示选项卡并放大标记信号的区域。

查找并标记对应于QRS复合物的R峰值。

  1. 选择rpeaks.标签定义浏览器。

  2. 回到贴标者标签。在里面自动化价值画廊,选择findrpeaks.

  3. 点击自动标签并选择自动标记所有信号.点击在出现的对话框中。

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

导出标记信号并计算心率变异性

输出标记信号来比较每个病人的心率变异性。在贴标者选项卡,单击出口▼并选择标记信号设置为文件.在出现的对话框中,给出名称拜访,并添加一个可选的简短描述。点击出口

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

加载拜访NMS = GetMembernames(竞争对手);为了k = 1:拜访。脑子v = getlabelvalues(拜访,k,{'qrsregions''rpeaks'});hr = diff (cellfun (@ (x) x.Location, v));次要情节(2,1,k)直方图(人力资源、0.5:0.025:1.5)传说(['hrv ='Num2str (std(hr))]) ylabel(nms(k)) ylim([0 6])结尾

图包含2个轴。轴1包含类型直方图的对象。该对象表示HRV = 0.18764。轴2包含类型直方图的对象。该对象表示HRV = 0.17064。“width=

findqrs.功能:查找QRS复合体

findqrs.功能发现并标记输入信号的QRS复合物。

该函数使用辅助功能,complefsst.,重塑输入数据并计算傅立叶同步性调用变换(FSST)。你可以存储complefsst.在同一目录中的单独文件中或嵌入其中findqrs.在期末考试前插入结尾声明。

findqrs.用来分类(深度学习工具箱)函数和训练的深度学习网络来识别QRS区域。深度学习网络输出一个分类数组,将输入信号的每个点标记为P区、QRS复区、T区,或者不属于这些区域。该函数使用以下方法将对应于QRS复合体的点标签转换为QRS感兴趣区域标签signermask.然后丢弃剩下的。这DF.参数选择仅限持续时间大于20个样本的QRS复合物区域。如果未指定采样率,则该函数使用250 Hz的默认值。

功能[labelvals,labellocs] = findqrs(x,t,parentlabelval,parentlabelloc,varargin)%这是创建自动标签的自定义功能的模板% x是一个矩阵,其中每一列包含对应于a的数据%的通道。如果通道有不同的长度,那么x是一个单元格数组列向量的%。%t是一个矩阵,其中每列包含对应于a的时间%的通道。如果通道具有不同的长度,则t是一个单元数组列向量的%。% parentLabelVal是与输出相关联的父标签值输出不是Sublabel时%sublabel或空。当父标签为一个时,%parentlabelloc包含空向量%属性,父标签为ROI或点时ROI限制的向量父标签是一个点时的%位置。% labelVals必须是输出数字、逻辑或字符串的列向量%值。当输出标签是属性时,%LABELLOC必须是空向量,a当输出标签为ROI或列时,重量标准限制的%两列矩阵输出标签是点时点位置的%矢量。LabelVals = Cell(2,1);Labellocs = Cell(2,1);如果nargin <5 fs = 250;别的fs = varargin {1};结尾df = 20;负载('troustqtsegationnetwork''网'为了Kj = 1:size(x,2) sig = x(:, Kj);%重塑输入和计算傅立叶同步Queezed变换mitFSST = computeFSST(团体、Fs);%使用训练有素的网络预测哪个点属于QRS区域netpreds =分类(net,mitfsst,“MiniBatchSize”,50);%为QRS区域创建信号掩码,并指定最小序列长度QRS =分类([NetProds {1} NetPreds {2}]',“QRS”);msk = signalmask(qrs,“最小长度”,df,“SampleRate”,fs);r = roimask(msk);%标记QRS复合物作为感兴趣的区域labelVals {kj} = r.Value;labelLocs {kj} = r.ROILimits;结尾labelVals = vertcat (labelVals {:});labelLocs = cell2mat (labelLocs);如果要将其嵌套在FindQR中,%INSERT COMPEFSST在此处。结尾

complefsst.函数:重塑输入和计算傅里叶同步压缩变换

此功能使用FSST.函数来计算输入的傅立叶同步性转换(FSST)。如讨论的那样利用深度学习的波形分割,当输入每个训练或测试信号的时频映射时,网络执行最佳。FSST导致一组特征对复发网络特别有用,因为变换具有与原始输入相同的时间分辨率。功能:

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

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

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

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

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

功能SignitionFSST = COMPEFSST(XD,FS)XD = REHAPE([XD; RANDN(10000长(XD),1)/ 100],5000,2);signalsfsst = cell(1,2);为了k = 1:2 [ss,ff] = fsst(xd(:,k),Fs,kaiser(128));stickline (ff>0 and ff<40,:), colorff00ff;signalsFsst {k} =正常化([真实(sp);图像放大(sp)], 2);结尾结尾

findrpeaks.函数:查找R峰

此功能位于发现QRS区域的最突出的峰值findqrs..该功能适用​​MATLAB®islocalmax以位于位于的间隔内的信号的绝对值findqrs.

功能[labelvals,labellocs] = findRpeaks(x,t,parentlabelval,parentlabelloc,varargin)labelvals = zeros(大小(parentlabelloc,1),1);Labellocs =零(大小(parentLabelloc,1),1);为了kj = 1:size(parentlabelloc,1)tvals = t> = parentlabelloc(kj,1)&t <= parentlabelloc(kj,2);ti = t(tvals);xi = x(tvals);LC = Islocalmax(ABS(XI),'maxnumextrema',1);LabelVals(KJ)= XI(LC);LABELLOCS(KJ)= TI(LC);结尾结尾

参考

[1]拉古纳,巴勃罗,雷蒙Jané,还有佩雷·卡米纳尔。多导联心电信号的波边界自动检测:CSE数据库的验证计算机和生物医学研究。卷。27,1994年第1款,第45-60页。

[2] Goldberger,Ary L.,Luis A. N. Amaral,Leon Glass,Jeffery M. Hausdorff,Plamen Ch。Ivanov,Roger G. Mark,Joseph E. Mietus,George B. Coody,Chung-Kang Peng和H. Eugene Stanley。“Physiobank,PhysioLoolkit和PhysioIoneet:复杂生理信号的新研究资源的组成部分。”循环。卷。101,23,2000,PP。E215-E220。[循环电子页面:http://circ.ahajournals.org/content/101/23/e215.full]。

[3] Laguna,Pablo,Roger G. Mark,Ary L. Goldberger和George B. Moody。“一个用于评估心电图QT和其他波形间隔测量算法的数据库。电脑在心脏病。卷。24,997,第673-676页。

[4]喜怒无常,乔治B.和罗杰G. Mark。“MIT-BIH心律失常数据库的影响。”医学与生物工程杂志.卷。20,第3号,2001年6月,第45-50页。

也可以看看

应用

对象

相关例子

更多关于