Импорт данных в Signal Labeler

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

  1. Импорт сигналов из рабочего пространства MATLAB - Импорт каждого сигнала в качестве представителя для маркировки их по отдельности или импорт маркированного набора сигналов.

  2. Импорт сигналов из файлов - импорт каждого файла в качестве представителя для маркировки всех сигналов, содержащихся в файле, вместе.

  3. Импорт 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);
    задает двухканальный сигнал, состоящий из синусоидов, встроенных в белый шум. Сигнал не содержит информацию о времени, если вы не задаете его. В Signal Labeler можно импортировать сигнал в выборках, или можно добавить информацию о времени при его импорте.

  • Пример: MATLAB Timetables

    tt1 = timetable(num,'SampleRate',100);
    tt2 = timetable(seconds((0:159)'/100),num);
    оба определяют, что шумная двухканальная синусоида дискретизирована со скоростью 100 Гц. Для получения дополнительной информации смотрите timetable документация.

  • Пример: labeledSignalSet Объекты

    lss = labeledSignalSet(num);
    задает, что шумная синусоида находится в выборках.

  • Пример: labeledSignalSet Объекты с информацией о времени

    lst1 = labeledSignalSet(num,'SampleRate',100);
    lst2 = labeledSignalSet(timetable(seconds((0:159)'/100),num));
    оба определяют, что шумная синусоида дискретизирована со скоростью 100 Гц.

  • Пример: Мультисигнальные представители

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

    mst = labeledSignalSet({{timetable(seconds(1:10)',randn(10,3))}, ...
        {timetable(seconds(1:7)',randn(7,2)), ...
        timetable(randn(30,1),'SampleRate',100)}});
    имеет два представителей. Первый представитель содержит три сигнала, дискретизированных с частотой дискретизации 1 Гц в течение 10 секунд. Второй представитель содержит два сигнала, дискретизированных с частотой дискретизации 1 Гц в течение 7 секунд, и один 30-дискретизированный сигнал, дискретизированный с частотой дискретизации 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. Значения времени могут храниться в цифре или duration вектор со значениями в реальном времени, выраженными в секундах. Значения должны быть уникальными и не могут быть NaN, но не должны быть равномерно разнесены. Временной массив должен иметь ту же длину, что и представители.

Во всех случаях приложение выводит частоту дискретизации из значений времени и отображает ее в Time столбце Labeled Signal Set Browser. Звездочка, предшествующая частоте дискретизации, указывает, что представители дискретизированы неоднородно.

Time Values Variable From FileИспользуйте эту опцию, когда значения времени сохраняются как переменная в импортируемом файле.

После импорта сигнала или набора сигналов в Signal Labeler выбранная временная спецификация остается фиксированной на протяжении сеанса маркировки.

Импорт сигналов из рабочего пространства MATLAB

Чтобы импортировать сигналы для Signal Labeler из Рабочего пространства MATLAB, на вкладке Labeler, нажмите Import и выберите From workspace в списке Members. В диалоговом окне выберите сигналы, которые вы хотите импортировать.

Import Members from Workspace dialog box

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

  • Если вы первоначально импортировали числовой массив и указали его в выборках, или если вы первоначально импортировали 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 и импортируйте оттуда.

Import Members from File dialog box

Каждый файл рассматривается как представитель маркированного набора сигналов. Все сигналы, содержащиеся в файле, принадлежат одному представителю и маркируются вместе. Можно также импортировать другие файлы с теми же переменными сигнала, что и представители того же маркированного набора сигналов.

  • Все представители должны иметь одно и то же расширение и те же переменные.

  • 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 для второго столбца и так далее.

См. также

Приложения

Функции

Похожие примеры

Подробнее о