[FieldTrip] Online preprocessing
"Jörn M. Horschig"
jm.horschig at donders.ru.nl
Thu May 23 11:37:59 CEST 2013
On 5/23/2013 10:25 AM, Mariana Branco wrote:
> I am new in the BCI research field, and I am starting to implement an online BCI system using the Fieldtrip toolbox to detect ERD/ERS features. I already did two offline experiments using this toolbox, but now I am having some doubts about how to adapt the offline signal processing functions into real-time; I started by simulating real-time data from a file.
> My questions are:
> 1) To process the data real-time using ft_preprocessing is it first necessary to define trials (with ft_definetrial)? If so, how can I define the trial if it is real-time?
no, you should use ft_read_data directly. The way to go is to check the
header of your buffer for new events using ft_read_event. Upon detection
of a relevant trigger, you need to use the returned event sample to
compute your beginning and endsample manually (this is what
ft_definetrial, or more precisely, your trialfun, usually does). Then
you can use ft_read_data to read data from the buffer into memory.
ft_read_data returns a datamatrix that can be used to create your
data.trial field. Also, you need to manually create the rest of the
> 2) Is it possible to still use the function ft_preprocessing and ft_resampledata in real-time with the same specifications of offline procedure?
It is definitely possible, once you converted the matrix to a regular
fieldtrip structure. However, since it is about speed in online
processing, you can think about using low-level functions of FieldTrip
directly. Note that for resampling, you can also set up the shared
memory (eg. acq2ftx) such that is downsamples right from the start.
> 3) When simulating data stream (with two matlab sessions) the function ft_realtime_powerestimate(cfg) reports an error related to the "arg 3 (overlap)" on the welch's method. How can I correct this?
Do not use Welch's method, use another function. I don't know about this
particular example function, but I think you would greatly benefit from
finding out where the error is yourself. Note that online streaming od
data *is* complicated and requires *you* to have knowledge about this.
> 4) Also, for synchronous/triggered data analysis it is available the function ft_realtime_average. Is it possible to explain how can this example function be used for implementation of my own feature processing and extraction function. Does it preprocess the data in an alternative way to ft_preprocessing?
It should be an example, yes. Usually, there should be, as explained
above, some ft_read_event statement to read the trigger value(s). In
that particular example, the trialfun is used rather than ft_read_data
directly, but trialfun is basically a wrapper around ft_read_data. Also,
in that example a bunch of trials is read in, not just one. The thing
you need to do to adjust this is to filter out the event structure such
that only in case of the trigger of interest some data processing is
done (you can use ft_filter_event for this).
My best advise for you is to read all (most) example functions and
adjust them so that they run in your lab. Then sketch a flow diagram how
triggers/data will be sent and read, try to implement this yourself (by
copy&pasting relevant parts out of the example functions). If you have
specific questions, feel free to always ask, but as this stage (please
excuse my bluntnessI think you do not really know what needs to be done.
I could write a lot about this, but I think you will benefit more if you
first try yourself (especially because I do not know how your lab is set
up and how things needs to be adjusted). But, as just said, feel free to
write again when you have other questions.
> I am sorry for all the questions.
No problem, no way to know everything :)
> Mariana Branco
> fieldtrip mailing list
> fieldtrip at donders.ru.nl
Jörn M. Horschig
Donders Institute for Brain, Cognition and Behaviour
Centre for Cognitive Neuroimaging
Radboud University Nijmegen
Neuronal Oscillations Group
FieldTrip Development Team
P.O. Box 9101
NL-6500 HB Nijmegen
E-Mail: jm.horschig at donders.ru.nl
Trigon, room 2.30
NL-6525 EN Nijmegen
More information about the fieldtrip