signalLabelDefinition

Создайте определение метки сигнала

Описание

Используйте signalLabelDefinition чтобы создать сигнал помечают определения для наборов данных. Метки могут соответствовать атрибутам, областям или интересным местам. Используйте вектор из signalLabelDefinition объекты создать labeledSignalSet.

Создание

Описание

sld = signalLabelDefinition(name) создает объект определения метки сигнала, sld, с набором свойств Имени к name и другой набор свойств к значениям по умолчанию.

пример

sld = signalLabelDefinition(name,Name,Value) Свойства наборов с помощью пар "имя-значение". Можно задать несколько пар "имя-значение". Заключите каждое имя свойства в кавычки.

Входные параметры

развернуть все

Пометьте имя в виде вектора символов или строкового скаляра.

Типы данных: char | string

Свойства

развернуть все

Имя метки в виде вектора символов или строкового скаляра.

Типы данных: char | string

Тип метки в виде одного из следующего:

  • 'attribute' — Задайте характеристики сигнала.

  • 'roi' — Задайте характеристики сигнала по необходимым областям.

  • 'point' — Задайте характеристики сигнала по интересным местам.

Типы данных: char | string

Тип данных метки в виде 'logical'категориальныйЧисловойСтрокаТаблица, или 'timetable'. Используйте свойство Categories задать массив категорий, когда это свойство будет установлено в 'categorical'.

Типы данных: char | string

Категория меток называет в виде массива строк или массива ячеек из символьных векторов. Массив должен иметь уникальные элементы. Это свойство применяется только, когда свойство LabelDataType установлено в 'categorical'.

Пример: 'LabelDataType','categorical','Categories',["apple","orange"]

Типы данных: char | string

Тип данных ROI ограничивает в виде любого 'double' или 'duration'. Это свойство применяется только, когда LabelType установлен в 'roi'.

Типы данных: char | string

Тип данных местоположений точки в виде любого 'double' или 'duration'. Это свойство применяется только, когда LabelType установлен в 'point'.

Типы данных: char | string

Функция валидации в виде указателя на функцию и используемый при устанавливании значений метки в labeledSignalSet объект. Это свойство применяется только, когда LabelDataType установлен в 'categorical'логическийЧисловойТаблица, или 'timetable'. Если не заданный, функция проверяет только, что ее входные значения имеют правильный тип данных. Если LabelDataType установлен в 'categorical', функция проверяет, что вход является одним из значений, заданных с помощью Категорий. Функция берет входное значение и возвращает true если значение допустимо и false если значение недопустимо.

Пример: 'LabelDataType', 'числовой', 'DefaultValue', 1, 'ValidationFunction',@ (x) x <2

Типы данных: function_handle

Значение по умолчанию метки в виде значения типа, заданного с помощью LabelDataType. Если LabelDataType установлен в 'categorical', затем DefaultValue должен быть одним из значений, заданных с помощью Категорий.

Пример: 'LabelDataType', 'категориальный', 'Categories', ["яблоко", "оранжевое"], 'DefaultValue', "яблоко"

Типы данных: char | double | logical | string | table

Пометьте описание в виде вектора символов или строкового скаляра.

Пример: 'Description','Patient is asleep'

Типы данных: char | string

Идентификатор тега label в виде вектора символов или строкового скаляра. Используйте это свойство идентифицировать ту же метку в большей схеме маркировки или общедоступном наборе маркировки.

Пример: 'Tag','Peak1'

Типы данных: char | string

Массив подметок в виде объекта определения метки сигнала. Чтобы задать больше чем одну подметку, установите это свойство на вектор из объектов определения метки сигнала. Используйте это свойство создать отношение между родительской меткой и ее дочерними элементами.

Примечание

Подметки не могут иметь подметок.

Пример: 'Sublabels', [signalLabelDefinition ("отрицательный"), signalLabelDefinition ("положительный")]

Функции объекта

labelDefinitionsHierarchyПолучите иерархический список метки и подпометьте имена
labelDefinitionsSummaryПолучите сводную таблицу определений метки сигнала

Примеры

свернуть все

