MediaWiki:Data Processing with Matlab

From Neuroelectric's Wiki
Jump to: navigation, search

In this page you will find some tips on how to analyze NE instrument data. This includes EEG data and accelerometry.

We discuss data analysis with Matlab and with NIC-Offline

Matlab tools

See Manuals & Downloads / Repository for more sophisticated sample code to do data analysis.

When EEG data is recorded by NIC from Enobio or StarStim instruments, several files are created. These include an .info file and an .easy file. "Easy" format data is, well, easy to load into a program such as Matlab.

See Manuals & Downloads / Repository for more sophisticated sample code to do data analysis. You can find there code to create PSDs plots, spectrograms, etc.

Here is a simple example in Matlab (download the example here). This is a an example file to read NE data. First we load the file - change the filename below as needed. The file should be in the Matlab working directory in this case:

>> d=load(‘20120731153351_enobiodata.easy’);

The data is now loaded as an array in the "d" variable.

Next we define the time axis using the last column in the data (in ms Unix time):

>> time=d(:,end); % time stamp is in the last column - in ms Unix time
>> time=time-time(1); % set clock to zero in first sample
>> time=time/1000; % change time units to seconds 

Figure from Example 1 (tDCS signal)
Figure from Example 2 (tDCS signal)

Example 1: we plot channel 1 in mV

>> figure(1); plot(time, d(:,1)/1e6); % divide by one million to go to mV
>> xlabel(‘Time from start (s)’); 
>> ylabel(‘Voltage (mV)’);
>> title(‘Channel 1 data’);

Example 2: we plot channels 1 to 8 in uV

>> figure(2); plot(time, d(:,1:8)/1e3); % divide by one thousand to go to uV
>> xlabel(‘Time from start (s)’);
>> ylabel(‘Voltage (uV)’);
>> legend({‘Ch1’,’Ch2’,’Ch3’,’Ch4’,’Ch5’,’Ch6’,’Ch7’,’Ch8’});
>> title(‘Channels 1-8 data’);
>> ylim([-200 200]); % fix the y-axis limits to plu/minus 200 uV