data visualization of GUI output CSV file, how to process?

edited January 2015 in Software
Hi, I've been working with the OpenBCI for a project in the university, is basically a project of data visualization, and for that i need to use the data that i get from the brain scans.
The problem is that the data that i see on the Interphase of OpenBCI and the data that is writen into the .txt files is not consistent, because in the Interface i see variable data getting readed from every electrode, but on the .txt file, it's pretty much the same for every electrode even in different situations. So, I don't know if i'm using the data in the wrong way (the files had 12 rows, i'm just using the rows 2,3,4,5,6,7,8,9 because i suppouse that they're the ones with the electrodes data) or if i have to process that data.
I'm an Industrial Design Student, so, even when i know something about programing, i'm not a pro, so, i've been looking at the code of the OpenBCI software but i can't understand what's the problem.
I'm attaching some images of 3 different situations that i'm trying to visualize, i can see on the interface that every situation is different, but in the .txt are pretty muh the same.
Thanks for any help that i can get.

Situation 1
imageimage

Situation 2
image

Situation 3
image

Comments

  • wjcroftwjcroft Mount Shasta, CA
    J, hi.

    Can you explain your visualization algorithm in some more detail. Your pictures do look cool. :-)

    You probably want to do some DSP "digital signal processing" on the data streams, and then take the values produced by that to drive your graphics.

    First thing you always need to do is to remove the DC offset with a high pass filter,

    http://openbci.com/forum/index.php?p=/discussion/201/large-millivolt-data-values-dc-offset

    Then a common first metric is to measure the RMS amplitude (in microvolts) of the raw signal. Or filter it in bands such as 8-12 hz for the alpha band, which also has an amplitude. These various derived scalar values can then drive your graphics generation.

    One way you can quickly get a feel for what these different filtering processes look like is to play with the Brainbay program,

    http://openbci.com/forum/index.php?p=/discussion/90/brainbay-install-test

    William
  • wjcroftwjcroft Mount Shasta, CA
    Also mention what language you are using, then you can search for DSP libraries for that environment,

    https://www.google.com/search?q=DSP+library

    These libraries are passed each individual 250 sample per second data stream, and then derive either a "processed" output stream (such as filtered for alpha), or derive metrics such as amplitude. Or even frequency, such as a function that tells you the peak frequency in a given band. FFTs, etc. are also usually available.
  • I'm using Processing, what i'm doing basically is using every line as a source code for every electrode (now i realised that is not like that :P ).
    The idea of the project is to show how is our brain working according to different emotions (happy, sad, scared, etc), and use those parameters to create art :).
    Thanks for the info, i'm gonna read to fix the problem :)
  • wjcroftwjcroft Mount Shasta, CA
    JC, hi again.

    You want to take the separate columns from the CSV file and treat each of those as an independent data stream at 250 samp/sec. The individual data streams are then run thru the DSP library routines which take a stream as input and produce a stream as output. This is called a filtering operation.

    I was also realizing, EEG data stream signal processing is not that much different that say audio signal processing. So you might find some example sketches in that domain:

    https://www.google.com/search?q=processing+sketch+audio

    On his blog, Chip has some posts where he converts the EEG stream into a WAV file, an audio stream.

    http://eeghacker.blogspot.com/2014/05/eeg-as-wav-files-go-spectrograms.html

    William

Sign In or Register to comment.