如何分配一个标签labeledSignalSet还是标签?

1视图(30天)
我有一个信号,我使用“信号贴标签机应用程序”标签,但现在,贴上后我想把它划分为较短的片段,将那些会作为深层网络的输入,和依然存在的标签。
这样做的主要原因是不可分割的信号已经手动标记,再手动标签分割后,虽然有可能,非常耗费时间。
如果有一个推荐的划分方法可以帮助任何建议,我将会很高兴我通常使用重塑信号矩阵和以列为段,有时使用“循环”的部分从time1 time2在不断跳跃,但是每一个方法,将标签会没事的。

接受的答案

MathWorks支金宝app持团队
名为“signalMask”的一个新对象,允许您将感兴趣的区域表序列面具。
您可以使用此区域表转换为一个面具,然后裂缝成更小的序列,序列可用于训练模型。
可在R2020b“signalMask”。请参考这个网站更多的想法:
块信号函数和他们的计划在将来的版本中添加标签。
下面的例子展示了标记信号区域分块训练LSTM网络学习如何分段信号:
有一个脚本块信号和使用“signalMask”标签,和不使用“signalMask”:
%获得数据
负载(“ls_125.mat”)
%转换标签分类(数字不支持)金宝app
regionsTbl = ls.Labels.cessation {1};
regionsTbl。值=分类(cell2mat (regionsTbl.Value));
%的信号采样率
signalTbl = ls.Source {1};
signalVector = signalTbl.Sig;
Fs = 1 /秒(意味着(diff (signalTbl.Time)));
%序列长度
seqLength =身高(ls.Source {1});
% %获得分类序列使用signalMask (20 b)
%的信号掩码基于区域标签
m = signalMask (regionsTbl“SampleRate”Fs);
% roi表掩码转换为一个分类序列长度=信号长度的面具
sequenceMask = catmask (m, seqLength);
不使用signalMask % %获得分类序列
%将地区从秒到样品
regionsMatrix = min (seqLength 1 +轮(regionsTbl {: 1} * Fs));
sequenceMask =分类(字符串(seqLength, 1));
idx = 1:尺寸(regionsMatrix, 1)
投资回报率= regionsMatrix (idx:);
sequenceMask (roi (1): roi (2), 1) = regionsTbl.Value (idx);
结束
% %的信号块为每个块和该地区的标签
%调整信号和lanel序列基于期望的块长度
chunkLength = 1000;
numChunks =地板(seqLength / chunkLength);
sequenceMask = sequenceMask (1: numChunks * chunkLength);
signalVector = signalVector (1: numChunks * chunkLength);
%的每个块及其下面矩阵对应一个信号
%相应标签掩码
signalChunks =重塑(signalVector chunkLength numChunks);
labelSequenceChunks =重塑(sequenceMask chunkLength numChunks);

更多的答案(0)

类别

找到更多的在人工智能的信号帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!