process SSVEP data online versus offline

1- I am trying to do an online system that process SSVEP data. Now I am doing in offline the signal acquisition and posterior signal processing in Matlab and also in Python.
I can't figure out how pass it to online mode. I now it can be use by serial using LSL by OpenBCI_Matlab or OpenBCI_Python. At the moment, I can receive the data in real time, but now I am stuck, because I don't know how to process it. Then it is possible sending the processed data transformed in commands and send it to arduino?

2-If the signal acquisition by OpenBCI is done through WiFi Shield, how can it be done the signal processing in real time?



  • wjcroftwjcroft Mount Shasta, CA
    Manual, hi.

    I'm not sure I understand. With your offline processing, are you not receiving the file data, one sample at a time? Then doing whatever signal processing you desire to detect the frequency component at the SSVEP stimulation?

    With online processing, the same thing happens, you receive a stream of samples, and do similar processing.

    There are other threads here on the forum related to SSVEP, for example this result from using the search button in the lower right column,

    See Chip's excellent comments and blog post,

    Indeed, to control Chip's hexbug, he uses an arduino connected to a serial port.

    Realtime processing can be done either with the base hardware, or with the Wifi Shield. The shield does not make the data stream "more realtime". It can increase the sample rate, but with SSVEP that should not be necessary. Chip was running his SSVEP experiments with the Cyton stream at 250 Hz.



  • Hi everyone,
    I am trying to develop a SSVEP BCI system to control domotic appliances. My idea is to associate several stimulus to domotic appliances and when someone wanted to turn on some of it, the system would detect the SSVEP spike and sent the command through WiFi to an ESP module that control the appliance. I am doing the offline analysis in Matlab and Python also. I am implementing FFT, Welch and Canonical Correlation Analysis to see what gives me better results. Here is the thing, I am trying to put my system online, but I am getting some difficulties. I can't figure out how to the signal processing in real time.
    I am using OpenBCI_Python to transmit the raw data though LSL to Matlab, where I could implement my methods, but how can I be sure that the time that the signal is being processed will to exceed the size of my buffer (x samples at 250 Hz)?
    Other question is that how can this be done in python? I have the same problem here, in questions of real time.
    I am doing first in Matlab, because I am doing more a meticulous comparison between methods.
    Thanks for the attention,
    Best Regards
  • wjcroftwjcroft Mount Shasta, CA
    edited July 6
    @manuel_law, hi.

    I merged your new thread into your previous existing thread. Because you are asking essentially the same question.

    Have you looked at various Python DSP libraries?

    Your current Matlab processing is likely accumulating an array of samples into a buffer then calling Matlab DSP routines to operate on that entire array.

    Other types of DSP libraries allow you to call the filters or routines one sample (of 8 channels) at a time. And output the filtered channel data, one sample at a time.



Sign In or Register to comment.