
Laboratorium EEG/CSP: Różnice pomiędzy wersjami
Z Brain-wiki
m (→Bibliografia) |
|||
(Nie pokazano 5 pośrednich wersji utworzonych przez tego samego użytkownika) | |||
Linia 92: | 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 292: | Linia 292: | ||
* 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}} | ||
<small>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: | ||
Linia 391: | Linia 422: | ||
===ZADANIE: 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] | Link do Read menager [https://drive.google.com/file/d/1OgOduK5Zn7GgNl5XdCyLWXHJ7wTJIWcC/view?usp=share_link] | ||
<!--- | <!--- | ||
Linia 406: | Linia 440: | ||
{{hidden begin|title=Wybór i separacja cech}} | {{hidden begin|title=Wybór i separacja cech}} | ||
+ | |||
===Wybór i separacja cech=== | ===Wybór i separacja cech=== | ||
* Przedstaw na rysunkach nałożone na siebie pojedyncze realizacje z warunków target i non-target po rzutowaniu na wektor <math>w</math> odpowiadający największej i kolejnej wartości własnej. | * Przedstaw na rysunkach nałożone na siebie pojedyncze realizacje z warunków target i non-target po rzutowaniu na wektor <math>w</math> odpowiadający największej i kolejnej wartości własnej. |
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.