主要内容

edfread

从EDF / EDF +文件中读取数据

描述

例子

数据= edfread (文件名读取指定的欧洲数据格式(EDF)或EDF +文件文件名成一个时间表,数据

例子

数据= edfread (文件名名称,价值将文件读取到时间表,其中包含一个或多个名称值对参数指定的其他选项。

数据注释) = edfread (___另外还返回数据记录中存在的注释。

例子

全部收缩

从EDF文件中读取数据example.edf.成一个时间表。该文件包含两个信号,ecECG2..每个信号包含六个数据记录,每个数据记录的持续时间为10秒。

tt = edfread (“example.edf”
tt =6×2时间表记录时间心电图ECG2 ___________ _______________ _______________ 0秒{1280x1双}{1280x1双}10秒{1280x1双}{1280x1双}20秒{1280x1双}{1280x1双}{1280x1双}30秒{1280x1双}{1280x1双}40秒{1280x1双}{1280x1双}{1280x1双}50秒{1280x1双}{1280x1双}1280x1双}

创建一个edfinfo.对象,该对象包含关于example.edf..验证信号是否具有预期的名称。利用该信号提取信号的采样率DataRecordDurationnumsamples.对象的属性。

info = edfinfo(“example.edf”);info.signallabels.
ans =.2x1字符串“ECG”“ECG2”
fs = info.NumSamples /秒(info.DataRecordDuration)
FS =2×1128 128

绘制第一信号的第一个记录。有关在表中访问数据的详细信息,请参阅在表中访问数据

recnum = 1;符号= 1;t = (0: info.NumSamples(符号)1)/ fs(符号);y = tt。(符号){recnum};情节(t、y)传说(strcat (“记录 ”int2str (recnum),“信号”,info.SignalLabels(符号)))

提取并绘制第二信号的第五条记录。

recnum = 5;符号= 2;t = (0: info.NumSamples(符号)1)/ fs(符号);y = tt。(符号){recnum};情节(t y...“DisplayName的”,Strcat(“记录 ”int2str (recnum),“信号”,info.SignalLabels(符号)))离开Xlabel(“t(秒)”

图包含轴。轴包含2个类型的型号。这些对象表示记录1,信号ECG,记录5,信号ECG2。

创建一个edfinfo.对象以获取有关EDF文件的信息example.edf..提取文件中包含的记录数量和变量名称。

info = edfinfo(“example.edf”);nrec = info。NumDataRecords
nrec = 6
vars = info.signallabels.
vars =2x1字符串“ECG”“ECG2”

读取对应于变量的第二个和第五条记录ECG2..将信号作为时间表返回,其行时间对应于信号样本时间。将时间信息表示为约会时间数组。

数据= EDFREAD(“example.edf”...'selectedDatarecords'(2 - 5),“SelectedSignals”“ECG2”...'datarecordoutputtype''时间表'“TimeOutputType”“datetime”
data =2×1时间表唱片时间ECG2 _______________________________________ 10-OCT-2020 12:02:28 {1280x1时间表} 10-OCT-2020 12:02:58 {1280x1时间表}

将行时间的名称更改为“日期和时间”变量to的名字“心电图”

data.Properties.DimensionNames = [“日期和时间”“变量”];data.Properties.VariableNames =“心电图”;数据
data =2×1时间表日期和时间的心电图  ____________________ __________________ 10 - 10月- 2020年12:02:28 {1280}x1时间表10 - 10月- 2020年12:02:58 {1280}x1的时间表

输入参数

全部收缩

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

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

地点

形式

Matlab上的当前文件夹或文件夹®路径

指定文件的名称文件名

例子:“data.edf”

文件夹中的文件

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

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

例子:“myDir \ myFile.ext”

请注意

edfread不支持eyelin万博1manbetxk®EDF文件。

数据类型:char|字符串

名称值对参数

指定可选的逗号分隔对名称,价值论点。的名字参数名和价值是相应的价值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen

例子:'selectionSignals',[“胸部”“腹部”,'SelectedDatarecords',[2 7],'timeOutputtype','datetime'指示edfread读取第二和第七数据对应的记录胸腔腹部信号并将时间信息返回约会时间数组。

要读取的信号的名称,指定为逗号分隔的对,由“SelectedSignals”以及一个字符串向量或字符向量的单元格数组。

  • “SelectedSignals”必须是文件中包含的信号名称的子集。要获取文件中所有信号的名称,请创建一个edfinfo.对象并使用SignalLabels财产。

  • 如果未指定此参数,edfread读取文件中的所有信号。

例子:两个都[“胸部1”“腹部3”]{“胸1”“腹3”}指定胸部1腹部3作为从文件读取的信号。

数据类型:char|字符串

要读取的记录索引,指定为逗号分隔的对,由'selectedDatarecords'和正整数的矢量。矢量中的整数必须是独特的,严格的增加。

  • 'selectedDatarecords'必须是文件中包含的数据记录的子集。要查看文件中有多少条记录,请创建edfinfo.对象并使用NumDataRecords财产。或者,阅读整个文件并使用MATLAB函数高度

  • 如果未指定此参数,edfread读取文件中的所有数据记录。

数据类型:|双倍的|int8|int16|INT32.|INT64.|uint8|uint16|uint32|uint64

数据输出类型,指定为逗号分隔对组成'datarecordoutputtype'和任何一种“向量”或者'时间表'

  • “向量”-返回信号数据向量。

  • '时间表'-返回信号数据作为与信号采样时间相对应的行时间的时间表。

数据类型:char|字符串

时间输出类型,指定为逗号分隔对组成“TimeOutputType”和任何一种“持续时间”或者“datetime”

数据类型:char|字符串

输出参数

全部收缩

输出数据,作为时间表返回。每一排数据的每个变量对应于一个记录数据对应一个信号。

  • 如果'datarecordoutputtype'被指定为“向量”,每个数据记录的信号段作为向量返回。

  • 如果'datarecordoutputtype'被指定为'时间表',每个数据记录的信号段作为与信号采样时间对应的行时间的时间表返回。

每一行时间数据包含相应数据记录的开始时间。

  • 如果“TimeOutputType”设定为“持续时间”,每条记录的开始时间是相对于文件记录的开始时间。

  • 如果“TimeOutputType”设定为“datetime”,则每条记录的起始时间为绝对起始时间。

记录注释,作为时间表返回。时间表包含这些变量:

  • 发病-注释发生的时间。的数据类型发病取决于指定的值“TimeOutputType”

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

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

参考文献

[1] Kemp,Bob,AlpoVärri,agostinho C.罗莎,金D.尼尔森和John Gade。“一种简单的形式,用于交换数字化的复图录音。”脑电图和临床神经生理学82,没有。5(1992年5月):391-93。https://doi.org/10.1016/0013-4694(92)90009-7。

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

在R2020B中介绍