文档
这个示例使用:
这个例子展示了如何使用自定义自动标记功能信号贴标签机标签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赫兹和由两个心脏病专家注释,允许验证的结果。
麻省理工学院数据库的负载两个信号,对应于200年和203年的记录。重新取样信号250 Hz, QT数据库数据的采样率。
负载mit2001美元=重新取样(ecgsig, 25岁,36);负载mit203y203 =重新取样(ecgsig, 25岁,36);
开始信号分析仪并拖动到信号表的信号。选择信号。信息:添加时间分析仪选项卡上,单击时间值中,选择采样率和启动时间,指定采样率为250 Hz。在分析仪选项卡上,单击标签。中出现的信号标记信号设置浏览器。
采样率和启动时间
定义标签附加到信号。
定义一个类别的QRS复合物(ROI)标签。点击添加定义在标签选项卡。指定标签名称作为QRSregions,选择一个LabelType的ROI,输入数据类型作为分类,并添加两个类别,QRS和n /一个,每一行。
QRSregions
ROI
分类
QRS
n /一个
定义一个数值为R峰点标签的sublabelQRSregions。点击QRSregions在标签定义浏览器以选中它。点击添加定义▼并选择添加sublabel定义。指定标签名称作为Rpeaks,选择一个LabelType的点,进入数据类型作为数字。
添加sublabel定义
Rpeaks
点
数字
创建了两个自定义函数,一个定位和标签QRS复合物和另一个定位和标签R峰在每个QRS波群。(代码findQRS,computeFSST,p2qrs,findRpeaks函数在稍后的示例中出现。)创建每个函数分析仪选项卡上,单击自动化的价值▼并选择添加自定义函数。信号贴标签机显示一个对话框要求名称、描述和标签类型的函数添加。
findQRS
computeFSST
p2qrs
findRpeaks
对于定位QRS复合物的功能,输入findQRS在的名字字段和选择ROI随着标签类型。你可以离开描述场空也可以输入你自己的描述。
的功能定位R峰,输入findRpeaks在的名字字段和选择点随着标签类型。你可以离开描述场空也可以输入你自己的描述。
如果你已经写的函数,函数在当前文件夹或MATLAB®路径,信号贴标签机将功能添加到画廊。如果你没有写的函数,信号贴标签机在编辑器中打开空白模板输入或者粘贴代码。保存文件。功能出现在画廊。
发现和标签输入信号的QRS复合物。
在标记信号设置浏览器,选择旁边的复选框1美元。
1美元
选择QRSregions在标签定义浏览器。
在自动化的价值画廊,选择findQRS。
点击Auto-Label并点击好吧在出现的对话框中。
信号贴标签机定位和标签所有信号的QRS复合物但是只显示您选择复选框的信号。QRS复合物作为阴影区域出现在情节和标签查看器轴。通过点击激活淘洗沙金的人淘洗沙金的人在显示选项卡并放大的区域标记信号。
发现和标签相对应的R峰QRS复合物。
选择Rpeaks在标签定义浏览器。
回到标签选项卡。在自动化的价值画廊,选择findRpeaks。
标签及其数值出现在情节和标签查看器轴。
导出标签信号比较每个患者的心率变异性。在标签选项卡上,单击保存标签。在出现的对话框中,给这个名字心率设置。单击标签信号好吧回到信号分析仪。在信号表,选择心率并单击右键将其导出到一个文件HeartRates.mat。
心率
HeartRates.mat
加载标记信号设置。对于每个信号集,计算心率变异性的标准差连续心跳之间的时间差异。画一个柱状图的差异和显示心率变异性。
负载心率nms = getMemberNames(心率);为k = 1:心率。NumMembers v = getLabelValues(heartrates,k,{“QRSregions”,“Rpeaks”});hr = diff (cellfun (@ (x) x.Location, v));次要情节(2,1,k)直方图(hr 0.5: .025:1.5)传说([“hrv = 'num2str (std(人力资源)))ylabel (nms (k)) ylim ([0 6])结束
的findQRS函数发现和标签输入信号的QRS复合物。
这个函数使用了两个辅助功能,computeFSST和p2qrs。(代码辅助功能出现在稍后的示例中)。你可以将函数存储在单独的文件在同一目录或巢内findQRS通过插入在决赛之前结束声明。
结束
之间的调用computeFSST和p2qrs,findQRS使用分类函数和训练网络净识别QRS地区。在调用之前分类,findQRS将数据转换成所期望的格式净解释说,波形分割使用深度学习:
净
每个信号都必须取样在250赫兹和划分为一堆2 -N细胞阵列,每一行对应一个频道N是5000的倍数。实际的分区和叠加的完成computeFSST函数。
每一个麻省理工学院重新取样信号有6945个样本,这不是5000的倍数。保持所有数据在每一个信号,垫与随机数字信号。后来在这个过程中,p2qrs随机数的函数标签不属于QRS复合物和丢弃它们。
函数[labelVals, labelLocs] = findQRS (x, t, parentLabelVal parentLabelLoc,变长度输入宗量)%,这是一个为自动标签创建一个自定义函数的模板%% x是一个矩阵,其中每一列包含对应于一个数据%的通道。如果渠道有不同的长度,那么x是一个单元阵列%的列向量。%% t是一个矩阵,每一列对应一个%的通道。如果渠道有不同的长度,那么t是一个单元阵列%的列向量。%% parentLabelVal父标签值与输出% sublabel或空的时候不是sublabel输出。% parentLabelLoc包含一个空向量是一个当父标签%属性,一个向量的ROI限制当父标签是一个ROI或一个点%的位置当父标签是一个点。%% labelVals必须与数字一个列向量,逻辑或字符串输出%值。%时,必须空向量labelLocs输出标签属性%两列矩阵ROI限制输出标签ROI,或一个列%向量点位置的输出标签点。labelVals = [];labelLocs = [];Fs = 250;负载(“trainedQTSegmentationNetwork”,“净”)为kj = 1:尺寸(x, 2)团体= x (:, kj);%创建10000 -示例所期望的信号网络sig =[团体;randn(10000 -长度(团体),1)/ 100)';%调整输入和计算synchrosqueezed傅里叶变换mitFSST = computeFSST(团体、Fs);%使用训练网络预测哪些点属于QRS地区mitFSST netPreds =分类(净,“MiniBatchSize”,50);%堆细胞数组转换成一个向量位置=[1:长度(netPreds{1})长度(netPreds{1}) +(1:长度(netPreds {2}))) ';值= [netPreds {1} netPreds {2}] ';%标签QRS复合物的地区利益和丢弃non-QRS数据[loc,瓦尔斯]= p2qrs(表(位置、价值));labelVals = [labelVals; Vals];labelLocs = (labelLocs; loc / Fs);结束%插入computeFSST p2qrs这里如果你想窝在里面% queryQRS包括其作为独立功能的而不是文件夹。结束
这个函数会重塑输入数据到所期望的形式净然后使用fsst函数计算傅里叶synchrosqueezed变换(FSST)的输入。在波形分割使用深度学习根据输入,网络执行最好每个培训或测试信号的时频图。FSST导致一组特性为复发性网络特别有用,因为变换具有相同的时间分辨率与原始输入。功能:
fsst
指定一个Kaiser窗长度128提供足够的频率分辨率。
提取数据从0.5赫兹频率范围40赫兹。
减去每个信号的均值和标准差的分裂。
治疗FSST的实部和虚部作为独立的特性。
函数Fs signalsFsst = computeFSST (xd) targetLength = 5000;signalsOut = {};为sig_idx = 1:尺寸(xd, 1) current_sig = xd (sig_idx:) ';%计算targetLength-sample块数量的信号numSigs =地板(长度(current_sig) / targetLength);%截断targetLength的倍数current_sig = current_sig (1: numSigs * targetLength);%与尽可能多的列创建一个矩阵targetLength信号xM =重塑(current_sig targetLength numSigs);%垂直连接到细胞阵列signalsOut = [signalsOut;mat2cell (xM。”的(numSigs,1)));结束signalsFsst =细胞(大小(signalsOut));为idx = 1:长度(signalsOut) [s、f] = fsst (signalsOut {idx}, Fs,凯瑟(128);%提取数据从0.5赫兹频率范围40赫兹f_indices = f (f > 0.5) & (< 40);真正signalsFsst {idx} = [(s (f_indices:));图像放大(s (f_indices:)));signalsFsst {idx} = (signalsFsst {idx}意味着(signalsFsst {idx}, 2))…。/性病(signalsFsst {idx}, [], 2);结束结束
深层网络输出一系列分类标签输入信号的每一个点作为P地区归属感,QRS波群,T区,或没有。这个函数将这些标签指向QRS的标签。
执行转换,该函数分配类别和使用整数的数值findchangepts函数来找到点数值数组值变化。
findchangepts
每个changepoints是左端点的分类区域,和它前面的点阵列是正确的端点的区域。
该算法增加了1 e-6向右端点,以防止一个示例区域从零时间。
1 e-6
的df参数选择感兴趣的区域只有那些QRS持续时间大于的复合物df样本。
df
函数[loc,瓦尔斯]= p2qrs (k) fc = 1 e-6;df = 20;ctg =类别(k.Value);列弗= 1:长度(玻纤);为jk =列弗cat2num (k。值= = ctg {jk}) =列弗(jk);结束chpt = findchangepts (cat2num,“MaxNumChanges”长度(cat2num));loc = [[1; chpt '] [chpt ' 1;长度(cat2num)) + fc);vals =分类(cat2num (loc(: 1)),列弗,ctg);loc = loc +圆(k.Location (1) 1;qrs =找到(vals = =“QRS”& diff (loc, [], 2) > df);瓦尔斯=分类(字符串(vals (qrs)), (“QRS”“n / a”]);loc = loc (qrs:);结束
这个函数定位最突出QRS感兴趣的地区发现的峰值findQRS。应用MATLAB®的函数islocalmax信号的绝对值的函数间隔分布findQRS。
islocalmax
函数[labelVals, labelLocs] = findRpeaks (x, t, parentLabelVal parentLabelLoc,变长度输入宗量)Fs = 250;如果isempty (t) t =(0:长度(x) / Fs;结束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页。
labeledSignalSet
signalLabelDefinition
这个例子的修改版本存在于你的系统。你想打开这个版本呢?
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
选择一个网站翻译内容,看到当地事件和提供。根据你的位置,我们建议您选择:。
你也可以从下面的列表中选择一个网站:
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。
联系你当地的办公室
得到审判现在