Загрузите в рабочую область MATLAB ® файл MAT, созданный в примере «Атрибуты сигнала метки», «Области интересов» и «Точки». Убедитесь, что набор маркированных сигналов содержит определения, добавленные с помощью Signal Labeler.
load Whale_Songs
labelDefinitionsSummary(whalesongs)ans=3×9 table
LabelName LabelType LabelDataType Categories ValidationFunction DefaultValue Sublabels Tag Description
______________ ___________ _____________ ____________ __________________ ____________ ___________________________ ___ ____________________________
"WhaleType" "attribute" "categorical" {3x1 string} {["N/A" ]} {0x0 double} {0x0 double } "" "Whale type"
"MoanRegions" "roi" "logical" {["N/A" ]} {0x0 double} {0x0 double} {0x0 double } "" "Regions where moans occur"
"TrillRegions" "roi" "logical" {["N/A" ]} {0x0 double} {0x0 double} {1x1 signalLabelDefinition} "" "Regions where trills occur"
Убедитесь, что TrillPeaks является подмаркировкой TrillRegions.
labelDefinitionsHierarchy(whalesongs)
ans =
'WhaleType
Sublabels: []
MoanRegions
Sublabels: []
TrillRegions
Sublabels: TrillPeaks
'
Извлеките второй элемент набора. Извлеките имена переменных расписания.
song = getSignal(whalesongs,2); summary(song)
RowTimes:
Time: 76579x1 duration
Values:
Min 0 sec
Median 9.5722 sec
Max 19.144 sec
TimeStep 0.00025 sec
Variables:
whale2: 76579x1 double
Values:
Min -0.37326
Median 0
Max 0.37914
Постройте график сигнала.
t = song.Time; sng = song.whale2; plot(t,sng)

Использовать signalMask для отображения и идентификации областей, представляющих интерес, которые были помечены. Для лучшего отображения измените значения меток с логических на категориальные.
mvals = getLabelValues(whalesongs,2,'MoanRegions'); mvals.Value = categorical(repmat("moan",size(mvals,1),1)); tvals = getLabelValues(whalesongs,2,'TrillRegions'); tvals.Value = categorical(repmat("trill",size(tvals,1),1)); msk = signalMask([mvals;tvals],'SampleRate',1/seconds(t(2)-t(1))); plotsigroi(msk,sng)

Отображение и определение вершин трели, которые были помечены.
pk = getLabelValues(whalesongs,2,{'TrillRegions','TrillPeaks'});
locs = zeros(size(pk,1),1);
for kj = 1:length(locs)
locs(kj) = find(seconds(t) == pk.Location(kj));
end
hold on
plot(seconds(t(locs)),sng(locs)+0.01,'v')
text(seconds(t(locs))+0.2,sng(locs)+0.05,int2str(cell2mat(pk.Value)))
hold off