large millivolt data values / FbEEG Full Band EEG
Dear all,
Comparison of two picures demonstrated that Alpha wave had been detected. So, I thought that experimental setup was fine.
However, I got raw data as the attached picure (Third column). What's problem? They were minus values all time. (Sample values ranged from -27407 to -27504 microvolts. About a hundred microvolt range, but with a -27400 constant offset.) Any suggestion, please?
Comments
The offsets can just as easily be positive as negative. They slowly vary over time. One term for this is Slow Cortical Potentials, researched by Birbaumer. Cycle time for these slow potentials is on the order of .1 hz down to .001 hz. In other words, DC offset shifts can occur over many tens of seconds, minutes. Your high pass filter will remove all of this.
https://www.google.com/search?q=birbaumer+slow+cortical
http://media.wix.com/ugd/cba323_fdd03c418d2348f59879f475b82439ee.pdf
Excellent Fall 2013 review issue of ISNR Neuroconnections, "What's happening below 0.5 Hz?"
http://www.brainmaster.com/kb/entry/296/
William
PS one other suggestion: as you can see from the graphs generated by Chip's Processing GUI -- that code already has the high pass filtering built in. So you could modify the code such that the filtered values are written to the file, instead of the raw values as currently. However it's likely you are going to be doing other signal processing operations at some point in the pipeline, so wherever you decide to place your filtering code is up to you.
Thank you very much for good explaination.
I will try to implement DC filter on matlab using this raw data. Thank you for good reference.
P.S. Actually, I had learned to modify built-in filtered already. I would like to make sure that I can see P300 wave using OpenBCi, so that why I start with raw data at this moment. Next step will be something like your suggestion!
Thank you !!!
Thanks much,
Kevin
https://www.researchgate.net/publication/8139205_Full-band_EEG_FbEEG_An_emerging_standard_in_electroencephalography
---
Sampsa Vanhatalo, Juha Voipio, Kai Kaila
Abstract
While enormous resources have been recently invested into the development of a variety of neuroimaging techniques, the bandwidth of the clinical EEG, originally set by trivial technical limitations, has remained practically unaltered for over 50 years. An increasing amount of evidence shows that salient EEG signals are observed beyond the bandwidth of the routine clinical EEG, which is typically around 0.5–50 Hz. Physiological and pathological EEG activity ranges at least from 0.01 Hz to several hundred Hz, as demonstrated in recordings of spontaneous activity in the immature human brain, as well as during epileptic seizures, or various kinds of cognitive tasks and states in the adult brain. In the present paper, we will review several arguments leading to the conclusion that elimination of the lower (infraslow) or higher (ultrafast) bands of the EEG frequency spectrum in routine EEG leads to situations where salient and physiologically meaningful features of brain activity are ignored. Recording the full, physiologically relevant range of frequencies is readily attained with commercially available direct-current (DC) coupled amplifiers, which have a wide dynamic range and a high sampling rate. Such amplifiers, combined with appropriate DC-stable electrode–skin interface, provide a genuine full-band EEG (FbEEG). FbEEG is mandatory for a faithful, non-distorted and non-attenuated recording, and it does not have trade-offs that would favor any frequency band at the expense of another. With the currently available electrode, amplifier and data acquisition technology, FbEEG is likely to become the standard approach for a wide range of applications in both basic science and in the clinic.
When using the provided processing GUI, I see a wonderful nice picture. However, when I try to graph the data saved on the text file using python, i see something completely different. I think it's clear I'm interpreting the values incorrectly, but I dont understand what to do to fix that. Help??
https://www.google.com/search?q=python+dsp+numpy
Also Chip's later EEGHacker posts used Python, source code on his Github,
http://eeghacker.blogspot.com/
https://github.com/chipaudette/EEGHacker
William
https://docs.openbci.com/Cyton/CytonSDK/
Another idea would be perhaps a mod to the GUI program itself to have a CSV: RAW vs FILTERED switch or button. In RAW the output would be as it currently is. In FILTERED, the CSV would reflect what filtering has been selected on the GUI configuration. However the downside of adding more complexity to the GUI, is that it is intended to be easy to use and fairly simple to operate.
Most applications that consume the data from the OpenBCI are interested in the raw stream, since that gives you full control of the DSP you want. Saving data that has been DSP filtered once, and applying subsequent filters or DSP operations, would result in loss of information and reduced resolution.
William
Hi there,
I am plotting the raw data out from the cyton board w/o adding any filter.
Why the voltage will keep increasing over time? Is that due to the board? Thx
@qijia, hi.
I merged your new thread, into this existing thread on the same subject. Please see previous comments. Normally a bandpass or highpass is applied to the data from Cyton. This is what the OpenBCI_GUI is doing. Conventional EEG is typically between .5 Hz and 45 Hz. With a notch filter at your mains frequency.
https://brainflow.readthedocs.io/en/stable/Examples.html#python-signal-filtering
William