SSVEP or patterns evoking EEG response

edited April 2015 in Research
Hello,
I heard of this project some time ago and got immediately intersted, it is a very good idea that will open opportunities to new amateur (regular people, like me) researchers to get in this awesome field of study.
Because of my lack of knowledge in neuroscience and insufficient founds to get an OpenBCI board I post in this forum with the hope to get some ideas clarified.

Let's say i have 2 objects or drawings :
image
As the OpenBCI has 8 channels i will get 8 different brain-wave signals, is that correct?, now what i would like to know is:
If i look at the object "A", will i get a unique brain-waves pattern?, and if i look at the object "B" there will be another unique one? or are the brain-waves
unpredictable and each time you look at an object they will be different? or remain the same?.

Is it possible to say?: You are looking at object "A". Based on brain-waves pattern?

Thank you very much for your time and good luck to project owners and collaborators.

Regards
MarcosMC

«1

Comments

  • wjcroftwjcroft Mount Shasta, CA
    Marcos, what you are considering is a very tough data analysis task.  The 8 channels / data streams from the OpenBCI, are just RAW EEG.  Most groups that use BCI to measure the brain's visual processing -- are doing far simpler recognition tasks. 

    https://en.wikipedia.org/wiki/Brain–computer_interface#BCI_Control_Strategies_in_Neurogaming

    For an example of SSVEP, see Chip's blog post

    http://eeghacker.blogspot.com/2014/06/controlling-hex-bug-with-my-brain-waves.html

    Here's a paper that kind of hints at what you are talking about.

    http://research.microsoft.com/pubs/64264/cvpr2008-bciandvision.pdf

    Regards,

    William



  • Hello Marcos,

    To follow up on William's excellent reply, you will likely need to add a couple of features to your test setup to make it easier to detect whether the human is looking at "A" or whether he is looking at "B".

    For example, William pointed to my post on SSVEP ("steady-state visual evoked potential).  The key with SSVEP is that it exploits the fact that the brainwaves in your visual cortex become entrained (they synchronize with) blinking lights.  So, for your "A" vs "B" detection test, you could exploit SSVEP to determine where the human is looking.

    Specifically, if you make "A" blink at 6 Hz and you make "B" blink at 8 Hz, you now have a relatively easy method of determining where the human is looking (though generating *steady* blink rates on a computer is actually a bit tough).  You simply look at the EEG signal from the back of the head (where the visual cortex is) and look for any 6 Hz signal vs any 8 Hz signal.  If you see any 6 Hz, you know that the human is looking at "A".  Conversely, if you see any 8 Hz signal, you know that the human is looking at "B".  In principle, it's easy!

    if you give it a try, be sure to share with us what you've done!  You'll likely find lots of little challenges, and it would be great to share your solutions.

    Thanks for your interest!

    Chip
  • Thank you very much for your kind replies, they helped me a lot!, I will continue investigating more about the subject until i can get an OpenBCI Board.

    Regards
    Marcos MC
  • Hi!  I am part of a research team currently preparing to investigate the effects of a new mind-altering product on the brain.  Without going into a lot of detail for the moment . . . the question I have for one who knows is this:  is it possible to use EEG to measure brain-wave frequencies at the same time that you are flashing an extremely bright light into the subjects eyes? I mean, beyond the question of artifacts produced by the brightness of the light, will it be possible to distinguish the brain-wave frequencies from the same frequencies of flashiing light?  Will the EEG pick up the frequencies of the light itself at all?  We want to determine whether the light does indeed entrain the brain to its frequencies.  Can anyone answer this question?  Yes, we are considering using OpenBCI for our research.
  • wjcroftwjcroft Mount Shasta, CA
    @Larry,

    I moved your question to this thread. See the earlier links where Chip works with SSVEP. It's very close to what you are referring to.

    William

  • nekrodezynfekatornekrodezynfekator Poznan, Poland
    edited April 2015
    Has anyone had any experience in SSVEP stimulators projects? Do you think the Aruduino is a good device to produce SSVEP stimuli in 10-50 Hz range? I tried to do that but I think that I can't produce steady state frequency. What is an acceptable oscillation? Osculation is acceptable?
  • wjcroftwjcroft Mount Shasta, CA
    edited April 2015
    Nekro, hi.

    I merged your question into this existing thread covering SSVEP. See @chipaudette 's blog post link above (and copied here),

    http://eeghacker.blogspot.com/2014/06/controlling-hex-bug-with-my-brain-waves.html

    Chip used his program to flash an area of the screen at the SSVEP rate desired. Here is another SSVEP project using checkerboard patterns at the 4 corners of the laptop screen. This BCI engineering work was done by Joel Eaton; equipment sponsored by g.tec.  Jeremy @jfrey uses both our OpenBCI equipment and the g.tec in his research.



    It would appear that doing this on your laptop would provide more versatility than trying to use discrete LEDs connected to an Arduino.

    However, checkout Joel Eaton's arrays of 8 SSVEP matrices, http://joeleaton.co.uk/project/joybeat/

    William

  • Hi, 

    That's my blog post that William linked to.  While I was able to get the flashing to work on my laptop, the same movie would not blink steadily on my other laptop.  It was very frustrating.  So, I think that it would be great if you could get it to work with an Arduino.  It should definitely be able to blinks steadily enough.  To me, the question is whether you can get enough LEDs together to be a bright enough or physically large enough visual stimulation to evoke SSVEP.  If you give it a try, be sure to post your resultsback here!

    If you want help getting an Arduino to blink, @biomurph (ie, Joel of OpenBCI) did a lot of the work already.  Check out his tutorial at:


    Chip
  • To partly address my own question above -- how big an area do the LEDs need to cover to evoke the SSVEP response -- I just watched a video posted by @wjcroft on a different thread.  That thread was on BCI for musical applications.  In the video, the subject used SSVEP to control music.  He used arrays of LEDs.  They were bigger than just one LED, but they weren't ridiculously big...


    Chip
  • biomurphbiomurph Brooklyn, NY
    I put up a tutorial on how to get the OpenBCI board to flash LEDs at different frequencies.
    In the example, I'm using the EEG sampling rate to time my LED flashing frequencies. 

    Hope that helps!
  • > To me, the question is whether you can get enough LEDs together to be a bright enough or physically large enough visual stimulation to evoke SSVEP.

    You can get really powerful LEDs nowdays.  Easily powerful enough to temporarily blind you, and far past what would be physically comfortable.

    You can search ebay for "cree led".  You'll find plenty of blindingly bright LEDs for around a buck or two each.
  • biomurphbiomurph Brooklyn, NY
    The LEDs could also be replaced with some other light device.
    Doesn't have to be LED. That's just the example.
  • Hi,

    Yes, you can use a single LED to elicit SSVEP response, it just needs to be bright enough (although it doesn't have to be crazy bright) and the flashing frequency accurate.

    Someone has written about it here:
    Mouli, S., et al. (2015). A configurable, inexpensive, portable, multi-channel, multi-frequency, multi-chromatic RGB LED system for SSVEP stimulation. Brain-Computer Interfaces
    Current Trends and Applications. A. Hassanien and A. Azar, Springer.

    It might be useful to test with frosted LEDs too, which are easier on the eye. With the LED arrays in the video Chip mentions I tested them with glass plates of various levels of frosting over the top. As expected increasing the frosting blurs the flashing so response power decreases, but it's much easier on the eye. I chose the LED arrays as brightness and colour can be changed to suit the user, and when using a lot of stimuli (8 or 12 channels) I didn't want the user to be moving their head too much to get closer to the lights as it generates noise.

    Another solution is to use flashing icons on a computer monitor, but you need a decent graphics card to get accurate flashing rates.
  • wjcroftwjcroft Mount Shasta, CA
    edited April 2015
    Hey Joel @j_loe , thanks so much for joining the forum.

    Folks, Joel is the UK music BCI wizard mentioned on this post with some of his videos, UK conference workshop (June 2015), BMCI textbook, etc. If you have not seen that BMCI string quartet video, it's amazing.

    William


  • nekrodezynfekatornekrodezynfekator Poznan, Poland
    edited May 2015
    I have prepared a photostimulator:


    I have connected bias electrode to my left earlobe, srb2 to my right earlobe and 3 electrodes approximately in occipital area.
    I have recorded data for 20Hz, 30Hz and 40Hz signal generated by arduino. In matlab I have generated spectrogram (and amplitude-frequency plot) but I haven't seen anything. What I'm doing wrong?
  • wjcroftwjcroft Mount Shasta, CA
    Nek, hi. What do you see with OpenBCI_GUI FFT plot as you sweep the SSVEP slowly from 10 Hz upward? Any evidence of a small peak in the FFT that follows your driving frequency? Does your eye to LED board distance have any influence? Can you dim the ambient lighting in the room? Etc.

    William
  • nekrodezynfekatornekrodezynfekator Poznan, Poland
    I've connected three electrodes approximately in my occipital area and then I've checked my alpha waves. This is the spectrogram from the electrode with the strongest response:

    In the next step I've  prepared:

    Each electrode has 50 cd.
    In the last step I've checked my response for 10Hz:

    The distance between my eyes and the board was ~40cm. The room was completely dark. I think that the response is too weak. Am I wrong? Maybe there is a problem with my arduino code?
  • wjcroftwjcroft Mount Shasta, CA
    Nek, nice work. The first link with the alpha waves look reasonable.

    Here's the point I was trying to make on May 9 post: it looks to me (from your graphs) like you are doing your data collection at one stage, then offline data analysis and graphing. Is that correct?

    Have you considered running a program that can do realtime FFT, such as OpenBCI_GUI or BrainBay or even OpenViBE? With a realtime monitoring capability, you could make adjustments IN REALTIME, such as the flash rate, or changing your eyeball -> LED distance, etc. THEN watch the FFT or spectrogram reflect the result. For an example of spectrogram using BrainBay, see that thread and the tutorial.

    There might be some adjustment in parameters that you are missing, because you lack realtime feedback.

    I'll mention Chip @chipaudette on this thread again, in case he might have some comments. He's our expert on SSVEP.

    William

  • wjcroftwjcroft Mount Shasta, CA
    I forgot to comment, what are the noise pulses coming in at about 1 second intervals on your first link? Those should not be there. Actually your 3rd link shows the same noise in the spectrogram there. This noise will make it very hard for you to get a decent signal to noise ratio for detection of the peaks in the FFT.

    What software are you using to collect your EEG before analysis? How does that compare with what you see with OpenBCI_GUI? With the same electrode setup.

  • edited May 2015
    Hi Nekro and William,

    Just to piggyback on this thread I found that Arduino clocking speeds were actually slightly out of what's expected (in all 5 Arduino boards I tested!), with regards to using them to flicker LEDs (I'm assuming this is what you're doing, I haven't looked at your code). So just to reiterate William's point of testing in real-time then you can try adjusting your filters on-the-fly to see if response is stronger slightly higher or below what you are expecting.

    J
  • nekrodezynfekatornekrodezynfekator Poznan, Poland
    This is my yesterday's result (one electrode connected):
    https://drive.google.com/file/d/0BwCCA0mNmuFJbV9RVDhjVEZ2Y0E/view?usp=sharing
    I thinik this is a great result.
    But today I've tried with 6 electrodes:
    and spectrogram from all electrodes looks like (alpha state? why?):

    I've no idea what I'm doing wrong.
  • wjcroftwjcroft Mount Shasta, CA
    Nek, great, looks like your first image shows solid SSVEP in each band you tried.

    What is your 3rd image showing, how are you presenting 6 electrodes on a single spectrogram? Are you adding the signals?

    In that case the activity might tend to average out, leaving only the strongest signal. Look at each site individually filtered, then perhaps weighted before combined. I don't think you need more than one or two sites to do SSVEP in an initial fashion.

    Again, congratulations!

  • nekrodezynfekatornekrodezynfekator Poznan, Poland
    edited May 2015
    No, this is spectrogram from a single electrode. I decided to show one spectrogram because all (from all 6 electrodes) look similar. 
    I think that I have a problem because my measurements are not repetitive.
  • nekrodezynfekatornekrodezynfekator Poznan, Poland
    https://drive.google.com/file/d/0BwCCA0mNmuFJa0c4MXJYaW9PYmc/view?usp=sharing

    Today I tried the next attempt. And again still nothing. It should be possible to see 4 stimuli: 10 seconds for 10,20,30 and 40 Hz. I think that I have tried everything. Any suggestions? Maybe I should buy new Ten20 gel?
  • wjcroftwjcroft Mount Shasta, CA
    Nek, well interesting / frustrating.

    A few times I've suggested using OpenBCI_GUI or Brainbay to look at your signals on the FFT or Spectrograms. So you can try making adjustments in real time. That is, change something and see the effect immediately. That's very important for locating any trouble areas. Did you ever do that? Does the SSVEP frequency show up in the FFTs as you move it up and down, etc.

    Most of the spectrograms you've shown here look fairly noisy. A lot of 'snow'. And we can't see what your calibration scale is, in terms of color vs. microvolts. This is all more obvious on an FFT graph. Frequency vs. Amplitude in uV.

    Keep experimenting.
  • nekrodezynfekatornekrodezynfekator Poznan, Poland
    I'm always checking FFT in OpenBCI_GUI. When I recorded:

    then I obviously saw a response in OpenBCI_GUI "FFT window", but never again. When I see a response in OpenBCI_GUI FFT window I also see it in the spectrogram in Matlab. When I don't see that response in OpenBCI_GUI FFT window I also don't see it in Matlab. This are screenshots from yesterday sesions:

    while 20Hz stimulation:
    while 30Hz stimulation:
    while 40Hz stimulation:

    It is very weird. Did I understand correctly that this is what you mean?
  • wjcroftwjcroft Mount Shasta, CA
    What I don't understand is how you could have gotten such clear results in one of the spectrograms (1st one in post above), and never again. Is it possible you might have intermittent / flakey electrode connections? What was your electrode placement when you got the good result? I'm sure you've tried duplicating that.

    However, also consider moving the reference (SRB2) site around, if that results in more microvolts of your SSVEP. For example, you might try reference at Cz or Fpz for example. Active electrode at Oz, Etc.

    I think I recall on one of @j_loe 's SSVEP videos, that he used a forward reference site as well. Take a look at this paper which shows their experiments trying to find the best reference site for SSVEP.

    http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0104248

    From one of the head maps shown there, it looked like somewhere around Pz produced optimal SSVEP amplitude. But I think can vary with subjects. The Fpz site also showed some coloring (yellow), indicating it had some potential.


  • nekrodezynfekatornekrodezynfekator Poznan, Poland
    edited June 2015
    I observed sth strange. Every 2 seconds signal amplitude was increasing in all channels (it isn't blink):

    channels 1-4 opptical area
    channel 5 forehead
    channel 6 wrist

    In second part of my investigation I removed channel 6:

    Video:

    What's going on? My OpenBCI is broken?

    I've checked another person:

    and there is the same problem. Help!

  • wjcroftwjcroft Mount Shasta, CA
    These look like some kind of noise pulses, possibly generated by equipment in the area generating EMI fields. Can you try your tests in another room or location that might be distant from the noise source? If you look at your very first spectrum (copied below), there are noise pulses present there as well. So this looks like an ongoing issue. I assume your Bias / Ground connection to the subject is solid. And that the subject is not near any cables or conduits that might be radiating EMI fields.

    [from your May 11 post, first item]


  • royianroyian Colombo
    edited July 2015
    Hi all,

    I am working on a SSVEP project and i want to develop a system to analyse EEG signals taken from the OpenBCI board. i am expecting to use some algorithms such as FFT algorithms to process the EEG signal. but i could not find a way to get data from the OpenBI board directly to use my algorithms. can some one please help to find out a way to connet the OpenBCI board with my code without or with the use of the software interface given by the OpenBCI.

    Thanks in advance. 
Sign In or Register to comment.