Рассмотрите набор аудиозаписей кита. Записанные звуки кита состоят из трелей и стонов. Трели походят на серию нажатий кнопки. Стоны являются низкочастотными криками, похожими на звук, сделанный рогом поставки. Вы хотите посмотреть на каждый сигнал и пометить его, чтобы идентифицировать тип кита, области трели и области стона. Для каждой области трели вы также хотите пометить peaks сигнала выше, чем определенный порог.

Определения метки сигнала

Задайте метку атрибута, чтобы сохранить типы кита. Возможные категории являются голубым китом, горбатым китом и белухой.

dWhaleType = signalLabelDefinition('WhaleType',...
   'LabelType','attribute',...
   'LabelDataType','categorical',...
   'Categories', ["blue" "humpback" "white"],...
   'Description','Whale type'); 

Задайте метку видимой области (ROI), чтобы получить области стона. Задайте другую метку ROI, чтобы получить области трели.

dMoans = signalLabelDefinition('MoanRegions',...
   'LabelType','roi',...
   'LabelDataType','logical',...
   'Description','Regions where moans occur');

dTrills = signalLabelDefinition('TrillRegions',...
   'LabelType','roi',...
   'LabelDataType','logical',...
   'Description','Regions where trills occur');        

Наконец, задайте метку точки, чтобы получить peaks трели. Установите эту метку как подметку dTrills определение.

dTrillPeaks = signalLabelDefinition('TrillPeaks',...
   'LabelType','point',...
   'LabelDataType','numeric',...
   'Description','Trill peaks');

dTrills.Sublabels = dTrillPeaks;

Помеченный набор сигнала

Создайте labeledSignalSet с китом сигнализирует и определения метки. Добавьте значения метки, чтобы идентифицировать тип кита, стон и области трели и peaks трелей.

load labelwhalesignals
lbldefs = [dWhaleType dMoans dTrills];

lss = labeledSignalSet({whale1 whale2},lbldefs,'MemberNames',{'Whale1' 'Whale2'}, ...
   'SampleRate',Fs,'Description','Characterize wave song regions');     

Визуализируйте иерархию метки и пометьте свойства с помощью labelDefinitionsHierarchy и labelDefinitionsSummary.

labelDefinitionsHierarchy(lss)
ans = 
    'WhaleType
       Sublabels: []
     MoanRegions
       Sublabels: []
     TrillRegions
       Sublabels: TrillPeaks
     '

labelDefinitionsSummary(lss)
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"

Сигналы в загруженных данных соответствуют песням двух голубых китов. Установите 'WhaleType' значения для обоих сигналов.

setLabelValue(lss,1,'WhaleType','blue');
setLabelValue(lss,2,'WhaleType','blue');

Визуализируйте 'Labels' свойство. Таблица имеет недавно добавленный 'WhaleType' значения для обоих сигналов.

lss.Labels      
ans=2×3 table
              WhaleType    MoanRegions    TrillRegions
              _________    ___________    ____________

    Whale1      blue       {0x2 table}    {0x3 table} 
    Whale2      blue       {0x2 table}    {0x3 table} 

Визуализируйте метки области

Визуализируйте песни кита, чтобы идентифицировать области стона и трель.

subplot(2,1,1)
plot((0:length(whale1)-1)/Fs,whale1)
ylabel('Whale 1')

subplot(2,1,2)
plot((0:length(whale2)-1)/Fs,whale2)
ylabel('Whale 2')

Области стона поддержаны низкочастотные вопли.

  • whale1 имеет стоны, сосредоточенные приблизительно в 7 секунд, 12 секунд и 17 секунд.

  • whale2 имеет стоны, сосредоточенные приблизительно в 3 секунды, 7 секунд и 16 секунд.

Добавьте области стона в помеченный набор. Задайте пределы ROI в секундах и значениях метки.

moanRegionsWhale1 = [6.1 7.7; 11.4 13.1; 16.5 18.1];
mrsz1 = [size(moanRegionsWhale1,1) 1];
setLabelValue(lss,1,'MoanRegions',moanRegionsWhale1,true(mrsz1));

moanRegionsWhale2 = [2.5 3.5; 5.8 8; 15.4 16.7];
mrsz2 = [size(moanRegionsWhale2,1) 1];
setLabelValue(lss,2,'MoanRegions',moanRegionsWhale2,true(mrsz2));

