Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

edfread

Leer datos del archivo EDF/EDF+

Desde R2020b

Descripción

ejemplo

data = edfread(filename) lee el archivo de Formato Europeo de Datos (EDF) o EDF+ especificado en filename en un horario, data.

ejemplo

data = edfread(filename,Name,Value) lee el archivo en un horario con opciones adicionales especificadas por uno o más argumentos de par nombre-valor.

[data,annotations] = edfread(___) también devuelve las anotaciones presentes en los registros de datos.

Ejemplos

contraer todo

Lea los datos del archivo EDF example.edf en un horario. El archivo contiene dos señales, ECG y ECG2. Cada señal contiene seis registros de datos y cada registro de datos tiene una duración de 10 segundos.

tt = edfread('example.edf')
tt=6×2 timetable
    Record Time          ECG               ECG2      
    ___________    _______________    _______________

    0 sec          {1280x1 double}    {1280x1 double}
    10 sec         {1280x1 double}    {1280x1 double}
    20 sec         {1280x1 double}    {1280x1 double}
    30 sec         {1280x1 double}    {1280x1 double}
    40 sec         {1280x1 double}    {1280x1 double}
    50 sec         {1280x1 double}    {1280x1 double}

Cree un objeto edfinfo que contenga información sobre example.edf. Compruebe que las señales tienen los nombres esperados. Extraiga las tasas de muestreo de las señales utilizando las propiedades DataRecordDuration y NumSamples del objeto.

info = edfinfo('example.edf');

info.SignalLabels
ans = 2x1 string
    "ECG"
    "ECG2"

fs = info.NumSamples/seconds(info.DataRecordDuration)
fs = 2×1

   128
   128

Represente el primer registro de la primera señal. Para obtener más información acerca del acceso a los datos de las tablas, consulte Acceder a datos en tablas.

recnum = 1;
signum = 1;
t = (0:info.NumSamples(signum)-1)/fs(signum);
y = tt.(signum){recnum};

plot(t,y)
legend(strcat("Record ",int2str(recnum),", Signal ",info.SignalLabels(signum)))
hold on

Extraiga y represente el quinto registro de la segunda señal.

recnum = 5;
signum = 2;
t = (0:info.NumSamples(signum)-1)/fs(signum);
y = tt.(signum){recnum};

plot(t,y, ...
    'DisplayName',strcat("Record ",int2str(recnum),", Signal ",info.SignalLabels(signum)))
hold off
xlabel('t (seconds)')

Figure contains an axes object. The axes object with xlabel t (seconds) contains 2 objects of type line. These objects represent Record 1, Signal ECG, Record 5, Signal ECG2.

Cree un objeto edfinfo para obtener información acerca del archivo EDF example.edf. Extraiga el número de registros y los nombres de las variables que se incluyen en el archivo.

info = edfinfo('example.edf');

nrec = info.NumDataRecords
nrec = 6
vars = info.SignalLabels
vars = 2x1 string
    "ECG"
    "ECG2"

Lea los registros segundo y quinto que correspondan a la variable ECG2. Devuelva las señales como horarios con filas de tiempos que correspondan a los tiempos de muestreo de la señal. Exprese la información de tiempo como arreglos datetime.

data = edfread('example.edf', ...
    'SelectedDataRecords',[2 5],'SelectedSignals',"ECG2", ...
    'DataRecordOutputType','timetable','TimeOutputType','datetime')
data=2×1 timetable
        Record Time                ECG2       
    ____________________    __________________

    10-Oct-2020 12:02:28    {1280x1 timetable}
    10-Oct-2020 12:02:58    {1280x1 timetable}

Cambie el nombre de las filas de tiempo a "Date and Time" y el nombre de la variable a "Electrocardiogram".

data.Properties.DimensionNames = ["Date and Time" "Variables"];
data.Properties.VariableNames = "Electrocardiogram";

data
data=2×1 timetable
       Date and Time        Electrocardiogram 
    ____________________    __________________

    10-Oct-2020 12:02:28    {1280x1 timetable}
    10-Oct-2020 12:02:58    {1280x1 timetable}

Argumentos de entrada

contraer todo

Nombre del archivo EDF o EDF+, especificado como un vector de caracteres o un escalar de cadena.

Dependiendo de la ubicación del archivo, filename puede tener una de estas formas.

Ubicación

Forma

Carpeta actual o carpeta en la ruta de MATLAB®

Especifique el nombre del archivo en filename.

Ejemplo: 'data.edf'

Archivo en una carpeta

Si el archivo no se encuentra en la carpeta actual o en una carpeta en la ruta de MATLAB, especifique el nombre completo o relativo de la ruta.

Ejemplo: 'C:\myFolder\data.edf'

Ejemplo: 'myDir\myFile.ext'

Nota

edfread no es compatible con los archivos EDF EyeLink®.

