主要内容

自定义标签函数

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

自动化价值画廊

创建自定义标签函数

每个自定义自动标记函数的第一行由表单的定义语句组成

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

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

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

    请注意

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

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

    • 自定义自动标签功能将成员的所有通道作为输入,但它们不必对所有通道都进行操作。您可以选择希望该功能对哪些通道进行操作。

  • 第三个输入参数,亲缘关系,是与输出子标签关联的父标签值,包含数字、逻辑或字符串标量。此参数仅为自动标记子标签的函数传入。如果该函数用于父标签,则亲缘关系空着。

  • 第四个输入参数,亲缘关系,包含:

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

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

    • 当父标签为点时,表示点位置的数值标量

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

    请注意

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

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

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

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

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

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

  • 第二个输出参数,拉贝洛克斯,包含标签位置。拉贝洛克斯必须:

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

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

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

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

有关详细信息,请参见自动信号标记与自定义功能使用外部API标记音频信号中的口语词

示例:平均RMS值

该函数计算信号的平均均方根值,并将该值作为数字属性标记为信号。如果一个成员有多个通道,该函数计算每个通道的RMS值并取平均值。通道可以有不同的长度。

作用[labelVals,labelLocs]=平均值(x,t,parentLabelVal,parentLabelLoc,Varagin)%以均方根值作为属性的标签信号如果iscell(x)labelVals=平均值(cellfun(@rms,x))其他的labelVals =意味着(rms (x));结束labelLocs=[];结束

例如:零交叉

此函数用于查找信号的过零并将其标记为“上升”对于积极的转变“下降”负向的转变。

作用[labelVals,labelLocs]=转换(x,t,parentLabelVal,parentLabelLoc,varargin)%将零交点标记为“上升”或“下降”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(指数=1);fval=repmat(“下降”,长度(絮状物),1);labelLocs{kj}=[rloc;絮状物];labelVals{kj}=[rval;fval];结束labelVals=cat(1,labelVals{:});labelLocs=cell2mat(labelLocs);结束

例如:多通道标记

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

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

  • 第三通道的振幅大于用户指定的值,mx. 如果没有规定,mx默认值为0.1。

作用[labelVals,labelLocs]=大于(x,t,parentLabelVal,parentLabelLoc,varargin)%使用负的第一通道和大于给定值的第三通道标记区域如果Nargin <5 mx = 0.1;其他的mx=varargin{1};结束xr=x(:,1);xx=x(:,3);tt=t(:,1);ss=signalMask(xr<0&xx>=mx);x=roimask(ss);labelLocs=tt(x.ROILimits);labelVals=logical(double(x.Value));结束

将自定义标签功能添加到库中

若要添加自定义自动标签功能,请单击标签旁边的箭头自动化价值“多媒体资料”,然后选择添加自定义函数.在对话框中,指定以下字段:

  • 的名字-指定要添加的函数的名称。

  • 描述-添加函数功能的简短描述,并描述可选的输入参数。

  • 标签类型—指定函数生成的标签类型。选择属性(违约),投资回报率,或指向

    请注意

    基于标签类型你指定,信号贴标签机将函数放置在自动化价值库。选择标签定义时,库仅启用可与该定义类型一起使用的功能。

如果你已经写了一个函数,并且函数在当前文件夹或MATLAB路径中,信号贴标签机将其合并到库中。如果尚未编写函数,信号贴标签机在编辑器中打开一个空白模板。

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

您可以随时使用编辑功能、编辑功能描述或删除功能管理自定义功能中的选项自动化价值画廊。

请注意

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

另请参阅

应用程序

功能

相关的例子

更多关于