
Laboratorium EEG/CSP: Różnice pomiędzy wersjami
Z Brain-wiki
(Nie pokazano 33 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 4: | Linia 4: | ||
[https://brain.fuw.edu.pl/edu/images/2/2f/BSS.pdf slajdy z prezentacji] | [https://brain.fuw.edu.pl/edu/images/2/2f/BSS.pdf slajdy z prezentacji] | ||
− | =Ślepa separacja źródeł= | + | =Ślepa separacja źródeł (BSS)= |
+ | {{hidden begin|title=Wstęp teoretyczny do BSS}} | ||
Rozważmy ''N''-kanałowy sygnał EEG. | Rozważmy ''N''-kanałowy sygnał EEG. | ||
Próbkę tego sygnału możemy przedstawić jako punkt w przestrzeni rozpiętej przez osie, z których każda reprezentuje wartość potencjału w jednym kanale. Cały sygnał tworzy w tej przestrzeni chmurę punktów. Rozciągłość tej chmury w danym kierunku mówi nam o wariancji (zmienności) sygnału w tym kierunku. | Próbkę tego sygnału możemy przedstawić jako punkt w przestrzeni rozpiętej przez osie, z których każda reprezentuje wartość potencjału w jednym kanale. Cały sygnał tworzy w tej przestrzeni chmurę punktów. Rozciągłość tej chmury w danym kierunku mówi nam o wariancji (zmienności) sygnału w tym kierunku. | ||
Linia 57: | Linia 58: | ||
Aby znaleźć <math> \lambda</math> i <math>w</math> możemy wykorzystać w Matlabie funkcję <tt>eig</tt>. Funkcja ta rozwiązuje (również) uogólnione zagadnienia własne postaci ''Aw''=λ''Bw'' dostarczając w wyniku macierz wektorów własnych (w kolumnach) oraz macierz zawierającą na przekątnej odpowiadające im wartości własne. | Aby znaleźć <math> \lambda</math> i <math>w</math> możemy wykorzystać w Matlabie funkcję <tt>eig</tt>. Funkcja ta rozwiązuje (również) uogólnione zagadnienia własne postaci ''Aw''=λ''Bw'' dostarczając w wyniku macierz wektorów własnych (w kolumnach) oraz macierz zawierającą na przekątnej odpowiadające im wartości własne. | ||
+ | {{hidden end}} | ||
<!-- | <!-- | ||
Linia 90: | Linia 92: | ||
--> | --> | ||
− | ===Ćwiczenie symulacyjne === | + | ====Ćwiczenie symulacyjne ==== |
{{hidden begin|title=kod przykładowy}} | {{hidden begin|title=kod przykładowy}} | ||
<source lang = matlab> | <source lang = matlab> | ||
Linia 238: | Linia 240: | ||
==Zastosowanie filtra CSP do detekcji potencjału P300== | ==Zastosowanie filtra CSP do detekcji potencjału P300== | ||
+ | {{hidden begin|title=Eksperyment}} | ||
===Eksperyment=== | ===Eksperyment=== | ||
* Proszę zapoznać się z instrukcją: http://laboratorium-eeg.braintech.pl/rozdz10.html | * Proszę zapoznać się z instrukcją: http://laboratorium-eeg.braintech.pl/rozdz10.html | ||
Linia 284: | Linia 287: | ||
# Danych z kalibracji potrzebować będziemy kilka zestawów. Proszę powtórzyć kilkukrotnie scenariusz „kalibracjaP300”. Przed każdym uruchomieniem trzeba zmienić string w pliku <tt>file_id_name</tt> np. na <tt>test???</tt> gdzie <tt>???</tt> oznacza kolejne numery. | # Danych z kalibracji potrzebować będziemy kilka zestawów. Proszę powtórzyć kilkukrotnie scenariusz „kalibracjaP300”. Przed każdym uruchomieniem trzeba zmienić string w pliku <tt>file_id_name</tt> np. na <tt>test???</tt> gdzie <tt>???</tt> oznacza kolejne numery. | ||
--> | --> | ||
− | + | {{hidden end}} | |
===Analiza wstępna=== | ===Analiza wstępna=== | ||
Poszczególne etapy analizy proszę kodować w osobnych funkcjach. Funkcje te powinny być wywoływane z nadrzędnego skryptu, który powinien umożliwic wykoanie całości analiz. | Poszczególne etapy analizy proszę kodować w osobnych funkcjach. Funkcje te powinny być wywoływane z nadrzędnego skryptu, który powinien umożliwic wykoanie całości analiz. | ||
* Wczytać dane kalibracyjne do Matlaba i pociąć je na realizacje typu T — „target” (związane z wystąpieniami litery „B”) i NT — „non-target” (pozostałe litery) o długości −200 do +800 ms wokół triggerów. Dla każdej realizacji odjąć trend liniowy. | * Wczytać dane kalibracyjne do Matlaba i pociąć je na realizacje typu T — „target” (związane z wystąpieniami litery „B”) i NT — „non-target” (pozostałe litery) o długości −200 do +800 ms wokół triggerów. Dla każdej realizacji odjąć trend liniowy. | ||
− | * Sygnał zmontować wzgl. „połączonych uszu” i wyświetlić średnie przebiegi dla warunku T i NT w układzie topograficznym — wykorzystać w tym celu | + | * Sygnał zmontować wzgl. „połączonych uszu” i wyświetlić średnie przebiegi dla warunku T i NT w układzie topograficznym — można wykorzystać w tym celu poniższy fragment kodu. |
+ | {{hidden begin|title= fragment kodu do rysowania dwóch ERPów -- zamiast funkcji plottopo}} | ||
+ | <source lang = matlab> | ||
+ | %% stworzenie osi | ||
+ | % zakładam, że dane do rysowania są w dwóch strukturach EEG1 i EEG2 (struktury eeglab), | ||
+ | % te dane są podzielone na realizacje i mają kształt (kanały , czas, epoki) | ||
+ | % i że mamy już załadowane położenia elektrod we współrzędnych | ||
+ | % biegunowych | ||
+ | w = 0.125; | ||
+ | h = 0.125; | ||
+ | sc = 0.8; | ||
+ | figure() | ||
+ | for chanNum = 1:length(EEG1.chanlocs) | ||
+ | r =EEG1.chanlocs(chanNum).radius; | ||
+ | theta = EEG1.chanlocs(chanNum).theta; | ||
+ | x = r* sin(theta/180*pi)*sc+0.46; | ||
+ | y = r* cos(theta/180*pi)*sc+0.46; | ||
+ | ax(chanNum) = axes('Position', [x, y, w, h]); | ||
+ | end | ||
+ | %%uśredniam EEG po powtórzeniach aby otrzymać ERP | ||
+ | ERP1 =squeeze( mean( EEG1.data,3)) ; | ||
+ | ERP2 =squeeze( mean( EEG2.data,3)) ; | ||
+ | %% rysowanie uśrednionych potencjałów z dwóch struktur EEG | ||
+ | for chanNum = 1:length(EEG1.chanlocs) | ||
+ | hold(ax(chanNum),'on'); | ||
+ | plot(ax(chanNum), EEG1.times, ERP1(chanNum ,:)); | ||
+ | plot(ax(chanNum), EEG2.times, ERP2(chanNum ,:)); | ||
+ | title(ax(chanNum),EEG1.chanlocs(chanNum).labels ); | ||
+ | hold(ax(chanNum),'off'); | ||
+ | end | ||
+ | </source> | ||
+ | {{hidden end}} | ||
− | Poniżej zaprezentowany jest przykładowy skrypt do cięcia danych wokół znaczników. Działa on z plikami zawartymi w archiwum: | + | <small>Poniżej zaprezentowany jest przykładowy skrypt do cięcia danych wokół znaczników. Działa on z plikami zawartymi w archiwum: |
: [[Plik:KalibracjaP300.tar.gz]] | : [[Plik:KalibracjaP300.tar.gz]] | ||
Korzysta z funkcji pomocniczych dostępnych w dystrybucji obci w katalogu | Korzysta z funkcji pomocniczych dostępnych w dystrybucji obci w katalogu | ||
: /usr/share/openbci/analysis/matlab_obci_signal_processing | : /usr/share/openbci/analysis/matlab_obci_signal_processing | ||
− | Openbci można pobrać z https://github.com/BrainTech/openbci | + | Openbci można pobrać z https://github.com/BrainTech/openbci</small> |
{{hidden begin|title=przykładowy skrypt}} | {{hidden begin|title=przykładowy skrypt}} | ||
Linia 387: | Linia 421: | ||
{{hidden end}} | {{hidden end}} | ||
− | ===Analiza CSP=== | + | ===ZADANIE: Analiza CSP=== |
− | + | ||
+ | Przegląd badań o P300: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2715154/ | ||
− | * | + | Link do Read menager [https://drive.google.com/file/d/1OgOduK5Zn7GgNl5XdCyLWXHJ7wTJIWcC/view?usp=share_link] |
+ | <!--- | ||
+ | [https://drive.google.com/open?id=0BzwQ_Lscn8yDS3RXNWdBbkxEQ2c] | ||
+ | ---> | ||
+ | * Wykonać analizę CSP wzmacniającą potencjał P300. | ||
* Zaprezentować średnią ze wszystkich kanałów źródłowych z warunku target (jeden kolor) i non-target (inny kolor) w subplotach ułożonych w prostokątnej siatce. Zaobserwować dla którego kanału średnie różnią się najbardziej. Czy jest związek tego kanału z wartościami własnymi? | * Zaprezentować średnią ze wszystkich kanałów źródłowych z warunku target (jeden kolor) i non-target (inny kolor) w subplotach ułożonych w prostokątnej siatce. Zaobserwować dla którego kanału średnie różnią się najbardziej. Czy jest związek tego kanału z wartościami własnymi? | ||
Linia 396: | Linia 435: | ||
** filtrowi przestrzennemu | ** filtrowi przestrzennemu | ||
** rzutu topograficznego źródła na elektrody. | ** rzutu topograficznego źródła na elektrody. | ||
+ | <!--- | ||
+ | * Zbadać powtarzalność topografii pomiędzy plikami konfiguracyjnymi. | ||
+ | ---> | ||
− | + | {{hidden begin|title=Wybór i separacja cech}} | |
===Wybór i separacja cech=== | ===Wybór i separacja cech=== | ||
Linia 407: | Linia 449: | ||
** i sumujemy je w wybranym zakresie czasu. | ** i sumujemy je w wybranym zakresie czasu. | ||
* Zaobserwuj jak zmienia się separacja w grupach target i non-target. | * Zaobserwuj jak zmienia się separacja w grupach target i non-target. | ||
+ | {{hidden end}} | ||
==Filtry przestrzenne dla SSEP == | ==Filtry przestrzenne dla SSEP == | ||
− | + | {{hidden begin|title=Filtry przestrzenne dla SSEP}} | |
=== Teoria=== | === Teoria=== | ||
Ciekawa koncepcja filtra przestrzennego dla SSVEP zaprezentowana jest tu: http://www.eurasip.org/Proceedings/Eusipco/Eusipco2009/contents/papers/1569193209.pdf | Ciekawa koncepcja filtra przestrzennego dla SSVEP zaprezentowana jest tu: http://www.eurasip.org/Proceedings/Eusipco/Eusipco2009/contents/papers/1569193209.pdf | ||
Linia 503: | Linia 546: | ||
− | ====Analiza danych z eksperymentu własnego ==== | + | ====ZADANIE: Analiza danych z eksperymentu własnego ==== |
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury <tt>filtfilt</tt>. | # Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury <tt>filtfilt</tt>. | ||
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami. | # Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami. | ||
Linia 531: | Linia 574: | ||
Po dwóch stronach monitora zamocujemy diody. Każda będzie migać ze swoją ustaloną częstością (np. 16 i 22 Hz) - warto zadbać aby nie były to częstości powiązane ze sobą harmonicznie, a z drugiej strony aby, biorąc pod uwagę wyniki poprzedniego zadania, dawały dobra odpowiedź SSVEP. | Po dwóch stronach monitora zamocujemy diody. Każda będzie migać ze swoją ustaloną częstością (np. 16 i 22 Hz) - warto zadbać aby nie były to częstości powiązane ze sobą harmonicznie, a z drugiej strony aby, biorąc pod uwagę wyniki poprzedniego zadania, dawały dobra odpowiedź SSVEP. | ||
− | Eksperyment będzie miał dwie cześci: kalibracje i sesję on-line. | + | Eksperyment będzie miał dwie cześci: sesję kalibracje i sesję on-line. Pomiędzy tymi sesjami będziemy uczyć kalsyfikator. Na podstawie części kalibracyjnej ustalimy jakie parametry przetwarznego on-line sygnału świadczą o patrzeniu się na diodę z lewej a jakie na tą z prawej strony ekranu. |
− | |||
− | |||
+ | Potem w sesji online będziemy porównywać (za pomocą predykcji klasyfikatora) rejestrowany sygnał z tymi warościami kalibracyjnymi i na tej podstawie system będzie zwracał informację o wyborze lewej lub prawej diody. To powinno umożliwić prostą komunikację na zasadzie pytanie i odpowiedź TAK/NIE. | ||
==== Sesja kalibracycjna==== | ==== Sesja kalibracycjna==== | ||
Linia 562: | Linia 604: | ||
** robimy predykcję klasyfikatora, z którym warunkiem patrzenia mamy do czynienia. Wyświetlamy na ekranie komunikat. | ** robimy predykcję klasyfikatora, z którym warunkiem patrzenia mamy do czynienia. Wyświetlamy na ekranie komunikat. | ||
* Testujemy czy powyższy schemat analizy pozwala na komunikację. | * Testujemy czy powyższy schemat analizy pozwala na komunikację. | ||
− | + | {{hidden end}} | |
<!-- | <!-- | ||
===Eksperyment ASSR=== | ===Eksperyment ASSR=== | ||
Linia 600: | Linia 642: | ||
==ICA jako filtr przestrzenny== | ==ICA jako filtr przestrzenny== | ||
+ | {{hidden begin|title=Wstęp teoretyczny do ICA}} | ||
===Definicja === | ===Definicja === | ||
Independent Component Analysis (ICA) jest metodą statystycznej analizy sygnałów, która dokonuje dekompozycji wielokanałowych zapisów na składowe niezależne w sensie statystycznym. | Independent Component Analysis (ICA) jest metodą statystycznej analizy sygnałów, która dokonuje dekompozycji wielokanałowych zapisów na składowe niezależne w sensie statystycznym. | ||
Linia 652: | Linia 695: | ||
===Obliczenia=== | ===Obliczenia=== | ||
− | Intuicyjna heurystyka poszukiwania najbardziej niegaussowskich składowych może być użyta do wyprowadzenia różnych funkcji kosztu, których optymalizacja daje model ICA, np. kurtoza. Procedura wykorzystywana w eeglabie („runica”, Makeig 1996) dąży do minimalizacji informacji wzajemnej. Oba podejścia są w przybliżeniu równoważne (Hyvärinen, 2000), chociaż owo przybliżenie dla sygnałów elektrofizjologicznych nie zostało to jeszcze w pełni wyeksplorowane. | + | Intuicyjna heurystyka poszukiwania najbardziej niegaussowskich składowych może być użyta do wyprowadzenia różnych funkcji kosztu, których optymalizacja daje model ICA, np. kurtoza. |
+ | |||
+ | <math>kurt(y) = E\{y^4\} - 3(E{y^2})^2</math> | ||
+ | |||
+ | Inną miarą gassowskości jest neg-entropia, którą można wyprowadzić z entropii: | ||
+ | Entropia jest miarą średniego zdziwienia wynikiem obserwacji zmiennej losowej: | ||
+ | <math>H(Y) = - \sum_i P(Y= a_i) \log(P(Y=a_i)) </math> | ||
+ | |||
+ | Negentropia jest zdefiniowana: | ||
+ | |||
+ | <math> J(y) = H(y_{gauss}) -H(y)</math> | ||
+ | gdzie <math> y_{gauss} </math> jest gassuwską zmienną losową o takiej samej kowaiancji jak <math> y </math>. | ||
+ | |||
+ | Negentropia jest skomplikowana obliczeniow, więc w praktyce używana jest formuła przybliżona: | ||
+ | |||
+ | <math> J(y) \varpropto [E\{G (y)\} - E\{G(\nu)\}]</math> | ||
+ | |||
+ | <math>\nu </math> jest zmienną losową ze standardowego rozkładu normalnego , a G są pewnymi niekwadratowymi funkcjami. | ||
+ | |||
+ | W algorytmie FastICA extremum negentropii jest znajdowane w procedurze bazującej na optymalizacji Netwona. | ||
+ | (szczegóły np.: sekcja 6 w https://www.cs.helsinki.fi/u/ahyvarin/papers/NN00new.pdf) | ||
+ | |||
+ | |||
+ | Procedura wykorzystywana w eeglabie („runica”, Makeig 1996) dąży do minimalizacji informacji wzajemnej. Oba podejścia są w przybliżeniu równoważne (Hyvärinen, 2000), chociaż owo przybliżenie dla sygnałów elektrofizjologicznych nie zostało to jeszcze w pełni wyeksplorowane. | ||
Dla sygnałów o niskiej wymiarowości i spełniających dokładnie założenia ICA wszystkie powszechnie wykorzystywane algorytmy dają niemal identyczne wyniki. | Dla sygnałów o niskiej wymiarowości i spełniających dokładnie założenia ICA wszystkie powszechnie wykorzystywane algorytmy dają niemal identyczne wyniki. | ||
Linia 665: | Linia 731: | ||
===Bibliografia=== | ===Bibliografia=== | ||
+ | Bazowa praca: | ||
+ | * A. Hyvärinen. Fast and Robust Fixed-Point Algorithms for Independent Component Analysis. IEEE Transactions on Neural Networks 10(3):626-634, 1999 http://www.cs.helsinki.fi/u/ahyvarin/papers/TNN99_reprint.pdf | ||
+ | |||
+ | Nieco prościej opisana wersja z przykładami: | ||
+ | * Hyvärinen, A. and Oja, E. (2000). Independent component analysis: Algorithms and applications. Neural Networks, 13(4-5):411–430. | ||
+ | https://www.cs.helsinki.fi/u/ahyvarin/papers/NN00new.pdf | ||
+ | |||
* Grau, C., Fuentemilla, L., Marco-Pallars, J. (2007). Functional neural dynamics underlying auditory event-related n1 and n1 suppression response. Neuroimage, 36(6):522–31. | * Grau, C., Fuentemilla, L., Marco-Pallars, J. (2007). Functional neural dynamics underlying auditory event-related n1 and n1 suppression response. Neuroimage, 36(6):522–31. | ||
− | |||
* Makeig, S., Bell, A., Jung, T.-P., Sejnowski,T. (1996). Independent component analysis of electroencephalographic data. W: Touretzky, D., Mozer, M., and Hasselmo, M., editors, Advances in Neural Information Processing Systems, volume 8, pages 145–151. MIT Press, Cambridge, MA. | * Makeig, S., Bell, A., Jung, T.-P., Sejnowski,T. (1996). Independent component analysis of electroencephalographic data. W: Touretzky, D., Mozer, M., and Hasselmo, M., editors, Advances in Neural Information Processing Systems, volume 8, pages 145–151. MIT Press, Cambridge, MA. | ||
* Onton, J., Makeig, S. (2006). Information-based modeling of event-related brain dynamics. Prog Brain Res., 159:99–120. | * Onton, J., Makeig, S. (2006). Information-based modeling of event-related brain dynamics. Prog Brain Res., 159:99–120. | ||
Linia 672: | Linia 744: | ||
* http://sccn.ucsd.edu/~arno/indexica.html | * http://sccn.ucsd.edu/~arno/indexica.html | ||
* http://cis.legacy.ics.tkk.fi/aapo/papers/IJCNN99_tutorialweb/ | * http://cis.legacy.ics.tkk.fi/aapo/papers/IJCNN99_tutorialweb/ | ||
+ | {{hidden end}} | ||
+ | {{hidden begin|title=Wydobywanie interesujących komponentów}} | ||
− | === Wydobywanie interesujących komponentów === | + | === ZADANIE: Wydobywanie interesujących komponentów === |
Dane do tej części ćwiczeń proszę pobrać i rozpakować w swoim katalogu: | Dane do tej części ćwiczeń proszę pobrać i rozpakować w swoim katalogu: | ||
Linia 696: | Linia 770: | ||
** Czy uzyskiwane komponenty są powtarzalne? | ** Czy uzyskiwane komponenty są powtarzalne? | ||
** Swoje wyniki porównać też z sąsiednimi grupami. | ** Swoje wyniki porównać też z sąsiednimi grupami. | ||
+ | {{hidden end}} | ||
− | === Identyfikacja artefaktów === | + | ===ZADANIE: Identyfikacja artefaktów === |
Proszę pobrać dane: | Proszę pobrać dane: | ||
Linia 713: | Linia 788: | ||
* obejrzyj topografię komponentów | * obejrzyj topografię komponentów | ||
* zidentyfikuj komponenty odpowiadające mruganiu i aktywności mięśniowej. | * zidentyfikuj komponenty odpowiadające mruganiu i aktywności mięśniowej. | ||
+ | ;UWAGA: Aktualnie do wykrywania komponentów artefaktowych warto posłużyć się wtyczkami do eeglaba dostępnymi przez stronę: | ||
+ | |||
+ | https://sccn.ucsd.edu/eeglab/plugin_uploader/plugin_list_all.php | ||
+ | |||
+ | * ICLabel | ||
+ | * MARA | ||
+ | |||
+ | ====W raporcie: ==== | ||
+ | * zaprezentuj fragmenty sygnału zawierającego artefakty oczne i mięśniowe przed i po zastosowaniu czyszczenia poprzez usuwanie komponentów zdominowanych przez artefakty. | ||
+ | * zaprezentuj topografię i przebiegi czasowe komponentów zidentyfikowanych jako artefakty oczne i mięśniowe. | ||
+ | |||
+ | |||
<!-- | <!-- | ||
Linia 720: | Linia 807: | ||
--> | --> | ||
+ | <!--- | ||
==Eksperyment ASSR== | ==Eksperyment ASSR== | ||
W eksprymencie wykorzystujemy układ do generacji potencjałów słuchowych stanu ustalonego (ASSR). Wejście układu ASSR typu mini-jack wkładamy w wyjście słuchawkowe w laptopie. Drugie wejście układu ASSR wkładamy do wyjścia triggera we wzmacniaczu. Uruchamiamy plik dźwiękowy MM40tr.wav. Można go znalezc w: http://www.fuw.edu.pl/~suffa/LabEEG/MM40tr.wav | W eksprymencie wykorzystujemy układ do generacji potencjałów słuchowych stanu ustalonego (ASSR). Wejście układu ASSR typu mini-jack wkładamy w wyjście słuchawkowe w laptopie. Drugie wejście układu ASSR wkładamy do wyjścia triggera we wzmacniaczu. Uruchamiamy plik dźwiękowy MM40tr.wav. Można go znalezc w: http://www.fuw.edu.pl/~suffa/LabEEG/MM40tr.wav | ||
Linia 751: | Linia 839: | ||
Transformacja Hjortha jest przybliżeniem numerycznym transformacji Laplace'a, czyli drugiej pochodnej przestrzennej. Obliczamy ją jako różnicę potencjału pomiędzy daną elektrodą i średnią z czterech sąsiednich elektrod. | Transformacja Hjortha jest przybliżeniem numerycznym transformacji Laplace'a, czyli drugiej pochodnej przestrzennej. Obliczamy ją jako różnicę potencjału pomiędzy daną elektrodą i średnią z czterech sąsiednich elektrod. | ||
Przelicz potencjały z elektrod, w których występuję odpowiedź ASSR na montaż Hjortha i powtórz analizę opisaną powyżej. | Przelicz potencjały z elektrod, w których występuję odpowiedź ASSR na montaż Hjortha i powtórz analizę opisaną powyżej. | ||
+ | ---> |
Aktualna wersja na dzień 08:47, 14 maj 2024
Laboratorium_EEG/BSS
Spis treści
Prezentacja
Ślepa separacja źródeł (BSS)
Ćwiczenie symulacyjne
Zastosowanie filtra CSP do detekcji potencjału P300
Analiza wstępna
Poszczególne etapy analizy proszę kodować w osobnych funkcjach. Funkcje te powinny być wywoływane z nadrzędnego skryptu, który powinien umożliwic wykoanie całości analiz.
- Wczytać dane kalibracyjne do Matlaba i pociąć je na realizacje typu T — „target” (związane z wystąpieniami litery „B”) i NT — „non-target” (pozostałe litery) o długości −200 do +800 ms wokół triggerów. Dla każdej realizacji odjąć trend liniowy.
- Sygnał zmontować wzgl. „połączonych uszu” i wyświetlić średnie przebiegi dla warunku T i NT w układzie topograficznym — można wykorzystać w tym celu poniższy fragment kodu.
Poniżej zaprezentowany jest przykładowy skrypt do cięcia danych wokół znaczników. Działa on z plikami zawartymi w archiwum:
Korzysta z funkcji pomocniczych dostępnych w dystrybucji obci w katalogu
- /usr/share/openbci/analysis/matlab_obci_signal_processing
Openbci można pobrać z https://github.com/BrainTech/openbci
ZADANIE: Analiza CSP
Przegląd badań o P300: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2715154/
Link do Read menager [1]
- Wykonać analizę CSP wzmacniającą potencjał P300.
- Zaprezentować średnią ze wszystkich kanałów źródłowych z warunku target (jeden kolor) i non-target (inny kolor) w subplotach ułożonych w prostokątnej siatce. Zaobserwować dla którego kanału średnie różnią się najbardziej. Czy jest związek tego kanału z wartościami własnymi?
- Dla kanału najbardziej różnicującego wykonać mapki topograficzne (do wykonania tych mapek wykorzystać funkcję topoplot z pakietu eeglab) wektorów odpowiadających:
- filtrowi przestrzennemu
- rzutu topograficznego źródła na elektrody.
Filtry przestrzenne dla SSEP
ICA jako filtr przestrzenny
ZADANIE: Identyfikacja artefaktów
Proszę pobrać dane:
- http://www.fuw.edu.pl/~jarekz/LabEEG/Arousal-10-20-Cap.locs
- http://www.fuw.edu.pl/~jarekz/LabEEG/Arousal1.set
- http://www.fuw.edu.pl/~jarekz/LabEEG/Arousal1.fdt
Pochodzą one z eksperymentu w którym osoba badana czytała słowa o różnych właściwościach wzbudzania emocji.
- wczytaj je do eeglaba
- wczytaj lokalizację kanałów z pliku Arousal-10-20-Cap.locs
- obejrzyj przebiegi czasowe
- odrzuć kanał z diodą (21) i z GSR (20)
- zrób dekompozycję ICA
- obejrzyj topografię komponentów
- zidentyfikuj komponenty odpowiadające mruganiu i aktywności mięśniowej.
- UWAGA
- Aktualnie do wykrywania komponentów artefaktowych warto posłużyć się wtyczkami do eeglaba dostępnymi przez stronę:
https://sccn.ucsd.edu/eeglab/plugin_uploader/plugin_list_all.php
- ICLabel
- MARA
W raporcie:
- zaprezentuj fragmenty sygnału zawierającego artefakty oczne i mięśniowe przed i po zastosowaniu czyszczenia poprzez usuwanie komponentów zdominowanych przez artefakty.
- zaprezentuj topografię i przebiegi czasowe komponentów zidentyfikowanych jako artefakty oczne i mięśniowe.