创建信号标签定义
用signallabledefinition.
为数据集创建信号标签定义。标签可以对应于属性,地区或感兴趣点。使用矢量signallabledefinition.
对象创建一个LabeledSignalSet.
。
名称
-标签名称标签名称,指定为字符向量或字符串标量。
数据类型:char
|细绳
名称
-标签名称标签名称,指定为字符向量或字符串标量。
数据类型:char
|细绳
LabelType.
-标签类型'属性'
(默认)|'roi'
|'观点'
标签类型,指定为以下之一:
'属性'
- 定义信号特性。
'roi'
- 定义感兴趣区域的信号特征。
'观点'
- 定义感兴趣点的信号特征。
数据类型:char
|细绳
Labeldatatype.
-标签数据类型'逻辑'
(默认)|'分类'
|'数字'
|'细绳'
|'桌子'
|'时间表'
数据类型的标签,指定为'逻辑'
那'分类'
那'数字'
那'细绳'
那'桌子'
, 或者'时间表'
。使用类别当此属性设置为时,属性要指定类别数组'分类'
。
数据类型:char
|细绳
类别
-标签类别名称标签类别名称,指定为字符串数组或字符向量的单元格数组。数组必须具有唯一的元素。此属性仅适用于Labeldatatype.属性设置为'分类'
。
例子:'LabeldAtype','分类','类别',[“Apple”,“橙色”]
数据类型:char
|细绳
roilimitsDatatype.
-数据类型的ROI限制'双倍的'
(默认)|'期间'
数据类型的ROI限制,指定为'双倍的'
或者'期间'
。此属性仅适用于什么时候LabelType.设定为'roi'
。
数据类型:char
|细绳
PointCocationsDatatype.
-数据类型的点位置'双倍的'
(默认)|'期间'
点位置的数据类型,指定为'双倍的'
或者'期间'
。此属性仅适用于什么时候LabelType.设定为'观点'
。
数据类型:char
|细绳
验证功能
-验证功能验证函数,指定为函数句柄,并在设置标签值时使用LabeledSignalSet.
目的。此属性仅适用于什么时候Labeldatatype.设定为'分类'
那'逻辑'
那'数字'
那'桌子'
, 或者'时间表'
。如果未指定,则该函数仅检查其输入值是否为正确的数据类型。如果Labeldatatype.设定为'分类'
,该功能检查输入是使用的值之一类别。该函数取得输入值并返回真的
如果值有效和错误的
如果值无效。
例子:'
Labeldatatype.
','数字','默认值
',1,'验证功能
',@(x)x <2
数据类型:function_handle.
默认值
-标签的默认值[]
(默认)|Labeldatatype.
价值标签的默认值,指定为使用的类型的值指定Labeldatatype.。如果Labeldatatype.设定为'分类'
, 然后默认值必须是使用指定的值之一类别。
例子:'
Labeldatatype.
','分类','类别
',[“苹果”,“橙色”],'默认值
',“苹果”
数据类型:char
|双倍的
|逻辑
|细绳
|桌子
描述
-标签描述标签描述,指定为字符向量或字符串标量。
例子:'描述','患者睡着了'
数据类型:char
|细绳
标签
-标签标记标识符标签标记标识符,指定为字符向量或字符串标量。使用此属性可在更大的标签方案或公共标签集中标识相同的标签。
例子:'标签','peak1'
数据类型:char
|细绳
Sublabels.
-一系列子标签Sublabels数组指定为信号标签定义对象。要指定多个sublabel,请将此属性设置为信号标签定义对象的向量。使用此属性在父标签及其子项之间创建关系。
笔记
Sublabels不能有子标签。
例子:'
Sublabels.
',[signallabledefinition(“否定”),signallabledefinition(“积极”)]
LANENDEFINITIONSHIERARAPT. |
获取标签和子标签名称的分层列表 |
LabELDefinitionSsummary. |
获取信号标签定义的摘要表 |
考虑一套鲸鱼录音。记录的鲸鱼声音包括颤音和呻吟声。颤音声音像点击次数。呻吟低频哭泣与船角的声音类似。您想查看每个信号并将其标记以识别鲸鲸类型,颤音区域和呻吟区域。对于每个TRILL区域,您还需要标记高于某个阈值的信号峰值。
信号标签定义
定义属性标签以存储鲸狗类型。可能的类别是蓝鲸,驼背鲸和白鲸。
dwhaletype = signallabeldefinition('whaletype'那......'labeltype'那'属性'那......'labeldatatype'那'分类'那......'类别',[“蓝色的”“驼背”“白色的”],......'描述'那'鲸型');
定义一个兴趣区域(ROI)标签以捕获呻吟区域。定义另一个ROI标签以捕获颤音区域。
DMOANS = SignallableDefinition('Moanregions'那......'labeltype'那'roi'那......'labeldatatype'那'逻辑'那......'描述'那呻吟的地区发生了“);DTRILLS = SIGNALLABELDEFINITION('trillregions'那......'labeltype'那'roi'那......'labeldatatype'那'逻辑'那......'描述'那'发生箱子的地区');
最后,定义点标签以捕获速率峰值。将此标签设置为SublabelDTRILLS.
定义。
dtrillpeaks = signallabeldefinition('trillpeaks'那......'labeltype'那'观点'那......'labeldatatype'那'数字'那......'描述'那'trill山峰');dtrills.sublabels = dtrillpeaks;
标记信号集
创建一个LabeledSignalSet.
使用鲸鱼信号和标签定义。添加标签值以识别鲸鱼类型,呻吟和颤音区域,以及棘手的峰值。
加载标签为什么lbldefs = [dwhaletype dmoans dtrills];lss = labeledsignalset({whale1 whale2},lbldefs,'成员名',{'鲸鱼1''鲸鱼2'},......'采样率',fs,'描述'那'表征波浪歌曲区域');
使用标签层次结构和标签属性使用LANENDEFINITIONSHIERARAPT.
和LabELDefinitionSsummary.
。
LANENDEFINITIONSHIERARCHY(LSS)
ans ='whaletype sublabels:[] moanregions sublabels:[] Trillregions sublabels:trillpeaks'
LANENDEFININGSSSUMMARY(LSS)
ans =.3×9表LabelName LabelType LableDataType类别验证功能DefaultValue Sublabels标记说明____________________________________________________________________________________________trype“{3x1字符串} {0x0 double} {0x0 double} {0x0 double}”““鲸鱼类型”“Moanregions”“ROI”“逻辑”{[“n / a”] {0x0 double} {0x0 double} {0x0 double} {0x0 double}“”呻吟的区域“,呻吟声”“roilregions”“ROI”“逻辑”逻辑“{[”n / a“]} {0x0 double} {0x0 double} {0x0 double} {1x1 signallabeldefefinition}”“arrills发生的区域”
加载数据中的信号对应于两个蓝色鲸鱼的歌曲。设定'whaletype'
两个信号的值。
setlabelvalue(lss,1,'whaletype'那'蓝色的');setlabelvalue(lss,2,'whaletype'那'蓝色的');
可视化'标签'
财产。表格有新添加的'whaletype'
两个信号的值。
lss.labels.
ans =.2×3表whaletype moanregions trillregions _________ _________________________鲸鱼1蓝色{0x2表} {0x3表} whale2蓝色{0x2表} {0x3表}
可视化区域标签
可视化鲸鲨以识别棘手和呻吟的地区。
子图(2,1,1)图((0:长度(鲸鲸)-1)/ fs,whale1)ylabel('鲸鱼1')子图(2,1,2)图((0:长度(鲸鲸2)-1)/ fs,whale2)ylabel('鲸鱼2')
呻吟地区是持续的低频哀号。
鲸鱼
有莫纳在大约7秒,12秒和17秒内居中。
鲸鱼
有呻吟率为约3秒,7秒和16秒。
将呻吟区域添加到标记的集合。在秒和标签值中指定ROI限制。
moanregionswhale1 = [6.1 7.7;11.4 13.1;16.5 18.1];MRSZ1 = [尺寸(moanregionswhale1,1)1];setlabelvalue(lss,1,'Moanregions',moanregionswhale1,true(mrsz1));moanregionswhale2 = [2.5 3.5;5.8 8;15.4 16.7];MRSZ2 = [大小(MoanRegionsWhale2,1)1];setlabelvalue(lss,2,'Moanregions',moanregionswhale2,true(mrsz2));
颤音地区默默地有明显的声音爆发。
鲸鱼
在大约2秒内速降了速降。
鲸鱼
在大约12秒的速度下有一个速度。
将Trill区域添加到标记的集合。
trillregionwhale1 = [1.4 3.1];trsz1 = [size(trillregionwhale1,1)1];setlabelvalue(lss,1,'trillregions',trillregionwhale1,true(trsz1));trillregionwhale2 = [11.1 13];trsz2 = [size(trillregionwhale1,1)1];setlabelvalue(lss,2,'trillregions',trillregionwhale2,true(trsz2));
创建一个signermask.
每个鲸曲歌曲的对象并使用它来可视化和标记不同的区域。为更好的可视化,将标签值从逻辑到分类更改。
MR1 = GetLabelvalues(LSS,1,'Moanregions');MR1.Value =分类(REPMAT(“呻吟”,MRSZ1));tr1 = getlabelvalues(lss,1,'trillregions');tr1.value =分类(repmat(“颤音”,trsz1));msk1 = signalmask([mr1; tr1],'采样率',fs);子图(2,1,1)Plotsigroi(MSK1,Whale1)Ylabel('鲸鱼1') 抓住上MR2 = GetLabelvalues(LSS,2,'Moanregions');MR2.VALUE =分类(REPMAT(“呻吟”,MRSZ2));tr2 = getlabelvalues(lss,2,'trillregions');tr2.value =分类(repmat(“颤音”,trsz2));MSK2 =信号掩模([MR2; TR2],'采样率',fs);子图(2,1,2)Plotsigroi(MSK2,Whale2)Ylabel('鲸鱼2') 抓住上
可视化点标签
每个捕获区域标记三个峰。对于点标签,您可以指定点位置和标签值。在此示例中,点位置是以秒为单位的。
peaklocswhale1 = [1.553 1.626 1.7];peakvalswhale1 = [0.211 0.254 0.211];setlabelvalue(lss,1,[“棘手”“trillpeaks”],......peaklocswhale1,papvalswhale1,'labelrowindex',1);子图(2,1,1)绘图(Peaklocswhale1,peakvalswhale1,'v') 抓住离开peaklocswhale2 = [11.214 11.288 11.437];peakvalswhale2 = [0.119 0.14 0.15];setlabelvalue(lss,2,[“棘手”“trillpeaks”],......peaklocswhale2,peakvalswhale2,'labelrowindex',1);子图(2,1,2)绘图(Peaklocswhale2,peakvalswhale2,'v') 抓住离开
探索标签值
使用探索标签值getLabelvalues.
。
getLabelvalues(LSS)
ans =.2×3表whaletype moanregions trillregions _________ ___________ ____________鲸鱼1蓝色{3x2表} {1x3表} whale2蓝色{3x2表} {1x3表}
检索标记集的第一成员的呻吟区。
GetLabelvalues(LSS,1,'Moanregions')
ans =.3×2表roilimits值_________________ 6.1 7.7 {[1]} 11.4 13.1 {[1]} 16.5 18.1 {[1]}
使用第二个输出参数列出标签的子标签。
[value,valuewithsublabel] = getLabelvalues(lss,1,'trillregions')
价值=1×2表Roilimits值__________ _____ 1.4 3.1 {[1]}
ValueWithsublabel =.1×3表Roilimits Value Sublabels Trillpeaks __________ _____________ 1.4 3.1 {[1]} {3x2表}
要检索sublabel中的值,请将标签名称作为双元数组表示。
getlabelvalues(lss,1,[“棘手”“trillpeaks”])
ans =.3×2表位置值________ __________ 1.553 {[0.2110]} 1.626 {[0.2540]} 1.7 {[0.2110]}
找到与集合的第二个成员对应的第三串峰值的值。
getlabelvalues(lss,2,[“棘手”“trillpeaks”],......'labelrowindex',1,'sublabelrowindex'3,3)
ans =.1×2表位置值________ __________ 11.437 {[0.1500]}
使用MATLAB®指定包含作为MAT文件的一组音频信号的路径。每个文件都包含一个信号变量和采样率。列出文件的名称。
文件夹= fullfile(matlabroot,“工具箱”那“matlab”那“音频视频”);lst = dir(附加(文件夹,“/*。垫”));nms = {lst(:)。name}'
nms =7x1细胞{'chirp.mat'} {'gong.mat'} {'handel.mat'} {'笑声.mat'} {'mtlb.mat'} {'mtlb.mat'} {'splat.mat'} {'train.mat'}
创建指向指定文件夹的信号数据存储。将采样率变量名称设置为FS.
,这对所有文件都是常见的。生成排除文件的数据存储的子集mtlb.mat
。使用子集数据存储作为源LabeledSignalSet.
目的。
sds = signaldataStore(文件夹,“samplerevariablename”那“FS”);SDS =子集(SDS,〜StrcMP(NMS,“mtlb.mat”));lss = labeledsignalset(SDS);
创建三个标签定义以标记信号:
定义一个逻辑属性标签,对于包含人类声音的信号是真的。
定义数字点标签,标记每个信号的最大位置和幅度。
定义一个分类的兴趣区域(ROI)标签,以挑选每个信号的非凸起,均匀长度的随机区域。
将信号标签定义添加到标记的信号集。
vc = signallabeldefinition(“语音”那'labeltype'那'属性'那......'labeldatatype'那'逻辑'那'默认值',错误的);mx = signallabeldefinition(“最大”那'labeltype'那'观点'那......'labeldatatype'那'数字');rs = signallabeldefinition(“ranroi”那'labeltype'那'roi'那......'labeldatatype'那'分类'那'类别',[“roi”“其他”]);addLabeldefinitions(LSS,[VC MX RS])
标记信号:
标签'handel.mat'
和'笑声..
有人类的声音。
使用islocalmax.
功能要找到每个信号的最大值。标记其位置和值。
使用兰德罗
函数生成多个长度区域N/ 10样品可以适合长度的信号N鉴于最低分离N/ 6区之间的样品。标记他们的位置并将它们分配给ROI.
类别。
当标记点和区域时,将样本值转换为时间值。减去1以考虑Matlab®Arst索引并划分采样率。
kj = 1;尽管Hasdata(SDS)[SIG,INFO] =读取(SDS);FS = INFO.SAMPLEDE;[〜,fn] = fileparts(info.filename);如果fn ==.“亨德尔”||fn ==.“笑声”setlabelvalue(lss,kj,“语音”,真的)结尾xm = find(iSlocalmax(SIG,'maxnumextrema',1));setlabelvalue(lss,kj,“最大”,(xm-1)/ fs,sig(xm))n =长度(sig);ROIS = RANDROI(n,圆形(n / 10),圆形(n / 6));setlabelvalue(lss,kj,“ranroi”,(rois-1)/ fs,repelem(“roi”,尺寸(rois,1)))kj = kj + 1;结尾
验证只有两个信号包含声音。
countlabelvalues(lss,“语音”)
ans =.2×3表语音计数百分比_____ _____ _______ _ _____ false 4 66.667 TRUE 2 33.333
验证两个信号是否具有1的最大幅度。
countlabelvalues(lss,“最大”)
ans =.5×4表最大计数百分比成员___________________________________________________________________________66711/016.6671/016.66711
验证每个信号是否有四个非目的的随机区域。
countlabelvalues(lss,“ranroi”)
ans =.2×4表Ranroi计数百分比成员______ _____ ___________________________________________其他0 0 0
使用标记信号集中的数据创建两个数据存储:
这SignalDataStore.
目的SD.
包含信号数据。
这ArrayDataStore.
目的LD.
包含标签信息。指定要包含与您创建的所有标签对应的信息。
[SD,LD] = CreateDataStore(LSS,[“语音”“ranroi”“最大”]);
使用数据存储中的信息绘制信号并显示其标签。
用一个signermask.
对象突出蓝色的兴趣区域。
绘制黄线以标记最大值的位置。
将红色轴标签添加到包含人类声音的信号。
Tiledlayout.流尽管hasdata(SD)[SG,NF] =读取(SD);LBLS =读(LD);nextdile msk = signalmask(lbls {:}。ranroi {:},'采样率',NF.Samplerate);Plotsigroi(msk,sg)颜色栏离开Xlabel('')[x,y] = meshgrid(lbls {:}。最大{:}。位置,ylim);抓住上绘图(x,y,'行宽'2,'颜色'那'#edb120') 抓住离开如果lbls {:}。声音{:} ylabel('浊音'那'颜色'那'#d95319')结尾结尾
功能Roilims = Randroi(n,wid,sep)num =地板((n + sep)/(wid + sep));HQ = histcounts(RANDI(NUM + 1,1,N-NUM * WID-(NUM-1)* SEP),(1:NUM + 2)-1/2);roilims =(1 +(0:num-1)*(wid + sep)+ cumsum(hq(1:num)))'+ [0 wid-1];结尾
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。