Области трели имеют отличные пакеты звука, акцентированного тишиной.

  • whale1 сосредоточили трель приблизительно в 2 секунды.

  • whale2 сосредоточили трель приблизительно в 12 секунд.

Добавьте области трели в помеченный набор.

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));

Создайте signalMask объект для каждой песни кита и использования это, чтобы визуализировать и пометить различные области. Для лучшей визуализации измените значения метки от логического до категориального.

mr1 = getLabelValues(lss,1,'MoanRegions');
mr1.Value = categorical(repmat("moan",mrsz1));
tr1 = getLabelValues(lss,1,'TrillRegions');
tr1.Value = categorical(repmat("trill",trsz1));

msk1 = signalMask([mr1;tr1],'SampleRate',Fs);

subplot(2,1,1)
plotsigroi(msk1,whale1)
ylabel('Whale 1')
hold on

mr2 = getLabelValues(lss,2,'MoanRegions');
mr2.Value = categorical(repmat("moan",mrsz2));
tr2 = getLabelValues(lss,2,'TrillRegions');
tr2.Value = categorical(repmat("trill",trsz2));

msk2 = signalMask([mr2;tr2],'SampleRate',Fs);

subplot(2,1,2)
plotsigroi(msk2,whale2)
ylabel('Whale 2')
hold on

Визуализируйте метки точки

Пометьте три peaks для каждой области трели. Для меток точки вы задаете местоположения точки и значения метки. В этом примере местоположения точки находятся в секундах.

peakLocsWhale1 = [1.553 1.626 1.7];
peakValsWhale1 = [0.211 0.254 0.211];

setLabelValue(lss,1,["TrillRegions" "TrillPeaks"],...
   peakLocsWhale1,peakValsWhale1,'LabelRowIndex',1);

subplot(2,1,1)
plot(peakLocsWhale1,peakValsWhale1,'v')
hold off

peakLocsWhale2 = [11.214 11.288 11.437];
peakValsWhale2 = [0.119 0.14 0.15];

setLabelValue(lss,2,["TrillRegions" "TrillPeaks"],...
   peakLocsWhale2,peakValsWhale2,'LabelRowIndex',1);

subplot(2,1,2)
plot(peakLocsWhale2,peakValsWhale2,'v')
hold off

Исследуйте значения метки

Исследуйте значения метки с помощью getLabelValues.

getLabelValues(lss)
ans=2×3 table
              WhaleType    MoanRegions    TrillRegions
              _________    ___________    ____________

    Whale1      blue       {3x2 table}    {1x3 table} 
    Whale2      blue       {3x2 table}    {1x3 table} 

Получите области стона для первого члена помеченного набора.

getLabelValues(lss,1,'MoanRegions')
ans=3×2 table
     ROILimits      Value
    ____________    _____

     6.1     7.7    {[1]}
    11.4    13.1    {[1]}
    16.5    18.1    {[1]}

Используйте второй выходной аргумент, чтобы перечислить подметки метки.

[value,valueWithSublabel] = getLabelValues(lss,1,'TrillRegions')
value=1×2 table
    ROILimits     Value
    __________    _____

    1.4    3.1    {[1]}

valueWithSublabel=1×3 table
    ROILimits     Value     Sublabels 
                           TrillPeaks 
    __________    _____    ___________

    1.4    3.1    {[1]}    {3x2 table}

Чтобы получить значения в подметке, опишите имя метки как двухэлементный массив.

getLabelValues(lss,1,["TrillRegions" "TrillPeaks"])
ans=3×2 table
    Location      Value   
    ________    __________

     1.553      {[0.2110]}
     1.626      {[0.2540]}
       1.7      {[0.2110]}

Найдите значение третьего соответствия пика трели второму члену набора.

getLabelValues(lss,2,["TrillRegions" "TrillPeaks"], ...
    'LabelRowIndex',1,'SublabelRowIndex',3)
ans=1×2 table
    Location      Value   
    ________    __________

     11.437     {[0.1500]}

Смотрите также

Приложения

Объекты

Введенный в R2018b
Для просмотра документации необходимо авторизоваться на сайте