Skip to content

mgbleichner/xdf-EEGLAB

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

This is a MATLAB importer for .xdf files. xdf files are likely to have been created by LabRecorder, the default file recorder for use with LabStreamingLayer. LabRecorder records a collection of streams, including all their data (time-series / markers, meta-data) into a single XDF file. The XDF format (Extensible Data Format) is a general-purpose format for time series and their meta-data that was jointly developed with LSL to ensure compatibility, see here.

Usage from EEGLAB

Use plugin manager (mneu item File > Plugin manager) and install plugin xdfimport (we know it is called here xdf-EEGLAB and that the plugin is named differently but it is the same code). Use file import menu to import XDF files. Note that the Mobilab EEGLAB plugin also contains code to import XDF and resample multiple streams to the same sampling rate. It is an alternative to consider (Mobilab shares Matlab import functions with this plugin).

Usage from command line

After a session has been recorded to disk using the LabRecorder or any other compatible recording application, it can be imported into MATLAB using the functions in this folder.

Note that EEGLAB plugins are structured so the EEGLAB (/BCILAB/MoBILAB) plugin files are in the top level (i.e. the directory containing this readme) and the actual import function is load_xdf in the xdf subfolder.

To use load_xdf directly:

  • Start MATLAB and make sure that you have the function added to MATLAB's path. You can do this either through the GUI, under File / Set Path / Add Folder) or in the command line, by typing:

addpath('C:\\path\\to\\xdf_repo\\Matlab\\xdf')

  • To load an .xdf file, type in the command line:

streams = load_xdf('your_file_name.xdf')

  • After a few seconds it should return a cell array with one cell for every stream that was contained in the file. For each stream you get a struct that contains the entire meta-data (including channel descriptions and domain-specific information), as well as the time series data itself (numeric or cell-string array, depending on the value type of the stream), and the time stamps of each sample in the time series. All time stamps (across all streams, even if they were collected on different computers of the lab network) are in the same time domain, so they are synchronized. Note that time stamps from different .xdf files are generally not synchronized (although they will normally be in seconds since the recording machine was turned on).

Documentation

As usual in MATLAB, to get the documentation of the function, type help load_xdf or doc load_xdf.

Version note

  • Version 1.17 fixes to Matlab XDF importer
  • Version 1.16 fixes compilation of submodule xdf-matlab for newer versions of Matlab
  • Version 1.15 fixes importing channel labels when more than 1 stream is present
  • Version 1.14 fixes loading datasets under Mac OSX

About

xdf importer for EEGLAB

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • MATLAB 100.0%