主要内容

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

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

QRS复波由心电波形中的三个偏转组成,反映了心脏左右心室的去极化。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);

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

定义标签

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

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

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

创建自定义自标签函数

创建两个自定义标签功能,一个用于定位和标记QRS波群,另一个用于定位和标记每个QRS波群内的R峰。(用于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复合体在绘图和标签查看器轴上以阴影区域的形式出现。通过单击激活平移器淘洗沙金的人显示标签并放大标记信号的区域。

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

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

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

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

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

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

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

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

负载心率nms = getMemberNames(心率);对于k = 1:心率。NumMembers v = getLabelValues(心脏,k,{“QRS区域”,“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。

findQRS功能:查找QRS复合体

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

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

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

函数[labelVals, labelLocs] = findQRS (x, t, parentLabelVal parentLabelLoc,变长度输入宗量)%这是一个模板,用于创建自动标记的自定义函数%% x是一个矩阵,其中每一列包含对应于a的数据%的通道。如果通道有不同的长度,那么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:size(x,2) sig = x(:, Kj);重塑输入和计算傅里叶同步压缩变换mitFSST = computeFSST(团体、Fs);%使用经过训练的网络预测哪些点属于QRS区域mitFSST netPreds =分类(净,“MiniBatchSize”, 50);%为QRS区域创建信号掩码并指定最小序列长度QRS = categorical([netPreds{1} netPreds{2}]) ',“QRS”);msk = signalMask (QRS,“最小长度”,df,“SampleRate”,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));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=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]拉古纳,巴勃罗,雷蒙Jané,还有佩雷·卡米纳尔。多导联心电信号的波边界自动检测: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.“麻省理工学院波黑心律失常数据库的影响。”医学与生物工程杂志第20卷,第3期,2001年5月至6月,第45-50页。

另见

应用程序

物体

相关实例

更多关于