主要内容

signalMask

修改和转换信号掩码,提取感兴趣的信号区域

描述

使用signalMask存储信号感兴趣区域的位置以及每个区域的标签或类别值。

使用signalMask,您可以:

  • 将信号掩码表示为表、分类序列或二进制序列的矩阵。

  • 通过扩展或缩短感兴趣的区域的持续时间,合并足够接近的同类区域,或删除不够长的区域。

  • 从信号向量中提取感兴趣的信号区域。

  • 用不同颜色标记感兴趣的区域。

创建

描述

例子

msk的= signalMask (src为输入数据源创建信号掩码src.一个面具定义信号感兴趣区域的位置以及每个区域的标签或类别值。

msk的= signalMask (src名称,值属性使用名称-值参数。您可以指定多个名称-值参数。将每个属性名用引号括起来。

输入参数

全部展开

输入数据源,指定为感兴趣区域(ROI)表、分类向量序列或二进制序列矩阵。

  • src是一个ROI表,它必须包含两个变量:

    • 第一个变量是一个两列矩阵。矩阵的每一行包含感兴趣的信号区域的开始和结束极限。

      • 如果SampleRate是指定的,signalMask将限制解释为以秒表示的时间值。

      • 如果SampleRate没有指定,signalMask将极限解释为样本指标。如果矩阵元素不是整数,signalMask将它们的值舍入到大于零的最接近的整数。

    • 第二个变量包含区域标签,指定为分类数组或字符串。

  • src是一个类别向量序列,连续的同值类别元素组表示用该特定类别标记的感兴趣的信号区域。不属于任何类别(因此没有标签值)的元素应该指定为缺失的类别,显示为<定义>.有关更多信息,请参见分类

  • src是一个P-column的二进制序列矩阵,每一列被解释为带有的信号掩码真正的元素标记每个感兴趣的区域P不同的类别,用从1到的整数标记P.如果您愿意,可以指定一个列表P类别名称使用类别财产。

例子:signalMask(table([2 4;6 7],["公" "母"]'))指定带有三样例的信号掩码男性区域和两个样本地区。

例子:signalMask(分类([”““男性”“男性”“男性”““女性”的“女性”“]”,(“男”“女”)))指定带有三样例的信号掩码男性区域和两个样本地区。

例子:signalMask([0 1 1 1 0 0 0;0 0 0 0 0]','类别',["公" "母"])指定带有三样例的信号掩码男性区域和两个样本地区。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串|表格|分类

属性

全部展开

此属性是只读的。

输入源的类型,返回为“roiTable”“categoricalSequence”,或“binarySequences”.此属性是从src且无法设置。

例子:signalMask(table([2 4;6 7],["公" "母"]'))SourceType返回“roiTable”

例子:signalMask(分类([”““男性”“男性”“男性”““女性”的“女性”“]”,(“男”“女”)))SourceType返回“categoricalSequence”

例子:signalMask([0 1 1 1 0 0 0;0 0 0 0 0]','类别',["公" "母"])SourceType返回“binarySequences”

数据类型:字符串

此属性是只读的。

采样率值,指定为一个正数值标量。如果src指定为ROI表,signalMask假设表包含以秒为单位的区域限制。如果忽略此属性,该对象将所有区域限制视为样本索引。

数据类型:|

类别名称,指定为字符串向量或字符向量的单元格数组。此属性只能在src是二进制序列的矩阵。对于所有其他输入src类型,signalMask直接推断类别名称src这个属性是只读的。向量的元素数等于的列数src,它的类别对应于th列src.如果srcP列且此属性未指定,signalMask将类别名称设置为(“1”“2”……“P”)

数据类型:字符串|字符

选项以选择类别的子集,指定为逻辑值。如果此属性设置为创建掩码后,所有类别类别被选中。SpecifySelectedCategories只能在现有对象上使用,不能指定为名称-值参数。

数据类型:逻辑

所选类别的索引,指定为指向中的类别元素的整型索引值向量类别.的对象函数时,将从掩码输入中过滤掉此属性中未列出的类别signalMask.类别索引必须按升序排序。此属性仅适用于以下情况SpecifySelectedCategories真正的SelectedCategories只能在现有对象上使用,不能指定为名称-值参数。

例子:给出一组类别"女人" "女孩" "男人" "男孩",指定SelectedCategories作为(1 2 4)选择["女人”“女孩”“男孩”)然后过滤掉剩下的。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

向左侧扩展区域的样本数,指定为正整数。当到达序列的起点时,扩展样本的数量被截断。有关更多信息,请参见地区限制修改

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

向右扩展区域的样本数,指定为正整数。有关更多信息,请参见地区限制修改

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

从左边开始缩短区域的样本数,指定为正整数。signalMask删除被一些长度等于或大于其长度的样本所缩短的区域。有关更多信息,请参见地区限制修改

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

从右边缩短区域的样本数,指定为正整数。signalMask删除被一些长度等于或大于其长度的样本所缩短的区域。有关更多信息,请参见地区限制修改

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

待合并区域之间的距离,指定为正整数。当指定此属性时,signalMask合并由指定数量或更少的样本分隔的同一类别的区域。有关更多信息,请参见地区限制修改

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

要保留的最小区域长度,指定为正整数。当指定此属性时,signalMask删除比指定数目的样本短的区域。有关更多信息,请参见地区限制修改

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

对象的功能

binmask 得到二进制序列掩码矩阵
catmask 获取分类序列掩码
extractsigroi 基于信号掩模提取感兴趣区域
plotsigroi 根据信号掩模绘制信号区域
roimask 获得ROI表掩模

例子

全部折叠

加载采样的语音信号 F 年代 7 4 1 8 H z .该文件包含一段女性声音的录音,她说的是“MATLAB®”。

负载mtlbt =(0:长度(mtlb) 1) / Fs;

辨别单词中的元音和辅音通过找出信号的显著变化点。将更改点的数量限制为5个。

q = findchangepts (mtlb,“统计”“rms”“MaxNumChanges”5);

绘制信号并显示变化点。

findchangepts (mtlb“统计”“rms”“MaxNumChanges”5)轴

定义与单词中每个字母对应的感兴趣区域。

= t([[1;q] [q;length(mtlb)]]);

分配区域标签并保存它们的顺序。

x = (“M”“一个”“T”“L”“一个”“B”]“;y =独特(x,“稳定”);c =分类(x, y);

为感兴趣的区域和相应的标签创建一个信号掩码。从右侧将每个区域缩短一个样本,以避免相邻。显示感兴趣的区域表掩码。

src =表(roitable c);msk = signalMask (src,“SampleRate”Fs,“RightShortening”1);roimask (msk)
ans =6×2表B . roitable c ___________________ _ 0 0.017525 M 0.01766 0.10461 A 0.10475 0.22162 T 0.22176 0.33675 L 0.33688 0.6535 A 0.6549 0.3909 B .可选

在字母的位置引入间隙“一个”哼声。

m = mtlb;seq = catmask (msk、长度(mtlb));m (seq = =“一个”) =南;

使用自回归过程重建信号。从重建信号中提取每个感兴趣的区域。

p = fillgaps (m);w = extractsigroi (msk, p);

要在每个区域之后播放带有暂停的声音,取消注释以下行:

对于k = 1:长度(w)%的声音(cell2mat (w {k}), Fs)%暂停(0.5)%结束

绘制重建信号并可视化感兴趣的区域。

图plotsigroi (msk, p)

更多关于

全部展开

介绍了R2020b