主要内容

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不支持眼线®法国电力公司(EDF)文件。

    数据类型:字符|字符串

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

    数据类型:结构体

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

    数据类型:|细胞

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

    • 发病-注释发生的时间,用duration表示,表示从文件开始时间到现在经过的秒数。使用发病指定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- 1982年7月”

    数据类型:字符串

    此属性是只读的。

    记录标识详细信息,作为字符串标量返回。记录识别细节可能包括开始日期和时间,进行记录的技术人员的ID,以及进行记录的设备的ID。

    例子:开始日期:1982年7月04日X年X月X日

    数据类型:字符串

    此属性是只读的。

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

    例子:“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表示,表示从文件开始时间到现在经过的秒数。

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

    • 持续时间—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进入工作区。该文件包含八个通道的表面肌电图(EMG)数据[1]记录了8块手臂肌肉。该数据可在陈www.sce.carleton.ca /教师/ / index . php ?页面= matlab.采样速率为1000hz。画出信号。

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

    图中包含一个类型为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];hdr。DigitalMax = [32767 32767 32767 32767 32767 32767 32767 32767 32767];

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

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

    显示文件信息。

    edfinfo (“armEMG.edf”
    文件名:"armEMG. ans = edfinfo。edf" FileModDate: "31-Aug-2022 02:23:50" FileSize: 4803836 Version: "0" Patient: "1234567 F 31-Aug-2022 Patient_1" Recording: "Startdate 31-Aug-2022 MW_1234567 MW_Inv_01 MW_Eq_01" Startdate: "31.08.22" StartTime: "02.23.50" HeaderBytes: 2560 Reserved: " edf +C" NumDataRecords: 1 DataRecordDuration: 300.03 sec NumSignals: 8 SignalLabels: [8x1 string] TransducerTypes: [8x1 string] PhysicalDimensions: [8x1 double] PhysicalMax: [8x1 double] DigitalMin:[8x1 double] DigitalMax: [8x1 double] Prefilter: [8x1 string] NumSamples: [8x1 double] SignalReserved: [8x1 string] Annotations: [28x2时间表]

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

    edfApp_EMG.png

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

    删除armEMG.edf

    提示

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

    • 启动法国电力公司(EDF)文件分析器app来可视化你的EDF或EDF+文件中的信号。

    参考文献

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

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

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

    版本历史

    介绍了R2021a

    另请参阅

    应用程序

    对象

    功能

    外部网站

    Baidu
    map