[Eeglablist] readbdf - big data set - convert to single?

Yuan-fang Chou distancejay at gmail.com
Tue Sep 4 04:41:43 PDT 2012


When you change data from double to single precision before loading,it
seems better for you to re-change inversely before running ICA,as ICA can
do its best under double precision condition.

2012/8/30 Alois Schloegl <alois.schloegl at ist.ac.at>

> The biosig interface has multiple option to address this problem.
> You can read only specified channels, and/or segments, and output the
> data as single type.
>
>
> % select limited list of channels with CHANLIST,
> % return data as single
> HDR = sopen(filename,CHANLIST,'OUTPUT:SINGLE');
>
> % read segment of length duration
> duration = 1;   % segment lenght
> for k = 0:duration:NRrec*HDR.SPR/HDR.SampleRate,
>         [dat, HDR] = sread(HDR, duration, start);
> end;
>
> % do not forget to close the file
> HDR = sclose(HDR);
>
>
>
> On 08/29/12 20:09, ANDREW HILL wrote:
> > I would suggest downsampling first - 512 Hz (2 ms resolution in an ERP)
> should be fine, if that's sufficient for your needs.
> >
> > That'll speed things up remarkably :)  You can use "Decimator" from
> Biosemi to do this before you import, if you want.
> >
> > Also, I tend to use "Converter" to move BDF files into EDF+ format
> before importing into Matlab.  This essentially applies a 0.016 Hz highpass
> filter, discarding the DC offset and making much smaller files.
> >
> > Lastly, your CPU and operating system both need to be 64-bit versions
> (as does your Matlab) if you want to ever be able to use more than 2GB of
> RAM - I'm assuming you are running out of RAM even with a lot of it and
> 64-bit, but just in case that's another gotcha.
> >
> >
> >
> > Best,
> >
> > andrew
> >
> >
> >
> >
> > On Today 12:49 AM, davidebaldo84 at gmail.com wrote:
> >
> > Dear all,
> > Lately I have been working with an EEG dataset containing 64 channels
> (sampling rate: 2048Hz, Biosemi data).When importing the data into Matlab
> (via pop_readbdf function) I experience two problems:
> > 1. It takes a lot of time to load and afterwards the pc became extremely
> slow (I assume that is because of the huge amount of  RAM needed)2.
> Sometimes the pc run out of memory
> >
> > Thus I have modified the readbdf function, converting the EEG data from
> double to single precision (each value occupies 4 bytes instead of 8 bytes):
> >     ... (line 100)   catch,           warning backtrace off;
> warning('Warning: file might be incomplete');           Records(nrec:end) =
> [];           DAT.Record(RecLen*length(Records)+1:end,:) = [];
> S(nrec:end,:) = [];           break;       end;
> >   (line 109)  end;
> > %%%%%%% START DAVIDE MODIFICATION %%%%%%%%
> >   >>>>>>>      DAT.Record = single(DAT.Record);<<<<<<<  CONVERTING THE
> EEG DATA FROM DOUBLE TO SINGLE
> > %%%%%%% END DAVIDE  MODIFICATION  %%%%%%%%
> >
> > if rem(Mode,2)==0% AutocalibDAT.Record=[ones(RecLen*length(Records),1)
> DAT.Record]*EDF.Calib;end;
> > DAT.Record=DAT.Record';
> > ..
> >
> > This way the data importing is much faster. The question is: Do you
> think I can have any problem because of converting EEG data from double to
> single precision?
> >
> > Thanks a lot,
> >
> > Davide.
> >
> >
> >
> >
> > _______________________________________________
> > Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> > To unsubscribe, send an empty email to
> eeglablist-unsubscribe at sccn.ucsd.edu
> > For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
>
> _______________________________________________
> Eeglablist page: http://sccn.ucsd.edu/eeglab/eeglabmail.html
> To unsubscribe, send an empty email to
> eeglablist-unsubscribe at sccn.ucsd.edu
> For digest mode, send an email with the subject "set digest mime" to
> eeglablist-request at sccn.ucsd.edu
>



-- 
Yuan-Fang Chao
School of Psychology
SouthWest University
Beibei,Chongqing,China
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://sccn.ucsd.edu/pipermail/eeglablist/attachments/20120904/31ef016a/attachment.html>


More information about the eeglablist mailing list