modifySignals

Изменяйте сигналы в EDF или EDF + файле

    Описание

    пример

    edfw = modifySignals(edfw,signaldata) изменяет все сигналы, существующие в файле European Data Format (EDF) или EDF +, с новыми сигналами в signaldata.

    edfw = modifySignals(___,Name,Value) задает дополнительные опции, используя аргументы имя-значение. Для примера, 'PhysicalMin',-3,'PhysicalMax',6 определяет физическое минимальное значение сигнала следующим –3 и физическое максимальное значение как 6.

    Примеры

    свернуть все

    Загрузка EMGdata.mat в рабочую область. Файл содержит восемь каналов данных электромиографии (ЭМГ) [1], зарегистрированных из восьми мышц руки. Данные доступны в www.sce.carleton.ca/faculty/chan/index.php?page=matlab. Частота дискретизации составляет 1000 Гц. Постройте график первых четырех каналов в data.

    load EMGdata
    fs = 1000;
    t = 0:1/fs:(size(data,1)-1)/fs;
    plot(t,data(:,1:4)) 
    xlabel('Seconds')
    ylabel('mV')

    Figure contains an axes. The axes contains 4 objects of type line.

    Создайте файл EDF +, который содержит заголовок и данные о сигнале из каналов 1-4 в data. См. edfheader для получения дополнительной информации о создании структуры заголовка.

    sig = data(:,1:4);
    hdr = edfheader("EDF+");
    hdr.NumSignals = 4;
    hdr.NumDataRecords = 1;
    hdr.PhysicalMin = min(sig);
    hdr.PhysicalMax = max(sig);
    hdr.DigitalMin = repelem(-32768,4);
    hdr.DigitalMax = repelem(32767,4);
    
    edfw = edfwrite("EMG.edf",hdr,sig,"InputSampleType","physical");

    Измените сигналы в edfw с данными из каналов 5-8 в data. Использование edfread для чтения данных в EMG.edf и постройте график сигналов.

    modsig = data(:,5:8);
    edfw = modifySignals(edfw,modsig);
    
    x = edfread("EMG.edf");
    for i = 1:4
        y = x.(i){1};
        plot(t,y)
        xlabel('Seconds')
        ylabel('mV')
        hold on
    end

    Figure contains an axes. The axes contains 4 objects of type line.

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

    свернуть все

    Файл EDF или EDF +, заданный как edfwrite объект.

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

    Примечание

    Задайте signaldata как числовую матрицу, когда все входные сигналы имеют одинаковую частоту дискретизации. Если входные сигналы имеют различные скорости дискретизации или длины, задайте signaldata как массив ячеек из числовых векторов.

    Аргументы в виде пар имя-значение

    Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

    Пример: 'SelectedSignals',["F1" "B1"],'SelectedDataRecords',[1 2] инструктирует modifySignals для изменения первой и второй записей данных сигналов F1 и B1.

    Имена сигналов, заданные как строковый вектор или массив ячеек из векторов символов. modifySignals изменяет данные сигналов с именами, заданными SelectedSignals.

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

    Записи данных, заданные как числовой вектор. modifySignals изменяет все сигналы в записях данных, заданных индексами записей в SelectedDataRecords.

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

    Минимальное физическое значение сигнала, заданное как числовой вектор длины NumSignals. Физическое минимальное значение сигнала должно быть меньше соответствующего физического максимального значения сигнала. Задайте PhysicalMin только при изменении всего сигнала. Если не задано, функция использует существующее физическое минимальное значение соответствующего сигнала.

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

    Максимальное физическое значение сигнала, заданное как числовой вектор длины NumSignals. Физическое максимальное значение сигнала должно быть больше соответствующего физического минимального значения сигнала. Задайте PhysicalMax только при изменении всего сигнала. Если не задано, функция использует существующее физическое максимальное значение соответствующего сигнала.

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

    Цифровое минимальное значение сигнала, заданное как числовой вектор длины NumSignals. Цифровое минимальное значение сигнала должно быть меньше соответствующего цифрового максимального значения сигнала. DigitalMin значения основаны на аналого-цифровом преобразователе, используемом для генерации signaldata. Если не указано, цифровое минимальное значение сигнала по умолчанию равняется -32768.

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

    Цифровое максимальное значение сигнала, заданное как числовой вектор длины NumSignals. Цифровое максимальное значение сигнала должно быть больше соответствующего цифрового минимального значения сигнала. DigitalMax значения основаны на аналого-цифровом преобразователе, используемом для генерации signaldata. Если не указано, цифровое максимальное значение сигнала по умолчанию равняется 32767.

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

    Выходные аргументы

    свернуть все

    EDF или EDF + файл, возвращенный как edfwrite объект.

    Ссылки

    [1] Chan, Adrian D.C., and Geoffrey C. Green. 2007. Myoelectric Control Development Toolbox (неопр.) (недоступная ссылка). Документ, представленный на 30-й конференции Канадского общества медицинской и биологической инженерии, Торонто, Канада, 2007 год.

    [2] Кемп, Боб, Альпо Вярри, Агостиньо С. Роза, Ким Д. Нильсен и Джон Гейд. «Простой формат обмена оцифрованными полиграфическими записями». Электроэнцефалография и клиническая нейрофизиология 82, № 5 (май 1992): 391-93. https://doi.org/10.1016/0013-4694 (92) 90009-7.

    [3] Кемп, Боб и Иисус Оливан. European Data Format 'plus' (EDF +), стандартный формат EDF для обмена физиологическими данными. Клиническая нейрофизиология 114, № 9 (2003): 1755-1761. https://doi.org/10.1016/S1388-2457 (03) 00123-8.

    См. также

    Приложения

    Объекты

    Функции

    Внешние веб-сайты

    Введенный в R2021a