labeledSignalSet

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

Описание

Используйте labeledSignalSet сохранить помеченные сигналы наряду с определениями метки. Создайте определения метки сигнала с помощью signalLabelDefinition.

Создание

Описание

lss = labeledSignalSet создает пустой помеченный набор сигнала. Используйте addMembers добавить сигналы в набор. Используйте addLabelDefinitions добавить определения метки набору.

lss = labeledSignalSet(src) создает помеченный набор сигнала для источника входных данных src. Используйте addLabelDefinitions добавить определения метки набору.

lss = labeledSignalSet(src,lbldefs) создает помеченный набор сигнала для источника входных данных src использование определений метки сигнала lbldefs. Используйте signalLabelDefinition чтобы создать сигнал помечают определения.

lss = labeledSignalSet(src,lbldefs,'MemberNames',mnames) создает помеченный набор сигнала для источника входных данных src и задает имена для членов набора. Используйте setMemberNames изменить имена элемента. lbldefs является дополнительным.

пример

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

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

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

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

Пометьте определения, заданные как вектор signalLabelDefinition объекты.

Имена элемента, заданные как вектор символов, скаляр строки, массив ячеек из символьных векторов или массив строк.

Пример: labeledSignalSet({randn(100,1) randn(10,1)},'MemberNames',{'llama' 'alpaca'}) задает набор случайных сигналов с двумя участниками, 'llama' и 'alpaca'.

Свойства

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

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

Пример: 'Description','Sleep test patients by sex and age'

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

Это свойство доступно только для чтения.

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

  • Установите SampleRate к положительному числовому скаляру, чтобы задать ту же частоту дискретизации для всех сигналов в помеченном наборе.

  • Установите SampleRate к вектору, чтобы указать, что у каждого члена помеченного набора есть сигналы, произведенные на том же уровне, но частоты дискретизации отличаются от участника участнику. Вектор должен иметь много элементов, равных числу членов набора. Если у члена набора есть сигналы с различными частотами дискретизации, то задайте частоты дискретизации с помощью расписаний.

Пример: 'SampleRate',[1e2 1e3] указывает, что сигналы в первом члене набора производятся на уровне 100 Гц, и сигналы во втором участнике производятся на уровне 1 кГц.

Это свойство доступно только для чтения.

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

  • Установите SampleTime к числовому или duration скаляр, чтобы задать тот же шаг расчета для всех сигналов в помеченном наборе.

  • Установите SampleTime к числовому или duration вектор, чтобы указать, что у каждого члена помеченного набора есть сигналы с тем же временным интервалом между выборками, но интервалы отличаются от участника участнику. Вектор должен иметь много элементов, равных числу членов набора. Если у члена набора есть сигналы с различными шагами расчета, то задайте шаги расчета с помощью расписаний.

Пример: 'SampleTime',seconds([1e-2 1e-3]) указывает, что сигналы в первом члене набора имеют 0,01 секунды между выборками, и сигналы во втором участнике имеют 1 миллисекунду между выборками.

Это свойство доступно только для чтения.

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

  • Установите TimeValues к числовому или duration вектор, чтобы задать те же временные стоимости для всех сигналов в помеченном наборе. Вектор должен иметь ту же длину как все сигналы в наборе.

  • Установите TimeValues к числовому или duration матричный или массив ячеек, чтобы указать, что у каждого члена помеченного набора есть сигналы с теми же временными стоимостями, но временные стоимости отличаются от участника участнику.

    • Если TimeValues матрица, затем она должна иметь много столбцов, равных числу членов набора. Все сигналы в наборе должны иметь длину, равную количеству строк матрицы.

    • Если TimeValues массив ячеек, затем он должен содержать много векторов, равных числу членов набора. Все сигналы в участнике должны иметь длину, равную числу элементов соответствующего вектора в массиве ячеек.

Если у члена набора есть сигналы с различными временными стоимостями, то задайте временные стоимости с помощью расписаний.

Пример: 'TimeValues',[1:1000;0:1/500:2-1/500]' указывает, что сигналы в первом члене набора производятся 1 Гц в течение 1 000 секунд. Сигналы во втором участнике производятся на уровне 500 Гц в течение 2 секунд.