Tipos de datos: char | string

Argumentos de par nombre-valor

Especifique pares de argumentos opcionales como Name1=Value1,...,NameN=ValueN, donde Name es el nombre del argumento y Value es el valor correspondiente. Los argumentos de nombre-valor deben aparecer después de otros argumentos. Sin embargo, el orden de los pares no importa.

En las versiones anteriores a la R2021a, utilice comas para separar cada nombre y valor, y encierre Name entre comillas.

Ejemplo: 'SelectedSignals',["Thorax" "Abdomen"],'SelectedDataRecords',[2 7],'TimeOutputType','datetime' dirige instrucciones a edfread para que lea los registros de datos segundo y séptimo que corresponden a las señales Thorax y Abdomen y devuelve la información de tiempo como arreglos datetime.

Nombres de señales para leer, especificados como pares separados por comas que consisten en 'SelectedSignals' y un vector de cadena o un arreglo de celdas de vectores de caracteres.

  • 'SelectedSignals' debe ser un subconjunto de los nombres de las señales que se incluyen en el archivo. Para conseguir los nombres de todas las señales del archivo, cree un objeto edfinfo y utilice la propiedad SignalLabels.

  • Si no se especifica este argumento, edfread lee todas las señales en el archivo.

Ejemplo: ["Thorax 1" "Abdomen 3"] y {'Thorax 1' 'Abdomen 3'} especifican Thorax 1 y Abdomen 3 como las señales que leer de un archivo.

Tipos de datos: char | string

Índices de registros para leer, especificados como pares separados por comas que consisten en 'SelectedDataRecords' y un vector de enteros positivos. Los enteros en un vector deben ser únicos e ir en aumento.

  • 'SelectedDataRecords' debe ser un subconjunto de registros de datos incluido en el archivo. Para ver cuántos registros hay en el archivo, cree un objeto edfinfo y utilice la propiedad NumDataRecords. De forma alternativa, lea el archivo entero y utilice la función height de MATLAB.

  • Si no se especifica este argumento, edfread lee todos los registros de datos del archivo.

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Tipo de datos de salida, especificados como pares separados por comas que consisten en 'DataRecordOutputType' y 'vector' o 'timetable'.

  • 'vector': devuelve las señales en data como vectores.

  • 'timetable': devuelve las señales en data como tablas con filas de tiempo que corresponden a tiempos de muestreo.

Tipos de datos: char | string

Tipo de tiempo de salida, especificado como par separado por comas que consta de 'TimeOutputType' y 'duration' o 'datetime'.

  • 'duration': devuelve la información de tiempo en data como arreglos de duration.

  • 'datetime': devuelve la información de tiempo en data como arreglos de datetime.

Tipos de datos: char | string

Argumentos de salida

contraer todo

Datos de salida, devueltos como horario. Cada fila de data corresponde a un registro y cada variable de data corresponde a una señal.

  • Si 'DataRecordOutputType' se especifica como 'vector', el segmento de señal para cada registro de datos se devuelve como un vector.

  • Si 'DataRecordOutputType' se especifica como 'timetable', el segmento de señal para cada registro de datos se devuelve como un horario con filas de tiempo que corresponden a tiempos de muestreo de señal.

Cada fila de tiempo de data contiene el tiempo de inicio de cada registro de datos correspondiente.

  • Si 'TimeOutputType' se establece en 'duration', el tiempo de inicio de cada registro es relativo al tiempo de inicio del registro del archivo.

  • Si 'TimeOutputType' se establece en 'datetime', el tiempo de inicio de cada registro es el tiempo de inicio absoluto.

Anotaciones de registros, devueltas como horario. El horario contiene estas variables:

  • Onset: tiempo en el que ocurrió la anotación. El tipo de datos de Onset depende del valor especificado para 'TimeOutputType'.

  • Annotations: una cadena que contiene el texto de la anotación.

  • Duration: un escalar de duración que indica la duración del evento descrito por la anotación. Si el archivo no especifica una duración de la anotación, esta variable se devuelve como NaN.

Referencias

[1] Kemp, Bob, Alpo Värri, Agostinho C. Rosa, Kim D. Nielsen, and John Gade. “A Simple Format for Exchange of Digitized Polygraphic Recordings.” Electroencephalography and Clinical Neurophysiology 82, no. 5 (May 1992): 391–93. https://doi.org/10.1016/0013-4694(92)90009-7.

[2] Kemp, Bob, and Jesus Olivan. "European Data Format 'plus' (EDF+), an EDF Alike Standard Format for the Exchange of Physiological Data." Clinical Neurophysiology 114, no. 9 (2003): 1755–1761. https://doi.org/10.1016/S1388-2457(03)00123-8.

Historial de versiones

Introducido en R2020b

Consulte también

| | | |

Sitios web externos