主要内容

自动化信号标签使用自定义函数

这个例子展示了如何使用自定义autolabeling功能信号贴标签机标签QRS复合物和R心电图(ECG)信号的峰值。之前一个自定义函数使用一个训练有素的经常性深入学习网络来识别和定位QRS复合物。另一个自定义函数使用一个简单的峰值搜索来定位R峰。在这个例子中,网络标签QRS复合物完全独立的两个信号网络的训练和测试过程。

QRS波群,包括三个心电图波形变形量,反映了去极化的左、右心室的心。QRS也是highest-amplitude部分人类的心跳。QRS波群的研究可以帮助评估一个人的整体健康的心脏和异常的存在1]。特别是,通过定位QRS复合物内R峰和观察连续山峰之间的时间间隔,一个诊断专家可以计算患者的心率变异性和检测心律失常。

介绍了深度学习网络在这个例子波形分割使用深度学习,它被训练使用心电图信号从公开的QT数据库(2][3]。大约15分钟的数据由共有105名患者的心电图记录,采样250 Hz。获得每个记录,审查员把两个电极放在不同的位置在一个病人的胸部,导致一个双通道的信号。数据库提供了信号区域标签由一个自动生成专家系统(1]。添加标签可以使用数据来训练一个深度学习网络。

负载,重新取样,并将数据导入贴标签机信号

信号标签在这个例子从MIT-BIH心律失常数据库(4]。数据库中的每个信号不规则采样速度的意思是360 Hz,被两个心脏病专家注释,允许验证的结果。

加载两个麻省理工学院数据库信号,对应于200年和203年的记录。重新取样信号的均匀网格样品1/250秒的时间,这对应于名义QT数据库数据的采样率。

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

开放信号贴标签机。在贴标签机选项卡上,单击进口并选择从工作空间成员列表。在对话框中,选择信号1美元y203。添加时间信息:选择时间从下拉列表中,指定的采样率250年赫兹。点击进口并关闭。中出现的信号标记信号设置浏览器。情节的信号通过选择他们的名字旁边的复选框。

定义标签

定义标签附加到信号。

  1. 定义一个类别的QRS复合物(ROI)标签。点击添加定义贴标签机选项卡。指定标签名称作为QRSregions,选择一个标签类型ROI,输入数据类型作为分类,并添加两个类别,QRSn /一个,每一行。

  2. 定义一sublabelQRSregions作为数值点标签的R峰。点击QRSregions标签定义浏览器以选中它。点击添加定义并选择添加sublabel定义。指定标签名称作为Rpeaks,选择一个LabelType,进入数据类型作为数字

创建自定义Autolabeling功能

创建两个自定义标签功能,一个定位和标签QRS复合物和另一个定位和标签R峰在每个QRS波群。(代码findQRSfindRpeaks函数在稍后的示例中出现。)创建每个函数贴标签机选项卡中,扩大自动化的价值画廊和选择添加自定义函数信号贴标签机显示一个对话框要求名称、描述和标签类型的函数。

  1. 对于定位QRS复合物的功能,输入findQRS的名字字段和选择ROI随着标签类型。你可以离开描述场空也可以输入你自己的描述。

  2. 的功能定位R峰,输入findRpeaks的名字字段和选择随着标签类型。你可以离开描述场空也可以输入你自己的描述。

如果你已经写的函数,函数在当前文件夹或MATLAB®路径,信号贴标签机将功能添加到画廊。如果你没有写的函数,信号贴标签机在编辑器中打开空白模板输入或者粘贴代码。保存文件。一旦你保存文件,功能出现在画廊。

标签QRS复合物和R峰

发现和标签输入信号的QRS复合物。

  1. 标记信号设置浏览器,选择旁边的复选框1美元

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

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

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

信号贴标签机定位和标签的QRS复合物的信号,但只显示标签复选框被选中的信号。QRS复合物作为阴影区域出现在情节和标签查看器轴。通过点击激活淘洗沙金的人淘洗沙金的人显示选项卡并放大的区域标记信号。

发现和标签相对应的R峰QRS复合物。

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

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

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

标签及其数值出现在情节和标签查看器轴。

出口标记信号,计算心率变异性

导出标签信号比较每个患者的心率变异性。在贴标签机选项卡上,单击出口并选择将文件标记信号。在出现的对话框中,给这个名字HeartRates.mat到标签信号设置和添加一个可选的简短描述。点击出口

回到MATLAB®命令窗口。加载标记信号设置。对于每个信号集,计算心率变异性的标准差连续心跳之间的时间差异。画一个柱状图的差异和显示心率变异性。

