edfheader

Создайте структуру заголовка для EDF или файла EDF +

    Синтаксис

    Описание

    пример

    hdr = edfheader(filetype) создает структуру заголовка, которая может использоваться для создания файлов European Data Format (EDF) или EDF + сedfwrite.

    Примеры

    свернуть все

    Создайте запись заголовка для файла EDF + и укажите информацию записи. Отображение свойств заголовка.

    hdr = edfheader("EDF+");
    hdr.Patient = "P42Dory F";
    hdr.Recording = "AJMS Device2";
    hdr.StartDate = "27.12.1993";
    hdr.StartTime = "04.22.24";
    hdr.Reserved = "EDF+C";
    hdr.NumDataRecords = 1;
    hdr.DataRecordDuration = seconds(4.22)
    hdr = struct with fields:
                   Patient: "P42Dory F"
                 Recording: "AJMS Device2"
                 StartDate: "27.12.1993"
                 StartTime: "04.22.24"
                  Reserved: "EDF+C"
            NumDataRecords: 1
        DataRecordDuration: 4.22 sec
                NumSignals: []
              SignalLabels: [0x0 string]
           TransducerTypes: [0x0 string]
        PhysicalDimensions: [0x0 string]
               PhysicalMin: []
               PhysicalMax: []
                DigitalMin: []
                DigitalMax: []
                 Prefilter: [0x0 string]
            SignalReserved: [0x0 string]
    
    

    Создайте запись заголовка для нового файла EDF.

    hdr = edfheader("EDF");

    Сгенерируйте два случайных 1000-выборочных сигнала, содержащих целые числа в области значений [-24000, 32767], и добавьте случайный шум ко второму сигналу. Постройте график обоих сигналов.

    sigdata = randi([-24000 32767],1000,2);
    sigdata(:,2) = sigdata(:,2) + 0.7*randn(1000,1);
    plot(sigdata)

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

    Задайте свойства заголовка на основе двух созданных вами цифровых сигналов. Цифровые минимальное и максимальное значения соответствуют крайним значениям, которые могут возникнуть, поэтому задайте эти значения следующим –32768 и 32767.

    hdr.NumSignals = 2;
    hdr.NumDataRecords = 1;
    hdr.PhysicalMin = [-3200 -3200];
    hdr.PhysicalMax = [3200 3200];
    hdr.DigitalMin = [-32768 -32768];
    hdr.DigitalMax = [32767 32767];

    Запишите новый файл EDF со структурой заголовка и случайными данными. Просмотрите свойства файла.

    edfw = edfwrite("rand.edf",hdr,sigdata);
    edfinfo("rand.edf")
    ans = 
      edfinfo with properties:
    
                  Filename: "rand.edf"
               FileModDate: "21-Apr-2021 04:48:28"
                  FileSize: 4768
                   Version: "0"
                   Patient: "1234567 F 21-Apr-2021 Patient_1"
                 Recording: "Startdate 21-Apr-2021 MW_1234567 MW_Inv_01 MW_Eq_01"
                 StartDate: "21.04.21"
                 StartTime: "04.48.28"
               HeaderBytes: 768
                  Reserved: ""
            NumDataRecords: 1
        DataRecordDuration: 1 sec
                NumSignals: 2
              SignalLabels: [2x1 string]
           TransducerTypes: [2x1 string]
        PhysicalDimensions: [2x1 string]
               PhysicalMin: [2x1 double]
               PhysicalMax: [2x1 double]
                DigitalMin: [2x1 double]
                DigitalMax: [2x1 double]
                 Prefilter: [2x1 string]
                NumSamples: [2x1 double]
            SignalReserved: [2x1 string]
               Annotations: [0x2 timetable]
    
    

    Укажите новую идентификационную запись пациента, измените время начала записи на 21:12:00, и задайте метку для каждого сигнала. Отобразите структуру заголовка, чтобы увидеть измененные свойства.

    hdr.Patient = "20210410 F 27-JUL-2017";
    hdr.SignalLabels = ["sig1" "sig2"];
    hdr.StartTime = "21.12.00"
    hdr = struct with fields:
                   Patient: "20210410 F 27-JUL-2017"
                 Recording: "Startdate 21-Apr-2021 MW_1234567 MW_Inv_01 MW_Eq_01"
                 StartDate: "21.04.21"
                 StartTime: "21.12.00"
                  Reserved: ""
            NumDataRecords: 1
        DataRecordDuration: 1 sec
                NumSignals: 2
              SignalLabels: ["sig1"    "sig2"]
           TransducerTypes: [0x0 string]
        PhysicalDimensions: [0x0 string]
               PhysicalMin: [-3200 -3200]
               PhysicalMax: [3200 3200]
                DigitalMin: [-32768 -32768]
                DigitalMax: [32767 32767]
                 Prefilter: [0x0 string]
            SignalReserved: [0x0 string]
    
    

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

    свернуть все

    Тип файла, заданный как "EDF" или "EDF+".

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

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

    свернуть все

    Запись заголовка, возвращенная как структура с этими полями:

    ОбластьОписание

    Patient

    Детали идентификации пациента, возвращенные как строковый скаляр. Детали идентификации пациента могут включать идентификатор пациентов, пол или пол, дату рождения в 'dd-MMM-yyyy' формат и имя.

    Recording

    Запись идентификационных данных, возвращенная как строковый скаляр. Идентификационные данные записи могут включать его дату и время начала, идентификатор техника, который сделал запись, и идентификатор оборудования, которое сделало запись.

    StartDate

    Дата начала записи, возвращенная как строковый скаляр в 'dd.MM.yy' формат.

    StartTime

    Запись времени начала, возвращенная как строковый скаляр в 'HH.mm.ss' формат.

    Reserved

    Информация о прерывании EDF +, возвращенная как "EDF+C" или "EDF+D" для совместимых с EDF + файлов.

    • "EDF+C" - Запись непрерывна. Прерывания отсутствуют, и все записи данных являются смежными, так что время запуска каждой записи данных совпадает со временем запуска предыдущей записи плюс ее длительность.

    • "EDF+D" - Запись прерывается с прерываниями между последовательными записями данных.

    Для файлов, которые не совместимы с EDF +, это свойство является пустой строкой ("").

    NumDataRecords

    Количество записей данных в файле, возвращаемое как целочисленный скаляр.

    Примечание

    Если filename не совместим с EDF, NumDataRecords может быть задано значение -1 когда количество записей данных неизвестно. Если filename соответствует ли EDF, NumDataRecords должно быть задано положительное целое число. Если filename имеет Reserved установите в непустую строку и NumDataRecords установлено на -1, edfinfo выдает ошибку.

    DataRecordDuration

    Продолжительность каждой записи данных, возвращенная как скаляр длительности.

    NumSignals

    Количество сигналов в файле, возвращаемое как целочисленный скаляр.

    SignalLabels

    Имена сигналов, возвращенные как строковый вектор длины NumSignals.

    Примечание

    Если SignalLabels не задан, edfwrite использует метку по умолчанию "Signal_i" для i-го сигнала.

    TransducerTypes

    Детали преобразователя, возвращенные как строковый вектор длины NumSignals. Каждый элемент TransducerTypes содержит подробную информацию о преобразователе, используемом для получения соответствующего сигнала в SignalLabels.

    PhysicalDimensions

    Модули данных сигнала, возвращенные как строковый вектор длины NumSignals. Каждый элемент PhysicalDimensions содержит модули измерения, используемые для выражения значений соответствующего сигнала в SignalLabels.

    PhysicalMin

    Минимальное физическое значение сигнала, возвращаемое как числовой вектор длины NumSignals. Каждый элемент PhysicalMin содержит минимальное физическое значение соответствующего сигнала в SignalLabels.

    PhysicalMax

    Сигнал максимального физического значения, возвращенный как числовой вектор длины NumSignals. Каждый элемент PhysicalMax содержит максимальное физическое значение соответствующего сигнала в SignalLabels.

    DigitalMin

    Минимальное цифровое значение сигнала, возвращаемое как числовой вектор длины NumSignals. Каждый элемент DigitalMin содержит минимальное цифровое значение соответствующего сигнала в SignalLabels.

    DigitalMax

    Сигнал максимального цифрового значения, возвращаемый как числовой вектор длины NumSignals. Каждый элемент DigitalMax содержит максимальное цифровое значение соответствующего сигнала в SignalLabels.

    Prefilter

    Модули данных сигнала, возвращенные как строковый вектор длины NumSignals. Каждый элемент Prefilter содержит подробную информацию о фильтрах, если таковые имеются, используемых для предварительной обработки соответствующего сигнала в SignalLabels.

    SignalReserved

    Дополнительная информация о сигнале, возвращенная как строковый вектор длины NumSignals. Каждый элемент SignalReserved содержит дополнительную информацию, если таковая имеется, о соответствующем сигнале в SignalLabels.

    Ссылки

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

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

    См. также

    Приложения

    Объекты

    Функции

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

    Введенный в R2021a