主要内容

自定义标签功能

您可以使用信号贴标签机执行自动标签任务。除了峰贴标签机,自动化的价值画廊的标签选项卡包含可用于自动标记信号的函数。

自动化价值画廊

创建自定义标签函数

每个自定义自标签函数的第一行包含表单的定义语句

函数[labelVals, labelLocs] =外汇(x, t, parentLabelVal parentLabelLoc,变长度输入宗量)
定义语句包含函数名和一组强制参数和可选参数:

  • 第一个输入参数,x,为输入信号。当编写函数时,期望x是一个矩阵,其中每一列包含对应于一个通道的数据。如果渠道有不同的长度,那么期待x列向量的单元格数组。

  • 第二个输入参数,t,存储时间值。当编写函数时,期望t是一个矩阵,其中每一列包含信道对应的时间信息。如果渠道有不同的长度,那么期待t列向量的单元格数组。

    请注意

    • 对于单通道成员,自定义自标签函数将数据和时间值作为双精度向量。

    • 对于多通道成员,自定义自标签函数以矩阵或单元格数组形式获取数据和时间值。

    • 自定义自标签函数将成员的所有通道作为输入,但它们不必对所有通道进行操作。您可以选择要在哪个通道上操作该功能。

  • 第三个输入参数,parentLabelVal,是与输出子标号关联的父标号值,并包含数字、逻辑或字符串标量。此参数仅用于自动标记子标签的函数。如果函数是父标签,则期望parentLabelVal是空的。

  • 第四个输入参数,parentLabelLoc,包含:

    • 当父标签为属性时为空向量

    • 当父标签是ROI时,感兴趣区域(ROI)的两元素数字行向量将受到限制

    • 当父标号为点时,表示点位置的数字标量

    此参数仅用于自动标记子标签的函数。如果函数是父标签,则期望parentLabelLoc是空的。

    请注意

    • 对于父标签,自标签函数对每个选定的成员进行操作。

    • 对于子标签,自标签函数每次为每个选定的成员操作一个父标签实例。

  • 使用变长度输入宗量指定附加的输入参数。如果没有额外的输入参数,可以省略变长度输入宗量.单击时出现的对话框中,以逗号分隔的有序列表的形式输入其他参数Auto-Label按钮。

  • 第一个输出参数,labelVals,包含标签值。labelVals必须:

    • 当输出标签为属性时,为数字、逻辑或字符串标量

    • 当输出标签是roi或点时,具有数字、逻辑或字符串值的列向量

  • 第二个输出参数,labelLocs,包含标签位置。labelLocs必须:

    • 当输出标签为属性时为空向量

    • 当输出标签为ROI时,ROI限制的两列矩阵

    • 当输出标签是点时,由点位置组成的列向量

  • 要实现算法,可以使用MATLAB中的任何函数®或从系统中安装的任何工具箱。

有关详细信息,请参见自动信号标记与自定义功能使用外部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 [rate,count,indices] = zerocrosrate (x,TransitionEdge=“上升”);Rloc = tt(indices == 1); / /索引rval = repmat (“上升”长度(rloc) 1);[率,计算,指数]= zerocrossrate (x, TransitionEdge =“下降”);Floc = tt(indices == 1);fval = repmat (“下降”长度(絮状物),1);labelLocs {kj} = (rloc;絮状物);labelVals {kj} = [rval; fval];结束labelVals =猫(1,labelVals {:});labelLocs = cell2mat (labelLocs);结束

例如:多通道标记

这个逻辑函数将多通道信号的以下区域标记为true:

  • 第一个通道的振幅是负的。

  • 第三通道的振幅大于用户指定的值,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路径中,信号贴标签机将其合并到图库中。如果你还没写函数,信号贴标签机在编辑器中打开空白模板。

管理图库中的自定义标签功能

控件可以在任何时候编辑函数、编辑函数描述或删除函数管理自定义功能选项自动化的价值画廊。

请注意

使用管理自定义功能选项只改变显示在自动化的价值画廊。如果要更改包含函数的文件中的描述,必须编辑该文件。

另请参阅

应用程序

功能

相关的例子

更多关于