主要内容

edfwrite

创建或修改EDF或EDF+文件

    描述

    创建一个edfwrite对象来写入或修改欧洲数据格式(EDF)或EDF+文件。

    创建

    描述

    edfw= edfwrite (文件名创建一个edfwrite指定的现有EDF或EDF+文件的文件名

    edfw= edfwrite (文件名hdrsigdata创建一个edfwrite对象和带有信号数据的新EDF或EDF+文件,sigdata.文件属性在头文件结构中指定,hdr

    edfw= edfwrite (文件名hdrannotationslist创建一个edfwrite对象和带有注释的新EDF或EDF+文件,annotationslist

    edfw= edfwrite (文件名hdrsigdataannotationslist创建一个edfwrite对象和带有信号数据和注释的新EDF或EDF+文件。

    例子

    edfw= edfwrite (___名称,值属性使用名称-值参数。您可以指定DataRecordTimesAnnotationsEncoding,InputSampleType

    输入参数

    全部展开

    EDF或EDF+文件的名称,指定为字符向量或字符串标量。

    根据文件的位置,文件名可以采取其中一种形式。

    位置

    形式

    当前文件夹或MATLAB中的文件夹®路径

    中指定文件的名称文件名

    例子:“data.edf”

    文件夹中的文件

    如果文件不在当前文件夹或MATLAB路径上的文件夹中,则指定完整或相对路径名。

    例子:“C: \ myFolder \ data.edf”

    例子:“myDir \ myFile.ext”

    请注意

    edfwrite不支持EyeLin金宝appk®法国电力公司(EDF)文件。

    数据类型:字符|字符串

    标题细节,指定为结构。看到edfheader为更多的信息。

    数据类型:结构体

    信号数据,指定为具有一列或多列的数字矩阵或数字向量的单元格数组。

    数据类型:|细胞

    注释,指定为包含以下变量的时间表:

    • 发病—标注发生的时间,表示从文件开始时间开始经过的秒数。使用发病指定rowTimes的时间表。

    • 注释—包含注释文本的字符串。

    • 持续时间—duration标量,表示标注所描述事件的持续时间。如果文件没有指定注释持续时间,则该变量返回为

    数据类型:表格

    属性

    全部展开

    文件属性

    此属性是只读的。

    文件名,作为字符串标量返回。

    例子:“ecg_20200411_120.edf”

    数据类型:字符串

    文件类型,返回为“法国电力公司(EDF)”“法国电力公司(EDF) +”

    数据类型:字符串

    此属性是只读的。

    最后修改日期,作为字符串标量返回,其中包含文件最后修改的日期和时间。

    例子:“11 - 4月- 2020 15:38:37”

    此属性是只读的。

    文件大小(以字节为单位),返回为整数标量。

    例子:4040992

    数据类型:

    头属性

    此属性是只读的。

    数据格式版本,返回为“0”

    数据类型:字符串

    此属性是只读的。

    患者识别详细信息,作为字符串标量返回。患者身份识别细节可以包括患者ID、性别或性别、出生日期“dd-MMM-yyyy”格式,名称。

    例子:" x f x 120 04- july -1982"

    数据类型:字符串

    此属性是只读的。

    记录标识细节,作为字符串标量返回。记录识别细节可能包括其开始日期和时间、进行记录的技术人员的身份证和进行记录的设备的身份证。

    例子:“开始日期04- 07 -1982 × × ×”

    数据类型:字符串

    此属性是只读的。

    记录开始日期,作为字符串标量返回“通行”格式。

    例子:“04.07.82”

    数据类型:字符串

    此属性是只读的。

    记录开始时间,作为字符串标量返回“HH.mm.ss”格式。

    例子:“17.16.37”

    数据类型:字符串

    此属性是只读的。

    报头大小(以字节为单位),返回为整数标量。HeaderBytes是由(256 +NumSignals×256)字节。前256字节对应一个静态头,所有EDF和EDF+文件都需要。其他字节取决于数据记录中出现的信号的数量。

    例子:2048

    数据类型:

    此属性是只读的。

    EDF+中断信息,返回“法国电力公司(EDF) + C”“法国电力公司(EDF) + D”兼容EDF+文件。

    • “法国电力公司(EDF) + C”—连续记录:没有中断,所有数据记录都是连续的,每条数据记录的开始时间与前一条记录的开始时间加上持续时间一致。

    • “法国电力公司(EDF) + D”—记录是非连续的,连续的数据记录之间存在中断。

    对于不符合EDF+的文件,此属性是一个空字符串("").

    数据类型:字符串

    此属性是只读的。

    文件中数据记录的数量,作为整数标量返回。

    请注意

    如果文件名不符合EDF标准NumDataRecords可设置为-1当数据记录的数量未知时。如果文件名法国电力公司(EDF)兼容,NumDataRecords必须设置为正整数。如果文件名保留设置为非空字符串和NumDataRecords设置为-1edfinfo抛出一个错误。

    数据类型:

    此属性是只读的。

    每个数据记录的持续时间,作为持续时间标量返回。

    数据类型:持续时间

    此属性是只读的。

    文件中信号的数量,作为整数标量返回。

    数据类型:

    每个数据记录的开始时间,作为持续时间向量返回。DataRecordTimes必须为具有不连续记录开始时间的EDF+文件指定。这个向量的长度必须等于NumDataRecords

    数据类型:持续时间

    信号特性

    此属性是只读的。

    信号名称,作为长度的字符串向量返回NumSignals

    ["胸1”;“腹部3”)

    数据类型:字符串

    此属性是只读的。

    换能器详细信息,作为长度的字符串向量返回NumSignals.的每个元素TransducerTypes包含有关用于获得相应信号的传感器的详细信息SignalLabels

    例子:[" AgAgCl电极”;“热敏电阻”)

    数据类型:字符串

    此属性是只读的。

    信号数据单位,返回为长度的字符串向量NumSignals.的每个元素PhysicalDimensions包含用于表示中相应信号值的测量单位SignalLabels

    例子:(“紫外线”;“mV”)

    数据类型:字符串

    此属性是只读的。

    信号的最小物理值,作为长度的数字向量返回NumSignals.的每个元素PhysicalMin包含相应信号的最小物理值SignalLabels

    数据类型:

    此属性是只读的。

    信号的最大物理值,作为长度的数字向量返回NumSignals.的每个元素PhysicalMax包含相应信号的最大物理值SignalLabels

    数据类型:

    此属性是只读的。

    信号的最小数字值,以长度的数字向量返回NumSignals.的每个元素DigitalMin包含相应信号的最小数字值SignalLabels

    数据类型:

    此属性是只读的。

    信号的最大数字值,作为长度的数字向量返回NumSignals.的每个元素DigitalMax包含相应信号的最大数字值SignalLabels

    数据类型:

    此属性是只读的。

    信号数据单位,返回为长度的字符串向量NumSignals.的每个元素预滤器包含有关滤波器的详细信息(如果有的话),用于对中的相应信号进行预处理SignalLabels

    例子:[“HP:10Hz LP:80Hz N:60Hz”;“HP:0.1Hz LP:90Hz N:60Hz”]

    数据类型:字符串

    此属性是只读的。

    信号中的样本数,作为长度的数字向量返回NumSignals.的每个元素NumSamples包含在相应信号中的样本数SignalLabels

    数据类型:

    此属性是只读的。

    附加的信号信息,作为长度的字符串向量返回NumSignals.的每个元素SignalReserved包含附加信息,如果有,关于相应的信号SignalLabels

    数据类型:字符串

    输入信号数据样本类型,返回为“数字”“物理”.该函数默认为“数字”并在没有数字缩放的情况下将信号数据写入文件。如果“InputSampleType”被设置为“物理”,然后edfwrite将数字缩放应用于信号数据。

    数据类型:字符串

    注释的属性

    此属性是只读的。

    信号记录中的注释,作为包含以下变量的时间表返回:

    • 发病—标注发生的时间,表示从文件开始时间开始经过的秒数。

    • 注释—包含注释文本的字符串。

    • 持续时间—duration标量,表示标注所描述事件的持续时间。如果文件没有指定注释持续时间,则该变量返回为

    数据类型:表格

    用于将注释写入文件的编码格式,返回为“us - ascii”“utf - 8”,或“LATIN1”中的一个

    数据类型:字符串

    对象的功能

    addannotation 向EDF或EDF+文件添加注释
    addSignals 添加新的信号到EDF或EDF+文件
    deleteAnnotations 删除EDF或EDF+文件中的注释
    deleteSignals 删除信号从EDF或EDF+文件
    modifyAnnotations 修改EDF或EDF+文件中的注释
    modifyHeader 修改EDF或EDF+文件的头细节
    modifySignals 修改EDF或EDF+文件中的信号

    例子

    全部折叠

    负载EMGdata.mat进入工作区。该文件包含8个通道的表面肌电图(EMG)数据[1]记录了八块手臂肌肉。资料载于陈www.sce.carleton.ca /教师/ / index . php ?页面= matlab.采样频率为1000hz。画出信号。

    负载EMGdatafs = 1000;t = 0:1 / fs:(大小(数据,1)1)/ fs;stackedplot (t,数据)

    Figure包含一个类型为stackedplot的对象。

    增加的信号振幅的爆发对应于不同的前臂运动,每个持续3秒。EMGindex.mat包含运动类型和每个运动的开始索引(样本)在两个变量:运动start_index.运动类型有:

    1. 手打开

    2. 手关闭

    3. 手腕弯曲

    4. 手腕上的扩展

    5. 旋后

    6. 内翻

    7. 休息

    将数据加载到工作区中。

    负载EMGindex

    创建一个注释时间表。

    1. 使用发病指定行时间。发病包含以秒为单位的每个动作的开始索引。

    2. 注释将运动类型指定为字符串数组。

    3. 持续时间指定每个动作的持续时间,以秒为单位。

    开始=秒(start_index. / fs);注释=字符串(运动);时间=秒(的(长度(发作),1)* 3);annotationslist =时间表(发病、注释、持续时间);

    使用edfheader为EDF+文件创建标题结构并设置属性。看到edfheader为更多的信息。

    hdr = edfheader (“法国电力公司(EDF) +”);hdr。NumDataRecords = 1;hdr。DataRecordDuration =秒(长度(数据(:1))/ fs);hdr。NumSignals = 8;hdr。SignalLabels = [“F1”“F2”“F3”“F4”“F5”“F6”“F7”“B1”];hdr。PhysicalDimensions = repelem (“mV”8);hdr。PhysicalMin = min(数据);hdr。PhysicalMax = max(数据);hdr。DigitalMin = [-32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768 -32768];hdr。DigitalMax = [32767 32767 32767 32767 32767 32767 32767 32767 32767 32767 32767 32767 32767 32767 32767 32767 32767];

    编写一个包含头结构、信号数据和注释的EDF+文件。指定输入样本类型为物理.文件保存在当前工作目录中。

    edfw = edfwrite (“armEMG.edf”hdr,数据、annotationslist“InputSampleType”“物理”);

    显示文件信息。

    edfinfo (“armEMG.edf”
    ans = edinfo with properties:edf" FileModDate: "01-Sep-2021 09:04:53" FileSize: 4803836 Version: "0" Patient: "1234567 F 01-Sep-2021 Patient_1" Recording: "Startdate 01-Sep-2021 MW_1234567 MW_Inv_01 "Startdate: "01.09.21" StartTime: "09.04.52" HeaderBytes: 2560 Reserved: " edf +C" NumDataRecords: 1 DataRecordDuration: 300.03 sec NumSignals: 8 SignalLabels:[8x1 string] PhysicalDimensions: [8x1 string] PhysicalMax: [8x1 double] DigitalMin: [8x1 double] DigitalMax: [8x1 double] Prefilter: [8x1 string] NumSamples: [8x1 double] SignalReserved: [8x1 string] Annotations: [28x2 timetable]

    您可以使用法国电力公司(EDF)文件分析器查看存储在文件中的信号和注释。使用信号分离选择分离信号,以更好地可视化。

    删除EDF+文件。如果您想保留该文件,请注释掉此代码。

    删除armEMG.edf

    提示

    • 要创建只包含注释的EDF+文件,请指定NumDataRecordsNumSignals作为0DataRecordDuration作为带值的持续时间标量0,所有信号属性为空。

    • 启动法国电力公司(EDF)文件分析器应用程序可视化信号在您的EDF或EDF+文件。

    参考文献

    [1] Chan, Adrian d.c.和Geoffrey C. Green, 2007。“肌电控制开发工具箱”。论文发表于加拿大医学与生物工程学会第30次会议,加拿大多伦多,2007

    [2] Kemp, Bob, Alpo Värri, Agostinho C. Rosa, Kim D. Nielsen, and John Gade。数字化多道测谎记录交换的简单格式脑电图与临床神经生理学82年,没有。5(1992年5月):391-93。https://doi.org/10.1016/0013 - 4694(92) 90009 - 7。

    [3]坎普,鲍勃和杰西·奥利文。“欧洲数据格式' + ' (EDF+),生理学数据交换的EDF相似标准格式。”临床神经生理学114年,没有。9(2003): 1755 - 1761。https://doi.org/10.1016/s1388 - 2457(03) 00123 - 8。

    另请参阅

    应用程序

    对象

    功能

    外部网站

    介绍了R2021a