cursortask sequence

This forum deals with BCI2000 configuration issues.
Locked
Ryan
Posts: 29
Joined: 27 Aug 2010, 15:03

cursortask sequence

Post by Ryan » 17 Jun 2011, 19:03

Hi, guys,

I am trying to use the fileplayback source module to test different configurations.
I know there is a time sync issue. So during the calibration session, I fixed the time and sequence of the stimulus.
Is there a way to fix the sequence of the target appears in the cursor task application as well? so that the data is correlated to the specific target.
Thanks a lot!

Sincerely,
Ran

jawilson
Posts: 109
Joined: 28 Feb 2005, 16:31

Re: cursortask sequence

Post by jawilson » 20 Jun 2011, 23:15

Ran,
Could you clarify what you mean by "time sync issue," and how you "fixed the time and sequence of the stimulus." ? Basically, the FilePlayback module can either playback the states from the file, or allow the program to randomly generate the sequence each time. The FilePlayback really shouldn't be used for any kind of analysis, and it was not designed for this purpose.
Adam

Ryan
Posts: 29
Joined: 27 Aug 2010, 15:03

Re: cursortask sequence

Post by Ryan » 20 Jun 2011, 23:58

Hi Adam,

Thank you for the reply. I guess I didnot fully understand the purpose of Fileplayback module. What I want to do is trying to use this module to stream data from Calibration session, and use it to control the Cursor task application.


By saying "time sync issue", I refer to
Note that the FilePlayback module does not read state (event) information from the replayed file. Thus, in applications such as the CursorTask application module, where a trial ends when a target is hit by the cursor, EEG data will go out of sync with the trial structure.
in another post regarding to Fileplayback module.

What I did was to fix the sequence of stimulus in the calibration session, i.e. the stimuli always appears in the order of "imagine left hand, imagine right hand, imagine both hand, imagine both feet". Then I set other time parameters, such as ISI, presequence duration, etc., in order to be consistent with the timing of Cursor task. I also set up the feedbackduration to be 3 second, and the maximum feedback time to be 3 second in the CursorTask , which is the same duration as the stimulus duration in the calibration session. Another thing I did was set the depth of targets to a different level, so that, the cursor will never hit the target. In this case, 3-second data from the calibration session will be always aligned with the trial in the Cursor task application. Then I would decide if the cursor hits the target bar by observing if they overlapped with each other, instead of flashing.

I figured if somehow the sequence of targets appears can be fixed to "left, right, up, down", then the calibration data can be used to control to cursor, which will surely benefit the testing of new parameter setting in Spatial filter, ARfilter, classifier and so on.

Any advice will be appreciated.

jawilson
Posts: 109
Joined: 28 Feb 2005, 16:31

Re: cursortask sequence

Post by jawilson » 21 Jun 2011, 09:54

Ran,
I think you will have difficulty working with the fileplayback this way. If it is feasible, I would recommend using the SignalGenerator, and using the mouse to modulate the amplitude on different channels. For example, you can set it up so that the channels produce a noisy 10 Hz sine wave, and change the amplitude on one channel using the x-mouse position, and another channel using the y-mouse position. This will allow you to test a 2D cursor task configuration, without worrying about syncing the data in the file.
Adam

Ryan
Posts: 29
Joined: 27 Aug 2010, 15:03

Re: cursortask sequence

Post by Ryan » 21 Jun 2011, 10:22

Hi, Adam,

Thank you for the reply.
I agree with you that using SignalGenerater is better choice for testing purpose.

I got one more question about the cursor task application. The control signal after Normalizer is multiplied by a Scale Factor, which turns control signal into the cursor position on the screen. What I am wondering is how this Scale factor is caculated? related to FeedbackDuration?

Thanks a lot!

jawilson
Posts: 109
Joined: 28 Feb 2005, 16:31

Re: cursortask sequence

Post by jawilson » 21 Jun 2011, 10:27

The normalizer subtracts an offset, and multiplies by a gain so that the result is zero mean and unit variance. It uses a collection of buffers, based on different conditions during the task (i.e., each TargetCode might have its own buffer), and these are updated during the run.

See http://bci2000.org/wiki/index.php/User_ ... Normalizer for more information.
Adam

Ryan
Posts: 29
Joined: 27 Aug 2010, 15:03

Re: cursortask sequence

Post by Ryan » 21 Jun 2011, 10:30

Thanks, Adam.
But my question is after the normalizer, how the signal is converted into the cursor movement.
Sorry for the confusing.

mellinger
Posts: 1210
Joined: 12 Feb 2003, 11:06

Re: cursortask sequence

Post by mellinger » 21 Jun 2011, 10:32

Hi Ran,

the scale factor is indeed computed using the FeedbackDuration parameter, as described in
http://www.bci2000.org/wiki/index.php/U ... ckDuration

Best regards,
Juergen

Ryan
Posts: 29
Joined: 27 Aug 2010, 15:03

Re: cursortask sequence

Post by Ryan » 28 Jun 2011, 15:00

Hi, guys,
I notice that in the new released version of BCI2000, a sequence parameter for cursor task is added.
Thank you very much for the awesome work!

Locked

Who is online

Users browsing this forum: No registered users and 22 guests