您可以使用信号贴标签机执行自动标记任务。除了峰贴标签机,自动化的价值画廊的标签TAB包含可以用于自动标记信号的函数。
每个自定义自动标记函数的第一行由表单的定义语句组成
函数[labelVals, labelLocs] =外汇(x, t, parentLabelVal parentLabelLoc,变长度输入宗量)
第一个输入参数,x
,为输入信号。当编写函数时,期望x
是一个矩阵,其中每一列包含与通道对应的数据。如果通道有不同的长度,则预期x
是列向量的单元格数组。
第二个输入参数,t
,存储时间值。当编写函数时,期望t
是一个矩阵,其中每一列包含与信道对应的时间信息。如果通道有不同的长度,则预期t
是列向量的单元格数组。
请注意
对于单通道成员,自定义自动标记函数将数据和时间值作为双精度向量。
对于多通道成员,自定义自动标记函数以矩阵或单元格数组的形式获取数据和时间值。
自定义自动标记函数获取成员的所有通道作为输入,但它们不必对所有通道进行操作。您可以选择希望该函数对哪些通道进行操作。
第三个输入参数,parentLabelVal
,是与输出子标签关联的父标签值,它包含数字、逻辑或字符串标量。此参数仅用于自动标记子标签的函数。如果函数是一个父标签,期望parentLabelVal
是空的。
第四个输入参数,parentLabelLoc
,包含:
当父标签是一个属性时,为空向量
当父标签是一个感兴趣区域(ROI)时,两个元素的数字行向量限制
当父标签是一个点时,表示点位置的数字标量
此参数仅用于自动标记子标签的函数。如果函数是一个父标签,期望parentLabelLoc
是空的。
请注意
对于父标签,自动标记函数对每个选中的成员进行操作。
对于子标签,自动标记函数每次对每个所选成员的一个父标签实例进行操作。
使用变长度输入宗量
指定其他输入参数。如果没有额外的输入参数,可以省略变长度输入宗量
.控件时出现的对话框中,以有序的逗号分隔的列表形式输入附加参数Auto-Label按钮。
第一个输出参数,labelVals
,包含标签值。labelVals
必须:
如果输出标签是属性,则为数字、逻辑或字符串标量
当输出标签是roi或点时,具有数字、逻辑或字符串值的列向量
第二个输出参数,labelLocs
,包含标签位置。labelLocs
必须:
当输出标签是属性时,为空向量
当输出标签是ROI时,ROI的两列矩阵是有限的
当输出标签是点时,点位置的列向量
要实现你的算法,你可以使用MATLAB中的任何函数®或者从系统中安装的任何工具箱中获取。
要了解更多细节,请参见利用深度学习网络标记心电信号的QRS波复合体和R峰和使用外部API在音频信号中标注语音词.
该函数计算信号的均方根值,并将该值作为数字属性标记该信号。如果一个成员有多个通道,则该函数计算每个通道的RMS值并将其平均值。通道可以有不同的长度。
函数[labelVals, labelLocs] = meanRMS (x, t, parentLabelVal parentLabelLoc,变长度输入宗量)以均方根值平均值作为标记属性的信号如果iscell(x) labelVals = mean(cellfun(@rms,x))其他的labelVals =意味着(rms (x));结束labelLocs = [];结束
这个函数找到一个信号的零点并将其标记为“上升”
积极的转变和“下降”
负向的转变。
函数[labelVals, labelLocs] =转换(x, t, parentLabelVal parentLabelLoc,变长度输入宗量)%标记零点为“上升”或“下降”nchan =大小(x, 2);tt = t (: 1);labelVals =细胞(nchan, 1);labelLocs =细胞(nchan, 1);为Kj = 1:nchan [~,ltup,utup] = risetime(x(:, Kj),tt,“考虑”0.1 * [1]);ups = (utup + ltup) / 2;upc = repmat (“上升”长度(ups) 1);[~, ltdn utdn] = falltime (x (:, kj), tt,“考虑”0.1 * [1]);dns = (utdn + ltdn) / 2;dnc = repmat (“下降”长度(dns) 1);labelVals {kj} = (upc; dnc);labelLocs {kj} = (ups, dns);结束labelVals =猫(1,labelVals {:});labelLocs = cell2mat (labelLocs);结束
这个逻辑函数将多通道信号中的以下区域标记为真:
第一个通道的振幅是负的。
第三通道的振幅大于用户指定的值,mx
.如果不指定,mx
默认为0.1。
函数[labelVals, labelLocs] = greaterThan (x, t, parentLabelVal parentLabelLoc,变长度输入宗量)%标记第一个通道和第三个通道小于给定值的区域如果Nargin <5 mx = 0.1;其他的mx =变长度输入宗量{1};结束xr = x (: 1);xx = x (:, 3);tt = t (: 1);ss = signalMask(xr < 0 & xx >= mx);x = roimask (ss);labelLocs = tt (x.ROILimits);labelVals =逻辑(双(x.Value));结束
控件旁边的箭头可以添加自定义自动标记功能自动化的价值Gallery,然后选择添加自定义函数.在对话框中,指定以下字段:
的名字—指定要添加的函数的名称。
描述-添加一个简短的功能描述,并描述可选的输入参数。
标签类型—指定函数生成的标签类型。选择属性
(默认),ROI
,或点
.
请注意
基于标签类型你指定,信号贴标签机将函数放在自动化的价值画廊。当您选择标签定义时,图库只启用那些可用于该定义类型的函数。
如果你已经写了一个函数,并且该函数在当前文件夹中或MATLAB路径中,信号贴标签机合并在画廊里。如果你还没有写出函数,信号贴标签机在编辑器中打开一个空白模板。
控件可以随时编辑函数、编辑函数描述或删除函数管理自定义功能选项自动化的价值画廊。
请注意
使用管理自定义功能选项只改变界面中显示的功能描述自动化的价值画廊。如果要更改包含该函数的文件中的描述,必须编辑该文件。