Machine Learning Group


|

Project: EEG and ECG

To Do

g.Tec

Basics

1. python functions to control g.Tec system: connect via bluetooth, start, stop, read data, such as

gtec = GTec(sampleRate)
gtec.start()
data = gtec.get()
 . . .
gtec.stop()

2. monitor app in python, stripchart of EEG with buttons to start, stop, scale

gtec.monitor()

3. data structure for EEG data

eeg["math"] = (eegMatrixTrial1, eegMatrixTrial2, ...)

4. time-embedding

eegEmbedded = timeEmbed(eeg,nLags)

5. partition data

(trainPart, validatePart, testPart) = partitionEEG(eeg, 
            specify trials per task for train, validate, and test)

6. logistic regression to classify time-embedded data

classifier = LinearLR(trainPart)

7. BCI GUI for recording data from multiple tasks, classify, then apply classifier in real-time to new data. Display class probs as bar chart.

I expect the g.Tec will provide much better signals than our Mindset. It is only 8 channels, but this may be enough for accurate BCI.

System comparison paper

We have data from our Mindset and from OT's Biosemi with subjects doing P300 task, and several mental tasks. Once we have some g.Tec data, we can compare signals from all three in terms of

  1. spectrogram
  2. CWT
  3. correlations between channels
  4. PCA
  5. classification performance

Resources

EEG

ECG

Bluetooth

The Haptic Guide Blog, example python code using python-bluez.

Recent BCI Pubs and Videos

Mobile and Wireless BCI with Dry Electrodes from Swartz Center for Computational Neuroscience, UCSD.

g.tec g.SAHARA Dry Electrode System

Journal of Neural Engineering special issue containing contributions from the Fourth International Brain–Computer Interface Meeting, including our lab.