Импортируйте представители в Signal Labeler одним из трех способов, чтобы создать маркированные наборы сигналов:
Импорт сигналов из рабочего пространства MATLAB - Импорт каждого сигнала в качестве представителя для маркировки их по отдельности или импорт маркированного набора сигналов.
Импорт сигналов из файлов - импорт каждого файла в качестве представителя для маркировки всех сигналов, содержащихся в файле, вместе.
Импорт Audio Файла Данных в Signal Labeler - Импорт аудио файлов и папок (требуется лицензия Audio Toolbox™).
Приложение Signal Labeler работает с реальными или комплексными векторами, матрицами, MATLAB® timetables, labeledSignalSet
объекты, и signalDatastore
объекты. Приложение также поддерживает MAT-файлы и файлы CSV.
Примечание
Signal Labeler не поддерживает сигналы с Inf
или NaN
значения, многомерные массивы или разреженные матрицы.
Пример: Числовые массивы
num = cos(pi./[4;2]*(0:159))'+randn(160,2);
Пример: MATLAB Timetables
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 | Используйте эту опцию, когда вы знаете скорость, с которой был дискретизирован сигнал. Частота дискретизации может быть выражена в Гц, кГц, МГц или ГГц. Чтобы задать частоту дискретизации, можно использовать числовое значение, имя переменного скаляра в Рабочей области 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
документация.
Для успешного импорта маркированные наборы сигналов должны соответствовать этим дополнительным правилам:
Если выбор включает в себя два или более маркированных набора сигналов, маркированные наборы сигналов должны иметь уникальные определения меток сигналов. Если два или несколько наборов имеют общее определение метки, определение должно иметь одинаковый тип и тип данных для всех наборов. Для получения дополнительной информации см. Раздел «Создание или импорт определений меток сигналов».
Если выбор включает в себя два или более маркированных набора сигналов, маркированные наборы сигналов должны иметь уникальные имена представителей. Вы не можете изменять имена представителей из Signal Labeler. Чтобы изменить имя представителя маркированного набора сигналов, используйте setMemberNames
в командной строке.
Если вы выбираете два или более labeledSignalSet
объекты для маркировки, Signal Labeler объединяет их и создает один маркированный набор сигналов, содержащий все представителей и значения меток входных наборов. Это действие эквивалентно использованию merge
в командной строке.
Пометьте значения в labeledSignalSet
объекты должны быть скалярами. Signal Labeler игнорирует те метки, которые не имеют скалярных значений.
Чтобы импортировать сигналы для Signal Labeler из файлов, на вкладке Labeler, нажмите Import и выберите From files
в списке Members. В диалоговом окне выберите файлы, содержащие сигналы, которые вы хотите импортировать.
Примечание
Signal Labeler поддерживает MAT-файлы и файлы CSV. Все значения в файле CSV, кроме заголовков, должны быть числовыми.
С помощью лицензии Audio Toolbox можно импортировать сигналы из файлов с совместимыми расширениями аудиофайлов в Signal Labeler с помощью From Audio Files
или From Audio Folder
.
Импорт 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
для второго столбца и так далее.