Hi,
I am using the neuroscan.cpp in a BCI setup where I provide visual feedback about decoding accuracy to subjects. I realized that neuroscan is saving the data as int32 while the standard format of the BCI2000 filter chain is float32. When calibrating my decoding algorithm with data analyzed off-line in MATLAB I get a huge out of range problem because of this missmatch of datatypes.
My question now is: are there any implications/reasons for storing data as int32 of which I am not aware? Or can I just modify the neuroscan.cpp to allow storage as float as well?
Best,
matthias
datatypes and storage in neuroscan source module
-
gschalk
- Posts: 615
- Joined: 28 Jan 2003, 12:37
int32
Hi,
I am not exactly sure I understand the problem. Data are acquired, and stored, as 32 bit integers. They are converted online into floating point values prior to processing. This of course does not add or remove any information. Offline, you will obviously have resolution issues if you process integer data, but why don't you simply convert the data from integer to float?
Data are stored as integer because that's how they are being digitized. Again, unless I am missing something, I am not sure how this can be a problem.
Gerv
I am not exactly sure I understand the problem. Data are acquired, and stored, as 32 bit integers. They are converted online into floating point values prior to processing. This of course does not add or remove any information. Offline, you will obviously have resolution issues if you process integer data, but why don't you simply convert the data from integer to float?
Data are stored as integer because that's how they are being digitized. Again, unless I am missing something, I am not sure how this can be a problem.
Gerv
-
mwitte
- Posts: 2
- Joined: 06 Apr 2009, 03:47
Hi Gerv,
maybe I was not precise enough, so I am trying now.
The Input of the DataIOFilter (including a HP source filter) is a float with 12 digits after the comma (not zeros!).
But because of neuroscan.cpp the BCI2000FileWriter is storing an integer which in turn results in an number like e.g. 73.1234 when I convert it to float/(single) in MATLAB and apply my gains of 0.0075 offline.
What I wanted to know is wether there would be a way to configure the output of the DataIOFilter to send floats with a precision of 4 - because this is what I will always get in Matlab after using load_bcidat() and applying the gains.
Best,
matthias
maybe I was not precise enough, so I am trying now.
The Input of the DataIOFilter (including a HP source filter) is a float with 12 digits after the comma (not zeros!).
But because of neuroscan.cpp the BCI2000FileWriter is storing an integer which in turn results in an number like e.g. 73.1234 when I convert it to float/(single) in MATLAB and apply my gains of 0.0075 offline.
What I wanted to know is wether there would be a way to configure the output of the DataIOFilter to send floats with a precision of 4 - because this is what I will always get in Matlab after using load_bcidat() and applying the gains.
Best,
matthias
Who is online
Users browsing this forum: No registered users and 0 guests
