Channel Selection for MI tasks

Working with OpenViBE signal processing scenarios and doing scenario/BCI design
Post Reply
a1eks
Posts: 6
Joined: Sun Jan 21, 2018 6:26 pm

Channel Selection for MI tasks

Post by a1eks »

Hi,

I am new in the OpenVibe and forgive me if the question is not in the right place. I was exploring the Motor Imagery scenarios and was wondering how do I make an optimal electrode selection and configuration of the spacial filters (i.e Laplacian) and temporal filters for a subject? Usually, I do offline analysis with Matlab, plotting the channels and spectra, but I was wondering if something like this is possible with OpenVibe?

Something like this:
Image

I found about Stacked Bitmap (Vertical) http://openvibe.inria.fr/documentation/ ... tical.html but that is not exactly what I need because I don't need a time dimension.

a1eks
Posts: 6
Joined: Sun Jan 21, 2018 6:26 pm

Re: Channel Selection for MI tasks

Post by a1eks »

I have been playing with the scenarios and made one, so I hope that it does the job:

Image

I got something like this for right hand
Image

and left vs right
Image

Now I have a couple of question:

1. Is it possible to subtract spectrum of right and left hand and have the difference? From the 2nd picture, I can guess that the best discriminating frequency is around 11-12Hz (Figure2)

2. In the bitmaps, is it possible to set a range to display (i.e 8-30Hz), so I get better resolution and more precise scale?

3. I have used Moving average for Epoch average with the 17 Epoch count (probably the dataset bci-motor-imagery.ov has 17 trials) and I wonder if that is right?

jtlindgren
Posts: 778
Joined: Tue Dec 04, 2012 3:53 pm
Location: INRIA Rennes, FRANCE

Re: Channel Selection for MI tasks

Post by jtlindgren »

Hi a1eks,

sorry for the late reply; you can try to use Simple DSP to compute differences between streams. Frequency Band Selector should allow you to choose a subset of the spectrum.

To see if epoch average is doing the right thing, you can use EBML Stream Spy, stimulation listener and even CSV Writer to inspect that what goes in and comes out makes sense. Usually artificial data (e.g. use noise generator, sinus oscillator and/or time signal + simple dsp to cook something) is the easiest to interpret when debugging.


Cheers,
Jussi

a1eks
Posts: 6
Joined: Sun Jan 21, 2018 6:26 pm

Re: Channel Selection for MI tasks

Post by a1eks »

Thank you for the reply. Currently, I am using a python script to generate/extract new features and to see how well they are separating the classes.

Now I am investigating available non-linear features, such as fractal dimensions for MI class classification. I also plot the Fisher score for each of the classes using matplotlib

Image

Post Reply