Приложение Signal Labeler работает с векторами с действительным знаком, матрицами, расписаниями MATLAB® и labeledSignalSet
объекты. Приложение также поддерживает MAT-файлы и файлы CSV.
Примечание
Signal Labeler не поддерживает сигналы с комплексным знаком, сигналы с Inf
или NaN
значения, многомерные массивы или разреженные матрицы.
Пример: Числовые массивы
num = cos(pi./[4;2]*(0:159))'+randn(160,2);
Пример: расписания MATLAB
tt1 = timetable(num,'SampleRate',100);
tt2 = timetable(seconds((0:159)'/100),num);
timetable
документация.Пример: labeledSignalSet
Объекты
lss = labeledSignalSet(num);
Пример: labeledSignalSet
Объекты с информацией времени
lst1 = labeledSignalSet(num,'SampleRate',100);
lst2 = labeledSignalSet(timetable(seconds((0:159)'/100),num));
Пример: члены мультисигнала
msn = labeledSignalSet({randn(10,3),randn(17,9)});
mst = labeledSignalSet({{timetable(seconds(1:10)',randn(10,3))}, ... {timetable(seconds(1:7)',randn(7,2)), ... timetable(randn(30,1),'SampleRate',100)}});
Пример: signalDatastore
Объект, указывающий на файлы
Задайте путь к набору демонстрационных звуковых сигналов, включенных как MAT-файлы с MATLAB®. Каждый файл содержит переменную сигнала и частоту дискретизации. Перечислите имена файлов.
folder = fullfile(matlabroot,"toolbox","matlab","audiovideo"); lst = dir(append(folder,"/*.mat")); nms = {lst(:).name}'
nms = 7x1 cell
{'chirp.mat' }
{'gong.mat' }
{'handel.mat' }
{'laughter.mat'}
{'mtlb.mat' }
{'splat.mat' }
{'train.mat' }
Создайте datastore сигнала, который указывает на заданную папку. Определите имя переменной частоты дискретизации к Fs
, который характерен для всех файлов. Сгенерируйте подмножество datastore, который исключает файл mtlb.mat
, который отличается от других файлов, в которых переменная сигнала не называется y
.
sds = signalDatastore(folder,"SampleRateVariableName","Fs"); sdss = subset(sds,~strcmp(nms,"mtlb.mat"));
Используйте datastore подмножества в качестве источника для labeledSignalSet
объект.
lss = labeledSignalSet(sdss)
lss = labeledSignalSet with properties: Source: [1x1 signalDatastore] NumMembers: 6 TimeInformation: "inherent" Labels: [6x0 table] Description: "" Use labelDefinitionsHierarchy to see a list of labels and sublabels. Use setLabelValue to add data to the set.
Сигналы, которые вы импортируете в Signal Labeler, могут быть помечены в выборках или вовремя. Эта спецификация остается фиксированной, чтобы гарантировать сопоставимую маркировку. Вы не можете смешать сигналы в выборках и сигналы с информацией времени на том же сеансе.
При указывании информации времени для набора сигналов, которые не имеют его, выберите опцию спецификации времени в диалоговом окне импорта.
Опция спецификации времени | Описание |
---|---|
Samples | Эта опция позволяет вам исследовать и пометить сигналы без потребности задать частоту дискретизации или шаг расчета. Это эквивалентно графическому выводу сигнала в MATLAB без информации об оси X. |
Sample Rate | Используйте эту опцию, когда вы знаете уровень, на котором был произведен сигнал. Частота дискретизации может быть описана в Гц, kHz, МГц или GHz. Чтобы задать частоту дискретизации, можно использовать числовое значение, имя скалярной переменной в рабочем пространстве MATLAB или любое допустимое выражение MATLAB. Установите частоту дискретизации так, чтобы члены были построены в модулях времени. |
Sample Rate Variable From File | Используйте эту опцию, когда частота дискретизации будет сохранена как переменная в импортируемом файле. |
Sample Time | Используйте эту опцию, когда вы будете знать временной интервал между выборками. Шаг расчета может быть описан в секундах, годах, днях, часах, минутах, миллисекундах, микросекунды или наносекунды. Чтобы задать шаг расчета, можно использовать числовое значение, имя скалярной переменной в рабочем пространстве MATLAB или любое допустимое выражение MATLAB. Установите шаг расчета так, чтобы члены были построены в модулях времени. |
Sample Time Variable From File | Используйте эту опцию, когда шаг расчета будет сохранен как переменная в импортируемом файле. |
Time Values | Используйте эту опцию, когда вы будете знать временную стоимость, соответствующую каждой выборке. Задайте временные стоимости с помощью допустимого выражения MATLAB или имени переменной в рабочем пространстве MATLAB. Временные стоимости могут храниться в числовом или Во всех случаях приложение выводит частоту дискретизации из временных стоимостей и отображает ее в столбце Time Labeled Signal Set Browser. Звездочка, предшествующая частоте дискретизации, указывает, что члены неоднородно производятся. |
Time Values Variable From File | Используйте эту опцию, когда временные стоимости будут сохранены как переменная в импортируемом файле. |
Однажды сигнал или набор сигналов был импортирован в Signal Labeler, выбранная спецификация времени остается фиксированной в течение сеанса маркировки.
Чтобы импортировать сигналы к Signal Labeler от рабочего пространства MATLAB, на вкладке Labeler, нажимают Import ▼ и выбирают From workspace
в списке Members. В диалоговом окне выберите сигналы, которые вы хотите импортировать.
Если вы первоначально импортировали числовой массив и задали его в выборках, или если вы первоначально импортировали labeledSignalSet
объект в выборках, можно впоследствии выбрать только сигналы в выборках. Если вы выбираете числовой массив, Signal Labeler импортирует его и обрабатывает его в выборках.
Если вы первоначально импортировали числовой массив и указали его информацию времени, или если вы первоначально импортировали расписание MATLAB или labeledSignalSet
объект с информацией времени, можно впоследствии выбрать только сигналы с информацией времени. Если вы выбираете числовой массив, необходимо установить его информацию времени при импорте его.
Примечание
Вы не можете изменить информацию времени labeledSignalSet
объект из Signal Labeler. Если у помеченного набора сигнала нет времени информация, приложение обрабатывает свои члены, как являющиеся в выборках. Если помеченный набор сигнала имеет информацию времени, приложение включает эту информацию, когда это импортирует сигналы. Для получения дополнительной информации смотрите labeledSignalSet
документация.
Чтобы быть импортированным успешно, пометил наборы сигнала, должен соблюсти эти дополнительные правила:
Если выбор включает два или больше помеченных набора сигнала, помеченные наборы сигнала должны иметь уникальные определения метки сигнала. Если два или больше набора совместно используют определение метки, определение должно иметь тот же тип и тип данных для всех наборов. Для получения дополнительной информации смотрите, Создают, или Сигнал Импорта Маркируют Definitions.
Если выбор включает два или больше помеченных набора сигнала, помеченные наборы сигнала должны иметь уникальные имена элемента. Вы не можете изменить имена элемента из Signal Labeler. Чтобы изменить название члена помеченного набора сигнала, использовать setMemberNames
в командной строке.
Если вы выбираете два или больше labeledSignalSet
объекты для маркировки, Signal Labeler объединяет их и создает один помеченный набор сигнала, содержащий все члены и значения метки входных наборов. Это действие эквивалентно использованию merge
в командной строке.
Чтобы импортировать сигналы к Signal Labeler из файлов, на вкладке Labeler, нажимают Import ▼ и выбирают From files
в списке Members. В диалоговом окне просмотрите, чтобы выбрать сигналы, которые вы хотите импортировать.
Примечание
Signal Labeler поддерживает MAT-файлы и файлы CSV только. Все значения в файле CSV кроме заголовков должны быть числовыми.
Импорт labeledSignalSet
объекты из файлов не поддерживаются. Импортировать labeledSignalSet
объект, загрузите его в рабочее пространство MATLAB и импортируйте его оттуда.
У всех членов, чтобы импортировать должны быть то же расширение и те же переменные.
Signal Labeler не поддерживает работу одновременно с данными в оперативной памяти и данными из файлов.
Если вы первоначально импортировали члены в оперативной памяти из рабочего пространства MATLAB, From files
опция отключена в меню Import вкладки Labeler.
Если вы первоначально импортировали данные из файлов, единственными переменными рабочей области, которые можно затем импортировать из рабочего пространства MATLAB, является labeledSignalSet
объекты, источниками входных данных которых является signalDatastore
объекты, указывающие на файлы. Для примера смотрите Поддерживаемые Типы Сигнала.
По умолчанию Signal Labeler читает первую переменную сигнала каждого файла. Определить имя первой переменной в файле, signalDatastore
выполняет эти шаги:
Для MAT-файлов:
s = load(fileName); varNames = fieldnames(s); firstVar = s.(varNames{1});
Для файлов CSV:
opts = detectImportOptions(fileName,'PreserveVariableNames',true);
varNames = opts.VariableNames;
firstVar = string(varNames{1});
Чтобы задать переменные сигнала, которые вы хотите считать, нажмите Specify и введите список, разделенный запятыми имен переменной сигнала.
Совет
Если файлу CSV не задали имена переменных в линии заголовка, то переменные называются Var1
для первого столбца, Var2
для второго столбца, и так далее.