负载心率nms = getMemberNames(心率);k = 1:心率。NumMembers v = getLabelValues(心率、k, {“QRSregions”,“Rpeaks”});hr = diff (cellfun (@ (x) x.Location, v));次要情节(2,1,k)直方图(人力资源、0.5:0.025:1.5)传说([“hrv = 'num2str (std(人力资源)))ylabel (nms (k)) ylim ([0 6])结束

图包含2轴对象。坐标轴对象1包含一个直方图类型的对象。该对象代表hrv = 0.18764。坐标轴对象2包含一个直方图类型的对象。该对象代表hrv = 0.17064。”width=

findQRS功能:发现QRS复合物

findQRS函数发现和标签输入信号的QRS复合物。

函数使用一个辅助函数,computeFSST重塑输入数据和计算傅里叶synchrosqueezed变换(FSST)。你可以存储computeFSST在一个单独的文件在同一目录或巢里面findQRS在最后插入结束声明。

findQRS使用分类(深度学习工具箱)函数和训练有素的深度学习网络识别QRS地区。深入学习网络输出一系列分类标签每一个点的输入信号属于P地区,QRS波群,T地区,或者这些。这个函数将标签对应一个QRS波群QRS的标签使用signalMask和丢弃。的df参数选择感兴趣的区域只有那些持续时间大于20的QRS复合物样品。如果你不指定采样率,250 Hz的函数使用默认值。

函数[labelVals, labelLocs] = findQRS (x, t, parentLabelVal parentLabelLoc,变长度输入宗量)%,这是一个为自动标签创建一个自定义函数的模板%% x是一个矩阵,其中每一列包含对应于一个数据%的通道。如果渠道有不同的长度,那么x是一个单元阵列%的列向量。%% t是一个矩阵,每一列对应一个%的通道。如果渠道有不同的长度,那么t是一个单元阵列%的列向量。%% parentLabelVal父标签值与输出% sublabel或空的时候不是sublabel输出。% parentLabelLoc包含一个空向量是一个当父标签%属性,一个向量的ROI限制当父标签是一个ROI或一个点%的位置当父标签是一个点。%% labelVals必须与数字一个列向量,逻辑或字符串输出%值。%时,必须空向量labelLocs输出标签属性%两列矩阵ROI限制输出标签ROI,或一个列%向量点位置的输出标签点。labelVals =细胞(2,1);labelLocs =细胞(2,1);如果输入参数个数< 5 Fs = 250;其他的Fs =变长度输入宗量{1};结束df = 20;负载(“trainedQTSegmentationNetwork”,“净”)kj = 1:尺寸(x, 2)团体= x (:, kj);%重塑输入和计算傅里叶synchrosqueezed变换mitFSST = computeFSST(团体、Fs);%使用训练网络预测哪些点属于QRS地区mitFSST netPreds =分类(净,“MiniBatchSize”,50);%为QRS创建一个信号掩码区域和指定最小序列长度QRS =分类([netPreds {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);%插入computeFSST这里如果你想窝里面findQRS。结束

computeFSST功能:重塑输入和计算傅里叶Synchrosqueezed变换

这个函数使用fsst函数计算傅里叶synchrosqueezed变换(FSST)的输入。讨论了在波形分割使用深度学习根据输入,网络执行最好每个培训或测试信号的时频图。FSST导致一组特性为复发性网络特别有用,因为变换具有相同的时间分辨率与原始输入。功能:

  • 垫随机数的输入数据和重塑成2 -的- 5000细胞阵列堆栈的预期

  • 指定一个Kaiser窗长度128和默认的形状系数 β = 0 5 提供足够的频率分辨率。

  • 提取数据从0.5赫兹频率范围40赫兹。

  • 对待FSST的实部和虚部作为独立的特性。

  • 规范化数据减去均值和除以标准差。

函数signalsFsst = computeFSST (xd, Fs) xd =重塑([xd; randn(10000 -长度(xd), 1) / 100), 5000年,2);signalsFsst =细胞(1、2);k = 1:2(党卫军,ff) = fsst (xd (:, k), Fs,凯瑟(128);sp = ss (ff > 0.5 & ff < 40岁:);signalsFsst {k} =正常化([真实(sp);图像放大(sp)], 2);结束结束

findRpeaks功能:发现R峰

这个函数定位最突出QRS感兴趣的地区发现的峰值findQRS。应用MATLAB®的函数islocalmax信号的绝对值的函数间隔分布findQRS

函数[labelVals, labelLocs] = findRpeaks (x, t, parentLabelVal parentLabelLoc,变长度输入宗量)labelVals = 0(大小(parentLabelLoc, 1), 1);labelLocs = 0(大小(parentLabelLoc, 1), 1);kj = 1:尺寸(parentLabelLoc, 1) tvals = t > = parentLabelLoc (kj, 1) & t < = parentLabelLoc (kj, 2);ti = t (tvals);ξ= x (tvals);lc = islocalmax (abs (xi),“MaxNumExtrema”1);labelVals (kj) = xi (lc);labelLocs (kj) = ti (lc);结束结束

引用

[1]拉古纳,巴勃罗,Raimon简,Pere Caminal。“自动波边界的检测多引入线的心电图信号:与CSE数据库验证。”计算机和生物医学研究。1号卷。27日,1994年,45 - 60页。

[2]不氩L。,Luis A. N. Amaral, Leon Glass, Jeffery M. Hausdorff, Plamen Ch. Ivanov, Roger G. Mark, Joseph E. Mietus, George B. Moody, Chung-Kang Peng, and H. Eugene Stanley. "PhysioBank, PhysioToolkit, and PhysioNet: Components of a New Research Resource for Complex Physiologic Signals."循环。2000年101卷,不。23日,pp. e215-e220。(循环电子页:http://circ.ahajournals.org/content/101/23/e215.full]。

[3]拉古纳,巴勃罗,罗杰·g·马克,必要l . Goldberger和乔治·b·穆迪。”数据库的评价算法测量心电图QT和其他波形的间隔。电脑在心脏病。24卷,1997年,页673 - 676。

[4]喜怒无常,乔治·B。,和Roger G. Mark. "The impact of the MIT-BIH Arrhythmia Database."IEEE,生物医学工程杂志。3号卷。20日,2001年5月- 6月,45 - 50页。

另请参阅

应用程序

对象

相关的例子

更多关于