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Добавьте члены в помеченный набор сигнала
editLabelDefinitionОтредактируйте свойства определения метки
getLabelDefinitionsПолучите определения метки в помеченном наборе сигнала
getLabeledSignalПолучите помеченные сигналы от помеченного набора сигнала
getLabelNamesПолучите имена метки в помеченном наборе сигнала
getLabelValuesПолучите значения метки от помеченного набора сигнала
getMemberNamesПолучите имена элемента в помеченном наборе сигнала
getSignalПолучите сигналы от помеченного набора сигнала
headПолучите верхние строки таблицы меток
labelDefinitionsHierarchyПолучите иерархический список метки и подпометьте имена
labelDefinitionsSummaryПолучите сводную таблицу определений метки сигнала
mergeОбъедините два или больше помеченных набора сигнала
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