Пример: 'TimeValues',seconds([1:1000;0:1/500:2-1/500]') указывает, что сигналы в первом члене набора производятся 1 Гц в течение 1 000 секунд. Сигналы во втором участнике производятся на уровне 500 Гц в течение 2 секунд.

Пример: 'TimeValues',{1:1000,0:1/500:2-1/500} указывает, что сигналы в первом члене набора производятся 1 Гц в течение 1 000 секунд. Сигналы во втором участнике производятся на уровне 500 Гц в течение 2 секунд.

Пример: 'TimeValues',{seconds(1:1000),seconds(0:1/500:2-1/500)} указывает, что сигналы в первом члене набора производятся 1 Гц в течение 1 000 секунд. Сигналы во втором участнике производятся на уровне 500 Гц в течение 2 секунд.

Это свойство доступно только для чтения.

Число членов в наборе, заданном как положительное целое число.

Это свойство доступно только для чтения.

Таблица меток, заданная как таблица MATLAB®. Каждая переменная Labels соответствует метке, заданной для набора. Каждая строка Labels соответствует члену источника данных. Имена строки Labels имена элемента.

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

Информация времени источника, заданного как одно из следующего:

  • 'None' — У сигналов в источнике нет времени информация.

  • 'SampleRate' — Сигналы в источнике производятся на заданном уровне.

  • 'SampleTime' — Сигналы в источнике имеют интервал требуемого времени между выборками.

  • 'TimeValues — Сигналы в источнике имеют временную стоимость, соответствующую каждой выборке.

  • 'Inherent' — Сигналы в источнике содержат свойственную информацию времени. Расписания MATLAB являются примером таких сигналов.

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

Это свойство доступно только для чтения.

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

  • Если Source числовая матрица, затем помеченный набор сигнала имеет одного участника, который содержит много сигналов, равных количеству столбцов матрицы.

    Пример: labeledSignalSet(randn(10,3)) имеет одного участника, который содержит три сигнала с 10 выборками.

  • Если Source массив ячеек матриц, затем помеченный набор сигнала имеет много участников, равных количеству матриц в массиве ячеек. Каждый участник содержит много сигналов, равных количеству столбцов соответствующей матрицы.

    Пример: labeledSignalSet({randn(10,3),randn(17,9)}) имеет двух участников. Первый участник содержит три сигнала с 10 выборками. Второй участник содержит девять сигналов с 17 выборками.

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

    Пример: labeledSignalSet({{randn(10,1)},{randn(17,1),randn(27,1)}}) имеет двух участников. Первый участник содержит один сигнал с 10 выборками. Второй участник содержит сигнал с 17 выборками и сигнал с 27 выборками.

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

    Пример: labeledSignalSet(timetable(seconds(1:10)',randn(10,3))) имеет одного участника, который содержит три сигнала, произведенные на уровне 1 Гц в течение 10 секунд.

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

    Пример: labeledSignalSet({timetable(seconds(1:10)',randn(10,3)),timetable(seconds(1:5)',randn(5,13))}) имеет двух участников. Первый участник содержит три сигнала, произведенные на уровне 1 Гц в течение 10 секунд. Второй участник содержит 13 сигналов, произведенных на уровне 1 Гц в течение 5 секунд.

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

    Пример: labeledSignalSet({{timetable(seconds(1:10)',randn(10,3)),timetable(seconds(1:7)',randn(7,2))},{timetable(seconds(1:3)',randn(3,1))}}) имеет двух участников. Первый участник содержит три сигнала, произведенные на уровне 1 Гц в течение 10 секунд и двух сигналов, произведенных на уровне 1 Гц в течение 7 секунд. Второй участник содержит один сигнал, произведенный на уровне 1 Гц в течение 3 секунд.

  • Если источник входных данных, src, аудио datastore, затем помеченный набор сигнала имеет много участников, равных количеству файлов, на которые указывает datastore. Source свойство содержит массив ячеек из символьных векторов с именами файлов. Каждый участник содержит все сигналы, возвращенные чтением соответствующего файла datastore.

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

addLabelDefinitionsДобавьте определения метки помеченному набору сигнала
addMembersДобавьте участников в помеченный набор сигнала
concatenateКонкатенация двух или больше помеченных наборов сигнала
editLabelDefinitionОтредактируйте свойства определения метки
getLabelDefinitionsПолучите определения метки в помеченном наборе сигнала
getLabeledSignalПолучите помеченные сигналы от помеченного набора сигнала
getLabelNamesПолучите имена метки в помеченном наборе сигнала
getLabelValuesПолучите значения метки от помеченного набора сигнала
getMemberNamesПолучите имена элемента в помеченном наборе сигнала
getSignalПолучите сигналы от помеченного набора сигнала
headПолучите верхние строки таблицы меток
labelDefinitionsHierarchyПолучите иерархический список метки и подпометьте имена
labelDefinitionsSummaryПолучите сводную таблицу определений метки сигнала
removeLabelDefinitionУдалите определение метки из помеченного набора сигнала
removeMembersУдалите участников из помеченного набора сигнала
removePointValueУдалите строку из метки точки
removeRegionValueУдалите строку из метки ROI
resetLabelValuesСбросьте метки к значениям по умолчанию
setLabelValueУстановите значение метки в помеченном наборе сигнала
setMemberNamesЭлемент множества называет в помеченном наборе сигнала
subsetПолучите новый помеченный набор сигнала с подмножеством участников

Примеры

свернуть все

Рассмотрите набор аудиозаписей кита. Записанные звуки кита состоят из трелей и стонов. Вы хотите посмотреть на каждый сигнал и пометить его, чтобы идентифицировать тип кита, области трели и области стона. Для каждой области трели вы также хотите пометить 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,...
   '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
                 _________    ___________    ____________

    Member{1}      blue       {0x2 table}    {0x3 table} 
    Member{2}      blue       {0x2 table}    {0x3 table} 

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

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

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

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

Добавьте стон и области трели к помеченному набору. Для меток ROI задайте пределы ROI в секундах и значениях метки. Пометьте различные области в графиках с помощью вспомогательной функции.

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

trillRegionWhale1 = [1.4 3.1];
setLabelValue(lss,1,'TrillRegions',trillRegionWhale1,true);

subplot(2,1,1)
labelIntervals([moanRegionsWhale1;trillRegionWhale1])

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

trillRegionWhale2 = [11.1 13];
setLabelValue(lss,2,'TrillRegions',trillRegionWhale2,true);

subplot(2,1,2)
labelIntervals([moanRegionsWhale2;trillRegionWhale2])

Пометьте три 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
                 _________    ___________    ____________

    Member{1}      blue       {3x2 table}    {1x3 table} 
    Member{2}      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]}

function labelIntervals(moansTrills)
% Auxiliary function to label moan and trill regions in plots
    [X,Y] = meshgrid(moansTrills,ylim);
    plot(X,Y,'k:')
    topts = {'HorizontalAlignment','center','FontWeight','bold', ...
        'FontSize',12,'Color',[139 69 19]/255};
    text((X(1,1:4)+X(1,5:end))/2,Y(2,5:end)-0.1, ...
        ["moan" "moan" "moan" "trill"],topts{:})
end

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

|

Введенный в R2018b