Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1516:dem_gehirn_zuhoeren

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws1516:dem_gehirn_zuhoeren [2016/01/21 17:56]
antonlenke
ws1516:dem_gehirn_zuhoeren [2016/05/10 14:46] (aktuell)
Zeile 6: Zeile 6:
 Anton\\ Anton\\
 Severin\\ Severin\\
-Tsendy\\+Tsendy ​(seit Dezember 2015 ausgestiegen)\\
 Simone\\ Simone\\
  
Zeile 30: Zeile 30:
  
 Fouriermethode aus der Analysis ​ Fouriermethode aus der Analysis ​
 +
 +**Nützliche Links**
 +
 +[[https://​plot.ly/​ipython-notebooks/​mne-tutorial/​ | ein Tutorial für mne-Python]]
  
  
Zeile 232: Zeile 236:
   * Aus gegebenen Anlass verschieben wir die Erstellung des Filter-Moduls,​ es wird nach Fertigstellung der restichen Module eingefügt bzw. produziert, um sich komplett auf die Berrechnung der Filter konzentrieren zu können.   * Aus gegebenen Anlass verschieben wir die Erstellung des Filter-Moduls,​ es wird nach Fertigstellung der restichen Module eingefügt bzw. produziert, um sich komplett auf die Berrechnung der Filter konzentrieren zu können.
  
-====21.01.2016:​ personelle Probleme und kleine ​Fortschritte====+====21.01.2016:​ personelle Probleme und Fortschritte==== 
 + 
 +  * Da für diese Woche sowieso ein Treffen am Fr, 22.01. vorgesehen hatten und sich Simone und Severin abgemeldet hatten, gab es (bisher) keine enormen Fortschritte,​ langsam aber sicher ist die Effizienz von der Datenverarbeitung das drängendste Problem: 
 + 
 +      * HDF5-module als Alternative zu Pickle speziell für die großen Datenmengen der EEG-Daten, Implementation folgt (noch nicht in der Cloud) - die Daten müssen in kleineren Stücken zur Verarbeitung geleitet werden, auch um die massive Arbeitsspeicherauslastung zu reduzieren \\ 
 + 
 +  * das jetzige Fourier-Programm liefert anscheinend keine nach der Zeit geordnete Ergebnisse, nur über die ganze eingelesene Datei //​gemittelte Häufigkeit//​ von verschiedenen Frequenzen bzw. //zeitlich sortierte// Frequenzwerte.//​ Codeschnipsel mit Kommentaren://​ 
 + 
 +<code python > 
 +fourier = np.fft.fft(MatrixToArray(eegmatrix)) ​  # '​fftfreq'​ gibt einen Array aus den einzelnen Frequenzen geteilt durch die Samplerate 
 +freqarray = np.fft.fftfreq(MatrixToArray(eegmatrix).size) 
 +freq = [x * samplerate for x in freqarray] ​ '''​an dieser Stelle sollte das fertige array erscheinen, allerdings scheint der Code hier die Einträge chornologisch zu sortieren'''​ 
 + 
 + 
 +</​code>​ 
 + 
 +   * Erste Ansätze zur Analyse der Fourier-Frequenzen,​ Ziel: Liste/​Array,​ die pro Zeiteinheit die stärksten Frequenzen enthält näheres siehe unten! 
 + 
 + 
 +===22.01.2016:​ Nachtrag, theoretische Grundlagen der Interpretation von Fouriér-Datensätzen === 
 + 
 +Nach intensivsten Diskussionen lässt sich der weitere Projektverlauf durch folgende Punkte skizzieren:​ 
 + 
 +  - **Umbau der Softwarestruktur** von Pickle zu HDF5 in die Wege geleitet 
 +  - Planung einer **Benutzeroberfläche**,​ welche folgenden Voraussetzungen genügen muss: 
 +          * grafische Darstellungen aller verfügbaren Elektroden 
 +          * Maske zur Ansteuerung einer individuellen Auswahl an auszuwertenden Elektroden 
 +          * Zuweisung der Elektroden zu Prioritäten:​ einhergehend mit __Lautstärke__,​ während des laufenden Programms durch __Schieberegler__ beeinflussbar  
 +          * später Möglichkeit von //"​Zeitrafferaufnahmen"//​ welche entsprechende Daten zusammenfassend wiedergeben 
 +  - **komplexe Interpretation** des laufenden Datenstroms aus Importmodul:​ 
 +          * Differenzierung der verschiedenen Schwingungstypen (α,​β,​γ,​Δ -Wellen) folglich entsprechend unterschiedliche Zuweisung von Parametern 
 +          * (vorerst) Reduzierung aller Framerates auf 100 bzw. 10 fps, da eine rhtythmische Differenzierung so möglich gemacht wird. Fraglich bleibt, ob der Verlust der Genauigkeit zu gravierenden Einbußen führt; allerdings wiegt die reduzierte Arbeitsspeicherauslastung hierbei höher. 
 +          * Verarbeitung eines Frames von //einer// Elektrode:​ 
 +                 * Fourié-Trafo liefert eine/drei Frequez(en),​ welche in diesem Frame hauptsächlich enthalten sind 
 +                 * Schlüsselfrequenz läuft durch einen Analyzer, welcher ermittelt um welchen Schwingungstyp es sich handelt 
 +                 * es folgt die Vergabe und Beeinflussung der verschiedenen Parameter durch die Frequenz 
 +                 * Wie diese erfolgt gilt es noch zu klären (Gedanke: " für xyz-Frequenz tue dies..."​) 
 +           
 +==== 28.01.2016: Rückrudern,​ Benutzeroberfläche,​ Bugfixes==== 
 + 
 +Erste Versuche, die Gedanken des letzten Treffens umzusetzen hapern teilweise noch in der Umsetzung: Import-Modul muss bedingt durch die neue Datenstruktur teilweise neu aufgesetzt werden. Es wird eine frames-weise Import-Funktion eingeführt,​ die es erlaubt Ressourcen zu sparen und interessante Frames zu separieren. Leider gibt es hierbei Probleme mit den .mat Formaten, da die derzeit .scipy-basierte Importfunktion eine '​scheibchenweise'​ Importierung nich unterstützt. 
 + 
 +Festlegung der Benutzeroberfläche auf qt-Basis, für komplexe Zusammenhänge und Widgets wie Schieberegler und Buttons. 
 + 
 + 
 +====04.02.2016:​ "​pricipal component analysis",​ GUI, HDF5==== 
 + 
 +Mit Blick auf das sinnvolle Interpretieren der Fourier-Daten wendet sich Severin der PCA zu, einem Verfahren zur Strukturierung von großen Datensätzen. Somit erreichen wir auf Basis der größtmöglichen __Varianz__ zwischen den Fourier-Frequenzen,​ welche als Vektoren geführt werden, gute Möglichkeiten um hörenswerte //​Spitzenwerte zu isolieren//​. 
 + 
 +Simone befasst sich unterdessen weiter mit der Benutzeroberfläche. Der Schwerpunkt liegt hierbei auf dem individuellen Auswählen der verschiedenen Elektroden durch eine interaktive Oberfläche,​ sowie die simultane Beeinflussung der unterschiedlichen Prioritäten. Dies stellt sich allerdings als extrem aufwändig heraus, sofern man für alle 59 Elektroden genannte Funktionen bereitstellen möchte. Daher ist die Frage zu klären, wie mit diesem Problem umgegangen wird. 
 + 
 +Anton ist unterdessen mit der Errichtung der Datenbankstruktur beschäftigt. Nähere Details hierbei werden folgen. 
 + 
 +====11.02.2016:​ spontane Fourié-Rettung==== 
 + 
 +Leider kam es zu einigen terminlichen Komplikationen,​ sodass nur Severin kurz zum Laborblock kommen konnte. 
 +In dieser Zeit gelang es ihm gemeinsam mit Stefan das Problem der **sortierten Fourier-Listen** zu beheben. 
 +Hierbei stiegen wir von der ursprünglich //​numpy//​-basierter FastFourierTransformation um auf folgende, von //scipy// gestellter Funktion: 
 + 
 +<​code/​python>​  
 +from scipy.signal import spectrogram 
 +freq,​_,​fourier = spectrogram(eegmatrix[0,:​],​nperseg=64,​ fs=samplerate)</​code>​
  
-  * Da für diese Woche sowieso ein Treffen am Fr, 22.01. vorgesehen hatten und sich Simone und Severin abgemeldet hatten, gab es keine enormen Fortschritte,​ langsam aber sicher ist die Effizienz von der Datenverarbeitung das drängendste Problem: +Entsprechender Code liefert nun die Ergebnisse ​der Fourié ​Trafo in einer Matrix und lässt zusätzlich ​die Möglichkeit offendiese scheibchenweise weiterzugeben.
-   * HDF5-module als Alternative zu Pickle speziell für die großen Datenmengen der EEG-Daten, Implementation folgt (noch nicht in der Cloud) - die Daten müssen in kleineren Stücken zur Verarbeitung geleitet werdenauch um die Arbeitsspeicherauslastung ein wenig zu drücken.  +
-   * Weiteres Problem: das jetzige Fourier-Programm liefert anscheinend noch keine nach der Zeit geordnete Ergebnisse, nur über die ganze eingelesene Datei gemittelte Häufigkeit von verschiedenen Frequenzen. +
-   * Erste Ansätze zur Analyse der Fourier-Frequenzen. Ziel: Liste/​Array,​ die pro Zeiteinheit die stärksten Frequenzen enthält.+
  
ws1516/dem_gehirn_zuhoeren.1453395361.txt.gz · Zuletzt geändert: 2016/05/10 14:46 (Externe Bearbeitung)