<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://brain.fuw.edu.pl/edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AnnADuszyk</id>
	<title>Brain-wiki - Wkład użytkownika [pl]</title>
	<link rel="self" type="application/atom+xml" href="http://brain.fuw.edu.pl/edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AnnADuszyk"/>
	<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php/Specjalna:Wk%C5%82ad/AnnADuszyk"/>
	<updated>2026-04-12T07:21:22Z</updated>
	<subtitle>Wkład użytkownika</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS&amp;diff=11210</id>
		<title>Pracownia EEG 2/ERDS</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS&amp;diff=11210"/>
		<updated>2024-12-18T12:49:11Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / ERD/S&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
Wśród badań wykonywanych z wykorzystaniem rejestracji EEG czy MEG można wyróżnić badania spoczynkowe, gdzie rejestrowana jest spontaniczna aktywność mózgu oraz badania zmian aktywności pod wpływem różnych bodźców, przy czym bodźce te mogą być pochodzenia egzo- lub endogennego. Reakcja na bodziec może wykazywać stały związek fazowy z momentem wystąpienia bodźca &amp;amp;mdash; w takiej sytuacji mówimy o potencjałach lub polach wywołanych (ang. ''event related potential'', ''ERP'' i ''event related field'', ''ERF'') &amp;amp;mdash; lub też może nie być fazowo związana z bodźcem.&lt;br /&gt;
&lt;br /&gt;
Niniejsza część pracowni poświęcona jest metodologii badania reakcji mózgu na bodźce, które są czasowo ale niekoniecznie fazowo związane z bodźcem.&lt;br /&gt;
&lt;br /&gt;
=Zmiany pasmowej mocy sygnału EEG=&lt;br /&gt;
Pierwsze rezultaty opisujące zmiany w mocy pasmowej sygnału EEG (spadek mocy rytmu alfa) związane z reakcją na bodziec zostały opisane w pracy doktorskiej Adolf Becka zatytułowanej &amp;amp;bdquo;Oznaczenie lokalizacyi w mózgu i rdzeniu za pomocą zjawisk elektrycznych&amp;amp;rdquo; (Beck,  1891). &lt;br /&gt;
Ilościowe badania zjawisk modulacji mocy sygnału EEG w reakcji na bodźce rozpoczęto stosunkowo niedawno. Począwszy od pracy (Pfurtscheller, 1979) zjawiska te zaczęto nazywać ''Event Related Desynchronization'' (ERD) &amp;amp;mdash; czyli desynchronizacja związana z bodźcem. Termin ERD dotyczy spadku mocy. Przez analogię w późniejszych pracach terminem ''Event Related Synchronization'' (ERS) opisywane są efekty polegające na wzroście mocy. W większości paradygmatów eksperymentalnych zjawiska ERD i ERS są małe w porównaniu ze zmiennością mocy sygnału EEG związanej ze spontaniczną aktywnością mózgu. W celu ich ilościowego badania wymagane jest zarejestrowanie wielu realizacji reakcji na bodziec i poddanie ich analizie statystycznej. &lt;br /&gt;
&lt;br /&gt;
[[Plik:Paradygmat erds.gif|thumb|800px|center]]&lt;br /&gt;
==Interpretacja fizjologiczna==&lt;br /&gt;
[[Plik:EEG_synchronicznosc.png|600px|thumb|right|Synchronicznie pobudzana grupa neuronów piramidalnych kory tworzy warstwę dipolową.]]&lt;br /&gt;
[[Plik:Mapka_tf_erds.png|600px|thumb|right|Przykładowa mapa zjawiska synchronizacji i desynchronizacji sygnału EEG w przestrzeni czas-częstość dla sygnału zearejestrowanego przez elektrodę C3. Osoba badana wykonywała szybki ruch palcem w momencie oznaczonym 0. Kolory odpowiadają procentowej zmianie mocy względem poprzedzającego okresu 2 s, zgodnie ze skalą barw umieszczoną po prawej stronie.  Na poziomej osi — czas w s, na pionowej częstość w Hz.]]&lt;br /&gt;
Terminy ERD i ERS mają swoje źródło w fizjologicznej interpretacji zmian mocy sygnału w określonych pasmach częstości.  Źródłem mierzalnego na powierzchni głowy sygnału elektrycznego lub magnetycznego jest synchroniczna aktywność wielu neuronów (głównie piramidalnych kory). Szacuje się, że wpływ na wielkość sygnału EEG lub MEG ma głównie stopień synchronizacji neuronów wytwarzających ten sygnał, a w drugiej kolejności ich ilość (Nunez, 1981). Tak więc wzrost mocy w pewnym paśmie (np. alfa ERS) interpretowany jest jako wzrost synchronizacji aktywności neuronów generujących aktywność EEG w tym paśmie, zaś spadek mocy (np. alfa ERD) interpretowany jest jako spadek synchronizacji neuronów generujących aktywność EEG w tym paśmie częstości. Przy takiej interpretacji należy pamiętać o skali w jakiej dokonywany jest pomiar. Zarówno elektrody EEG jak i cewki MEG mierzą sygnały średnie pochodzące od olbrzymich ilości neuronów. Zatem zmiana mocy w tym sygnale odpowiada desynchronizacji lub synchronizacji w skali makroskopowej (rzędu 10&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;-10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; neuronów). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zjawiska ERD i ERS badane były zarówno w eksperymentach motorycznych (Pfurtscheller, 1994, Pfurtscheller, 1996a, Pfurtscheller, 1996b , Pfurtscheller, 1999) jak i kognitywistycznych  (Tallon Baudry, 1996, Tallon, 1999, Kaiser, 2003).&lt;br /&gt;
Wnioski płynące z tych prac są takie, że znaczenie zjawisk ERD i ERS zależy od pasma częstości, w którym one występują. Aktywność w paśmie alfa wiązana jest ze stanem spoczynkowym, ERD w paśmie alfa i beta wiązane jest z pobudzeniem danego rejonu kory mózgowej, w którym zjawisko to zachodzi. ERS w paśmie alfa i beta następujący po ERD w tym samym paśmie częstości interpretowany jest najczęściej jako przejaw inhibicji lub kasowania poprzedniego stanu. Z kolei zwiększona aktywność w paśmie gamma jest interpretowana jako przejaw funkcjonalnej aktywacji danego fragmentu kory. Nowe wyniki pojawiają się na bieżąco i stawiane są nowe pytania co do możliwych interpretacji poszczególnych zjawisk  np. (Crone, 2010).&lt;br /&gt;
&lt;br /&gt;
Oprócz motywacji czysto poznawczych, badania zjawisk ERD i ERS stymulowane są przez praktyczne możliwości ich wykorzystania w diagnostyce epilepsji, gdzie są nadzieje na zastosowanie tej techniki w miejsce bardziej inwazyjnej metody mapowania mózgu przez elektrostymulację (Crone 1998a, Crone, 1998b, Crone, 2006) oraz w konstrukcji interfejsów mózg-komputer (Pfurtscheller, 2006).&lt;br /&gt;
[[Plik:Mapowanie.png|thumb|600px|center|Mapowanie kory czuciowo-ruchowej za pomocą stymulacji: dwie falki – bezwolne reakcje ruchowe, trzy falki – kloniczny skurcz mięśni, za Crone, 1998]]&lt;br /&gt;
[[Plik:Mapki_ECoG.jpg|thumb|600px|center|Mapowanie kory czuciowo-ruchowej za pomocą ERD/ERS.Pacjent z przyczyn medycznych miał umieszczoną na korze motorycznej siatkę elektrod (6×8, odstęp 1 cm). Pacjent miał zaciskać pięść w odpowiedzi na bodziec wzrokowy przez cały czas trwania bodźca (3 s)&lt;br /&gt;
Prezentowane mapy istotnych statystycznie zmian uzyskano na podstawie 49 wolnych od artefaktów realizacji.]]&lt;br /&gt;
&lt;br /&gt;
==Estymacja zmian mocy sygnału EEG w dziedzinie czasu==&lt;br /&gt;
Przebieg czasowy zjawiska ERD i ERS jest specyficzny dla pasm częstości.&lt;br /&gt;
[[Grafika:ERDS klasycznie_1.png|right|thumb|768px|&amp;lt;figure id=&amp;quot;fig:erds_klasycznie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt; Klasyczne obliczanie ERD/ERS. &amp;lt;br&amp;gt; a) Przykładowy zapis EEG jednej z ''N'' realizacji  &amp;lt;br&amp;gt; b) przefiltrowany sygnał EEG w wybranym paśmie (tutaj: [15 25] Hz)&amp;lt;br&amp;gt;  c) przefiltrowany sygnał podniesiony do kwadratu &amp;amp;mdash; w ten sposób uzyskujemy przebieg mocy pasmowej w czasie &amp;lt;br&amp;gt; d) uśredniony po realizacjach przebieg mocy pasmowej w czasie &amp;lt;br&amp;gt; e) wygładzony przebieg z d) za pomocą średniej biegnącej (tutaj okienko 0,25 s); czerwone pionowe linie wyznaczają okres referencyjny &amp;lt;br&amp;gt; f) ERD/ERS — względna zmiana sygnału e) w odniesieniu do okresu referencyjnego.]]&lt;br /&gt;
Klasyczny sposób estymowania  ERD i ERS (Pfurtscheller, 1979) polega na (patrz ilustracja): &lt;br /&gt;
*filtrowaniu pasmowym,&lt;br /&gt;
*wyrównaniu realizacji względem momentu wystąpienia bodźca, &lt;br /&gt;
*obliczaniu mocy chwilowej (podniesienie do kwadratu wartości każdej próbki sygnału), &lt;br /&gt;
*uśrednieniu mocy chwilowej po realizacjach, wygładzeniu przebiegu czasowego uśrednionej mocy chwilowej filtrem dolnoprzepustowym.&lt;br /&gt;
*Następnie względna zmiana mocy obliczana jest jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{ERD/ERS}_f(t) = \frac{P_f(t) - R_f}{R_f}  &amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie:&lt;br /&gt;
''P''&amp;lt;sub&amp;gt;''f ''&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; średnia moc chwilowa w paśmie częstości ''f''; uśrednianie przebiega po realizacjach.&lt;br /&gt;
''R''&amp;lt;sub&amp;gt;''f''&amp;lt;/sub&amp;gt; &amp;amp;mdash; średnia moc w paśmie ''f'' w okresie referencyjnym; uśrednianie przebiega po realizacjach i po czasie trwania okresu referencyjnego.&lt;br /&gt;
Klasycznym metodom obliczania ERD/ERS poświęcona jest praca (Pfurtscheller, 1999).&lt;br /&gt;
Całościowy obraz zmian mocy sygnału EEG związanych z bodźcem można dogodnie analizować w dziedzinie czas-częstość.&lt;br /&gt;
&lt;br /&gt;
=Cwiczenia=&lt;br /&gt;
&lt;br /&gt;
==Paradygmat ==&lt;br /&gt;
&lt;br /&gt;
===wersja 1===&lt;br /&gt;
Osoba badana siedzi wygodnie i trzyma przycisk podłączony do triggera.&lt;br /&gt;
Na ekranie w odstępach 13&amp;lt;math&amp;gt;\pm&amp;lt;/math&amp;gt;1 sekund wyświetlany jest krzyżyk. Krzyżyk wyświetlany jest przez 2 sekundy. W przeciągu 2 sekund po zniknięciu krzyżyka osoba badana w wybranym przez siebie momencie wciska przycisk. Proszę zarejestrować 60 realizacji.&lt;br /&gt;
&lt;br /&gt;
Przygotuj program implementujący powyższy paradygmat.&lt;br /&gt;
&lt;br /&gt;
===wersja 2===&lt;br /&gt;
Próba rozróżnienia ruchów lewą i prawą ręką &amp;amp;mdash; jak w BCI; na podstawie artykułu [[file:ERDS.BCI.TNSRE2012.pdf]], oczywiście w uproszczonej wersji :-)&lt;br /&gt;
&lt;br /&gt;
Procedura:&lt;br /&gt;
&lt;br /&gt;
Osoba badana ma za zadanie poruszać palcami (wskazującym oraz środkowym) prawej lub lewej ręki. Na ekranie monitora pojawia się strzałka, która widoczna jest przez okres 3 sek. i wskazuje rękę, którą będzie wykonywany ruch. Osoba badana ma ruszyć wskazaną ręką w wybranym przez siebie momencie PO zniknięciu strzałki. &lt;br /&gt;
Dla każdej ręki przewidziane jest 100 powtórzeń. W celu synchronizacji sygnału EEG ze wskazówkami pojawiającymi się na ekranie monitora, w lewym dolnym rogu (gdzie pojawia się biały kwadrat) powinna zostać umieszczona fotodioda. &lt;br /&gt;
&lt;br /&gt;
Rejestracja sygnału:&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy następujące elektrody umieszczone zgodnie z systemem 10--10: FC3, FC1, FCz, FC2, FC4, C5, C3, C1, Cz, C2, C4, C6, CP5, CP3, CP1, CPz, CP2, CP4, CP6, P1, P2, A1, A1. Dodatkowo wykonujemy pomiar z mięśnia extensor digitorum. W tym celu na obu rękach umieszczamy elektrody bipolarne do EMG (patrz Fig. 1 (elektroda ED3): http://jn.physiology.org/content/100/6/3225.long). Sygnał rejestrujemy z częstością 512 Hz.&lt;br /&gt;
&lt;br /&gt;
Procedura może zostać pobrana ze stony: https://github.com/mroja/signal_utils/tree/master/erds/arrows.&lt;br /&gt;
&lt;br /&gt;
===wersja 3=== &lt;br /&gt;
Osoba ma za zadanie ruszać ręką prawą/lewą/nogą lub wyobrażać sobie ruch prawą/lewą/nogą.W bloku pierwszym powienien być ruch, w drugim wyobrażenie. Na ekranie powinna zostać wyświetlona instrukcja, w której opisany jest cel badania. Następnie rozpoczyna się blok prób, w trakcie poszczególnej próby wyświetlane jest polecenie: &amp;amp;bdquo;Rusz ręką&amp;amp;rdquo;/&amp;amp;bdquo;Wyobraź sobie ruch ręką&amp;amp;rdquo; na 1 s, następnie 5 s przerwy (pusty ekran). Każde polecenie powinno być powtórzone 80 razy. &lt;br /&gt;
&lt;br /&gt;
W trakcie procedury powinien być zbierany sygnał EEG oraz EMG palca. Wykorzystujemy następujące elektrody EEG umieszczone zgodnie z systemem 10-10: FC3, FC1, FCz, FC2, FC4, C5, C3, C1, Cz, C2, C4, C6, CP5, CP3, CP1, CPz, CP2, CP4, CP6, P1, P2, A1, A1. częstość próbkowania: min. 256 Hz. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Analiza:&lt;br /&gt;
# ERD/S w pasmach&lt;br /&gt;
# uśrednione mapy czas-częstość osobno dla ruchu lewą i prawą ręką&lt;br /&gt;
# analiza możliwości rozróżnienia ruchu na podstawie EEG&lt;br /&gt;
&lt;br /&gt;
Uśrednianie spektrogramów wykonujemy samodzielnie w Pythonie, a na deser liczymy estymatę średnich rozkładów czas-częstość z MP:&lt;br /&gt;
&lt;br /&gt;
# eksportujemy tagi znalezione na podstawie EMG https://brain.fuw.edu.pl/edu/EEG:Pracownia_EEG/SSVEP_1#.C4.86wiczenie_dla_ch.C4.99tnych i oglądamy w Svarogu wyniki na tle sygnału&lt;br /&gt;
# ściągamy najnowszą wersję Svaroga z http://braintech.pl/svarog, umożliwiającą uśrednianie map&lt;br /&gt;
# Otwieramy w Svarogu plik sygnału wraz z tagami.&lt;br /&gt;
# Ustalamy odpowiedni montaż i filtrowanie sygnału.&lt;br /&gt;
# Uruchamiamy dekompozycję MP (Tools → MP decomposition) wybierając w ustawieniach (zakładka „Signal selection” → zakładka „Marked”)&lt;br /&gt;
## rodzaj taga oznaczającego kolejne powtórzenia&lt;br /&gt;
## początek i długość trwania analizowanego interwału czasu (w sekundach, względem wystąpienia taga)&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu obliczeń otwieramy rezultat w nowym oknie („Get result”). Obliczona w ten sposób „książka” składa się z dekompozycji MP kolejnych powtórzeń eksperymentu, przedstawionych w postaci map czas-częstość. Otrzymane mapy możemy następnie uśrednić (Tools → Average books) i zapisać do pliku graficznego o ustalonej rozdzielczości.--&amp;gt;&lt;br /&gt;
&amp;lt;!--==Rejestracja sygnału==&lt;br /&gt;
[[Plik:10_20zAFz.png|thumb| 600px|right]]&lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
# Elektrody referencyjne A1 i A2.&lt;br /&gt;
# Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz).&lt;br /&gt;
# Sygnał rejestrujemy z częstością 256 Hz.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analiza==&lt;br /&gt;
Czas wciśnięcia przycisku (wersja 1 i 2)/ wzorst EMG (wersja 3) oznaczymy jako 0.&lt;br /&gt;
Poniższą analizę zastosuj dla sygnałów w referencji do uśrednionych odprowadzeń usznych A1 i A2.&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie pasma &amp;amp;mu; i &amp;amp;beta;===&lt;br /&gt;
# Z sygnału wycinamy fragmenty od &amp;amp;minus;3 do &amp;amp;minus;1 sek. dla elektrod C3 i C4 (elektrody położone nad korą ruchową dłoni). &lt;br /&gt;
# Dla każdej realizacji obliczamy widma metodą Welcha.&lt;br /&gt;
# Otrzymane widma uśredniamy po realizacjach.&lt;br /&gt;
# Z sygnału wycinamy fragmenty od +0.5 do +2.5 sek. dla elektrod C3 i C4 (elektrody położone nad korą ruchową dłoni). &lt;br /&gt;
# Dla każdej realizacji obliczamy widma metodą Welcha.&lt;br /&gt;
# Otrzymane widma uśredniamy po realizacjach.&lt;br /&gt;
# Wykreśl widma z okresu poprzedzającego ruch i z okresu po ruchu nałożone na siebie, a także względną zmianę widma. Zaobserwuj w jakich zakresach częstości &amp;amp;mu; (pasmo około 10 Hz) i &amp;amp;beta; (około 23 Hz) występują największe zmiany.&lt;br /&gt;
#Dla wersji 3 - te same operacje wykonaj dla warunku wyobrażonego ruchu - w pierwszym kroku należy ocenić na podstawie sygnału EMG, czy został wykonany ruch - jeśli tak - próbę taką należy usunąć z analiz. Jako punkt 0 będziemy brać początek polecenia na podstawie tagów.&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie przebiegu czasowego ERD i ERS ===&lt;br /&gt;
# Zaprojektuj filtry pasmowo przepustowe (Chebyszewa 2 rodzaju) zgodne z wyznaczonymi pasmami. Zbadaj funkcje przenoszenia i odpowiedzi impulsowej.&lt;br /&gt;
# Powycinaj sygnały od &amp;amp;minus;3 do +3 sekund (wszystkie kanały). Przefiltruj każdą realizację. &lt;br /&gt;
# Oblicz moc chwilową za pomocą transformaty Hilberta (kwadrat amplitudy chwilowej).&lt;br /&gt;
# Uśrednij moc chwilową po realizacjach.&lt;br /&gt;
# Oblicz względną zmianę mocy chwilowej względem czasu &amp;amp;minus;3 do &amp;amp;minus;1. W ten sposób otrzymasz przebieg ERD i ERS w czasie.&lt;br /&gt;
# Wykreśl ERD i ERS w układzie topograficznym. (Rozmieść subploty tak, aby z w przybliżeniu odpowiadały pozycjom elektrod).&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie przebiegu czasowego ERD i ERS wersja w roku 2024===&lt;br /&gt;
# Zaprojektuj filtry pasmowo przepustowe (Chebyszewa 2 rodzaju) zgodne z wyznaczonymi pasmami. Zbadaj funkcje przenoszenia i odpowiedzi impulsowej.&lt;br /&gt;
# Przefiltruj wszystkie kanały danych: osobno w pasmie alfa i osobno w pasmie beta.&lt;br /&gt;
# Powycinaj realizacje zgodnie położeniem tagów (czas 0 s) od &amp;amp;minus;2 do +4,5 sekund (wszystkie kanały).&lt;br /&gt;
# Kolejne etapy analizy wykonujemy osobno dla pasm alfa i beta.&lt;br /&gt;
# Oblicz amplitudę chwilową w każdej realizacji za pomocą transformaty Hilberta.&lt;br /&gt;
# Oblicz moc chwilową podnosząc amplitudy chwilowe do kwadratu.&lt;br /&gt;
# Uśrednij moc chwilową po realizacjach.&lt;br /&gt;
# Oblicz moc referencyjną na odcinku &amp;amp;minus;1,5 s do &amp;amp;minus;0,5 s w każdym kanale (można sprawdzić też odcinek &amp;amp;minus;2 s do &amp;amp;minus;0,5 s).&lt;br /&gt;
# Oblicz względną zmianę mocy chwilowej — przebieg ERD i ERS w czasie.&lt;br /&gt;
# Wykreśl ERD i ERS w układzie topograficznym. (Rozmieść subploty tak, aby z w przybliżeniu odpowiadały pozycjom elektrod).&lt;br /&gt;
&lt;br /&gt;
===Transformacja Hjortha===&lt;br /&gt;
Transformacja Hjortha jest przybliżeniem numerycznym transformacji Laplace'a, czyli drugiej pochodnej przestrzennej.&lt;br /&gt;
Obliczamy ją jako różnicę potencjału pomiędzy daną elektrodą i średnią z czterech sąsiednich elektrod.&lt;br /&gt;
&lt;br /&gt;
Proszę przeliczyć potencjały C3, Cz i C4 na montaż Hjortha oraz powtórzyć analizę ERD/ERS opisaną powyżej.&lt;br /&gt;
Przykładowo dla elektrody C3 montaż Hjortha &amp;lt;math&amp;gt;\mathrm{C3_H}&amp;lt;/math&amp;gt; otrzymuje się w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt;\mathrm{C3_H = C3 - \frac{1}{4}(T3+F3+Cz+P3)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Literatura=&lt;br /&gt;
* Beck, A., 1891. Oznaczenie lokalizacyi w mózgu i rdzeniu za pomoca zjawisk elektrycznych. Ph.D. thesis, Polska Akademia Umiejętności, Kraków, seria II.&lt;br /&gt;
* Crone, N. E., Miglioretti, D. L., Gordon, B., Lesser, R. P., 1998a. Functional mapping of human sensorimotor cortex with electrocorticigraphic spectral analysis II. Event-related synchronization in the gamma band. Brain 121, 2301–15.&lt;br /&gt;
* Crone, N. E., Miglioretti, D. L., Gordon, B., Sieracki, J. M., Wilson, M. T., Uematsu, S., 1998b. Functional mapping of human sensorimotor cortex with electrocorticographic spectral analysis I. Alpha and beta event-related desynchronization. Brain 121, 2271–99.&lt;br /&gt;
* Crone, N. E., Korzeniewska, A., Franaszczuk, P. J., 2010. Cortical gamma responses: Searching high and low. International Journal of Psychophysiology.&lt;br /&gt;
*Crone, N. E., Sinai, A., Korzeniewska, A., 2006. High-frequency gamma oscilla- tions and human brain mapping with electrocorticography. Progress in Brain Research 159, 275–295.&lt;br /&gt;
* Kaiser, J., Lutzenberger, W., 2003. Induced gamma-band activity and human brain function. Neuroscientist 9, 475–84.&lt;br /&gt;
* Nunez, P. L., 1981. Electric Fields of the Brain. The Neurophysics of EEG. Oxford University Press, New York.&lt;br /&gt;
* Pfurtscheller, G., Aranibar, A., 1979. Evaluation of event-related desyn- chronization (ERD) preceding and following voluntary self-paced movement. Electroencephalography and Clinical Neurophysiology 46, 138–146.&lt;br /&gt;
* Pfurtscheller, G., Flotzinger, D., Neuper, C., 1994. Differentiation between finger, toe and tongue movement in man based on 40 Hz EEG. Electroencephalography and Clinical Neurophysiology 90, 456–60.&lt;br /&gt;
* Pfurtscheller, G., Lopes da Silva, F. H., 1999. Event-related EEG/MEG synchronization and desynchronization: basic principles. Clinical Neurophysiology 110, 1842–57.&lt;br /&gt;
* Pfurtscheller, G., 1999. Quantification of ERD and ERS in the time domain. In: W Pfurtscheller, G., Lopes da Silva, F. H. (Eds.), Event-related desynchroni- zation. Vol. 6. Elsevier, p. 89–105.&lt;br /&gt;
* Pfurtscheller, G., Neuper, C., 2006. Future prospects of ERD/ERS in the context of brain-computer interface (BCI) developments. Progress in Brain Research 159, 433–437.&lt;br /&gt;
* Pfurtscheller, G., Stancak Jr, A., C., N., 1996a. Post-movement beta synchronization. A correlate of an idling motor area? Electroencephalography and Clinical Neurophysiology 98, 281–93.&lt;br /&gt;
* Pfurtscheller, G., Stancak Jr, A., Neuper, C., 1996b. Event-related synchronization (ERS) in the alpha band—an electrophysiological correlate of cortical idling: a review. International Journal of Psychophysiology 24, 39–46.&lt;br /&gt;
*Tallon-Baudry, C., Bertrand, O., 1999. Oscillatory gamma activity in humans and its role in object representation. Trends Cogn. Sci. 3, 151–62.&lt;br /&gt;
* Tallon-Baudry, C., Bertrand, O., Delpuech, C., Pernier, J., 1996. Stimulus specificity of phase-locked and non-phase-locked 40 Hz visual responses in human. The Journal of Neuroscience 16, 4240–4249.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10978</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10978"/>
		<updated>2024-10-15T13:16:18Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Zadanie 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1==&lt;br /&gt;
&lt;br /&gt;
===Procedura 1 ===&lt;br /&gt;
W programie Psychopy przygotuj procedurę, w ramach której osoba badana będzie patrzeć na migający biały kwadrat na czarnym tle. Częstość migania ma byc wybierana losowo z póli: 5, 12, 15, 20 Hz, wypełnienie ma wynosić 50%. Jedna próba ma trwać 5s. Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości powinny być zapisywane w tagach. Każdego warunku należy zebrać po 30 powtórzeń. &lt;br /&gt;
&lt;br /&gt;
===Procedura 2 ===&lt;br /&gt;
W programie Psychopy przygotuj procedurę, w ramach której osoba badana będzie reagować na czerwony kwadrat pojawiający się wśród białych migających kwadratów na czarnym tle. Częstość migania ma wynosić 12 i 15 Hz, odpowiednia dla pierwszego i drugiego bloku, wypełnienie ma wynosić 50%. Jedna próba ma trwać 7s. W ramach próby badany patrzy migający z zadaną częstością kwadrat. Po czasie 2.5 lub 5.5 sekund kwadrat zmienia kolor na czerwony (na jedno błyśnięcie). Po 7-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości powinny być zapisywane w tagach. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pomiar wykonujemy za pomocą następujących elektrod: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. Na podstawie tagów wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą.Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 12 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 12 Hz dla stymulacji pozostałymi częstościami. &lt;br /&gt;
#Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
===Zadanie 2===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Na rysunku zaznacz początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
=Podsumowanie= &lt;br /&gt;
W ramach podsumowania uzupełnij poniższą tabelę &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Porównanie metod&lt;br /&gt;
|-&lt;br /&gt;
! . !! ERP !! moc widmowa FFT !! transformata Hilberta&lt;br /&gt;
|-&lt;br /&gt;
| ilość wymaganych danych || ... || ... || ... &lt;br /&gt;
|-&lt;br /&gt;
| założenia fizjologiczne || ... || ... || ...&lt;br /&gt;
|-&lt;br /&gt;
| przykłady aktywności mózgu, które analizujemy daną metodą || ... || ... || ...  &lt;br /&gt;
|-&lt;br /&gt;
| charakterystyka danych || ... || ... || ... &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
=Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10915</id>
		<title>Pracownia EEG 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10915"/>
		<updated>2024-10-08T11:00:32Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pracownia EEG 2=&lt;br /&gt;
&lt;br /&gt;
==Terminy==&lt;br /&gt;
Zajęcia odbywają się w sali 4.59 w budynku Pasteura 5. &lt;br /&gt;
&lt;br /&gt;
* we wtorki w godz. 10.15 - 13:45&lt;br /&gt;
* w środy w godz. 13:30 - 16:30&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; ze względu na logiczny poniedziałek w dniu 02.10.2024 zajęcia z Pracowni EEG się nie odbywają. &lt;br /&gt;
&lt;br /&gt;
==Cele przedmiotu== &lt;br /&gt;
&lt;br /&gt;
W trakcie naszych wartszatów chcielibyśmy Panstwu przybliżyć następujące kwestie:  &lt;br /&gt;
&lt;br /&gt;
# charakterystykę sygnału EEG - czym charakteryzuje się prawidłowo zarejestrowany sygnał EEG, jakie ma właściwości&lt;br /&gt;
# jak zebrać prawidłowo EEG - po naszym kursie nabędą Państwo umiejętność rejestracji EEG&lt;br /&gt;
# charakterystyki podstawowych metod analizy sygnału EEG, ze zrozumieniem ich wad i zalet, wymagań, oraz zmienności wyników między osobami. &lt;br /&gt;
# jakie narzędzia informatyczne mogą Panstwo spotkac w labie EEG (Psychopy, SVAROG)&lt;br /&gt;
# podstawowych zjawisk z psychofizjologii w kontekście procesów poznawczych oraz ich interpretacji fizjologicznych&lt;br /&gt;
&lt;br /&gt;
CZEGO NIE UCZYMY: obsługi przeglądarek sygnału, obsługi toolboxów - nasz kurs ma na celu zrozumienie metod i charakterystyki badanych zjawisk a nie obsługi konkretnego środowiska. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Materiały==&lt;br /&gt;
#[[Pracownia_EEG 2/Wprowadzenie do Psychopy|Wprowadzenie do Psychopy]] &lt;br /&gt;
#[[Pracownia_EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu|Krótkie przypomnienie z anatomii i funkcji mózgu]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_spoczynkowe|EEG spoczynkowe, artefakty ]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_wlasności_EEG_spoczynkowego|Własności EEG spoczynkowego: funkcja autokorelacji i widmo]] &lt;br /&gt;
#[[Pracownia_EEG 2/Potencjały_wywołane|Potencjały wywołane]]&lt;br /&gt;
#[[Pracownia_EEG 2/SSVEP_1|SSVEP]]&lt;br /&gt;
#[[Pracownia_EEG 2/AR_1|Widmowa analiza parametryczna]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS_2|Wprowadzenie do metod czas-częstość]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS|Synchronizacja i desynchronizacja sygnału EEG związana z bodźcem]]&lt;br /&gt;
#[[Pracownia_EEG 2/Projekt|Projekt]]&lt;br /&gt;
&lt;br /&gt;
Autorzy: dr hab. Maciej Kamiński,&lt;br /&gt;
dr Rafał Kuś,&lt;br /&gt;
dr hab. Jarosław Żygierewicz,&lt;br /&gt;
dr Anna Duszyk-Bogorodzka&lt;br /&gt;
&lt;br /&gt;
==Zasady zaliczenia pracowni==&lt;br /&gt;
Materiał zajęć jest podzielony na bloki tematyczne. W każdym bloku studenci mają do wykonania zestaw ćwiczeń. &lt;br /&gt;
Zaliczenie bloku ma dwa elementy:&lt;br /&gt;
&lt;br /&gt;
* uzupełnienie krótkich raportów po wskazanych blokach. &lt;br /&gt;
* wykonanie projektu i zaprezentowanie wyników&lt;br /&gt;
* obecność obowiązkowa, możliwe dwie nieobeności nieusprawideliwione. &lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania prezentacji===&lt;br /&gt;
# Wyniki ćwiczeń przedstawiamy w postaci prezentacji komputerowej (OpenOffice, PowerPoint, LibreOffice, Acrobat, itp.); czas trwania &amp;amp;mdash; maksymalnie 15 minut.&lt;br /&gt;
# Należy uwzględnić wyniki uzyskane w ćwiczeniach wskazanych przez prowadzących.&lt;br /&gt;
&lt;br /&gt;
# Należy zadbać o prawidłową postać wykresów, w tym w szczególności:&lt;br /&gt;
#* obecność opisów osi (w miarę możliwości);&lt;br /&gt;
#* spójne zakresy osi i skalowanie wykresów;&lt;br /&gt;
#* właściwy dobór skali (tak, aby uwidocznić najważniejsze rzeczy);&lt;br /&gt;
#* obecność tytułów i innych podpisów ułatwiających zrozumienie prezentowanych treści.&lt;br /&gt;
# Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
#* krótko - przypomnienie co było liczone (i jak, jeśli trzeba);&lt;br /&gt;
#* na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
#* interpretację wykresów.&amp;lt;br&amp;gt;Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
# Ocenie podlegają:&lt;br /&gt;
#* kompletność prezentacji;&lt;br /&gt;
#* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
#* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
# Każdy z powyższych elementów prezentacji będzie oceniany w 10-punktowej skali. Punkty zebrane w ciągu semestru będą przekładać się na ocenę końcową.&lt;br /&gt;
# Wyniki dodatkowe, ponadprogramowe, są mile widziane i mogą skutkować lepszą oceną.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10911</id>
		<title>Pracownia EEG/Potencjały wywołane</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10911"/>
		<updated>2024-10-08T09:37:32Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Anulowanie wersji 10803 autorstwa AnnADuszyk (dyskusja)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Potencjały wywołane&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
==Potencjały wywołane==&lt;br /&gt;
=== Wstęp ===&lt;br /&gt;
Potencjały wywołane EEG (ang. ''evoked potentials'', EP) są śladami odpowiedzi mózgu na bodźce. W przypadku MEG poprawnie mówi się o polach wywołanych (ang. ''evoked fields'', EF).&lt;br /&gt;
Zwykle reakcja ta jest mała (wyjątek stanowią [[Elektroencefalografia/Metody_analizy_sygnałów_EEG_-_analiza_w_dziedzinie_czasu |kompleksy K]]) i w zapisie pojedynczej realizacji reakcji na bodziec najczęściej niewidoczna wśród czynności pochodzącej od wielu innych procesów zachodzących w tym samym czasie w mózgu. &lt;br /&gt;
Ich wyodrębnienie z tak zwanego tła EEG/MEG, czyli manifestacji elektrycznej innych, trwających w tym samym czasie w mózgu procesów (aktywny prąd niezależny), wymaga w dniu dzisiejszym zapisu odpowiedzi na szereg powtórzeń tego samego bodźca (&amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;). Pierwsze potencjały wywołane pokazał pod koniec lat 40-tych Dawson (Dawson, 1947) wykonując superpozycję pojedynczych realizacji na kliszy fotograficznej.&lt;br /&gt;
Z czasem skomplikowane urządzenia analogowe zastąpione zostały przez cyfrowe uśrednianie kolejnych fragmentów EEG, zsynchronizowanych według momentu wystąpienia bodźca, łatwo realizowane za pomocą komputera.&lt;br /&gt;
&lt;br /&gt;
[[Grafika:EP.png|thumb|640px|center|&amp;lt;figure id=&amp;quot;fig:EP&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Uśrednianie potencjałów wywołanych. a) ciągły zapis EEG z wyróżnionymi momentami wystąpienia bodźca (w tym przypadku słuchowego) b) kilkadziesiąt kolejnych odcinków, wyciętych jako sekunda EEG od momentu wystąpienia kolejnych bodźców, ustawione jeden pod drugim c) uśredniony potencjał wywołany &amp;amp;mdash; widać m. in. załamek P300 ok. 300 milisekund po bodźcu]]&lt;br /&gt;
&lt;br /&gt;
Techniki te opierają się na założeniu, że zawarta w EEG odpowiedź mózgu na każdy z kolejnych bodźców jest niezmienna, a EEG odzwierciedlające pozostałe procesy traktowane jest jak nieskorelowany z nią proces stochastyczny. Zależnie od rodzaju potencjałów wywołanych, założenia te są mniej lub bardziej nieuzasadnione; podważa je choćby powszechnie znany efekt habituacji, polegający na osłabieniu późnych potencjałów wywołanych kolejnymi powtórzeniami bodźca.&lt;br /&gt;
&lt;br /&gt;
Istota potencjałów wywołanych jest przedmiotem otwartej dyskusji i dziesiątków prac, dotykających od lat podstawowych w tej dziedzinie pytań: czym jest potencjał wywołany, który widzimy w uśrednionym przebiegu? Czy naprawdę wynika z deterministycznie powtarzanej, jednakowej odpowiedzi pojawiającej się po każdym powtórzeniu bodźca niezależnie od &amp;amp;bdquo;tła&amp;amp;rdquo;, czy może wynika z reorganizacji faz tego właśnie &amp;amp;bdquo;tła&amp;amp;rdquo; EEG, czy może kombinacji tych dwóch efektów? Jest to wspaniałe pole dla zastosowań zaawansowanych metod modelowania i analizy sygnałów. W ostatnich latach powstają dziesiątki prac na ten temat, a od czasu do czasu również krytyczne artykuły wykazujące, że dotychczasowe odkrycia są raczej artefaktami stosowanych metod a nie wynikają z własności analizowanych danych (Yeung et al., 2004). Jak widać jest tu wciąż bardzo wiele do zrobienia, gdyż zrozumienie tego mechanizmu stoi na drodze do &amp;amp;bdquo;świętego Graala&amp;amp;rdquo;, którym w tej dziedzinie jest wyodrębnienie pojedynczych potencjałów wywołanych.&lt;br /&gt;
&lt;br /&gt;
Niezależnie od tego, w neurofizjologii klinicznej nazwą potencjał wywołany określa się krzywą widoczną po uśrednieniu odpowiedzi na kilkanaście do kilku tysięcy bodźców (Szelenberger 2000). Gromadzona od dziesięcioleci wiedza o behawioralnych i klinicznych korelatach potencjałów wywołanych opiera się na rozpoznawaniu w przebiegach uśrednionych tak zwanych załamków, czyli przejściowych wzrostów lub spadków potencjału (na przykład na &amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; widać załamek P300). Nazwy załamków składają się zwykle z litery &amp;amp;bdquo;P&amp;amp;rdquo; (od ang. ''positive''), jeśli wychylenie jest dodatnie, lub &amp;amp;bdquo;N&amp;amp;rdquo; (od ang. ''negative''), jeśli wychylenie jest ujemne, oraz liczby. Uwaga: &lt;br /&gt;
* Nie ma niestety jednej ustalonej konwencji prezentacji potencjałów koniecznie trzeba więc zwracać uwagę na orientację wykresu, a wykonując wykres samemu - zamieszczać informację o orientacji kierunku dodatniego,gdyż kierunek dodatni może być wykresie skierowany do góry lub do dołu. &lt;br /&gt;
* Liczba następująca po N lub P określa przybliżoną liczbę milisekund od wystąpienia bodźca, czyli tak zwaną latencję. Nie można jednak ścisłego związku między tą liczbą a liczbą milisekund np. potencjał P300 w zależności od szczegółów paradygmatu doświadczalnego może wystąpić znacznie później. np. w eksperymentach językowych zdarza się że P300 występuje później niż N400 :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;Rys. %i&amp;lt;/xr&amp;gt; przedstawia schematycznie najważniejsze załamki rozpoznawane w potencjałach słuchowych, czyli wywoływanych bodźcem dźwiękowym. Dla potencjałów wzrokowych i somatosensorycznych istnieją podobne klasyfikacje.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Zalamki.png|thumb|320px|right|&amp;lt;figure id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Orientacyjny schemat załamków rozpoznawanych w słuchowych potencjach wywołanych, na podstawie (Szelenberger 2000). Skala czasu logarytmiczna. Najszybsze (do 12 ms) składowe egzogenne to potencjały pniowe (BAEP), oznaczane jako fale I-VII. Litery &amp;amp;bdquo;P&amp;amp;rdquo; i &amp;amp;bdquo;N&amp;amp;rdquo; oznaczają dodatnie i ujemne wychylenia związane z dalszymi załamkami]]&lt;br /&gt;
&lt;br /&gt;
Najszybsze (czyli o najmniejszej latencji) składowe to potencjały egzogenne, odzwierciedlające wstępne fazy przetwarzania informacji. W potencjałach słuchowych są to potencjały pnia (ang. ''brainstem auditory evoked potentials'', BAEP), składające się z siedmiu fal występujących pomiędzy 1 a 12 ms od bodźca. Są one generowane np. w nerwie słuchowym czy pniu mózgu, i wykorzystywane w klinicznej diagnostyce integralności dróg słuchowych. Podobnie jak inne wczesne potencjały o latencjach poniżej 100 ms, są praktycznie niezależne od stanu uwagi.&lt;br /&gt;
&lt;br /&gt;
Po potencjałach o średniej latencji (między 12 a 50 ms) zaczynają się późne potencjały słuchowe (od 100 ms od podania bodźca), odzwierciedlające bardziej złożone reakcje na bodziec. Potencjały ok. 100 ms obserwowane w okolicach sensorycznych odzwierciedlają odpowiedź tejże kory na bodziec. Ich amplituda zależy od parametrów fizycznych bodźca oraz od uwagi, np. amplituda załamka N100 wzrasta w stanie skupienia uwagi czy pobudzenia emocjonalnego. Pierwszy i najpopularniejszy całkowicie endogenny załamek to P300, pojawiający się po rozpoznaniu bodźca oczekiwanego, na którym skupiamy uwagę: na przykład, jeśli w serii pojawiających się losowo liter mamy zliczać wystąpienia jednej z nich, to na średniej odpowiedzi na pojawienie się tej litery pojawi się załamek P300. Załamek ten występuje również w odpowiedzi na bodźce wyczekiwane, niespodziewane i ważne dla osoby (np. własne imię). &lt;br /&gt;
&lt;br /&gt;
=== Uśrednianie w dziedzinie czasu ===&lt;br /&gt;
Jak już było wspomniane powyżej podstawową techniką stosowaną do analizy potencjałów wywołanych jest uśrednianie wielu realizacji odpowiedzi na bodziec wyrównanych względem jakiegoś charakterystycznego zdarzenia, np. momentu podania bodźca albo momentu behawioralnej reakcji na bodziec (np. wciśnięcie przycisku). Podejście to bazuje na trzech założeniach:&lt;br /&gt;
* Reakcja jest czasowo związana z bodźcem. Tzn. w kolejnych realizacjach występuje ona zawsze z tym samym opóźnieniem.&lt;br /&gt;
* Reakcja na bodziec skutkuje zawsze pojawieniem się w sygnale składowej o stałym kształcie (mówimy o stałej morfologii).&lt;br /&gt;
* Spontaniczna czynność EEG &amp;amp;mdash; ta która nie dotyczy przetwarzania interesującego nas bodźca &amp;amp;mdash; jest niezależnym, stacjonarnym szumem o średniej zero.&lt;br /&gt;
&lt;br /&gt;
Zgodnie z powyższymi założeniami mierzony w ''i''-tej realizacji sygnał można wyrazić jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Uśrednianie po ''N'' realizacjach daje:&lt;br /&gt;
: &amp;lt;math&amp;gt;\bar x (t) = \frac{1}{N} \sum_{i=1}^N x_i(t) = \frac{1}{N} \left(N s(t) + \sum_{i=1}^N n_i(t) \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
Wartość oczekiwana średniego sygnału wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[ \bar x(t) \right] = s(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż dla szumu o średniej zero mamy:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[\frac{1}{N} \sum_{i=1}^N n_i(t)\right] = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
Wariancja &amp;lt;math&amp;gt;\bar x(t)&amp;lt;/math&amp;gt; wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \mathrm{E} \left[  \left( \frac{1}{N} \sum_{i=1}^N n_i(t)\right)^2 \right] \approx \frac{1}{N} \sigma^2_{n(t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; jest deterministyczne. &lt;br /&gt;
&lt;br /&gt;
Dla potencjałów pojawiających się w pierwszych kilkudziesięciu milisekundach po bodźcu model ten można uznać za poprawny, gdyż wykazują one zależność głównie od parametrów fizycznych bodźca. Dla późniejszych składowych staje się on coraz bardziej wątpliwy ze względu na występujące korelacje ze stanem (np. uwagi) badanego.&lt;br /&gt;
&lt;br /&gt;
Dla późniejszych składowych można by postulować bardziej ogólną wersję modelu potencjału wywołanego:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s_i(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Ten model uwidacznia, że do opisu potencjału wywołanego potrzebna jest nie tylko średnia, ale i wyższe momenty rozkładu (np. drugi moment centralny czyli wariancja).&lt;br /&gt;
&lt;br /&gt;
====Wariancja w przypadku szumu skorelowanego ====&lt;br /&gt;
W poprzednim paragrafie pokazaliśmy, że w przypadku niezależnego szumu wariancja uśrednionego sygnału (w danej chwili czasu) maleje jak  &amp;lt;math&amp;gt;\frac{1}{N}&amp;lt;/math&amp;gt;. Jednak w przypadku gdy kolejne próbki szumu są skorelowane (np. występuje silna aktywność rytmiczna alfa) sytuacja się komplikuje. Intuicyjnie łatwo możemy to sobie wyobrazić w granicznym przypadku. Załóżmy, że tło dla  potencjałów o stałej morfologii stanowi sinusoida. Jeśli będziemy podawać bodźce w odstępach będących wielokrotnością okresu tej sinusoidy to w uśrednianych fragmentach sygnału owa sinusoida jest tak samo powtarzalna jak badany potencjał i uśrednianie nie prowadzi do poprawy stosunku amplitudy sygnału do amplitudy tła. &lt;br /&gt;
&lt;br /&gt;
Stopień zależności pomiędzy próbkami można zmierzyć przy pomocy funkcji autokorelacji. &lt;br /&gt;
Jeśli funkcję autokorelacji przybliżymy przez:&lt;br /&gt;
: &amp;lt;math&amp;gt;R_{xx}(\tau) = \sigma^2 \exp(-\beta |\tau|) \cos(2 \pi f_0 \tau)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;\sigma^2&amp;lt;/math&amp;gt; jest wariancją szumu, &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; jest średnią częstością aktywności rytmicznej, &amp;lt;math&amp;gt;\beta/ \pi&amp;lt;/math&amp;gt; jest szerokością pasma tej czynności, zaś &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; opóźnieniem, to wariancję potencjału wywołanego można wyrazić jako&amp;lt;!-- \cite{Spekreijse_1976}--&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \frac{\sigma^2}{N} \left[ \frac{1-\exp(-2 \beta T)}{1 - 2 \exp(- \beta T) \cos(2 \pi f_0 T) +\exp(-2 \beta T)} \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; jest odstępem między bodźcami. &lt;br /&gt;
Widać stąd, że obecność czynności rytmicznej w tle wpływa na stosunek sygnału do szumu. Z powyższego równania widać, że stosunek wariancji dąży do &amp;lt;math&amp;gt;\frac{\sigma^2}{N}&amp;lt;/math&amp;gt; gdy &amp;lt;math&amp;gt;\beta T&amp;lt;/math&amp;gt; staje się duże.  &lt;br /&gt;
&lt;br /&gt;
Periodyczna stymulacja może ponadto prowadzić do wzbudzenia czynności rytmicznej o częstości równej częstości pobudzania bądź jej harmonicznej.&lt;br /&gt;
&lt;br /&gt;
===Wariancja latencji===&lt;br /&gt;
&lt;br /&gt;
Jedną z form zmienności potencjału wywołanego w pojedynczych realizacjach jest wariancja latencji. &lt;br /&gt;
[[Grafika:Wariancja_latencji.png|thumb|500px|right|&lt;br /&gt;
Czerwona linia: Uśrednianie 100 potencjałów wywołanych o latncjach z rozkładu normalnego N(300,30 ), Niebieskie linie: przykładowe pojedyncze realizacje wzięte do średniej]]# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
Zmienność latencji prowadzi do:&lt;br /&gt;
* zmniejszenia amplitudy &amp;lt;math&amp;gt;\bar x&amp;lt;/math&amp;gt;&lt;br /&gt;
* wzrostu rozciągłości czasowej załamka&lt;br /&gt;
&lt;br /&gt;
O tych konsekwencjach zmienności latencji należy w szczególności pamiętać porównując średnie potencjały uzyskane w różnych warunkach eksperymentalnych. Gdy zauważymy, że średnie potencjały różnią się amplitudą należy rozważyć możliwość, że w istocie warunki eksperymentalne wpływają na różnice w wariancji latencji. &lt;br /&gt;
&lt;br /&gt;
Naturalne jest, że zmienność latencji jest bardziej widoczna w przypadku załamków trwających krótko niż w przypadku załamków trwających długo. Wariancja latencji rożnie wraz z jej wartością, stąd wśród późnych składowych potencjałów wywołanych nie obserwuje się komponentów krótkotrwałych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Habituacja ===&lt;br /&gt;
Zmienność w odpowiedziach na kolejno występujące po sobie bodźce można podzielić na komponent stochastyczny i deterministyczny. Komponent deterministyczny odzwierciedla zmianę czułości  układu nerwowego  na kolejne bodźce. Nowy bodziec często wywołuje reakcje pobudzenia widoczną w wielu parametrach takich jak przewodnictwo skóry, rytm serca i reaktywność kory mózgowej. Powszechnie obserwowanym zjawiskiem jest spadek reaktywności na powtarzające się bodźce zwany habituacją. Niekiedy obserwuje się także zjawisko przeciwne &amp;amp;mdash; wzrost reaktywności na bodziec &amp;amp;mdash; zwane sensytyzacją. &lt;br /&gt;
&lt;br /&gt;
Klasycznym sposobem na badanie tych zjawisk w potencjałach wywołanych jest uśrednianie w podzbiorach lub  uśrednianie blokowe. Wymaga ono  zmiany paradygmatu rejestracji danych. Załóżmy, że interesującym nas bodźcem jest błysk światła. Chcemy zaobserwować ewentualne zmiany amplitudy i latencji w ciągu 100 potencjałów będących reakcją na błysk powtarzający się co 500 ms.&lt;br /&gt;
====Uśrednianie w podzbiorach ====&lt;br /&gt;
W metodzie tej musimy założyć, że proces habituacji jest powolny, tzn. zmiany pomiędzy kolejnymi reakcjami są bardzo małe. W takim przypadku możemy podzielić długą serię bodźców na ciąg pod-serii i uśrednienie przeprowadzić dla każdej pod-serii osobno.&lt;br /&gt;
[[Plik:Usrednianie_podzbiory.svg‎|640px|thumb|center|Ilustracja uśredniania w podzbiorach]]&lt;br /&gt;
&lt;br /&gt;
====Uśrednianie blokowe====&lt;br /&gt;
W tym celu eksperyment wykonujemy w wielu seriach. Jedna seria składa się ze 100 błysków powtarzanych co 500 ms.  Po serii następuje przerwa trwająca np. 5 s (długość przerwy wyraża nasze oszacowanie czasu potrzebnego na zanik habituacji). Po przerwie seria jest powtarzana. Powtórzeń serii wykonujemy ''N''.&lt;br /&gt;
Następnie uśredniamy fragmenty sygnałów odpowiadające sobie w kolejnych seriach. &lt;br /&gt;
&lt;br /&gt;
W tym paradygmacie zakładamy, że każda seria rejestrowana jest w tych samych warunkach. Zaniedbujemy efekty związane ze zmęczeniem i zmianami w np. stopniu koncentracji badanego.&lt;br /&gt;
[[Plik:Usrednianie blokowe.svg|Usrednianie blokowe.svg|640px|thumb|center|Ilustracja uśredniania w blokach]]&lt;br /&gt;
&lt;br /&gt;
===Załamki w krzywej potencjału wywołanego vs ukryte komponenty===&lt;br /&gt;
Komponenta potencjału wywołanego to bardzo ważne ale jednocześnie źle określone pojęcie. Krzywa otrzymana w wyniku uśredniania potencjałów wywołanych przedstawia serię załamków dodatnich i ujemnych, ale trzeba być świadomym, że ten przebieg napięcia rejestrowany przez elektrody przedstawia tak naprawdę sumę potencjałów pochodzących od wielu dość niezależnie działających źródeł w mózgu. Przyczynek pochodzący od jednego funkcjonalnego źródła będziemy określać jako komponentę. &lt;br /&gt;
&lt;br /&gt;
Komentarza wymaga też pojęcie źródła funkcjonalnego. Czynność elektryczną synchronicznie działających neuronów piramidalnych w określonym fragmencie kory mózgowej z pewnej odległości można przybliżyć potencjałem dipola prądowego. Taki aktywny fragment kory stanowi źródło dające przyczynek do mierzonego na powierzchni głowy potencjału. W najprostszej sytuacji taki przyczynek może być obserwowany jako komponenta. Mózg jest jednak obiektem niezwykle złożonym i gęsto połączonym. Wiele obszarów korowych może być funkcjonalnie połączonych i aktywowanych synchronicznie w celu realizacji określonego zadania &amp;amp;mdash; o takim funkcjonalnym zespole też możemy myśleć jako o pojedynczym źródle, choć może ono mieć złożoną strukturę przestrzenną. Często zatem myślimy o komponentach ukrytych potencjału wywołanego jako o aktywności takich funkcjonalnych zespołów. &lt;br /&gt;
&lt;br /&gt;
Po tym wstępie widać już chyba, że do zrozumienia co dzieje się w czasie reakcji na bodziec, którą obserwujemy w potencjale wywołanym, bardziej pożądane byłoby badanie komponent ukrytych niż poszczególnych załamków krzywej potencjału wywołanego, która stanowi ważoną sumę owych komponentów. Zanim przejdziemy do omówienia technik służących &amp;amp;bdquo;wyłuskiwaniu&amp;amp;rdquo; komponent prześledźmy kilka symulacji i wnioski z nich płynące.&lt;br /&gt;
&lt;br /&gt;
==== Załamki i komponenty nie są tym samym.====&lt;br /&gt;
Tę samą krzywą można otrzymać na nieskończenie wiele sposobów  przez sumowanie rożnych kombinacji domniemanych komponentów. Przykładowy rysunek pokazuje, jak tę samą krzywą można złożyć z dwóch rożnych zestawów komponentów (kod wytwarzający przykładową symulację pokazany jest poniżej).&lt;br /&gt;
[[Plik:Sumowanie_komponentow1.png|center|thumb|600px| Panel a) przedstawia hipotetyczną krzywą ERP, panel b) jedna z możliwych dekompozycji sygnału w panelu a), panel c) inna możliwa dekompozycja sygnału z panelu a) ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Zadanie 1: Rejestracja i analiza potencjałów wzrokowych i słuchowych=&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 1. Obserwacja bodźca wzrokowego  ===&lt;br /&gt;
 &lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
* Paradygmat: z odległości około 40 cm badany obserwuje wyświetalny na ekranie biały kwadrat. Bodźce trwają 300 ms i  powtarzają się co 0,5 sekundy. Bodziec poprzedza punkt fiksacji pokazywany przez 300 ms. Natężenie bodźca ma przyjąć jedną z 4 wartości (manipulujemy jego przeźroczystością: 1, 0,7, 0,3 i 0,1, gdzie 1 oznacza brak przeźroczystości). Każda z intensywności bodźca ma pojawić się 100 razy podczas badania, bodźce podawane mają być w sposób losowy. Zadanie poprzedza krótka instrukcja, a kończy podziękowanie. &lt;br /&gt;
&lt;br /&gt;
* Pomiar&lt;br /&gt;
**Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 10 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%. [[Plik:Glowka10-20 ERPy.svg|thumb|600px|right]]&lt;br /&gt;
** Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
** Montujemy także elektrody M1 i M2 i FCz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# W sygnale wyszukujemy wzrokowo odcinki z artefaktami i oznaczamy je tagami w SVAROGu.&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +800 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# W przypadku, gdy dane są zanieczyszczone wieloma mrugnięciami (zwłaszcza tylnych okolicach), należy skorzystać z metody ICA w SVAROGU, informacje tutaj: [https://brain.fuw.edu.pl/edu/index.php/Pracownia_EEG/EEG_spoczynkowe#ICA_.28.C4.87wiczenie_dodatkowe.29])&lt;br /&gt;
# Porównujemy zestawy danych otrzymane po wzrokowym i automatycznym (metodą opisaną powyżej) usunięciu artefaktów.&lt;br /&gt;
# Uśredniamy wycięte sygnały.&lt;br /&gt;
# Rysujemy średni potencjał we wszystkich kanałach.&lt;br /&gt;
# Pierwszy sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 jako różnicę między ekstremalną wartością załamka N2 a ekstremalną wartością załamka N2. &lt;br /&gt;
# Drugi sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 w stosunku do zera. &lt;br /&gt;
# Porównujemy uzyskane amplitudy w 4 warunkach za pomocą odpowiedniego testu statystycznego (porównanie warunków ze skrajnymi wartościami amplitudy) &amp;amp;mdash; zastosuj test permutacyjny (opisany poniżej) lub test t-Studenta/nieparametryczny odpowiednik). &lt;br /&gt;
&lt;br /&gt;
**Opis testu permutacyjnego &lt;br /&gt;
Pytanie: Czy intensywność bodźca wpływa na amplitudę potencjału P1?&lt;br /&gt;
Jak stwierdzić czy amplitudy załamków P1 istotnie różnią się pomiędzy seriami?&lt;br /&gt;
&lt;br /&gt;
Musimy przeprowadzić test statystyczny. Możemy skonstruować go np. tak:&lt;br /&gt;
Mamy dwa warunki I i II. Jako statystykę przyjmiemy różnicę pomiędzy amplitudą załamka zmierzoną w serii z dwoma diodami (P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt;) a amplitudą zmierzoną w serii z jedną diodą (P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;):&lt;br /&gt;
: ''S'' = P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt; &amp;amp;minus; P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;&lt;br /&gt;
Postawmy hipotezę zerową, że nie ma różnicy w amplitudzie pomiędzy warunkiem II a I oraz hipotezę alternatywną, że różnica taka występuje.&lt;br /&gt;
: H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;: ''S'' = 0&lt;br /&gt;
: H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;: ''S'' &amp;amp;ne; 0&lt;br /&gt;
Zgodnie z H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; dla wartości ''S'' nie ma różnicy czy realizacja została zarejestrowana w warunkach I czy II, zatem można losowo poprzypisywać numery warunków do realizacji i w ten sposób uzyskać rozkład statystyki ''S'' pod warunkiem prawdziwości H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, czyli obliczyć średnie potencjały dla &amp;amp;bdquo;pomieszanych&amp;amp;rdquo; tagów, wyliczyć średnie potencjały dla sztucznie wygenerowaych grup, i wyliczyć różnicę amplitud dla tych średnich, czyli wartość statystyki dla hipotezy H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Zaimplementuj test permutacyjny zgodny z powyższą koncepcją.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===Wersja 2: obserwacja habituacji / uśrednianie w blokach ===&lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje błyski diody. &lt;br /&gt;
#* Błyski powtarzają się co 0,5 sekundy. &lt;br /&gt;
#* Rejestrujemy 60 serii po 15 błysków.  &lt;br /&gt;
#* Pomiędzy seriami badany odpoczywa około 10 sekund.&lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrodę FCz (na linii centralnej pomiędzy Fz a Cz), będziemy jej używać w montażu i w czasie analizy jako referencji.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 0,1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +600 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy wycięte sygnały o tym samym numerze wewnątrz serii.&lt;br /&gt;
# Rysujemy serie 15 uśrednionych potencjałów dla tego kanału, który wykazywał najsilniejszy potencjał w pierwszej wersji eksperymentu. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 2: rejestracja i analiza potencjału P3 ===&lt;br /&gt;
====Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje kwadrat, który występuje w dwóch kolorach. &lt;br /&gt;
#* Bodźce trwają 300 ms, poprzedzane punktem fiksacji wyświetlanym na 300 ms, przerwa między próbami jest losowana i wynosi od 0.8-1.2 s.  &lt;br /&gt;
#* Proporcja wystapień bodźców koloru pierwszego i drugiego wynosi 1:5.   &lt;br /&gt;
#* Zadaniem badanego jest liczenie kwadratów w rzadkim kolorze. &lt;br /&gt;
#* Wykonujemy tyle realizacji aby zarejestrować 100 powtórzeń bodźców rzadkich. &lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrody M1 i M2, będziemy ich używać w montażu i w czasie analizy jako referencji typu połączone uszy.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +900 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy osobno realizacje dla każdego koloru kwadratu. &lt;br /&gt;
# Nakładamy na siebie na rysunkach oba typy średnich.&lt;br /&gt;
# Wyznaczamy amplitudę P3 i liczymy test statystyczny pomiędzy warunkami.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Ćwiczenie dodatkowe: P300 BCI==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy elektrody z systemu 10-10 umieszczone nad korą wzrokową: P07, O1, O2, PO8, PO3, PO4, Pz, Cz.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
obci_gui --presets eeg_workshop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i z guzika &amp;amp;bdquo;select amplifier&amp;amp;rdquo; wybieramy właściwy wzmacniacz.&lt;br /&gt;
&lt;br /&gt;
Do kontroli jakości sygnału możemy uruchomić Svaroga.&lt;br /&gt;
&lt;br /&gt;
Dane z kalibracji zapisują się w pliku test1 w katalogu domowym użytkownika, z labiryntu w pliku test2.&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu kalibracji pojawia się napis &amp;amp;bdquo;Trwają obliczenia&amp;amp;rdquo; lub podobny. Odczekujemy kilka minut, aż skończy się peer &amp;amp;bdquo;Calibration&amp;amp;rdquo; (widoczny w obci_gui) i zamykamy okienko klawiszami Alt-F4 lub zatrzymując scenariusz guzikiem &amp;amp;bdquo;Stop&amp;amp;rdquo;. W katalogu domowym pojawi się plik z wynikami kalibracji, co pozwala na uruchomienie scenariusza &amp;amp;bdquo;labirynt&amp;amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Po zebraniu danych, przed wczytaniem ich do Svaroga należy w tym samym katalogu uruchomić skrypt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.read_manager import ReadManager&lt;br /&gt;
&lt;br /&gt;
def main(): &lt;br /&gt;
	file_name = 'test1'&lt;br /&gt;
	&lt;br /&gt;
	mgr = ReadManager(&lt;br /&gt;
		file_name + '.obci.xml',&lt;br /&gt;
		file_name + '.obci.raw',&lt;br /&gt;
		file_name + '.obci.tag')&lt;br /&gt;
	&lt;br /&gt;
	tags = mgr.get_tags()&lt;br /&gt;
	for i in xrange(0, len(tags)):&lt;br /&gt;
		if tags[i]['desc']['index'] == tags[i]['desc']['target']:&lt;br /&gt;
			tags[i]['name'] = 'blink_target'&lt;br /&gt;
		else:&lt;br /&gt;
			tags[i]['name'] = 'blink'&lt;br /&gt;
			&lt;br /&gt;
	tags_writer = tags_file_writer.TagsFileWriter(file_name + '.obci.tag')&lt;br /&gt;
	for tag in tags:&lt;br /&gt;
		tags_writer.tag_received(tag)		&lt;br /&gt;
	tags_writer.finish_saving(0)	&lt;br /&gt;
 &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3. Analiza Heartbeat-Evoked Potential (HEP)== &lt;br /&gt;
&lt;br /&gt;
Celem tego zadania jest zaobserwowanie występowania ERP związanego z działaniem serca (szczegóły można doczytać tutaj: [https://www.sciencedirect.com/science/article/pii/S1053811919303738?via%3Dihub]. W zadaniu tym wykorzystany dane spoczynkowe zebrane podczas pierwszej rejestracji. &lt;br /&gt;
* w pierwszym kroku sygnał montujemy i filtrujemy;&lt;br /&gt;
* następnie zaznaczamy fragmenty sygnału, w których widzimy artefakty;&lt;br /&gt;
* w drugim robimy detekcję załamków R z EKG &amp;amp;mdash; po ich podstawie będziemy cieli sygnał (&amp;amp;minus;200-600 ms po R);&lt;br /&gt;
* następnie uśredniamy otrzymane odcinki.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10910</id>
		<title>Pracownia EEG/Potencjały wywołane</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10910"/>
		<updated>2024-10-08T09:37:18Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Anulowanie wersji 10804 autorstwa AnnADuszyk (dyskusja)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG|Pracownia EEG]] / Potencjały wywołane&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
==Potencjały wywołane==&lt;br /&gt;
=== Wstęp ===&lt;br /&gt;
Potencjały wywołane EEG (ang. ''evoked potentials'', EP) są śladami odpowiedzi mózgu na bodźce. W przypadku MEG poprawnie mówi się o polach wywołanych (ang. ''evoked fields'', EF).&lt;br /&gt;
Zwykle reakcja ta jest mała (wyjątek stanowią [[Elektroencefalografia/Metody_analizy_sygnałów_EEG_-_analiza_w_dziedzinie_czasu |kompleksy K]]) i w zapisie pojedynczej realizacji reakcji na bodziec najczęściej niewidoczna wśród czynności pochodzącej od wielu innych procesów zachodzących w tym samym czasie w mózgu. &lt;br /&gt;
Ich wyodrębnienie z tak zwanego tła EEG/MEG, czyli manifestacji elektrycznej innych, trwających w tym samym czasie w mózgu procesów (aktywny prąd niezależny), wymaga w dniu dzisiejszym zapisu odpowiedzi na szereg powtórzeń tego samego bodźca (&amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;). Pierwsze potencjały wywołane pokazał pod koniec lat 40-tych Dawson (Dawson, 1947) wykonując superpozycję pojedynczych realizacji na kliszy fotograficznej.&lt;br /&gt;
Z czasem skomplikowane urządzenia analogowe zastąpione zostały przez cyfrowe uśrednianie kolejnych fragmentów EEG, zsynchronizowanych według momentu wystąpienia bodźca, łatwo realizowane za pomocą komputera.&lt;br /&gt;
&lt;br /&gt;
[[Grafika:EP.png|thumb|640px|center|&amp;lt;figure id=&amp;quot;fig:EP&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Uśrednianie potencjałów wywołanych. a) ciągły zapis EEG z wyróżnionymi momentami wystąpienia bodźca (w tym przypadku słuchowego) b) kilkadziesiąt kolejnych odcinków, wyciętych jako sekunda EEG od momentu wystąpienia kolejnych bodźców, ustawione jeden pod drugim c) uśredniony potencjał wywołany &amp;amp;mdash; widać m. in. załamek P300 ok. 300 milisekund po bodźcu]]&lt;br /&gt;
&lt;br /&gt;
Techniki te opierają się na założeniu, że zawarta w EEG odpowiedź mózgu na każdy z kolejnych bodźców jest niezmienna, a EEG odzwierciedlające pozostałe procesy traktowane jest jak nieskorelowany z nią proces stochastyczny. Zależnie od rodzaju potencjałów wywołanych, założenia te są mniej lub bardziej nieuzasadnione; podważa je choćby powszechnie znany efekt habituacji, polegający na osłabieniu późnych potencjałów wywołanych kolejnymi powtórzeniami bodźca.&lt;br /&gt;
&lt;br /&gt;
Istota potencjałów wywołanych jest przedmiotem otwartej dyskusji i dziesiątków prac, dotykających od lat podstawowych w tej dziedzinie pytań: czym jest potencjał wywołany, który widzimy w uśrednionym przebiegu? Czy naprawdę wynika z deterministycznie powtarzanej, jednakowej odpowiedzi pojawiającej się po każdym powtórzeniu bodźca niezależnie od &amp;amp;bdquo;tła&amp;amp;rdquo;, czy może wynika z reorganizacji faz tego właśnie &amp;amp;bdquo;tła&amp;amp;rdquo; EEG, czy może kombinacji tych dwóch efektów? Jest to wspaniałe pole dla zastosowań zaawansowanych metod modelowania i analizy sygnałów. W ostatnich latach powstają dziesiątki prac na ten temat, a od czasu do czasu również krytyczne artykuły wykazujące, że dotychczasowe odkrycia są raczej artefaktami stosowanych metod a nie wynikają z własności analizowanych danych (Yeung et al., 2004). Jak widać jest tu wciąż bardzo wiele do zrobienia, gdyż zrozumienie tego mechanizmu stoi na drodze do &amp;amp;bdquo;świętego Graala&amp;amp;rdquo;, którym w tej dziedzinie jest wyodrębnienie pojedynczych potencjałów wywołanych.&lt;br /&gt;
&lt;br /&gt;
Niezależnie od tego, w neurofizjologii klinicznej nazwą potencjał wywołany określa się krzywą widoczną po uśrednieniu odpowiedzi na kilkanaście do kilku tysięcy bodźców (Szelenberger 2000). Gromadzona od dziesięcioleci wiedza o behawioralnych i klinicznych korelatach potencjałów wywołanych opiera się na rozpoznawaniu w przebiegach uśrednionych tak zwanych załamków, czyli przejściowych wzrostów lub spadków potencjału (na przykład na &amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; widać załamek P300). Nazwy załamków składają się zwykle z litery &amp;amp;bdquo;P&amp;amp;rdquo; (od ang. ''positive''), jeśli wychylenie jest dodatnie, lub &amp;amp;bdquo;N&amp;amp;rdquo; (od ang. ''negative''), jeśli wychylenie jest ujemne, oraz liczby. Uwaga: &lt;br /&gt;
* Nie ma niestety jednej ustalonej konwencji prezentacji potencjałów koniecznie trzeba więc zwracać uwagę na orientację wykresu, a wykonując wykres samemu - zamieszczać informację o orientacji kierunku dodatniego,gdyż kierunek dodatni może być wykresie skierowany do góry lub do dołu. &lt;br /&gt;
* Liczba następująca po N lub P określa przybliżoną liczbę milisekund od wystąpienia bodźca, czyli tak zwaną latencję. Nie można jednak ścisłego związku między tą liczbą a liczbą milisekund np. potencjał P300 w zależności od szczegółów paradygmatu doświadczalnego może wystąpić znacznie później. np. w eksperymentach językowych zdarza się że P300 występuje później niż N400 :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;Rys. %i&amp;lt;/xr&amp;gt; przedstawia schematycznie najważniejsze załamki rozpoznawane w potencjałach słuchowych, czyli wywoływanych bodźcem dźwiękowym. Dla potencjałów wzrokowych i somatosensorycznych istnieją podobne klasyfikacje.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Zalamki.png|thumb|320px|right|&amp;lt;figure id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Orientacyjny schemat załamków rozpoznawanych w słuchowych potencjach wywołanych, na podstawie (Szelenberger 2000). Skala czasu logarytmiczna. Najszybsze (do 12 ms) składowe egzogenne to potencjały pniowe (BAEP), oznaczane jako fale I-VII. Litery &amp;amp;bdquo;P&amp;amp;rdquo; i &amp;amp;bdquo;N&amp;amp;rdquo; oznaczają dodatnie i ujemne wychylenia związane z dalszymi załamkami]]&lt;br /&gt;
&lt;br /&gt;
Najszybsze (czyli o najmniejszej latencji) składowe to potencjały egzogenne, odzwierciedlające wstępne fazy przetwarzania informacji. W potencjałach słuchowych są to potencjały pnia (ang. ''brainstem auditory evoked potentials'', BAEP), składające się z siedmiu fal występujących pomiędzy 1 a 12 ms od bodźca. Są one generowane np. w nerwie słuchowym czy pniu mózgu, i wykorzystywane w klinicznej diagnostyce integralności dróg słuchowych. Podobnie jak inne wczesne potencjały o latencjach poniżej 100 ms, są praktycznie niezależne od stanu uwagi.&lt;br /&gt;
&lt;br /&gt;
Po potencjałach o średniej latencji (między 12 a 50 ms) zaczynają się późne potencjały słuchowe (od 100 ms od podania bodźca), odzwierciedlające bardziej złożone reakcje na bodziec. Potencjały ok. 100 ms obserwowane w okolicach sensorycznych odzwierciedlają odpowiedź tejże kory na bodziec. Ich amplituda zależy od parametrów fizycznych bodźca oraz od uwagi, np. amplituda załamka N100 wzrasta w stanie skupienia uwagi czy pobudzenia emocjonalnego. Pierwszy i najpopularniejszy całkowicie endogenny załamek to P300, pojawiający się po rozpoznaniu bodźca oczekiwanego, na którym skupiamy uwagę: na przykład, jeśli w serii pojawiających się losowo liter mamy zliczać wystąpienia jednej z nich, to na średniej odpowiedzi na pojawienie się tej litery pojawi się załamek P300. Załamek ten występuje również w odpowiedzi na bodźce wyczekiwane, niespodziewane i ważne dla osoby (np. własne imię). &lt;br /&gt;
&lt;br /&gt;
=== Uśrednianie w dziedzinie czasu ===&lt;br /&gt;
Jak już było wspomniane powyżej podstawową techniką stosowaną do analizy potencjałów wywołanych jest uśrednianie wielu realizacji odpowiedzi na bodziec wyrównanych względem jakiegoś charakterystycznego zdarzenia, np. momentu podania bodźca albo momentu behawioralnej reakcji na bodziec (np. wciśnięcie przycisku). Podejście to bazuje na trzech założeniach:&lt;br /&gt;
* Reakcja jest czasowo związana z bodźcem. Tzn. w kolejnych realizacjach występuje ona zawsze z tym samym opóźnieniem.&lt;br /&gt;
* Reakcja na bodziec skutkuje zawsze pojawieniem się w sygnale składowej o stałym kształcie (mówimy o stałej morfologii).&lt;br /&gt;
* Spontaniczna czynność EEG &amp;amp;mdash; ta która nie dotyczy przetwarzania interesującego nas bodźca &amp;amp;mdash; jest niezależnym, stacjonarnym szumem o średniej zero.&lt;br /&gt;
&lt;br /&gt;
Zgodnie z powyższymi założeniami mierzony w ''i''-tej realizacji sygnał można wyrazić jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Uśrednianie po ''N'' realizacjach daje:&lt;br /&gt;
: &amp;lt;math&amp;gt;\bar x (t) = \frac{1}{N} \sum_{i=1}^N x_i(t) = \frac{1}{N} \left(N s(t) + \sum_{i=1}^N n_i(t) \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
Wartość oczekiwana średniego sygnału wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[ \bar x(t) \right] = s(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż dla szumu o średniej zero mamy:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[\frac{1}{N} \sum_{i=1}^N n_i(t)\right] = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
Wariancja &amp;lt;math&amp;gt;\bar x(t)&amp;lt;/math&amp;gt; wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \mathrm{E} \left[  \left( \frac{1}{N} \sum_{i=1}^N n_i(t)\right)^2 \right] \approx \frac{1}{N} \sigma^2_{n(t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; jest deterministyczne. &lt;br /&gt;
&lt;br /&gt;
Dla potencjałów pojawiających się w pierwszych kilkudziesięciu milisekundach po bodźcu model ten można uznać za poprawny, gdyż wykazują one zależność głównie od parametrów fizycznych bodźca. Dla późniejszych składowych staje się on coraz bardziej wątpliwy ze względu na występujące korelacje ze stanem (np. uwagi) badanego.&lt;br /&gt;
&lt;br /&gt;
Dla późniejszych składowych można by postulować bardziej ogólną wersję modelu potencjału wywołanego:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s_i(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Ten model uwidacznia, że do opisu potencjału wywołanego potrzebna jest nie tylko średnia, ale i wyższe momenty rozkładu (np. drugi moment centralny czyli wariancja).&lt;br /&gt;
&lt;br /&gt;
====Wariancja w przypadku szumu skorelowanego ====&lt;br /&gt;
W poprzednim paragrafie pokazaliśmy, że w przypadku niezależnego szumu wariancja uśrednionego sygnału (w danej chwili czasu) maleje jak  &amp;lt;math&amp;gt;\frac{1}{N}&amp;lt;/math&amp;gt;. Jednak w przypadku gdy kolejne próbki szumu są skorelowane (np. występuje silna aktywność rytmiczna alfa) sytuacja się komplikuje. Intuicyjnie łatwo możemy to sobie wyobrazić w granicznym przypadku. Załóżmy, że tło dla  potencjałów o stałej morfologii stanowi sinusoida. Jeśli będziemy podawać bodźce w odstępach będących wielokrotnością okresu tej sinusoidy to w uśrednianych fragmentach sygnału owa sinusoida jest tak samo powtarzalna jak badany potencjał i uśrednianie nie prowadzi do poprawy stosunku amplitudy sygnału do amplitudy tła. &lt;br /&gt;
&lt;br /&gt;
Stopień zależności pomiędzy próbkami można zmierzyć przy pomocy funkcji autokorelacji. &lt;br /&gt;
Jeśli funkcję autokorelacji przybliżymy przez:&lt;br /&gt;
: &amp;lt;math&amp;gt;R_{xx}(\tau) = \sigma^2 \exp(-\beta |\tau|) \cos(2 \pi f_0 \tau)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;\sigma^2&amp;lt;/math&amp;gt; jest wariancją szumu, &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; jest średnią częstością aktywności rytmicznej, &amp;lt;math&amp;gt;\beta/ \pi&amp;lt;/math&amp;gt; jest szerokością pasma tej czynności, zaś &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; opóźnieniem, to wariancję potencjału wywołanego można wyrazić jako&amp;lt;!-- \cite{Spekreijse_1976}--&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \frac{\sigma^2}{N} \left[ \frac{1-\exp(-2 \beta T)}{1 - 2 \exp(- \beta T) \cos(2 \pi f_0 T) +\exp(-2 \beta T)} \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; jest odstępem między bodźcami. &lt;br /&gt;
Widać stąd, że obecność czynności rytmicznej w tle wpływa na stosunek sygnału do szumu. Z powyższego równania widać, że stosunek wariancji dąży do &amp;lt;math&amp;gt;\frac{\sigma^2}{N}&amp;lt;/math&amp;gt; gdy &amp;lt;math&amp;gt;\beta T&amp;lt;/math&amp;gt; staje się duże.  &lt;br /&gt;
&lt;br /&gt;
Periodyczna stymulacja może ponadto prowadzić do wzbudzenia czynności rytmicznej o częstości równej częstości pobudzania bądź jej harmonicznej.&lt;br /&gt;
&lt;br /&gt;
===Wariancja latencji===&lt;br /&gt;
&lt;br /&gt;
Jedną z form zmienności potencjału wywołanego w pojedynczych realizacjach jest wariancja latencji. &lt;br /&gt;
[[Grafika:Wariancja_latencji.png|thumb|500px|right|&lt;br /&gt;
Czerwona linia: Uśrednianie 100 potencjałów wywołanych o latncjach z rozkładu normalnego N(300,30 ), Niebieskie linie: przykładowe pojedyncze realizacje wzięte do średniej]]# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
Zmienność latencji prowadzi do:&lt;br /&gt;
* zmniejszenia amplitudy &amp;lt;math&amp;gt;\bar x&amp;lt;/math&amp;gt;&lt;br /&gt;
* wzrostu rozciągłości czasowej załamka&lt;br /&gt;
&lt;br /&gt;
O tych konsekwencjach zmienności latencji należy w szczególności pamiętać porównując średnie potencjały uzyskane w różnych warunkach eksperymentalnych. Gdy zauważymy, że średnie potencjały różnią się amplitudą należy rozważyć możliwość, że w istocie warunki eksperymentalne wpływają na różnice w wariancji latencji. &lt;br /&gt;
&lt;br /&gt;
Naturalne jest, że zmienność latencji jest bardziej widoczna w przypadku załamków trwających krótko niż w przypadku załamków trwających długo. Wariancja latencji rożnie wraz z jej wartością, stąd wśród późnych składowych potencjałów wywołanych nie obserwuje się komponentów krótkotrwałych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Habituacja ===&lt;br /&gt;
Zmienność w odpowiedziach na kolejno występujące po sobie bodźce można podzielić na komponent stochastyczny i deterministyczny. Komponent deterministyczny odzwierciedla zmianę czułości  układu nerwowego  na kolejne bodźce. Nowy bodziec często wywołuje reakcje pobudzenia widoczną w wielu parametrach takich jak przewodnictwo skóry, rytm serca i reaktywność kory mózgowej. Powszechnie obserwowanym zjawiskiem jest spadek reaktywności na powtarzające się bodźce zwany habituacją. Niekiedy obserwuje się także zjawisko przeciwne &amp;amp;mdash; wzrost reaktywności na bodziec &amp;amp;mdash; zwane sensytyzacją. &lt;br /&gt;
&lt;br /&gt;
Klasycznym sposobem na badanie tych zjawisk w potencjałach wywołanych jest uśrednianie w podzbiorach lub  uśrednianie blokowe. Wymaga ono  zmiany paradygmatu rejestracji danych. Załóżmy, że interesującym nas bodźcem jest błysk światła. Chcemy zaobserwować ewentualne zmiany amplitudy i latencji w ciągu 100 potencjałów będących reakcją na błysk powtarzający się co 500 ms.&lt;br /&gt;
====Uśrednianie w podzbiorach ====&lt;br /&gt;
W metodzie tej musimy założyć, że proces habituacji jest powolny, tzn. zmiany pomiędzy kolejnymi reakcjami są bardzo małe. W takim przypadku możemy podzielić długą serię bodźców na ciąg pod-serii i uśrednienie przeprowadzić dla każdej pod-serii osobno.&lt;br /&gt;
[[Plik:Usrednianie_podzbiory.svg‎|640px|thumb|center|Ilustracja uśredniania w podzbiorach]]&lt;br /&gt;
&lt;br /&gt;
====Uśrednianie blokowe====&lt;br /&gt;
W tym celu eksperyment wykonujemy w wielu seriach. Jedna seria składa się ze 100 błysków powtarzanych co 500 ms.  Po serii następuje przerwa trwająca np. 5 s (długość przerwy wyraża nasze oszacowanie czasu potrzebnego na zanik habituacji). Po przerwie seria jest powtarzana. Powtórzeń serii wykonujemy ''N''.&lt;br /&gt;
Następnie uśredniamy fragmenty sygnałów odpowiadające sobie w kolejnych seriach. &lt;br /&gt;
&lt;br /&gt;
W tym paradygmacie zakładamy, że każda seria rejestrowana jest w tych samych warunkach. Zaniedbujemy efekty związane ze zmęczeniem i zmianami w np. stopniu koncentracji badanego.&lt;br /&gt;
[[Plik:Usrednianie blokowe.svg|Usrednianie blokowe.svg|640px|thumb|center|Ilustracja uśredniania w blokach]]&lt;br /&gt;
&lt;br /&gt;
===Załamki w krzywej potencjału wywołanego vs ukryte komponenty===&lt;br /&gt;
Komponenta potencjału wywołanego to bardzo ważne ale jednocześnie źle określone pojęcie. Krzywa otrzymana w wyniku uśredniania potencjałów wywołanych przedstawia serię załamków dodatnich i ujemnych, ale trzeba być świadomym, że ten przebieg napięcia rejestrowany przez elektrody przedstawia tak naprawdę sumę potencjałów pochodzących od wielu dość niezależnie działających źródeł w mózgu. Przyczynek pochodzący od jednego funkcjonalnego źródła będziemy określać jako komponentę. &lt;br /&gt;
&lt;br /&gt;
Komentarza wymaga też pojęcie źródła funkcjonalnego. Czynność elektryczną synchronicznie działających neuronów piramidalnych w określonym fragmencie kory mózgowej z pewnej odległości można przybliżyć potencjałem dipola prądowego. Taki aktywny fragment kory stanowi źródło dające przyczynek do mierzonego na powierzchni głowy potencjału. W najprostszej sytuacji taki przyczynek może być obserwowany jako komponenta. Mózg jest jednak obiektem niezwykle złożonym i gęsto połączonym. Wiele obszarów korowych może być funkcjonalnie połączonych i aktywowanych synchronicznie w celu realizacji określonego zadania &amp;amp;mdash; o takim funkcjonalnym zespole też możemy myśleć jako o pojedynczym źródle, choć może ono mieć złożoną strukturę przestrzenną. Często zatem myślimy o komponentach ukrytych potencjału wywołanego jako o aktywności takich funkcjonalnych zespołów. &lt;br /&gt;
&lt;br /&gt;
Po tym wstępie widać już chyba, że do zrozumienia co dzieje się w czasie reakcji na bodziec, którą obserwujemy w potencjale wywołanym, bardziej pożądane byłoby badanie komponent ukrytych niż poszczególnych załamków krzywej potencjału wywołanego, która stanowi ważoną sumę owych komponentów. Zanim przejdziemy do omówienia technik służących &amp;amp;bdquo;wyłuskiwaniu&amp;amp;rdquo; komponent prześledźmy kilka symulacji i wnioski z nich płynące.&lt;br /&gt;
&lt;br /&gt;
==== Załamki i komponenty nie są tym samym.====&lt;br /&gt;
Tę samą krzywą można otrzymać na nieskończenie wiele sposobów  przez sumowanie rożnych kombinacji domniemanych komponentów. Przykładowy rysunek pokazuje, jak tę samą krzywą można złożyć z dwóch rożnych zestawów komponentów (kod wytwarzający przykładową symulację pokazany jest poniżej).&lt;br /&gt;
[[Plik:Sumowanie_komponentow1.png|center|thumb|600px| Panel a) przedstawia hipotetyczną krzywą ERP, panel b) jedna z możliwych dekompozycji sygnału w panelu a), panel c) inna możliwa dekompozycja sygnału z panelu a) ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Zadanie 1: Rejestracja i analiza potencjałów wzrokowych i słuchowych=&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 1. Obserwacja bodźca wzrokowego  ===&lt;br /&gt;
 &lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
* Paradygmat: z odległości około 40 cm badany obserwuje wyświetalny na ekranie biały kwadrat. Bodźce trwają 300 ms i  powtarzają się co 0,5 sekundy. Bodziec poprzedza punkt fiksacji pokazywany przez 300 ms. Natężenie bodźca ma przyjąć jedną z 4 wartości (manipulujemy jego przeźroczystością: 1, 0,7, 0,3 i 0,1, gdzie 1 oznacza brak przeźroczystości). Każda z intensywności bodźca ma pojawić się 100 razy podczas badania, bodźce podawane mają być w sposób losowy. Zadanie poprzedza krótka instrukcja, a kończy podziękowanie. &lt;br /&gt;
&lt;br /&gt;
* Pomiar&lt;br /&gt;
**Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 10 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%. [[Plik:Glowka10-20 ERPy.svg|thumb|600px|right]]&lt;br /&gt;
** Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
** Montujemy także elektrody M1 i M2 i FCz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# W sygnale wyszukujemy wzrokowo odcinki z artefaktami i oznaczamy je tagami w SVAROGu.&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +800 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# W przypadku, gdy dane są zanieczyszczone wieloma mrugnięciami (zwłaszcza tylnych okolicach), należy skorzystać z metody ICA w SVAROGU, informacje tutaj: [https://brain.fuw.edu.pl/edu/index.php/Pracownia_EEG/EEG_spoczynkowe#ICA_.28.C4.87wiczenie_dodatkowe.29])&lt;br /&gt;
# Porównujemy zestawy danych otrzymane po wzrokowym i automatycznym (metodą opisaną powyżej) usunięciu artefaktów.&lt;br /&gt;
# Uśredniamy wycięte sygnały.&lt;br /&gt;
# Rysujemy średni potencjał we wszystkich kanałach.&lt;br /&gt;
# Pierwszy sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 jako różnicę między ekstremalną wartością załamka N2 a ekstremalną wartością załamka N2. &lt;br /&gt;
# Drugi sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 w stosunku do zera. &lt;br /&gt;
# Porównujemy uzyskane amplitudy w 4 warunkach za pomocą odpowiedniego testu statystycznego (porównanie warunków ze skrajnymi wartościami amplitudy) &amp;amp;mdash; zastosuj test permutacyjny (opisany poniżej) lub test t-Studenta/nieparametryczny odpowiednik). &lt;br /&gt;
&lt;br /&gt;
**Opis testu permutacyjnego &lt;br /&gt;
Pytanie: Czy intensywność bodźca wpływa na amplitudę potencjału P1?&lt;br /&gt;
Jak stwierdzić czy amplitudy załamków P1 istotnie różnią się pomiędzy seriami?&lt;br /&gt;
&lt;br /&gt;
Musimy przeprowadzić test statystyczny. Możemy skonstruować go np. tak:&lt;br /&gt;
Mamy dwa warunki I i II. Jako statystykę przyjmiemy różnicę pomiędzy amplitudą załamka zmierzoną w serii z dwoma diodami (P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt;) a amplitudą zmierzoną w serii z jedną diodą (P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;):&lt;br /&gt;
: ''S'' = P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt; &amp;amp;minus; P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;&lt;br /&gt;
Postawmy hipotezę zerową, że nie ma różnicy w amplitudzie pomiędzy warunkiem II a I oraz hipotezę alternatywną, że różnica taka występuje.&lt;br /&gt;
: H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;: ''S'' = 0&lt;br /&gt;
: H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;: ''S'' &amp;amp;ne; 0&lt;br /&gt;
Zgodnie z H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; dla wartości ''S'' nie ma różnicy czy realizacja została zarejestrowana w warunkach I czy II, zatem można losowo poprzypisywać numery warunków do realizacji i w ten sposób uzyskać rozkład statystyki ''S'' pod warunkiem prawdziwości H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, czyli obliczyć średnie potencjały dla &amp;amp;bdquo;pomieszanych&amp;amp;rdquo; tagów, wyliczyć średnie potencjały dla sztucznie wygenerowaych grup, i wyliczyć różnicę amplitud dla tych średnich, czyli wartość statystyki dla hipotezy H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Zaimplementuj test permutacyjny zgodny z powyższą koncepcją.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===Wersja 2: obserwacja habituacji / uśrednianie w blokach ===&lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje błyski diody. &lt;br /&gt;
#* Błyski powtarzają się co 0,5 sekundy. &lt;br /&gt;
#* Rejestrujemy 60 serii po 15 błysków.  &lt;br /&gt;
#* Pomiędzy seriami badany odpoczywa około 10 sekund.&lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrodę FCz (na linii centralnej pomiędzy Fz a Cz), będziemy jej używać w montażu i w czasie analizy jako referencji.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 0,1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +600 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy wycięte sygnały o tym samym numerze wewnątrz serii.&lt;br /&gt;
# Rysujemy serie 15 uśrednionych potencjałów dla tego kanału, który wykazywał najsilniejszy potencjał w pierwszej wersji eksperymentu. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 2: rejestracja i analiza potencjału P3 ===&lt;br /&gt;
====Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje kwadrat, który występuje w dwóch kolorach. &lt;br /&gt;
#* Bodźce trwają 300 ms, poprzedzane punktem fiksacji wyświetlanym na 300 ms, przerwa między próbami jest losowana i wynosi od 0.8-1.2 s.  &lt;br /&gt;
#* Proporcja wystapień bodźców koloru pierwszego i drugiego wynosi 1:5.   &lt;br /&gt;
#* Zadaniem badanego jest liczenie kwadratów w rzadkim kolorze. &lt;br /&gt;
#* Wykonujemy tyle realizacji aby zarejestrować 100 powtórzeń bodźców rzadkich. &lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrody M1 i M2, będziemy ich używać w montażu i w czasie analizy jako referencji typu połączone uszy.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +900 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy osobno realizacje dla każdego koloru kwadratu. &lt;br /&gt;
# Nakładamy na siebie na rysunkach oba typy średnich.&lt;br /&gt;
# Wyznaczamy amplitudę P3 i liczymy test statystyczny pomiędzy warunkami.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Ćwiczenie dodatkowe: P300 BCI==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy elektrody z systemu 10-10 umieszczone nad korą wzrokową: P07, O1, O2, PO8, PO3, PO4, Pz, Cz.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
obci_gui --presets eeg_workshop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i z guzika &amp;amp;bdquo;select amplifier&amp;amp;rdquo; wybieramy właściwy wzmacniacz.&lt;br /&gt;
&lt;br /&gt;
Do kontroli jakości sygnału możemy uruchomić Svaroga.&lt;br /&gt;
&lt;br /&gt;
Dane z kalibracji zapisują się w pliku test1 w katalogu domowym użytkownika, z labiryntu w pliku test2.&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu kalibracji pojawia się napis &amp;amp;bdquo;Trwają obliczenia&amp;amp;rdquo; lub podobny. Odczekujemy kilka minut, aż skończy się peer &amp;amp;bdquo;Calibration&amp;amp;rdquo; (widoczny w obci_gui) i zamykamy okienko klawiszami Alt-F4 lub zatrzymując scenariusz guzikiem &amp;amp;bdquo;Stop&amp;amp;rdquo;. W katalogu domowym pojawi się plik z wynikami kalibracji, co pozwala na uruchomienie scenariusza &amp;amp;bdquo;labirynt&amp;amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Po zebraniu danych, przed wczytaniem ich do Svaroga należy w tym samym katalogu uruchomić skrypt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.read_manager import ReadManager&lt;br /&gt;
&lt;br /&gt;
def main(): &lt;br /&gt;
	file_name = 'test1'&lt;br /&gt;
	&lt;br /&gt;
	mgr = ReadManager(&lt;br /&gt;
		file_name + '.obci.xml',&lt;br /&gt;
		file_name + '.obci.raw',&lt;br /&gt;
		file_name + '.obci.tag')&lt;br /&gt;
	&lt;br /&gt;
	tags = mgr.get_tags()&lt;br /&gt;
	for i in xrange(0, len(tags)):&lt;br /&gt;
		if tags[i]['desc']['index'] == tags[i]['desc']['target']:&lt;br /&gt;
			tags[i]['name'] = 'blink_target'&lt;br /&gt;
		else:&lt;br /&gt;
			tags[i]['name'] = 'blink'&lt;br /&gt;
			&lt;br /&gt;
	tags_writer = tags_file_writer.TagsFileWriter(file_name + '.obci.tag')&lt;br /&gt;
	for tag in tags:&lt;br /&gt;
		tags_writer.tag_received(tag)		&lt;br /&gt;
	tags_writer.finish_saving(0)	&lt;br /&gt;
 &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3. Analiza Heartbeat-Evoked Potential (HEP)== &lt;br /&gt;
&lt;br /&gt;
Celem tego zadania jest zaobserwowanie występowania ERP związanego z działaniem serca (szczegóły można doczytać tutaj: [https://www.sciencedirect.com/science/article/pii/S1053811919303738?via%3Dihub]. W zadaniu tym wykorzystany dane spoczynkowe zebrane podczas pierwszej rejestracji. &lt;br /&gt;
* w pierwszym kroku sygnał montujemy i filtrujemy;&lt;br /&gt;
* następnie zaznaczamy fragmenty sygnału, w których widzimy artefakty;&lt;br /&gt;
* w drugim robimy detekcję załamków R z EKG &amp;amp;mdash; po ich podstawie będziemy cieli sygnał (&amp;amp;minus;200-600 ms po R);&lt;br /&gt;
* następnie uśredniamy otrzymane odcinki.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10909</id>
		<title>Pracownia EEG 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10909"/>
		<updated>2024-10-08T09:30:08Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Wskazówki dotyczące przygotowania prezentacji */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pracownia EEG 2=&lt;br /&gt;
&lt;br /&gt;
==Terminy==&lt;br /&gt;
Zajęcia odbywają się w sali 4.59 w budynku Pasteura 5. &lt;br /&gt;
&lt;br /&gt;
* we wtorki w godz. 10:30 - 13:45&lt;br /&gt;
* w środy w godz. 13:15 - 16:30&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; ze względu na logiczny poniedziałek w dniu 02.10.2024 zajęcia z Pracowni EEG się nie odbywają. &lt;br /&gt;
&lt;br /&gt;
==Cele przedmiotu== &lt;br /&gt;
&lt;br /&gt;
W trakcie naszych wartszatów chcielibyśmy Panstwu przybliżyć następujące kwestie:  &lt;br /&gt;
&lt;br /&gt;
# charakterystykę sygnału EEG - czym charakteryzuje się prawidłowo zarejestrowany sygnał EEG, jakie ma właściwości&lt;br /&gt;
# jak zebrać prawidłowo EEG - po naszym kursie nabędą Państwo umiejętność rejestracji EEG&lt;br /&gt;
# charakterystyki podstawowych metod analizy sygnału EEG, ze zrozumieniem ich wad i zalet, wymagań, oraz zmienności wyników między osobami. &lt;br /&gt;
# jakie narzędzia informatyczne mogą Panstwo spotkac w labie EEG (Psychopy, SVAROG)&lt;br /&gt;
# podstawowych zjawisk z psychofizjologii w kontekście procesów poznawczych oraz ich interpretacji fizjologicznych&lt;br /&gt;
&lt;br /&gt;
CZEGO NIE UCZYMY: obsługi przeglądarek sygnału, obsługi toolboxów - nasz kurs ma na celu zrozumienie metod i charakterystyki badanych zjawisk a nie obsługi konkretnego środowiska. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Materiały==&lt;br /&gt;
#[[Pracownia_EEG 2/Wprowadzenie do Psychopy|Wprowadzenie do Psychopy]] &lt;br /&gt;
#[[Pracownia_EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu|Krótkie przypomnienie z anatomii i funkcji mózgu]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_spoczynkowe|EEG spoczynkowe, artefakty ]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_wlasności_EEG_spoczynkowego|Własności EEG spoczynkowego: funkcja autokorelacji i widmo]] &lt;br /&gt;
#[[Pracownia_EEG 2/Potencjały_wywołane|Potencjały wywołane]]&lt;br /&gt;
#[[Pracownia_EEG 2/SSVEP_1|SSVEP]]&lt;br /&gt;
#[[Pracownia_EEG 2/AR_1|Widmowa analiza parametryczna]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS_2|Wprowadzenie do metod czas-częstość]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS|Synchronizacja i desynchronizacja sygnału EEG związana z bodźcem]]&lt;br /&gt;
#[[Pracownia_EEG 2/Projekt|Projekt]]&lt;br /&gt;
&lt;br /&gt;
Autorzy: dr hab. Maciej Kamiński,&lt;br /&gt;
dr Rafał Kuś,&lt;br /&gt;
dr hab. Jarosław Żygierewicz,&lt;br /&gt;
dr Anna Duszyk-Bogorodzka&lt;br /&gt;
&lt;br /&gt;
==Zasady zaliczenia pracowni==&lt;br /&gt;
Materiał zajęć jest podzielony na bloki tematyczne. W każdym bloku studenci mają do wykonania zestaw ćwiczeń. &lt;br /&gt;
Zaliczenie bloku ma dwa elementy:&lt;br /&gt;
&lt;br /&gt;
* uzupełnienie krótkich raportów po wskazanych blokach. &lt;br /&gt;
* wykonanie projektu i zaprezentowanie wyników&lt;br /&gt;
* obecność obowiązkowa, możliwe dwie nieobeności nieusprawideliwione. &lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania prezentacji===&lt;br /&gt;
# Wyniki ćwiczeń przedstawiamy w postaci prezentacji komputerowej (OpenOffice, PowerPoint, LibreOffice, Acrobat, itp.); czas trwania &amp;amp;mdash; maksymalnie 15 minut.&lt;br /&gt;
# Należy uwzględnić wyniki uzyskane w ćwiczeniach wskazanych przez prowadzących.&lt;br /&gt;
&lt;br /&gt;
# Należy zadbać o prawidłową postać wykresów, w tym w szczególności:&lt;br /&gt;
#* obecność opisów osi (w miarę możliwości);&lt;br /&gt;
#* spójne zakresy osi i skalowanie wykresów;&lt;br /&gt;
#* właściwy dobór skali (tak, aby uwidocznić najważniejsze rzeczy);&lt;br /&gt;
#* obecność tytułów i innych podpisów ułatwiających zrozumienie prezentowanych treści.&lt;br /&gt;
# Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
#* krótko - przypomnienie co było liczone (i jak, jeśli trzeba);&lt;br /&gt;
#* na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
#* interpretację wykresów.&amp;lt;br&amp;gt;Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
# Ocenie podlegają:&lt;br /&gt;
#* kompletność prezentacji;&lt;br /&gt;
#* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
#* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
# Każdy z powyższych elementów prezentacji będzie oceniany w 10-punktowej skali. Punkty zebrane w ciągu semestru będą przekładać się na ocenę końcową.&lt;br /&gt;
# Wyniki dodatkowe, ponadprogramowe, są mile widziane i mogą skutkować lepszą oceną.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10908</id>
		<title>Pracownia EEG 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10908"/>
		<updated>2024-10-08T09:28:50Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pracownia EEG 2=&lt;br /&gt;
&lt;br /&gt;
==Terminy==&lt;br /&gt;
Zajęcia odbywają się w sali 4.59 w budynku Pasteura 5. &lt;br /&gt;
&lt;br /&gt;
* we wtorki w godz. 10:30 - 13:45&lt;br /&gt;
* w środy w godz. 13:15 - 16:30&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; ze względu na logiczny poniedziałek w dniu 02.10.2024 zajęcia z Pracowni EEG się nie odbywają. &lt;br /&gt;
&lt;br /&gt;
==Cele przedmiotu== &lt;br /&gt;
&lt;br /&gt;
W trakcie naszych wartszatów chcielibyśmy Panstwu przybliżyć następujące kwestie:  &lt;br /&gt;
&lt;br /&gt;
# charakterystykę sygnału EEG - czym charakteryzuje się prawidłowo zarejestrowany sygnał EEG, jakie ma właściwości&lt;br /&gt;
# jak zebrać prawidłowo EEG - po naszym kursie nabędą Państwo umiejętność rejestracji EEG&lt;br /&gt;
# charakterystyki podstawowych metod analizy sygnału EEG, ze zrozumieniem ich wad i zalet, wymagań, oraz zmienności wyników między osobami. &lt;br /&gt;
# jakie narzędzia informatyczne mogą Panstwo spotkac w labie EEG (Psychopy, SVAROG)&lt;br /&gt;
# podstawowych zjawisk z psychofizjologii w kontekście procesów poznawczych oraz ich interpretacji fizjologicznych&lt;br /&gt;
&lt;br /&gt;
CZEGO NIE UCZYMY: obsługi przeglądarek sygnału, obsługi toolboxów - nasz kurs ma na celu zrozumienie metod i charakterystyki badanych zjawisk a nie obsługi konkretnego środowiska. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Materiały==&lt;br /&gt;
#[[Pracownia_EEG 2/Wprowadzenie do Psychopy|Wprowadzenie do Psychopy]] &lt;br /&gt;
#[[Pracownia_EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu|Krótkie przypomnienie z anatomii i funkcji mózgu]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_spoczynkowe|EEG spoczynkowe, artefakty ]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_wlasności_EEG_spoczynkowego|Własności EEG spoczynkowego: funkcja autokorelacji i widmo]] &lt;br /&gt;
#[[Pracownia_EEG 2/Potencjały_wywołane|Potencjały wywołane]]&lt;br /&gt;
#[[Pracownia_EEG 2/SSVEP_1|SSVEP]]&lt;br /&gt;
#[[Pracownia_EEG 2/AR_1|Widmowa analiza parametryczna]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS_2|Wprowadzenie do metod czas-częstość]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS|Synchronizacja i desynchronizacja sygnału EEG związana z bodźcem]]&lt;br /&gt;
#[[Pracownia_EEG 2/Projekt|Projekt]]&lt;br /&gt;
&lt;br /&gt;
Autorzy: dr hab. Maciej Kamiński,&lt;br /&gt;
dr Rafał Kuś,&lt;br /&gt;
dr hab. Jarosław Żygierewicz,&lt;br /&gt;
dr Anna Duszyk-Bogorodzka&lt;br /&gt;
&lt;br /&gt;
==Zasady zaliczenia pracowni==&lt;br /&gt;
Materiał zajęć jest podzielony na bloki tematyczne. W każdym bloku studenci mają do wykonania zestaw ćwiczeń. &lt;br /&gt;
Zaliczenie bloku ma dwa elementy:&lt;br /&gt;
&lt;br /&gt;
* uzupełnienie krótkich raportów po wskazanych blokach. &lt;br /&gt;
* wykonanie projektu i zaprezentowanie wyników&lt;br /&gt;
* obecność obowiązkowa, możliwe dwie nieobeności nieusprawideliwione. &lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania prezentacji===&lt;br /&gt;
# Wyniki ćwiczeń przedstawiamy w postaci prezentacji komputerowej (OpenOffice, PowerPoint, LibreOffice, Acrobat, itp.); czas trwania &amp;amp;mdash; maksymalnie 15 minut.&lt;br /&gt;
# Należy uwzględnić wyniki uzyskane w ćwiczeniach wskazanych przez prowadzących.&amp;lt;!--wszystkich części ćwiczeń w danym dziale.&lt;br /&gt;
# Należy zadbać o prawidłową postać wykresów, w tym w szczególności:&lt;br /&gt;
#* obecność opisów osi (w miarę możliwości);&lt;br /&gt;
#* spójne zakresy osi i skalowanie wykresów;&lt;br /&gt;
#* właściwy dobór skali (tak, aby uwidocznić najważniejsze rzeczy);&lt;br /&gt;
#* obecność tytułów i innych podpisów ułatwiających zrozumienie prezentowanych treści.&lt;br /&gt;
# Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
#* przypomnienie co było liczone (i jak, jeśli trzeba);&lt;br /&gt;
#* na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
#* interpretację wykresów.&amp;lt;br&amp;gt;Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
# Ocenie podlegają:&lt;br /&gt;
#* kompletność prezentacji;&lt;br /&gt;
#* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
#* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
# Każdy z powyższych elementów prezentacji będzie oceniany w 10-punktowej skali. Punkty zebrane w ciągu semestru będą przekładać się na ocenę końcową.&lt;br /&gt;
# Wyniki dodatkowe, ponadprogramowe, są mile widziane i mogą skutkować lepszą oceną.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10854</id>
		<title>Pracownia EEG 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10854"/>
		<updated>2024-09-24T18:27:37Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Materiały */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pracownia EEG 2=&lt;br /&gt;
&lt;br /&gt;
==Terminy==&lt;br /&gt;
Zajęcia odbywają się w sali 4.59 w budynku Pasteura 5. &lt;br /&gt;
&lt;br /&gt;
* we wtorki w godz. 10:30 - 13:45&lt;br /&gt;
* w środy w godz. 13:15 - 16:30&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; ze względu na logiczny poniedziałek w dniu 02.10.2024 zajęcia z Pracowni EEG się nie odbywają. &lt;br /&gt;
&lt;br /&gt;
==Cele przedmiotu== &lt;br /&gt;
&lt;br /&gt;
W trakcie naszych wartszatów chcielibyśmy Panstwu przybliżyć następujące kwestie:  &lt;br /&gt;
&lt;br /&gt;
# charakterystykę sygnału EEG - czym charakteryzuje się prawidłowo zarejestrowany sygnał EEG, jakie ma właściwości&lt;br /&gt;
# jak zebrać prawidłowo EEG - po naszym kursie nabędą Państwo umiejętność rejestracji EEG&lt;br /&gt;
# charakterystyki podstawowych metod analizy sygnału EEG, ze zrozumieniem ich wad i zalet, wymagań, oraz zmienności wyników między osobami. &lt;br /&gt;
# jakie narzędzia informatyczne mogą Panstwo spotkac w labie EEG (Psychopy, SVAROG)&lt;br /&gt;
# podstawowych zjawisk z psychofizjologii w kontekście procesów poznawczych oraz ich interpretacji fizjologicznych&lt;br /&gt;
&lt;br /&gt;
CZEGO NIE UCZYMY: obsługi przeglądarek sygnału, obsługi toolboxów - nasz kurs ma na celu zrozumienie metod i charakterystyki badanych zjawisk a nie obsługi konkretnego środowiska. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Materiały==&lt;br /&gt;
#[[Pracownia_EEG 2/Wprowadzenie do Psychopy|Wprowadzenie do Psychopy]] &lt;br /&gt;
#[[Pracownia_EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu|Krótkie przypomnienie z anatomii i funkcji mózgu]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_spoczynkowe|EEG spoczynkowe, artefakty ]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_wlasności_EEG_spoczynkowego|Własności EEG spoczynkowego: funkcja autokorelacji i widmo]] &lt;br /&gt;
#[[Pracownia_EEG 2/Potencjały_wywołane|Potencjały wywołane]]&lt;br /&gt;
#[[Pracownia_EEG 2/SSVEP_1|SSVEP]]&lt;br /&gt;
#[[Pracownia_EEG 2/AR_1|Widmowa analiza parametryczna]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS_2|Wprowadzenie do metod czas-częstość]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS|Synchronizacja i desynchronizacja sygnału EEG związana z bodźcem]]&lt;br /&gt;
#[[Pracownia_EEG 2/Projekt|Projekt]]&lt;br /&gt;
&lt;br /&gt;
Autorzy: dr hab. Maciej Kamiński,&lt;br /&gt;
dr Rafał Kuś,&lt;br /&gt;
dr hab. Jarosław Żygierewicz,&lt;br /&gt;
dr Anna Duszyk-Bogorodzka&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Zasady zaliczenia pracowni==&lt;br /&gt;
Materiał zajęć jest podzielony na bloki tematyczne. W każdym bloku studenci mają do wykonania zestaw ćwiczeń. &lt;br /&gt;
Zaliczenie bloku ma dwa elementy:&lt;br /&gt;
&lt;br /&gt;
* prezentacja - każda osoba z grupy przygotowuje prezentację dotyczącą jednego zagadnienia losowanego spośród występujących w danym bloku tematycznym. &lt;br /&gt;
&lt;br /&gt;
* raport - krótki opis wykonanego ćwiczenia przygotowany według załączonego wzorca. Każda osoba opisuje ćwiczenie, które wcześniej prezentowała. Termin złożenia raportu jest do tygodnia po prezentacji.&lt;br /&gt;
&lt;br /&gt;
=== Terminy prezentacji ===&lt;br /&gt;
Prezentacje z pierwszej części ćwiczeń odbędą się na zajęciach we wtorek 14.11.2023 i w środę 22.11.2023.&lt;br /&gt;
&lt;br /&gt;
Zagadnienia do omówienia:&lt;br /&gt;
&lt;br /&gt;
# Charakterystyka artefaktów w sygnale EEG.&lt;br /&gt;
# Funkcja autokowariancji i autokorelacji dla sygnałów z oczu otwartych i zamkniętych, omówienie różnic między nimi. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach.&lt;br /&gt;
# Korelacje wzajemne dla sygnałów z oczu otwartych i zamkniętych, omówienie różnic między nimi. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach.&lt;br /&gt;
# Omówienie statystyki służącej do oceny istotności korelacji, wyniki.&lt;br /&gt;
# Związek autokorelacji i korelacji wzajemnej z widmem; wyniki dla sygnałów w zakresie 0-40 Hz — amplituda i faza. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach na podstawie przesunięcia fazowego.&lt;br /&gt;
# Związek autokorelacji i korelacji wzajemnej z widmem; wyniki dla sygnałów w zakresie 8-12 Hz — amplituda i faza. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach na podstawie przesunięcia fazowego.&lt;br /&gt;
# Omówienie zadania 5. &lt;br /&gt;
&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Artefakty, funkcje kowariancji i korelacji własnej i wzajemnej, właściwości. Przykładowe wyniki dla danych z oczu otwartych i zamkniętych, filtrowanych i niefiltrowanych.&lt;br /&gt;
# Macierz korelacji wybranych kanałów EEG w różnych sytuacjach. Statystyka do oceny istotności wyników. Oszacowanie opóźnienia.&lt;br /&gt;
# Związek korelacji z widmem. Macierz gęstości widmowych wybranych kanałów EEG. Amplituda i faza. Porównanie z widmem Welcha. Oszacowanie opóźnienia z przesunięcia fazowego.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Prezentacje z drugiej części ćwiczeń odbędą się na zajęciach we wtorek 06.12.2022.&amp;lt;br&amp;gt;&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Sygnały symulowane — uśrednianie w modelu addytywnym i z fluktuacją latencji. Wpływ referencji na amplitudę P300&lt;br /&gt;
# Omówienie metod statystycznych (resamplingowej i analitycznej). Porównanie estymowania amplitudy P100 a istotność statystyczna.&lt;br /&gt;
# Sygnały symulowane — uśrednianie z resetem fazy. Wpływ filtrów. Usuwanie artefaktów ręcznie lub za pomocą progu.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Prezentacje z trzeciej części ćwiczeń odbędą się na zajęciach we wtorek 10.01.2023.&amp;lt;br&amp;gt;&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Omówienie trzech metod estymacji widma sygnałów SSVEP&lt;br /&gt;
# Zbieranie danych SSVEP. Krzywa odpowiedzi SSVEP w zależności od częstości&lt;br /&gt;
# Transformacja Hilberta. Zastosowanie do sygnałów rzeczywistych.&lt;br /&gt;
&lt;br /&gt;
Prezentacje z drugiej części ćwiczeń będą polegały na wybraniu do omówienia przez każdą osobę jednego tematu z części symulacyjnej i części eksperymentalnej. &lt;br /&gt;
&lt;br /&gt;
Zagadnienia do części symulacyjnej:&lt;br /&gt;
&lt;br /&gt;
# Uśrednianie w modelu addytywnym: sygnał + szum.&lt;br /&gt;
# Uśrednianie w modelu addytywnym: sygnał + szum + niezależna czynność rytmiczna.&lt;br /&gt;
# Uśrednianie w modelu z resetem fazy.&lt;br /&gt;
# Uśrednianie potencjału z fluktuacją latencji.&lt;br /&gt;
# Wpływ filtrów.&lt;br /&gt;
&lt;br /&gt;
Zagadnienia do części eksperymentalnej:&lt;br /&gt;
&lt;br /&gt;
# Zależność załamków potencjałów wzrokowych od intensywności bodźca.&lt;br /&gt;
# Zależność późnych załamków od uwagi.&lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania raportu===&lt;br /&gt;
Raport przygotowujemy w środowisku LaTex, korzystając z [https://drive.google.com/file/d/173TL7f5-VN83ijjJYPBaiOx96N6nokOb/view?usp=sharing podanego tutaj wzorca].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Wstęp=====&lt;br /&gt;
W tej sekcji należy krótko opisać czego dotyczą ćwiczenia w danym dziale.&lt;br /&gt;
W kolejnych sekcjach należy zaprezentować rozwiązania i wyniki otrzymane dla konkretnego zadania. &lt;br /&gt;
&lt;br /&gt;
Ocenie podlegają:&lt;br /&gt;
* kompletność prezentacji;&lt;br /&gt;
* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
&lt;br /&gt;
=====Zadanie 1=====&lt;br /&gt;
&lt;br /&gt;
======Cel zadania======&lt;br /&gt;
przypomnienie, co i po co było liczone;&lt;br /&gt;
&lt;br /&gt;
======Zestaw pomiarowy======&lt;br /&gt;
Jaki sprzęt i w jakiej konfiguracji został użyty?&lt;br /&gt;
======Przeprowadzone pomiary======&lt;br /&gt;
Parametry pomiarów: &lt;br /&gt;
*rejestrowane kanały, &lt;br /&gt;
* montaż, &lt;br /&gt;
* częstość próbkowania, &lt;br /&gt;
* zastosowane filtry.&lt;br /&gt;
&lt;br /&gt;
Jaki był paradygmat doświadczenia?&lt;br /&gt;
&lt;br /&gt;
======Obliczenia/Algorytm======&lt;br /&gt;
jeśli zadanie wymaga napisania programu, należy przedstawić zastosowany algorytm (w punktach lub w postaci schematu)&lt;br /&gt;
&lt;br /&gt;
======Wyniki======&lt;br /&gt;
Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
*na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
* interpretację wykresów.&lt;br /&gt;
&lt;br /&gt;
Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
&lt;br /&gt;
======Wnioski======&lt;br /&gt;
Co wynika z zaprezentowanych materiałów.&lt;br /&gt;
&lt;br /&gt;
=====Zadanie 2=====&lt;br /&gt;
&amp;lt;math&amp;gt;\vdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Udział autorów=====&lt;br /&gt;
Tu proszę napisać, który z autorów przyłożył się do którego elementu pracy (podlega to weryfikacji przez prowadzącego zajęcia). Ważnym elementem pracy,  poza występującymi bezpośrednio  w raporcie sekcjami, jest implementacja opisywanych metod. W końcowym rozliczeniu pracowni każdy student musi wykazać się istotnym wkładem do każdego z elementów:&lt;br /&gt;
* przeprowadzenia pomiarów&lt;br /&gt;
* implementacji metod obliczeniowych&lt;br /&gt;
* redakcji tekstu&lt;br /&gt;
&lt;br /&gt;
=====Bibliografia=====&lt;br /&gt;
[1] ....&lt;br /&gt;
&lt;br /&gt;
[2] ....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania prezentacji===&lt;br /&gt;
# Wyniki ćwiczeń przedstawiamy w postaci prezentacji komputerowej (OpenOffice, PowerPoint, LibreOffice, Acrobat, itp.); czas trwania &amp;amp;mdash; maksymalnie 15 minut.&lt;br /&gt;
# Należy uwzględnić wyniki uzyskane w ćwiczeniach wskazanych przez prowadzących.&amp;lt;!--wszystkich części ćwiczeń w danym dziale.&lt;br /&gt;
# Należy zadbać o prawidłową postać wykresów, w tym w szczególności:&lt;br /&gt;
#* obecność opisów osi (w miarę możliwości);&lt;br /&gt;
#* spójne zakresy osi i skalowanie wykresów;&lt;br /&gt;
#* właściwy dobór skali (tak, aby uwidocznić najważniejsze rzeczy);&lt;br /&gt;
#* obecność tytułów i innych podpisów ułatwiających zrozumienie prezentowanych treści.&lt;br /&gt;
# Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
#* przypomnienie co było liczone (i jak, jeśli trzeba);&lt;br /&gt;
#* na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
#* interpretację wykresów.&amp;lt;br&amp;gt;Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
# Ocenie podlegają:&lt;br /&gt;
#* kompletność prezentacji;&lt;br /&gt;
#* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
#* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
# Każdy z powyższych elementów prezentacji będzie oceniany w 10-punktowej skali. Punkty zebrane w ciągu semestru będą przekładać się na ocenę końcową.&lt;br /&gt;
# Wyniki dodatkowe, ponadprogramowe, są mile widziane i mogą skutkować lepszą oceną.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10853</id>
		<title>Pracownia EEG 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10853"/>
		<updated>2024-09-24T14:19:26Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Pracownia EEG 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pracownia EEG 2=&lt;br /&gt;
&lt;br /&gt;
==Terminy==&lt;br /&gt;
Zajęcia odbywają się w sali 4.59 w budynku Pasteura 5. &lt;br /&gt;
&lt;br /&gt;
* we wtorki w godz. 10:30 - 13:45&lt;br /&gt;
* w środy w godz. 13:15 - 16:30&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; ze względu na logiczny poniedziałek w dniu 02.10.2024 zajęcia z Pracowni EEG się nie odbywają. &lt;br /&gt;
&lt;br /&gt;
==Cele przedmiotu== &lt;br /&gt;
&lt;br /&gt;
W trakcie naszych wartszatów chcielibyśmy Panstwu przybliżyć następujące kwestie:  &lt;br /&gt;
&lt;br /&gt;
# charakterystykę sygnału EEG - czym charakteryzuje się prawidłowo zarejestrowany sygnał EEG, jakie ma właściwości&lt;br /&gt;
# jak zebrać prawidłowo EEG - po naszym kursie nabędą Państwo umiejętność rejestracji EEG&lt;br /&gt;
# charakterystyki podstawowych metod analizy sygnału EEG, ze zrozumieniem ich wad i zalet, wymagań, oraz zmienności wyników między osobami. &lt;br /&gt;
# jakie narzędzia informatyczne mogą Panstwo spotkac w labie EEG (Psychopy, SVAROG)&lt;br /&gt;
# podstawowych zjawisk z psychofizjologii w kontekście procesów poznawczych oraz ich interpretacji fizjologicznych&lt;br /&gt;
&lt;br /&gt;
CZEGO NIE UCZYMY: obsługi przeglądarek sygnału, obsługi toolboxów - nasz kurs ma na celu zrozumienie metod i charakterystyki badanych zjawisk a nie obsługi konkretnego środowiska. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Materiały==&lt;br /&gt;
#[[Pracownia_EEG 2/Wprowadzenie do Psychopy|Wprowadzenie do Psychopy]] &lt;br /&gt;
#[[Pracownia_EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu|Krótkie przypomnienie z anatomii i funkcji mózgu]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_spoczynkowe|EEG spoczynkowe, artefakty ]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_wlasności_EEG_spoczynkowego|Własności EEG spoczynkowego: funkcja autokorelacji i widmo]] &lt;br /&gt;
#[[Pracownia_EEG 2/Potencjały_wywołane|Potencjały wywołane]]&lt;br /&gt;
#[[Pracownia_EEG 2/SSVEP_1|SSVEP]]&lt;br /&gt;
#[[Pracownia_EEG 2/AR_1|Widmowa analiza parametryczna]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS_2|Wprowadzenie do metod czas-częstość]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS|Synchronizacja i desynchronizacja sygnału EEG związana z bodźcem]]&lt;br /&gt;
#[[Pracownia_EEG 2/Projekt|Projekt]]&lt;br /&gt;
&lt;br /&gt;
Autorzy: dr hab. Maciej Kamiński,&lt;br /&gt;
dr Rafał Kuś,&lt;br /&gt;
dr hab. Jarosław Żygierewicz&lt;br /&gt;
dr Anna Duszyk-Bogorodzka&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Zasady zaliczenia pracowni==&lt;br /&gt;
Materiał zajęć jest podzielony na bloki tematyczne. W każdym bloku studenci mają do wykonania zestaw ćwiczeń. &lt;br /&gt;
Zaliczenie bloku ma dwa elementy:&lt;br /&gt;
&lt;br /&gt;
* prezentacja - każda osoba z grupy przygotowuje prezentację dotyczącą jednego zagadnienia losowanego spośród występujących w danym bloku tematycznym. &lt;br /&gt;
&lt;br /&gt;
* raport - krótki opis wykonanego ćwiczenia przygotowany według załączonego wzorca. Każda osoba opisuje ćwiczenie, które wcześniej prezentowała. Termin złożenia raportu jest do tygodnia po prezentacji.&lt;br /&gt;
&lt;br /&gt;
=== Terminy prezentacji ===&lt;br /&gt;
Prezentacje z pierwszej części ćwiczeń odbędą się na zajęciach we wtorek 14.11.2023 i w środę 22.11.2023.&lt;br /&gt;
&lt;br /&gt;
Zagadnienia do omówienia:&lt;br /&gt;
&lt;br /&gt;
# Charakterystyka artefaktów w sygnale EEG.&lt;br /&gt;
# Funkcja autokowariancji i autokorelacji dla sygnałów z oczu otwartych i zamkniętych, omówienie różnic między nimi. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach.&lt;br /&gt;
# Korelacje wzajemne dla sygnałów z oczu otwartych i zamkniętych, omówienie różnic między nimi. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach.&lt;br /&gt;
# Omówienie statystyki służącej do oceny istotności korelacji, wyniki.&lt;br /&gt;
# Związek autokorelacji i korelacji wzajemnej z widmem; wyniki dla sygnałów w zakresie 0-40 Hz — amplituda i faza. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach na podstawie przesunięcia fazowego.&lt;br /&gt;
# Związek autokorelacji i korelacji wzajemnej z widmem; wyniki dla sygnałów w zakresie 8-12 Hz — amplituda i faza. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach na podstawie przesunięcia fazowego.&lt;br /&gt;
# Omówienie zadania 5. &lt;br /&gt;
&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Artefakty, funkcje kowariancji i korelacji własnej i wzajemnej, właściwości. Przykładowe wyniki dla danych z oczu otwartych i zamkniętych, filtrowanych i niefiltrowanych.&lt;br /&gt;
# Macierz korelacji wybranych kanałów EEG w różnych sytuacjach. Statystyka do oceny istotności wyników. Oszacowanie opóźnienia.&lt;br /&gt;
# Związek korelacji z widmem. Macierz gęstości widmowych wybranych kanałów EEG. Amplituda i faza. Porównanie z widmem Welcha. Oszacowanie opóźnienia z przesunięcia fazowego.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Prezentacje z drugiej części ćwiczeń odbędą się na zajęciach we wtorek 06.12.2022.&amp;lt;br&amp;gt;&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Sygnały symulowane — uśrednianie w modelu addytywnym i z fluktuacją latencji. Wpływ referencji na amplitudę P300&lt;br /&gt;
# Omówienie metod statystycznych (resamplingowej i analitycznej). Porównanie estymowania amplitudy P100 a istotność statystyczna.&lt;br /&gt;
# Sygnały symulowane — uśrednianie z resetem fazy. Wpływ filtrów. Usuwanie artefaktów ręcznie lub za pomocą progu.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Prezentacje z trzeciej części ćwiczeń odbędą się na zajęciach we wtorek 10.01.2023.&amp;lt;br&amp;gt;&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Omówienie trzech metod estymacji widma sygnałów SSVEP&lt;br /&gt;
# Zbieranie danych SSVEP. Krzywa odpowiedzi SSVEP w zależności od częstości&lt;br /&gt;
# Transformacja Hilberta. Zastosowanie do sygnałów rzeczywistych.&lt;br /&gt;
&lt;br /&gt;
Prezentacje z drugiej części ćwiczeń będą polegały na wybraniu do omówienia przez każdą osobę jednego tematu z części symulacyjnej i części eksperymentalnej. &lt;br /&gt;
&lt;br /&gt;
Zagadnienia do części symulacyjnej:&lt;br /&gt;
&lt;br /&gt;
# Uśrednianie w modelu addytywnym: sygnał + szum.&lt;br /&gt;
# Uśrednianie w modelu addytywnym: sygnał + szum + niezależna czynność rytmiczna.&lt;br /&gt;
# Uśrednianie w modelu z resetem fazy.&lt;br /&gt;
# Uśrednianie potencjału z fluktuacją latencji.&lt;br /&gt;
# Wpływ filtrów.&lt;br /&gt;
&lt;br /&gt;
Zagadnienia do części eksperymentalnej:&lt;br /&gt;
&lt;br /&gt;
# Zależność załamków potencjałów wzrokowych od intensywności bodźca.&lt;br /&gt;
# Zależność późnych załamków od uwagi.&lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania raportu===&lt;br /&gt;
Raport przygotowujemy w środowisku LaTex, korzystając z [https://drive.google.com/file/d/173TL7f5-VN83ijjJYPBaiOx96N6nokOb/view?usp=sharing podanego tutaj wzorca].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Wstęp=====&lt;br /&gt;
W tej sekcji należy krótko opisać czego dotyczą ćwiczenia w danym dziale.&lt;br /&gt;
W kolejnych sekcjach należy zaprezentować rozwiązania i wyniki otrzymane dla konkretnego zadania. &lt;br /&gt;
&lt;br /&gt;
Ocenie podlegają:&lt;br /&gt;
* kompletność prezentacji;&lt;br /&gt;
* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
&lt;br /&gt;
=====Zadanie 1=====&lt;br /&gt;
&lt;br /&gt;
======Cel zadania======&lt;br /&gt;
przypomnienie, co i po co było liczone;&lt;br /&gt;
&lt;br /&gt;
======Zestaw pomiarowy======&lt;br /&gt;
Jaki sprzęt i w jakiej konfiguracji został użyty?&lt;br /&gt;
======Przeprowadzone pomiary======&lt;br /&gt;
Parametry pomiarów: &lt;br /&gt;
*rejestrowane kanały, &lt;br /&gt;
* montaż, &lt;br /&gt;
* częstość próbkowania, &lt;br /&gt;
* zastosowane filtry.&lt;br /&gt;
&lt;br /&gt;
Jaki był paradygmat doświadczenia?&lt;br /&gt;
&lt;br /&gt;
======Obliczenia/Algorytm======&lt;br /&gt;
jeśli zadanie wymaga napisania programu, należy przedstawić zastosowany algorytm (w punktach lub w postaci schematu)&lt;br /&gt;
&lt;br /&gt;
======Wyniki======&lt;br /&gt;
Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
*na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
* interpretację wykresów.&lt;br /&gt;
&lt;br /&gt;
Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
&lt;br /&gt;
======Wnioski======&lt;br /&gt;
Co wynika z zaprezentowanych materiałów.&lt;br /&gt;
&lt;br /&gt;
=====Zadanie 2=====&lt;br /&gt;
&amp;lt;math&amp;gt;\vdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Udział autorów=====&lt;br /&gt;
Tu proszę napisać, który z autorów przyłożył się do którego elementu pracy (podlega to weryfikacji przez prowadzącego zajęcia). Ważnym elementem pracy,  poza występującymi bezpośrednio  w raporcie sekcjami, jest implementacja opisywanych metod. W końcowym rozliczeniu pracowni każdy student musi wykazać się istotnym wkładem do każdego z elementów:&lt;br /&gt;
* przeprowadzenia pomiarów&lt;br /&gt;
* implementacji metod obliczeniowych&lt;br /&gt;
* redakcji tekstu&lt;br /&gt;
&lt;br /&gt;
=====Bibliografia=====&lt;br /&gt;
[1] ....&lt;br /&gt;
&lt;br /&gt;
[2] ....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania prezentacji===&lt;br /&gt;
# Wyniki ćwiczeń przedstawiamy w postaci prezentacji komputerowej (OpenOffice, PowerPoint, LibreOffice, Acrobat, itp.); czas trwania &amp;amp;mdash; maksymalnie 15 minut.&lt;br /&gt;
# Należy uwzględnić wyniki uzyskane w ćwiczeniach wskazanych przez prowadzących.&amp;lt;!--wszystkich części ćwiczeń w danym dziale.&lt;br /&gt;
# Należy zadbać o prawidłową postać wykresów, w tym w szczególności:&lt;br /&gt;
#* obecność opisów osi (w miarę możliwości);&lt;br /&gt;
#* spójne zakresy osi i skalowanie wykresów;&lt;br /&gt;
#* właściwy dobór skali (tak, aby uwidocznić najważniejsze rzeczy);&lt;br /&gt;
#* obecność tytułów i innych podpisów ułatwiających zrozumienie prezentowanych treści.&lt;br /&gt;
# Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
#* przypomnienie co było liczone (i jak, jeśli trzeba);&lt;br /&gt;
#* na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
#* interpretację wykresów.&amp;lt;br&amp;gt;Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
# Ocenie podlegają:&lt;br /&gt;
#* kompletność prezentacji;&lt;br /&gt;
#* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
#* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
# Każdy z powyższych elementów prezentacji będzie oceniany w 10-punktowej skali. Punkty zebrane w ciągu semestru będą przekładać się na ocenę końcową.&lt;br /&gt;
# Wyniki dodatkowe, ponadprogramowe, są mile widziane i mogą skutkować lepszą oceną.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10852</id>
		<title>Pracownia EEG 2/Potencjały wywołane</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10852"/>
		<updated>2024-09-24T14:03:23Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Rejestracja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Potencjały wywołane&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
==Potencjały wywołane==&lt;br /&gt;
=== Wstęp ===&lt;br /&gt;
Potencjały wywołane EEG (ang. ''evoked potentials'', EP) są śladami odpowiedzi mózgu na bodźce. W przypadku MEG poprawnie mówi się o polach wywołanych (ang. ''evoked fields'', EF).&lt;br /&gt;
Zwykle reakcja ta jest mała (wyjątek stanowią [[Elektroencefalografia/Metody_analizy_sygnałów_EEG_-_analiza_w_dziedzinie_czasu |kompleksy K]]) i w zapisie pojedynczej realizacji reakcji na bodziec najczęściej niewidoczna wśród czynności pochodzącej od wielu innych procesów zachodzących w tym samym czasie w mózgu. &lt;br /&gt;
Ich wyodrębnienie z tak zwanego tła EEG/MEG, czyli manifestacji elektrycznej innych, trwających w tym samym czasie w mózgu procesów (aktywny prąd niezależny), wymaga w dniu dzisiejszym zapisu odpowiedzi na szereg powtórzeń tego samego bodźca (&amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;). Pierwsze potencjały wywołane pokazał pod koniec lat 40-tych Dawson (Dawson, 1947) wykonując superpozycję pojedynczych realizacji na kliszy fotograficznej.&lt;br /&gt;
Z czasem skomplikowane urządzenia analogowe zastąpione zostały przez cyfrowe uśrednianie kolejnych fragmentów EEG, zsynchronizowanych według momentu wystąpienia bodźca, łatwo realizowane za pomocą komputera.&lt;br /&gt;
&lt;br /&gt;
[[Grafika:EP.png|thumb|640px|center|&amp;lt;figure id=&amp;quot;fig:EP&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Uśrednianie potencjałów wywołanych. a) ciągły zapis EEG z wyróżnionymi momentami wystąpienia bodźca (w tym przypadku słuchowego) b) kilkadziesiąt kolejnych odcinków, wyciętych jako sekunda EEG od momentu wystąpienia kolejnych bodźców, ustawione jeden pod drugim c) uśredniony potencjał wywołany &amp;amp;mdash; widać m. in. załamek P300 ok. 300 milisekund po bodźcu]]&lt;br /&gt;
&lt;br /&gt;
Techniki te opierają się na założeniu, że zawarta w EEG odpowiedź mózgu na każdy z kolejnych bodźców jest niezmienna, a EEG odzwierciedlające pozostałe procesy traktowane jest jak nieskorelowany z nią proces stochastyczny. Zależnie od rodzaju potencjałów wywołanych, założenia te są mniej lub bardziej nieuzasadnione; podważa je choćby powszechnie znany efekt habituacji, polegający na osłabieniu późnych potencjałów wywołanych kolejnymi powtórzeniami bodźca.&lt;br /&gt;
&lt;br /&gt;
Istota potencjałów wywołanych jest przedmiotem otwartej dyskusji i dziesiątków prac, dotykających od lat podstawowych w tej dziedzinie pytań: czym jest potencjał wywołany, który widzimy w uśrednionym przebiegu? Czy naprawdę wynika z deterministycznie powtarzanej, jednakowej odpowiedzi pojawiającej się po każdym powtórzeniu bodźca niezależnie od &amp;amp;bdquo;tła&amp;amp;rdquo;, czy może wynika z reorganizacji faz tego właśnie &amp;amp;bdquo;tła&amp;amp;rdquo; EEG, czy może kombinacji tych dwóch efektów? Jest to wspaniałe pole dla zastosowań zaawansowanych metod modelowania i analizy sygnałów. W ostatnich latach powstają dziesiątki prac na ten temat, a od czasu do czasu również krytyczne artykuły wykazujące, że dotychczasowe odkrycia są raczej artefaktami stosowanych metod a nie wynikają z własności analizowanych danych (Yeung et al., 2004). Jak widać jest tu wciąż bardzo wiele do zrobienia, gdyż zrozumienie tego mechanizmu stoi na drodze do &amp;amp;bdquo;świętego Graala&amp;amp;rdquo;, którym w tej dziedzinie jest wyodrębnienie pojedynczych potencjałów wywołanych.&lt;br /&gt;
&lt;br /&gt;
Niezależnie od tego, w neurofizjologii klinicznej nazwą potencjał wywołany określa się krzywą widoczną po uśrednieniu odpowiedzi na kilkanaście do kilku tysięcy bodźców (Szelenberger 2000). Gromadzona od dziesięcioleci wiedza o behawioralnych i klinicznych korelatach potencjałów wywołanych opiera się na rozpoznawaniu w przebiegach uśrednionych tak zwanych załamków, czyli przejściowych wzrostów lub spadków potencjału (na przykład na &amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; widać załamek P300). Nazwy załamków składają się zwykle z litery &amp;amp;bdquo;P&amp;amp;rdquo; (od ang. ''positive''), jeśli wychylenie jest dodatnie, lub &amp;amp;bdquo;N&amp;amp;rdquo; (od ang. ''negative''), jeśli wychylenie jest ujemne, oraz liczby. Uwaga: &lt;br /&gt;
* Nie ma niestety jednej ustalonej konwencji prezentacji potencjałów koniecznie trzeba więc zwracać uwagę na orientację wykresu, a wykonując wykres samemu - zamieszczać informację o orientacji kierunku dodatniego,gdyż kierunek dodatni może być wykresie skierowany do góry lub do dołu. &lt;br /&gt;
* Liczba następująca po N lub P określa przybliżoną liczbę milisekund od wystąpienia bodźca, czyli tak zwaną latencję. Nie można jednak ścisłego związku między tą liczbą a liczbą milisekund np. potencjał P300 w zależności od szczegółów paradygmatu doświadczalnego może wystąpić znacznie później. np. w eksperymentach językowych zdarza się że P300 występuje później niż N400 :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;Rys. %i&amp;lt;/xr&amp;gt; przedstawia schematycznie najważniejsze załamki rozpoznawane w potencjałach słuchowych, czyli wywoływanych bodźcem dźwiękowym. Dla potencjałów wzrokowych i somatosensorycznych istnieją podobne klasyfikacje.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Zalamki.png|thumb|320px|right|&amp;lt;figure id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Orientacyjny schemat załamków rozpoznawanych w słuchowych potencjach wywołanych, na podstawie (Szelenberger 2000). Skala czasu logarytmiczna. Najszybsze (do 12 ms) składowe egzogenne to potencjały pniowe (BAEP), oznaczane jako fale I-VII. Litery &amp;amp;bdquo;P&amp;amp;rdquo; i &amp;amp;bdquo;N&amp;amp;rdquo; oznaczają dodatnie i ujemne wychylenia związane z dalszymi załamkami]]&lt;br /&gt;
&lt;br /&gt;
Najszybsze (czyli o najmniejszej latencji) składowe to potencjały egzogenne, odzwierciedlające wstępne fazy przetwarzania informacji. W potencjałach słuchowych są to potencjały pnia (ang. ''brainstem auditory evoked potentials'', BAEP), składające się z siedmiu fal występujących pomiędzy 1 a 12 ms od bodźca. Są one generowane np. w nerwie słuchowym czy pniu mózgu, i wykorzystywane w klinicznej diagnostyce integralności dróg słuchowych. Podobnie jak inne wczesne potencjały o latencjach poniżej 100 ms, są praktycznie niezależne od stanu uwagi.&lt;br /&gt;
&lt;br /&gt;
Po potencjałach o średniej latencji (między 12 a 50 ms) zaczynają się późne potencjały słuchowe (od 100 ms od podania bodźca), odzwierciedlające bardziej złożone reakcje na bodziec. Potencjały ok. 100 ms obserwowane w okolicach sensorycznych odzwierciedlają odpowiedź tejże kory na bodziec. Ich amplituda zależy od parametrów fizycznych bodźca oraz od uwagi, np. amplituda załamka N100 wzrasta w stanie skupienia uwagi czy pobudzenia emocjonalnego. Pierwszy i najpopularniejszy całkowicie endogenny załamek to P300, pojawiający się po rozpoznaniu bodźca oczekiwanego, na którym skupiamy uwagę: na przykład, jeśli w serii pojawiających się losowo liter mamy zliczać wystąpienia jednej z nich, to na średniej odpowiedzi na pojawienie się tej litery pojawi się załamek P300. Załamek ten występuje również w odpowiedzi na bodźce wyczekiwane, niespodziewane i ważne dla osoby (np. własne imię). &lt;br /&gt;
&lt;br /&gt;
=== Uśrednianie w dziedzinie czasu ===&lt;br /&gt;
Jak już było wspomniane powyżej podstawową techniką stosowaną do analizy potencjałów wywołanych jest uśrednianie wielu realizacji odpowiedzi na bodziec wyrównanych względem jakiegoś charakterystycznego zdarzenia, np. momentu podania bodźca albo momentu behawioralnej reakcji na bodziec (np. wciśnięcie przycisku). Podejście to bazuje na trzech założeniach:&lt;br /&gt;
* Reakcja jest czasowo związana z bodźcem. Tzn. w kolejnych realizacjach występuje ona zawsze z tym samym opóźnieniem.&lt;br /&gt;
* Reakcja na bodziec skutkuje zawsze pojawieniem się w sygnale składowej o stałym kształcie (mówimy o stałej morfologii).&lt;br /&gt;
* Spontaniczna czynność EEG &amp;amp;mdash; ta która nie dotyczy przetwarzania interesującego nas bodźca &amp;amp;mdash; jest niezależnym, stacjonarnym szumem o średniej zero.&lt;br /&gt;
&lt;br /&gt;
Zgodnie z powyższymi założeniami mierzony w ''i''-tej realizacji sygnał można wyrazić jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Uśrednianie po ''N'' realizacjach daje:&lt;br /&gt;
: &amp;lt;math&amp;gt;\bar x (t) = \frac{1}{N} \sum_{i=1}^N x_i(t) = \frac{1}{N} \left(N s(t) + \sum_{i=1}^N n_i(t) \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
Wartość oczekiwana średniego sygnału wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[ \bar x(t) \right] = s(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż dla szumu o średniej zero mamy:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[\frac{1}{N} \sum_{i=1}^N n_i(t)\right] = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
Wariancja &amp;lt;math&amp;gt;\bar x(t)&amp;lt;/math&amp;gt; wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \mathrm{E} \left[  \left( \frac{1}{N} \sum_{i=1}^N n_i(t)\right)^2 \right] \approx \frac{1}{N} \sigma^2_{n(t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; jest deterministyczne. &lt;br /&gt;
&lt;br /&gt;
Dla potencjałów pojawiających się w pierwszych kilkudziesięciu milisekundach po bodźcu model ten można uznać za poprawny, gdyż wykazują one zależność głównie od parametrów fizycznych bodźca. Dla późniejszych składowych staje się on coraz bardziej wątpliwy ze względu na występujące korelacje ze stanem (np. uwagi) badanego.&lt;br /&gt;
&lt;br /&gt;
Dla późniejszych składowych można by postulować bardziej ogólną wersję modelu potencjału wywołanego:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s_i(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Ten model uwidacznia, że do opisu potencjału wywołanego potrzebna jest nie tylko średnia, ale i wyższe momenty rozkładu (np. drugi moment centralny czyli wariancja).&lt;br /&gt;
&lt;br /&gt;
====Wariancja w przypadku szumu skorelowanego ====&lt;br /&gt;
W poprzednim paragrafie pokazaliśmy, że w przypadku niezależnego szumu wariancja uśrednionego sygnału (w danej chwili czasu) maleje jak  &amp;lt;math&amp;gt;\frac{1}{N}&amp;lt;/math&amp;gt;. Jednak w przypadku gdy kolejne próbki szumu są skorelowane (np. występuje silna aktywność rytmiczna alfa) sytuacja się komplikuje. Intuicyjnie łatwo możemy to sobie wyobrazić w granicznym przypadku. Załóżmy, że tło dla  potencjałów o stałej morfologii stanowi sinusoida. Jeśli będziemy podawać bodźce w odstępach będących wielokrotnością okresu tej sinusoidy to w uśrednianych fragmentach sygnału owa sinusoida jest tak samo powtarzalna jak badany potencjał i uśrednianie nie prowadzi do poprawy stosunku amplitudy sygnału do amplitudy tła. &lt;br /&gt;
&lt;br /&gt;
Stopień zależności pomiędzy próbkami można zmierzyć przy pomocy funkcji autokorelacji. &lt;br /&gt;
Jeśli funkcję autokorelacji przybliżymy przez:&lt;br /&gt;
: &amp;lt;math&amp;gt;R_{xx}(\tau) = \sigma^2 \exp(-\beta |\tau|) \cos(2 \pi f_0 \tau)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;\sigma^2&amp;lt;/math&amp;gt; jest wariancją szumu, &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; jest średnią częstością aktywności rytmicznej, &amp;lt;math&amp;gt;\beta/ \pi&amp;lt;/math&amp;gt; jest szerokością pasma tej czynności, zaś &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; opóźnieniem, to wariancję potencjału wywołanego można wyrazić jako&amp;lt;!-- \cite{Spekreijse_1976}--&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \frac{\sigma^2}{N} \left[ \frac{1-\exp(-2 \beta T)}{1 - 2 \exp(- \beta T) \cos(2 \pi f_0 T) +\exp(-2 \beta T)} \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; jest odstępem między bodźcami. &lt;br /&gt;
Widać stąd, że obecność czynności rytmicznej w tle wpływa na stosunek sygnału do szumu. Z powyższego równania widać, że stosunek wariancji dąży do &amp;lt;math&amp;gt;\frac{\sigma^2}{N}&amp;lt;/math&amp;gt; gdy &amp;lt;math&amp;gt;\beta T&amp;lt;/math&amp;gt; staje się duże.  &lt;br /&gt;
&lt;br /&gt;
Periodyczna stymulacja może ponadto prowadzić do wzbudzenia czynności rytmicznej o częstości równej częstości pobudzania bądź jej harmonicznej.&lt;br /&gt;
&lt;br /&gt;
===Wariancja latencji===&lt;br /&gt;
&lt;br /&gt;
Jedną z form zmienności potencjału wywołanego w pojedynczych realizacjach jest wariancja latencji. &lt;br /&gt;
[[Grafika:Wariancja_latencji.png|thumb|500px|right|&lt;br /&gt;
Czerwona linia: Uśrednianie 100 potencjałów wywołanych o latncjach z rozkładu normalnego N(300,30 ), Niebieskie linie: przykładowe pojedyncze realizacje wzięte do średniej]]# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
Zmienność latencji prowadzi do:&lt;br /&gt;
* zmniejszenia amplitudy &amp;lt;math&amp;gt;\bar x&amp;lt;/math&amp;gt;&lt;br /&gt;
* wzrostu rozciągłości czasowej załamka&lt;br /&gt;
&lt;br /&gt;
O tych konsekwencjach zmienności latencji należy w szczególności pamiętać porównując średnie potencjały uzyskane w różnych warunkach eksperymentalnych. Gdy zauważymy, że średnie potencjały różnią się amplitudą należy rozważyć możliwość, że w istocie warunki eksperymentalne wpływają na różnice w wariancji latencji. &lt;br /&gt;
&lt;br /&gt;
Naturalne jest, że zmienność latencji jest bardziej widoczna w przypadku załamków trwających krótko niż w przypadku załamków trwających długo. Wariancja latencji rożnie wraz z jej wartością, stąd wśród późnych składowych potencjałów wywołanych nie obserwuje się komponentów krótkotrwałych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Habituacja ===&lt;br /&gt;
Zmienność w odpowiedziach na kolejno występujące po sobie bodźce można podzielić na komponent stochastyczny i deterministyczny. Komponent deterministyczny odzwierciedla zmianę czułości  układu nerwowego  na kolejne bodźce. Nowy bodziec często wywołuje reakcje pobudzenia widoczną w wielu parametrach takich jak przewodnictwo skóry, rytm serca i reaktywność kory mózgowej. Powszechnie obserwowanym zjawiskiem jest spadek reaktywności na powtarzające się bodźce zwany habituacją. Niekiedy obserwuje się także zjawisko przeciwne &amp;amp;mdash; wzrost reaktywności na bodziec &amp;amp;mdash; zwane sensytyzacją. &lt;br /&gt;
&lt;br /&gt;
Klasycznym sposobem na badanie tych zjawisk w potencjałach wywołanych jest uśrednianie w podzbiorach lub  uśrednianie blokowe. Wymaga ono  zmiany paradygmatu rejestracji danych. Załóżmy, że interesującym nas bodźcem jest błysk światła. Chcemy zaobserwować ewentualne zmiany amplitudy i latencji w ciągu 100 potencjałów będących reakcją na błysk powtarzający się co 500 ms.&lt;br /&gt;
====Uśrednianie w podzbiorach ====&lt;br /&gt;
W metodzie tej musimy założyć, że proces habituacji jest powolny, tzn. zmiany pomiędzy kolejnymi reakcjami są bardzo małe. W takim przypadku możemy podzielić długą serię bodźców na ciąg pod-serii i uśrednienie przeprowadzić dla każdej pod-serii osobno.&lt;br /&gt;
[[Plik:Usrednianie_podzbiory.svg‎|640px|thumb|center|Ilustracja uśredniania w podzbiorach]]&lt;br /&gt;
&lt;br /&gt;
====Uśrednianie blokowe====&lt;br /&gt;
W tym celu eksperyment wykonujemy w wielu seriach. Jedna seria składa się ze 100 błysków powtarzanych co 500 ms.  Po serii następuje przerwa trwająca np. 5 s (długość przerwy wyraża nasze oszacowanie czasu potrzebnego na zanik habituacji). Po przerwie seria jest powtarzana. Powtórzeń serii wykonujemy ''N''.&lt;br /&gt;
Następnie uśredniamy fragmenty sygnałów odpowiadające sobie w kolejnych seriach. &lt;br /&gt;
&lt;br /&gt;
W tym paradygmacie zakładamy, że każda seria rejestrowana jest w tych samych warunkach. Zaniedbujemy efekty związane ze zmęczeniem i zmianami w np. stopniu koncentracji badanego.&lt;br /&gt;
[[Plik:Usrednianie blokowe.svg|Usrednianie blokowe.svg|640px|thumb|center|Ilustracja uśredniania w blokach]]&lt;br /&gt;
&lt;br /&gt;
===Załamki w krzywej potencjału wywołanego vs ukryte komponenty===&lt;br /&gt;
Komponenta potencjału wywołanego to bardzo ważne ale jednocześnie źle określone pojęcie. Krzywa otrzymana w wyniku uśredniania potencjałów wywołanych przedstawia serię załamków dodatnich i ujemnych, ale trzeba być świadomym, że ten przebieg napięcia rejestrowany przez elektrody przedstawia tak naprawdę sumę potencjałów pochodzących od wielu dość niezależnie działających źródeł w mózgu. Przyczynek pochodzący od jednego funkcjonalnego źródła będziemy określać jako komponentę. &lt;br /&gt;
&lt;br /&gt;
Komentarza wymaga też pojęcie źródła funkcjonalnego. Czynność elektryczną synchronicznie działających neuronów piramidalnych w określonym fragmencie kory mózgowej z pewnej odległości można przybliżyć potencjałem dipola prądowego. Taki aktywny fragment kory stanowi źródło dające przyczynek do mierzonego na powierzchni głowy potencjału. W najprostszej sytuacji taki przyczynek może być obserwowany jako komponenta. Mózg jest jednak obiektem niezwykle złożonym i gęsto połączonym. Wiele obszarów korowych może być funkcjonalnie połączonych i aktywowanych synchronicznie w celu realizacji określonego zadania &amp;amp;mdash; o takim funkcjonalnym zespole też możemy myśleć jako o pojedynczym źródle, choć może ono mieć złożoną strukturę przestrzenną. Często zatem myślimy o komponentach ukrytych potencjału wywołanego jako o aktywności takich funkcjonalnych zespołów. &lt;br /&gt;
&lt;br /&gt;
Po tym wstępie widać już chyba, że do zrozumienia co dzieje się w czasie reakcji na bodziec, którą obserwujemy w potencjale wywołanym, bardziej pożądane byłoby badanie komponent ukrytych niż poszczególnych załamków krzywej potencjału wywołanego, która stanowi ważoną sumę owych komponentów. Zanim przejdziemy do omówienia technik służących &amp;amp;bdquo;wyłuskiwaniu&amp;amp;rdquo; komponent prześledźmy kilka symulacji i wnioski z nich płynące.&lt;br /&gt;
&lt;br /&gt;
==== Załamki i komponenty nie są tym samym.====&lt;br /&gt;
Tę samą krzywą można otrzymać na nieskończenie wiele sposobów  przez sumowanie rożnych kombinacji domniemanych komponentów. Przykładowy rysunek pokazuje, jak tę samą krzywą można złożyć z dwóch rożnych zestawów komponentów (kod wytwarzający przykładową symulację pokazany jest poniżej).&lt;br /&gt;
[[Plik:Sumowanie_komponentow1.png|center|thumb|600px| Panel a) przedstawia hipotetyczną krzywą ERP, panel b) jedna z możliwych dekompozycji sygnału w panelu a), panel c) inna możliwa dekompozycja sygnału z panelu a) ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ICA==&lt;br /&gt;
Popularna w ostatnich latach metoda &amp;quot;czyszczenia&amp;quot; sygnału z artefaktów opiera się na analizie składowych niezależnych.&lt;br /&gt;
&lt;br /&gt;
Analiza składowych niezależnych (ang. ''Independent Components Analysis'',&lt;br /&gt;
ICA) to jedno z określeń dla metod rozwiązywania problemu tzw. ślepej&lt;br /&gt;
separacji źródeł (''blind source separation, BSS''). Przyjęty model&lt;br /&gt;
zakłada, że mamy do czynienia z następującą sytuacją: dane którymi&lt;br /&gt;
dysponujemy (&amp;lt;math&amp;gt;\vec{x}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. zapisy z kilku mikrofonów)&lt;br /&gt;
są liniową mieszaniną kilku statystycznie niezależnych sygnałów&lt;br /&gt;
(&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. głosy kilku mówiących jednocześnie osób,&lt;br /&gt;
tzw. ''cocktail party problem''): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
\vec{x} = A \vec{s}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; zwiemy macierzą mieszającą, a&lt;br /&gt;
rozwiązania szukamy w postaci macierzy separującej &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, takiej, że wektor sygnałów &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \vec{y}=B\vec{x}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
jest możliwie bliski (nieznanym) sygnałom&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt;.  Wymóg niezależności statystycznej elementów&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{y}&amp;lt;/math&amp;gt; wymaga uwzględnienia statystyk rzędów wyższych&lt;br /&gt;
niż 2, czyli korelacji (używanych w PCA). Przetwarzanie wstępne&lt;br /&gt;
polega często na wyzerowaniu statystyk do rzędu 2, czy odjęciu&lt;br /&gt;
średniej i obrocie diagonalizującym macierz kowariancji (zwykle&lt;br /&gt;
PCA). Uzyskanie w prosty sposób dekorelacji ułatwia działanie procedur&lt;br /&gt;
realizujących dalsze wymagania niezależności. Realizowane są one&lt;br /&gt;
zwykle z pomocą sztucznych sieci neuronowych o specjalnie dobieranych&lt;br /&gt;
regułach uczenia.&lt;br /&gt;
&lt;br /&gt;
Procedura usuwania artefaktów polega na zerowaniu komponentów, które zidentyfikujemy -- na przykład na podstawie kształtu, widma i rozkładu przestrzennego -- i odtwarzaniu sygnału z pominięciem tych komponentów. Procedura jest zaimplementowania w programie Svarog, którego aktualną wersję można ściągnąć stąd: https://braintech.pl/software/svarog-streamer/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Zadanie 1: Rejestracja i analiza potencjałów związanych ze zdarzeniem=&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 1. Obserwacja bodźca wzrokowego  ===&lt;br /&gt;
 &lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
* Paradygmat: badany słucha przez słuchawki serii dźwieków. Bodźce trwają 100 ms i  powtarzają się co losową wartość 0.7 - 1.2s sekundy. W ramach badania mają być podawane dwa bodźce, które będą róznić się wysokością dźwięku (np. C i G). Bodźce mają pojawiać się w proporcji 1:6 w dwóch blokach: dany dźwięk w jednym bloku jest bodźcem rzadkim, w drugim czestym, na początku bloku powinien pojawić się częsty bodzieć min. 15 razy. Pomiędzy blokami powinna być przerwa, której długość reguluje badany. Zadanie poprzedza krótka instrukcja, a kończy podziękowanie.&lt;br /&gt;
&lt;br /&gt;
* Pomiar&lt;br /&gt;
**Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 10 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%. [[Plik:Glowka10-20 ERPy.svg|thumb|300px|right]]&lt;br /&gt;
** Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
** Montujemy także elektrody M1 i M2.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Za pomocą ICA w SVAROGU (Analiza-&amp;gt; ICA) rozkładamy sygnał na komponenty i usuwamy ten komponent, w którym obserujemy aktywność elektryczną oka.  &lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +800 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V). &lt;br /&gt;
# Rysujemy średni potencjał we wszystkich kanałach.&lt;br /&gt;
# Identyfikujemy załamki N1. Mierzymy ich amplitudę w stosunku do zera. &lt;br /&gt;
# Porównujemy uzyskane amplitudy w 2 warunkach za pomocą odpowiedniego testu statystycznego (porównanie warunków ze skrajnymi wartościami amplitudy) &amp;amp;mdash; zastosuj test permutacyjny (opisany poniżej) lub test t-Studenta/nieparametryczny odpowiednik). &lt;br /&gt;
#liczymy różnicę ERP dla czestego i rzadkiego bodźca i umieszczamy wszystkie trzy krzywe na wykresie. &lt;br /&gt;
&lt;br /&gt;
**Opis testu permutacyjnego &lt;br /&gt;
Pytanie: Czy intensywność bodźca wpływa na amplitudę potencjału P1?&lt;br /&gt;
Jak stwierdzić czy amplitudy załamków P1 istotnie różnią się pomiędzy seriami?&lt;br /&gt;
&lt;br /&gt;
Musimy przeprowadzić test statystyczny. Możemy skonstruować go np. tak:&lt;br /&gt;
Mamy dwa warunki I i II. Jako statystykę przyjmiemy różnicę pomiędzy amplitudą załamka zmierzoną w serii z dwoma diodami (P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt;) a amplitudą zmierzoną w serii z jedną diodą (P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;):&lt;br /&gt;
: ''S'' = P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt; &amp;amp;minus; P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;&lt;br /&gt;
Postawmy hipotezę zerową, że nie ma różnicy w amplitudzie pomiędzy warunkiem II a I oraz hipotezę alternatywną, że różnica taka występuje.&lt;br /&gt;
: H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;: ''S'' = 0&lt;br /&gt;
: H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;: ''S'' &amp;amp;ne; 0&lt;br /&gt;
Zgodnie z H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; dla wartości ''S'' nie ma różnicy czy realizacja została zarejestrowana w warunkach I czy II, zatem można losowo poprzypisywać numery warunków do realizacji i w ten sposób uzyskać rozkład statystyki ''S'' pod warunkiem prawdziwości H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, czyli obliczyć średnie potencjały dla &amp;amp;bdquo;pomieszanych&amp;amp;rdquo; tagów, wyliczyć średnie potencjały dla sztucznie wygenerowaych grup, i wyliczyć różnicę amplitud dla tych średnich, czyli wartość statystyki dla hipotezy H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Zaimplementuj test permutacyjny zgodny z powyższą koncepcją.&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 2: rejestracja i analiza potencjału P3 - GOTOWE ===&lt;br /&gt;
====Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje średni kwadrat, który występuje w dwóch jasnych kolorach. &lt;br /&gt;
#* Bodźce trwają 300 ms, poprzedzane punktem fiksacji wyświetlanym 0.5s przerwa między próbami jest losowana i wynosi od 0.6-1 s (punkt fiksacji też jest wyświetlany).  &lt;br /&gt;
#* Proporcja wystapień bodźców koloru pierwszego i drugiego wynosi 1:10.   &lt;br /&gt;
#* Zadaniem badanego jest zareagowanie nacisnięciem klawisza klawiatury na kwadrat w rzadkim kolorze (w instrukcji do badania podajemy jaki to kolor). &lt;br /&gt;
#* informacja co do koloru wyświetlanego bodźca powinna być zapisaywana do tagów. &lt;br /&gt;
#* Wykonujemy tyle realizacji aby zarejestrować 100 powtórzeń bodźców rzadkich. &lt;br /&gt;
# Pomiar:&lt;br /&gt;
#* Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrody M1 i M2, będziemy ich używać w montażu i w czasie analizy jako referencji typu połączone uszy.&lt;br /&gt;
#* Częstość próbkowania 256 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz w SVAROGU.&lt;br /&gt;
# Za pomocą ICA w SVAROGU (Analiza-&amp;gt; ICA) rozkładamy sygnał na komponenty i usuwamy ten komponent, w którym obserujemy aktywność elektryczną oka.  &lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +1000 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V). &lt;br /&gt;
# Uśredniamy osobno realizacje dla każdego koloru kwadratu. &lt;br /&gt;
# Nakładamy na siebie na rysunkach oba typy średnich.&lt;br /&gt;
# Wyznaczamy amplitudę P3 i liczymy test statystyczny pomiędzy warunkami. &lt;br /&gt;
&lt;br /&gt;
#dodatkowo z plików generowanych przez Psychopy (*.csv) wiciągamy informację dotyczącą szybkości i poprawności rekacji&lt;br /&gt;
#na odcinkach przed bodźcem w okolicach potylicznych i ciemieniowych liczymy widmo, aby oszacowac moc pasma alfa i beta. &lt;br /&gt;
# sprawdzamy hipotezę o zależności pomiędzy mocą alfy i bety oraz szybkości i poprawności reakcji. &lt;br /&gt;
Można też policzyć P300 w blokach po 25 wystapień i zobaczyć, czy jest jakas zależność pomiędzy amplitudą załamka a mocą w tych dwóch pasmach oraz wskaxnikacmi behawioralnymi. &lt;br /&gt;
&lt;br /&gt;
MACKU - tutaj moga też pociczyć ROC i AUC &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Ćwiczenie dodatkowe: P300 BCI==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy elektrody z systemu 10-10 umieszczone nad korą wzrokową: P07, O1, O2, PO8, PO3, PO4, Pz, Cz.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
obci_gui --presets eeg_workshop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i z guzika &amp;amp;bdquo;select amplifier&amp;amp;rdquo; wybieramy właściwy wzmacniacz.&lt;br /&gt;
&lt;br /&gt;
Do kontroli jakości sygnału możemy uruchomić Svaroga.&lt;br /&gt;
&lt;br /&gt;
Dane z kalibracji zapisują się w pliku test1 w katalogu domowym użytkownika, z labiryntu w pliku test2.&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu kalibracji pojawia się napis &amp;amp;bdquo;Trwają obliczenia&amp;amp;rdquo; lub podobny. Odczekujemy kilka minut, aż skończy się peer &amp;amp;bdquo;Calibration&amp;amp;rdquo; (widoczny w obci_gui) i zamykamy okienko klawiszami Alt-F4 lub zatrzymując scenariusz guzikiem &amp;amp;bdquo;Stop&amp;amp;rdquo;. W katalogu domowym pojawi się plik z wynikami kalibracji, co pozwala na uruchomienie scenariusza &amp;amp;bdquo;labirynt&amp;amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Po zebraniu danych, przed wczytaniem ich do Svaroga należy w tym samym katalogu uruchomić skrypt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.read_manager import ReadManager&lt;br /&gt;
&lt;br /&gt;
def main(): &lt;br /&gt;
	file_name = 'test1'&lt;br /&gt;
	&lt;br /&gt;
	mgr = ReadManager(&lt;br /&gt;
		file_name + '.obci.xml',&lt;br /&gt;
		file_name + '.obci.raw',&lt;br /&gt;
		file_name + '.obci.tag')&lt;br /&gt;
	&lt;br /&gt;
	tags = mgr.get_tags()&lt;br /&gt;
	for i in xrange(0, len(tags)):&lt;br /&gt;
		if tags[i]['desc']['index'] == tags[i]['desc']['target']:&lt;br /&gt;
			tags[i]['name'] = 'blink_target'&lt;br /&gt;
		else:&lt;br /&gt;
			tags[i]['name'] = 'blink'&lt;br /&gt;
			&lt;br /&gt;
	tags_writer = tags_file_writer.TagsFileWriter(file_name + '.obci.tag')&lt;br /&gt;
	for tag in tags:&lt;br /&gt;
		tags_writer.tag_received(tag)		&lt;br /&gt;
	tags_writer.finish_saving(0)	&lt;br /&gt;
 &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3. Analiza Heartbeat-Evoked Potential (HEP)== &lt;br /&gt;
&lt;br /&gt;
Celem tego zadania jest zaobserwowanie występowania ERP związanego z działaniem serca (szczegóły można doczytać tutaj: [https://www.sciencedirect.com/science/article/pii/S1053811919303738?via%3Dihub]. W zadaniu tym wykorzystany dane spoczynkowe zebrane podczas pierwszej rejestracji. &lt;br /&gt;
* w pierwszym kroku sygnał montujemy i filtrujemy;&lt;br /&gt;
* następnie zaznaczamy fragmenty sygnału, w których widzimy artefakty;&lt;br /&gt;
* w drugim robimy detekcję załamków R z EKG &amp;amp;mdash; po ich podstawie będziemy cieli sygnał (&amp;amp;minus;200-600 ms po R);&lt;br /&gt;
* następnie uśredniamy otrzymane odcinki.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10851</id>
		<title>Pracownia EEG 2/Potencjały wywołane</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10851"/>
		<updated>2024-09-24T14:02:38Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Zadanie 1: Rejestracja i analiza potencjałów wzrokowych */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Potencjały wywołane&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
==Potencjały wywołane==&lt;br /&gt;
=== Wstęp ===&lt;br /&gt;
Potencjały wywołane EEG (ang. ''evoked potentials'', EP) są śladami odpowiedzi mózgu na bodźce. W przypadku MEG poprawnie mówi się o polach wywołanych (ang. ''evoked fields'', EF).&lt;br /&gt;
Zwykle reakcja ta jest mała (wyjątek stanowią [[Elektroencefalografia/Metody_analizy_sygnałów_EEG_-_analiza_w_dziedzinie_czasu |kompleksy K]]) i w zapisie pojedynczej realizacji reakcji na bodziec najczęściej niewidoczna wśród czynności pochodzącej od wielu innych procesów zachodzących w tym samym czasie w mózgu. &lt;br /&gt;
Ich wyodrębnienie z tak zwanego tła EEG/MEG, czyli manifestacji elektrycznej innych, trwających w tym samym czasie w mózgu procesów (aktywny prąd niezależny), wymaga w dniu dzisiejszym zapisu odpowiedzi na szereg powtórzeń tego samego bodźca (&amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;). Pierwsze potencjały wywołane pokazał pod koniec lat 40-tych Dawson (Dawson, 1947) wykonując superpozycję pojedynczych realizacji na kliszy fotograficznej.&lt;br /&gt;
Z czasem skomplikowane urządzenia analogowe zastąpione zostały przez cyfrowe uśrednianie kolejnych fragmentów EEG, zsynchronizowanych według momentu wystąpienia bodźca, łatwo realizowane za pomocą komputera.&lt;br /&gt;
&lt;br /&gt;
[[Grafika:EP.png|thumb|640px|center|&amp;lt;figure id=&amp;quot;fig:EP&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Uśrednianie potencjałów wywołanych. a) ciągły zapis EEG z wyróżnionymi momentami wystąpienia bodźca (w tym przypadku słuchowego) b) kilkadziesiąt kolejnych odcinków, wyciętych jako sekunda EEG od momentu wystąpienia kolejnych bodźców, ustawione jeden pod drugim c) uśredniony potencjał wywołany &amp;amp;mdash; widać m. in. załamek P300 ok. 300 milisekund po bodźcu]]&lt;br /&gt;
&lt;br /&gt;
Techniki te opierają się na założeniu, że zawarta w EEG odpowiedź mózgu na każdy z kolejnych bodźców jest niezmienna, a EEG odzwierciedlające pozostałe procesy traktowane jest jak nieskorelowany z nią proces stochastyczny. Zależnie od rodzaju potencjałów wywołanych, założenia te są mniej lub bardziej nieuzasadnione; podważa je choćby powszechnie znany efekt habituacji, polegający na osłabieniu późnych potencjałów wywołanych kolejnymi powtórzeniami bodźca.&lt;br /&gt;
&lt;br /&gt;
Istota potencjałów wywołanych jest przedmiotem otwartej dyskusji i dziesiątków prac, dotykających od lat podstawowych w tej dziedzinie pytań: czym jest potencjał wywołany, który widzimy w uśrednionym przebiegu? Czy naprawdę wynika z deterministycznie powtarzanej, jednakowej odpowiedzi pojawiającej się po każdym powtórzeniu bodźca niezależnie od &amp;amp;bdquo;tła&amp;amp;rdquo;, czy może wynika z reorganizacji faz tego właśnie &amp;amp;bdquo;tła&amp;amp;rdquo; EEG, czy może kombinacji tych dwóch efektów? Jest to wspaniałe pole dla zastosowań zaawansowanych metod modelowania i analizy sygnałów. W ostatnich latach powstają dziesiątki prac na ten temat, a od czasu do czasu również krytyczne artykuły wykazujące, że dotychczasowe odkrycia są raczej artefaktami stosowanych metod a nie wynikają z własności analizowanych danych (Yeung et al., 2004). Jak widać jest tu wciąż bardzo wiele do zrobienia, gdyż zrozumienie tego mechanizmu stoi na drodze do &amp;amp;bdquo;świętego Graala&amp;amp;rdquo;, którym w tej dziedzinie jest wyodrębnienie pojedynczych potencjałów wywołanych.&lt;br /&gt;
&lt;br /&gt;
Niezależnie od tego, w neurofizjologii klinicznej nazwą potencjał wywołany określa się krzywą widoczną po uśrednieniu odpowiedzi na kilkanaście do kilku tysięcy bodźców (Szelenberger 2000). Gromadzona od dziesięcioleci wiedza o behawioralnych i klinicznych korelatach potencjałów wywołanych opiera się na rozpoznawaniu w przebiegach uśrednionych tak zwanych załamków, czyli przejściowych wzrostów lub spadków potencjału (na przykład na &amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; widać załamek P300). Nazwy załamków składają się zwykle z litery &amp;amp;bdquo;P&amp;amp;rdquo; (od ang. ''positive''), jeśli wychylenie jest dodatnie, lub &amp;amp;bdquo;N&amp;amp;rdquo; (od ang. ''negative''), jeśli wychylenie jest ujemne, oraz liczby. Uwaga: &lt;br /&gt;
* Nie ma niestety jednej ustalonej konwencji prezentacji potencjałów koniecznie trzeba więc zwracać uwagę na orientację wykresu, a wykonując wykres samemu - zamieszczać informację o orientacji kierunku dodatniego,gdyż kierunek dodatni może być wykresie skierowany do góry lub do dołu. &lt;br /&gt;
* Liczba następująca po N lub P określa przybliżoną liczbę milisekund od wystąpienia bodźca, czyli tak zwaną latencję. Nie można jednak ścisłego związku między tą liczbą a liczbą milisekund np. potencjał P300 w zależności od szczegółów paradygmatu doświadczalnego może wystąpić znacznie później. np. w eksperymentach językowych zdarza się że P300 występuje później niż N400 :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;Rys. %i&amp;lt;/xr&amp;gt; przedstawia schematycznie najważniejsze załamki rozpoznawane w potencjałach słuchowych, czyli wywoływanych bodźcem dźwiękowym. Dla potencjałów wzrokowych i somatosensorycznych istnieją podobne klasyfikacje.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Zalamki.png|thumb|320px|right|&amp;lt;figure id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Orientacyjny schemat załamków rozpoznawanych w słuchowych potencjach wywołanych, na podstawie (Szelenberger 2000). Skala czasu logarytmiczna. Najszybsze (do 12 ms) składowe egzogenne to potencjały pniowe (BAEP), oznaczane jako fale I-VII. Litery &amp;amp;bdquo;P&amp;amp;rdquo; i &amp;amp;bdquo;N&amp;amp;rdquo; oznaczają dodatnie i ujemne wychylenia związane z dalszymi załamkami]]&lt;br /&gt;
&lt;br /&gt;
Najszybsze (czyli o najmniejszej latencji) składowe to potencjały egzogenne, odzwierciedlające wstępne fazy przetwarzania informacji. W potencjałach słuchowych są to potencjały pnia (ang. ''brainstem auditory evoked potentials'', BAEP), składające się z siedmiu fal występujących pomiędzy 1 a 12 ms od bodźca. Są one generowane np. w nerwie słuchowym czy pniu mózgu, i wykorzystywane w klinicznej diagnostyce integralności dróg słuchowych. Podobnie jak inne wczesne potencjały o latencjach poniżej 100 ms, są praktycznie niezależne od stanu uwagi.&lt;br /&gt;
&lt;br /&gt;
Po potencjałach o średniej latencji (między 12 a 50 ms) zaczynają się późne potencjały słuchowe (od 100 ms od podania bodźca), odzwierciedlające bardziej złożone reakcje na bodziec. Potencjały ok. 100 ms obserwowane w okolicach sensorycznych odzwierciedlają odpowiedź tejże kory na bodziec. Ich amplituda zależy od parametrów fizycznych bodźca oraz od uwagi, np. amplituda załamka N100 wzrasta w stanie skupienia uwagi czy pobudzenia emocjonalnego. Pierwszy i najpopularniejszy całkowicie endogenny załamek to P300, pojawiający się po rozpoznaniu bodźca oczekiwanego, na którym skupiamy uwagę: na przykład, jeśli w serii pojawiających się losowo liter mamy zliczać wystąpienia jednej z nich, to na średniej odpowiedzi na pojawienie się tej litery pojawi się załamek P300. Załamek ten występuje również w odpowiedzi na bodźce wyczekiwane, niespodziewane i ważne dla osoby (np. własne imię). &lt;br /&gt;
&lt;br /&gt;
=== Uśrednianie w dziedzinie czasu ===&lt;br /&gt;
Jak już było wspomniane powyżej podstawową techniką stosowaną do analizy potencjałów wywołanych jest uśrednianie wielu realizacji odpowiedzi na bodziec wyrównanych względem jakiegoś charakterystycznego zdarzenia, np. momentu podania bodźca albo momentu behawioralnej reakcji na bodziec (np. wciśnięcie przycisku). Podejście to bazuje na trzech założeniach:&lt;br /&gt;
* Reakcja jest czasowo związana z bodźcem. Tzn. w kolejnych realizacjach występuje ona zawsze z tym samym opóźnieniem.&lt;br /&gt;
* Reakcja na bodziec skutkuje zawsze pojawieniem się w sygnale składowej o stałym kształcie (mówimy o stałej morfologii).&lt;br /&gt;
* Spontaniczna czynność EEG &amp;amp;mdash; ta która nie dotyczy przetwarzania interesującego nas bodźca &amp;amp;mdash; jest niezależnym, stacjonarnym szumem o średniej zero.&lt;br /&gt;
&lt;br /&gt;
Zgodnie z powyższymi założeniami mierzony w ''i''-tej realizacji sygnał można wyrazić jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Uśrednianie po ''N'' realizacjach daje:&lt;br /&gt;
: &amp;lt;math&amp;gt;\bar x (t) = \frac{1}{N} \sum_{i=1}^N x_i(t) = \frac{1}{N} \left(N s(t) + \sum_{i=1}^N n_i(t) \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
Wartość oczekiwana średniego sygnału wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[ \bar x(t) \right] = s(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż dla szumu o średniej zero mamy:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[\frac{1}{N} \sum_{i=1}^N n_i(t)\right] = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
Wariancja &amp;lt;math&amp;gt;\bar x(t)&amp;lt;/math&amp;gt; wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \mathrm{E} \left[  \left( \frac{1}{N} \sum_{i=1}^N n_i(t)\right)^2 \right] \approx \frac{1}{N} \sigma^2_{n(t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; jest deterministyczne. &lt;br /&gt;
&lt;br /&gt;
Dla potencjałów pojawiających się w pierwszych kilkudziesięciu milisekundach po bodźcu model ten można uznać za poprawny, gdyż wykazują one zależność głównie od parametrów fizycznych bodźca. Dla późniejszych składowych staje się on coraz bardziej wątpliwy ze względu na występujące korelacje ze stanem (np. uwagi) badanego.&lt;br /&gt;
&lt;br /&gt;
Dla późniejszych składowych można by postulować bardziej ogólną wersję modelu potencjału wywołanego:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s_i(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Ten model uwidacznia, że do opisu potencjału wywołanego potrzebna jest nie tylko średnia, ale i wyższe momenty rozkładu (np. drugi moment centralny czyli wariancja).&lt;br /&gt;
&lt;br /&gt;
====Wariancja w przypadku szumu skorelowanego ====&lt;br /&gt;
W poprzednim paragrafie pokazaliśmy, że w przypadku niezależnego szumu wariancja uśrednionego sygnału (w danej chwili czasu) maleje jak  &amp;lt;math&amp;gt;\frac{1}{N}&amp;lt;/math&amp;gt;. Jednak w przypadku gdy kolejne próbki szumu są skorelowane (np. występuje silna aktywność rytmiczna alfa) sytuacja się komplikuje. Intuicyjnie łatwo możemy to sobie wyobrazić w granicznym przypadku. Załóżmy, że tło dla  potencjałów o stałej morfologii stanowi sinusoida. Jeśli będziemy podawać bodźce w odstępach będących wielokrotnością okresu tej sinusoidy to w uśrednianych fragmentach sygnału owa sinusoida jest tak samo powtarzalna jak badany potencjał i uśrednianie nie prowadzi do poprawy stosunku amplitudy sygnału do amplitudy tła. &lt;br /&gt;
&lt;br /&gt;
Stopień zależności pomiędzy próbkami można zmierzyć przy pomocy funkcji autokorelacji. &lt;br /&gt;
Jeśli funkcję autokorelacji przybliżymy przez:&lt;br /&gt;
: &amp;lt;math&amp;gt;R_{xx}(\tau) = \sigma^2 \exp(-\beta |\tau|) \cos(2 \pi f_0 \tau)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;\sigma^2&amp;lt;/math&amp;gt; jest wariancją szumu, &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; jest średnią częstością aktywności rytmicznej, &amp;lt;math&amp;gt;\beta/ \pi&amp;lt;/math&amp;gt; jest szerokością pasma tej czynności, zaś &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; opóźnieniem, to wariancję potencjału wywołanego można wyrazić jako&amp;lt;!-- \cite{Spekreijse_1976}--&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \frac{\sigma^2}{N} \left[ \frac{1-\exp(-2 \beta T)}{1 - 2 \exp(- \beta T) \cos(2 \pi f_0 T) +\exp(-2 \beta T)} \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; jest odstępem między bodźcami. &lt;br /&gt;
Widać stąd, że obecność czynności rytmicznej w tle wpływa na stosunek sygnału do szumu. Z powyższego równania widać, że stosunek wariancji dąży do &amp;lt;math&amp;gt;\frac{\sigma^2}{N}&amp;lt;/math&amp;gt; gdy &amp;lt;math&amp;gt;\beta T&amp;lt;/math&amp;gt; staje się duże.  &lt;br /&gt;
&lt;br /&gt;
Periodyczna stymulacja może ponadto prowadzić do wzbudzenia czynności rytmicznej o częstości równej częstości pobudzania bądź jej harmonicznej.&lt;br /&gt;
&lt;br /&gt;
===Wariancja latencji===&lt;br /&gt;
&lt;br /&gt;
Jedną z form zmienności potencjału wywołanego w pojedynczych realizacjach jest wariancja latencji. &lt;br /&gt;
[[Grafika:Wariancja_latencji.png|thumb|500px|right|&lt;br /&gt;
Czerwona linia: Uśrednianie 100 potencjałów wywołanych o latncjach z rozkładu normalnego N(300,30 ), Niebieskie linie: przykładowe pojedyncze realizacje wzięte do średniej]]# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
Zmienność latencji prowadzi do:&lt;br /&gt;
* zmniejszenia amplitudy &amp;lt;math&amp;gt;\bar x&amp;lt;/math&amp;gt;&lt;br /&gt;
* wzrostu rozciągłości czasowej załamka&lt;br /&gt;
&lt;br /&gt;
O tych konsekwencjach zmienności latencji należy w szczególności pamiętać porównując średnie potencjały uzyskane w różnych warunkach eksperymentalnych. Gdy zauważymy, że średnie potencjały różnią się amplitudą należy rozważyć możliwość, że w istocie warunki eksperymentalne wpływają na różnice w wariancji latencji. &lt;br /&gt;
&lt;br /&gt;
Naturalne jest, że zmienność latencji jest bardziej widoczna w przypadku załamków trwających krótko niż w przypadku załamków trwających długo. Wariancja latencji rożnie wraz z jej wartością, stąd wśród późnych składowych potencjałów wywołanych nie obserwuje się komponentów krótkotrwałych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Habituacja ===&lt;br /&gt;
Zmienność w odpowiedziach na kolejno występujące po sobie bodźce można podzielić na komponent stochastyczny i deterministyczny. Komponent deterministyczny odzwierciedla zmianę czułości  układu nerwowego  na kolejne bodźce. Nowy bodziec często wywołuje reakcje pobudzenia widoczną w wielu parametrach takich jak przewodnictwo skóry, rytm serca i reaktywność kory mózgowej. Powszechnie obserwowanym zjawiskiem jest spadek reaktywności na powtarzające się bodźce zwany habituacją. Niekiedy obserwuje się także zjawisko przeciwne &amp;amp;mdash; wzrost reaktywności na bodziec &amp;amp;mdash; zwane sensytyzacją. &lt;br /&gt;
&lt;br /&gt;
Klasycznym sposobem na badanie tych zjawisk w potencjałach wywołanych jest uśrednianie w podzbiorach lub  uśrednianie blokowe. Wymaga ono  zmiany paradygmatu rejestracji danych. Załóżmy, że interesującym nas bodźcem jest błysk światła. Chcemy zaobserwować ewentualne zmiany amplitudy i latencji w ciągu 100 potencjałów będących reakcją na błysk powtarzający się co 500 ms.&lt;br /&gt;
====Uśrednianie w podzbiorach ====&lt;br /&gt;
W metodzie tej musimy założyć, że proces habituacji jest powolny, tzn. zmiany pomiędzy kolejnymi reakcjami są bardzo małe. W takim przypadku możemy podzielić długą serię bodźców na ciąg pod-serii i uśrednienie przeprowadzić dla każdej pod-serii osobno.&lt;br /&gt;
[[Plik:Usrednianie_podzbiory.svg‎|640px|thumb|center|Ilustracja uśredniania w podzbiorach]]&lt;br /&gt;
&lt;br /&gt;
====Uśrednianie blokowe====&lt;br /&gt;
W tym celu eksperyment wykonujemy w wielu seriach. Jedna seria składa się ze 100 błysków powtarzanych co 500 ms.  Po serii następuje przerwa trwająca np. 5 s (długość przerwy wyraża nasze oszacowanie czasu potrzebnego na zanik habituacji). Po przerwie seria jest powtarzana. Powtórzeń serii wykonujemy ''N''.&lt;br /&gt;
Następnie uśredniamy fragmenty sygnałów odpowiadające sobie w kolejnych seriach. &lt;br /&gt;
&lt;br /&gt;
W tym paradygmacie zakładamy, że każda seria rejestrowana jest w tych samych warunkach. Zaniedbujemy efekty związane ze zmęczeniem i zmianami w np. stopniu koncentracji badanego.&lt;br /&gt;
[[Plik:Usrednianie blokowe.svg|Usrednianie blokowe.svg|640px|thumb|center|Ilustracja uśredniania w blokach]]&lt;br /&gt;
&lt;br /&gt;
===Załamki w krzywej potencjału wywołanego vs ukryte komponenty===&lt;br /&gt;
Komponenta potencjału wywołanego to bardzo ważne ale jednocześnie źle określone pojęcie. Krzywa otrzymana w wyniku uśredniania potencjałów wywołanych przedstawia serię załamków dodatnich i ujemnych, ale trzeba być świadomym, że ten przebieg napięcia rejestrowany przez elektrody przedstawia tak naprawdę sumę potencjałów pochodzących od wielu dość niezależnie działających źródeł w mózgu. Przyczynek pochodzący od jednego funkcjonalnego źródła będziemy określać jako komponentę. &lt;br /&gt;
&lt;br /&gt;
Komentarza wymaga też pojęcie źródła funkcjonalnego. Czynność elektryczną synchronicznie działających neuronów piramidalnych w określonym fragmencie kory mózgowej z pewnej odległości można przybliżyć potencjałem dipola prądowego. Taki aktywny fragment kory stanowi źródło dające przyczynek do mierzonego na powierzchni głowy potencjału. W najprostszej sytuacji taki przyczynek może być obserwowany jako komponenta. Mózg jest jednak obiektem niezwykle złożonym i gęsto połączonym. Wiele obszarów korowych może być funkcjonalnie połączonych i aktywowanych synchronicznie w celu realizacji określonego zadania &amp;amp;mdash; o takim funkcjonalnym zespole też możemy myśleć jako o pojedynczym źródle, choć może ono mieć złożoną strukturę przestrzenną. Często zatem myślimy o komponentach ukrytych potencjału wywołanego jako o aktywności takich funkcjonalnych zespołów. &lt;br /&gt;
&lt;br /&gt;
Po tym wstępie widać już chyba, że do zrozumienia co dzieje się w czasie reakcji na bodziec, którą obserwujemy w potencjale wywołanym, bardziej pożądane byłoby badanie komponent ukrytych niż poszczególnych załamków krzywej potencjału wywołanego, która stanowi ważoną sumę owych komponentów. Zanim przejdziemy do omówienia technik służących &amp;amp;bdquo;wyłuskiwaniu&amp;amp;rdquo; komponent prześledźmy kilka symulacji i wnioski z nich płynące.&lt;br /&gt;
&lt;br /&gt;
==== Załamki i komponenty nie są tym samym.====&lt;br /&gt;
Tę samą krzywą można otrzymać na nieskończenie wiele sposobów  przez sumowanie rożnych kombinacji domniemanych komponentów. Przykładowy rysunek pokazuje, jak tę samą krzywą można złożyć z dwóch rożnych zestawów komponentów (kod wytwarzający przykładową symulację pokazany jest poniżej).&lt;br /&gt;
[[Plik:Sumowanie_komponentow1.png|center|thumb|600px| Panel a) przedstawia hipotetyczną krzywą ERP, panel b) jedna z możliwych dekompozycji sygnału w panelu a), panel c) inna możliwa dekompozycja sygnału z panelu a) ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ICA==&lt;br /&gt;
Popularna w ostatnich latach metoda &amp;quot;czyszczenia&amp;quot; sygnału z artefaktów opiera się na analizie składowych niezależnych.&lt;br /&gt;
&lt;br /&gt;
Analiza składowych niezależnych (ang. ''Independent Components Analysis'',&lt;br /&gt;
ICA) to jedno z określeń dla metod rozwiązywania problemu tzw. ślepej&lt;br /&gt;
separacji źródeł (''blind source separation, BSS''). Przyjęty model&lt;br /&gt;
zakłada, że mamy do czynienia z następującą sytuacją: dane którymi&lt;br /&gt;
dysponujemy (&amp;lt;math&amp;gt;\vec{x}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. zapisy z kilku mikrofonów)&lt;br /&gt;
są liniową mieszaniną kilku statystycznie niezależnych sygnałów&lt;br /&gt;
(&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. głosy kilku mówiących jednocześnie osób,&lt;br /&gt;
tzw. ''cocktail party problem''): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
\vec{x} = A \vec{s}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; zwiemy macierzą mieszającą, a&lt;br /&gt;
rozwiązania szukamy w postaci macierzy separującej &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, takiej, że wektor sygnałów &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \vec{y}=B\vec{x}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
jest możliwie bliski (nieznanym) sygnałom&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt;.  Wymóg niezależności statystycznej elementów&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{y}&amp;lt;/math&amp;gt; wymaga uwzględnienia statystyk rzędów wyższych&lt;br /&gt;
niż 2, czyli korelacji (używanych w PCA). Przetwarzanie wstępne&lt;br /&gt;
polega często na wyzerowaniu statystyk do rzędu 2, czy odjęciu&lt;br /&gt;
średniej i obrocie diagonalizującym macierz kowariancji (zwykle&lt;br /&gt;
PCA). Uzyskanie w prosty sposób dekorelacji ułatwia działanie procedur&lt;br /&gt;
realizujących dalsze wymagania niezależności. Realizowane są one&lt;br /&gt;
zwykle z pomocą sztucznych sieci neuronowych o specjalnie dobieranych&lt;br /&gt;
regułach uczenia.&lt;br /&gt;
&lt;br /&gt;
Procedura usuwania artefaktów polega na zerowaniu komponentów, które zidentyfikujemy -- na przykład na podstawie kształtu, widma i rozkładu przestrzennego -- i odtwarzaniu sygnału z pominięciem tych komponentów. Procedura jest zaimplementowania w programie Svarog, którego aktualną wersję można ściągnąć stąd: https://braintech.pl/software/svarog-streamer/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Zadanie 1: Rejestracja i analiza potencjałów związanych ze zdarzeniem=&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 1. Obserwacja bodźca wzrokowego  ===&lt;br /&gt;
 &lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
* Paradygmat: badany słucha przez słuchawki serii dźwieków. Bodźce trwają 100 ms i  powtarzają się co losową wartość 0.7 - 1.2s sekundy. W ramach badania mają być podawane dwa bodźce, które będą róznić się wysokością dźwięku (np. C i G). Bodźce mają pojawiać się w proporcji 1:6 w dwóch blokach: dany dźwięk w jednym bloku jest bodźcem rzadkim, w drugim czestym, na początku bloku powinien pojawić się częsty bodzieć min. 15 razy. Pomiędzy blokami powinna być przerwa, której długość reguluje badany. Zadanie poprzedza krótka instrukcja, a kończy podziękowanie.&lt;br /&gt;
&lt;br /&gt;
* Pomiar&lt;br /&gt;
**Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 10 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%. [[Plik:Glowka10-20 ERPy.svg|thumb|300px|right]]&lt;br /&gt;
** Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
** Montujemy także elektrody M1 i M2.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Za pomocą ICA w SVAROGU (Analiza-&amp;gt; ICA) rozkładamy sygnał na komponenty i usuwamy ten komponent, w którym obserujemy aktywność elektryczną oka.  &lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +800 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V). &lt;br /&gt;
# Rysujemy średni potencjał we wszystkich kanałach.&lt;br /&gt;
# Identyfikujemy załamki N1. Mierzymy ich amplitudę w stosunku do zera. &lt;br /&gt;
# Porównujemy uzyskane amplitudy w 2 warunkach za pomocą odpowiedniego testu statystycznego (porównanie warunków ze skrajnymi wartościami amplitudy) &amp;amp;mdash; zastosuj test permutacyjny (opisany poniżej) lub test t-Studenta/nieparametryczny odpowiednik). &lt;br /&gt;
#liczymy różnicę ERP dla czestego i rzadkiego bodźca i umieszczamy wszystkie trzy krzywe na wykresie. &lt;br /&gt;
&lt;br /&gt;
**Opis testu permutacyjnego &lt;br /&gt;
Pytanie: Czy intensywność bodźca wpływa na amplitudę potencjału P1?&lt;br /&gt;
Jak stwierdzić czy amplitudy załamków P1 istotnie różnią się pomiędzy seriami?&lt;br /&gt;
&lt;br /&gt;
Musimy przeprowadzić test statystyczny. Możemy skonstruować go np. tak:&lt;br /&gt;
Mamy dwa warunki I i II. Jako statystykę przyjmiemy różnicę pomiędzy amplitudą załamka zmierzoną w serii z dwoma diodami (P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt;) a amplitudą zmierzoną w serii z jedną diodą (P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;):&lt;br /&gt;
: ''S'' = P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt; &amp;amp;minus; P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;&lt;br /&gt;
Postawmy hipotezę zerową, że nie ma różnicy w amplitudzie pomiędzy warunkiem II a I oraz hipotezę alternatywną, że różnica taka występuje.&lt;br /&gt;
: H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;: ''S'' = 0&lt;br /&gt;
: H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;: ''S'' &amp;amp;ne; 0&lt;br /&gt;
Zgodnie z H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; dla wartości ''S'' nie ma różnicy czy realizacja została zarejestrowana w warunkach I czy II, zatem można losowo poprzypisywać numery warunków do realizacji i w ten sposób uzyskać rozkład statystyki ''S'' pod warunkiem prawdziwości H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, czyli obliczyć średnie potencjały dla &amp;amp;bdquo;pomieszanych&amp;amp;rdquo; tagów, wyliczyć średnie potencjały dla sztucznie wygenerowaych grup, i wyliczyć różnicę amplitud dla tych średnich, czyli wartość statystyki dla hipotezy H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Zaimplementuj test permutacyjny zgodny z powyższą koncepcją.&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 2: rejestracja i analiza potencjału P3 - GOTOWE ===&lt;br /&gt;
====Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje średni kwadrat, który występuje w dwóch jasnych kolorach. &lt;br /&gt;
#* Bodźce trwają 300 ms, poprzedzane punktem fiksacji wyświetlanym 0.5s przerwa między próbami jest losowana i wynosi od 0.6-1 s (punkt fiksacji też jest wyświetlany).  &lt;br /&gt;
#* Proporcja wystapień bodźców koloru pierwszego i drugiego wynosi 1:10.   &lt;br /&gt;
#* Zadaniem badanego jest zareagowanie nacisnięciem klawisza klawiatury na kwadrat w rzadkim kolorze (w instrukcji do badania podajemy jaki to kolor). &lt;br /&gt;
#* informacja co do koloru wyświetlanego bodźca powinna być zapisaywana do tagów. &lt;br /&gt;
#* Wykonujemy tyle realizacji aby zarejestrować 100 powtórzeń bodźców rzadkich. &lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrody M1 i M2, będziemy ich używać w montażu i w czasie analizy jako referencji typu połączone uszy.&lt;br /&gt;
#* Częstość próbkowania 256 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz w SVAROGU.&lt;br /&gt;
# Za pomocą ICA w SVAROGU (Analiza-&amp;gt; ICA) rozkładamy sygnał na komponenty i usuwamy ten komponent, w którym obserujemy aktywność elektryczną oka.  &lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +1000 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V). &lt;br /&gt;
# Uśredniamy osobno realizacje dla każdego koloru kwadratu. &lt;br /&gt;
# Nakładamy na siebie na rysunkach oba typy średnich.&lt;br /&gt;
# Wyznaczamy amplitudę P3 i liczymy test statystyczny pomiędzy warunkami. &lt;br /&gt;
&lt;br /&gt;
#dodatkowo z plików generowanych przez Psychopy (*.csv) wiciągamy informację dotyczącą szybkości i poprawności rekacji&lt;br /&gt;
#na odcinkach przed bodźcem w okolicach potylicznych i ciemieniowych liczymy widmo, aby oszacowac moc pasma alfa i beta. &lt;br /&gt;
# sprawdzamy hipotezę o zależności pomiędzy mocą alfy i bety oraz szybkości i poprawności reakcji. &lt;br /&gt;
Można też policzyć P300 w blokach po 25 wystapień i zobaczyć, czy jest jakas zależność pomiędzy amplitudą załamka a mocą w tych dwóch pasmach oraz wskaxnikacmi behawioralnymi. &lt;br /&gt;
&lt;br /&gt;
MACKU - tutaj moga też pociczyć ROC i AUC &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Ćwiczenie dodatkowe: P300 BCI==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy elektrody z systemu 10-10 umieszczone nad korą wzrokową: P07, O1, O2, PO8, PO3, PO4, Pz, Cz.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
obci_gui --presets eeg_workshop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i z guzika &amp;amp;bdquo;select amplifier&amp;amp;rdquo; wybieramy właściwy wzmacniacz.&lt;br /&gt;
&lt;br /&gt;
Do kontroli jakości sygnału możemy uruchomić Svaroga.&lt;br /&gt;
&lt;br /&gt;
Dane z kalibracji zapisują się w pliku test1 w katalogu domowym użytkownika, z labiryntu w pliku test2.&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu kalibracji pojawia się napis &amp;amp;bdquo;Trwają obliczenia&amp;amp;rdquo; lub podobny. Odczekujemy kilka minut, aż skończy się peer &amp;amp;bdquo;Calibration&amp;amp;rdquo; (widoczny w obci_gui) i zamykamy okienko klawiszami Alt-F4 lub zatrzymując scenariusz guzikiem &amp;amp;bdquo;Stop&amp;amp;rdquo;. W katalogu domowym pojawi się plik z wynikami kalibracji, co pozwala na uruchomienie scenariusza &amp;amp;bdquo;labirynt&amp;amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Po zebraniu danych, przed wczytaniem ich do Svaroga należy w tym samym katalogu uruchomić skrypt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.read_manager import ReadManager&lt;br /&gt;
&lt;br /&gt;
def main(): &lt;br /&gt;
	file_name = 'test1'&lt;br /&gt;
	&lt;br /&gt;
	mgr = ReadManager(&lt;br /&gt;
		file_name + '.obci.xml',&lt;br /&gt;
		file_name + '.obci.raw',&lt;br /&gt;
		file_name + '.obci.tag')&lt;br /&gt;
	&lt;br /&gt;
	tags = mgr.get_tags()&lt;br /&gt;
	for i in xrange(0, len(tags)):&lt;br /&gt;
		if tags[i]['desc']['index'] == tags[i]['desc']['target']:&lt;br /&gt;
			tags[i]['name'] = 'blink_target'&lt;br /&gt;
		else:&lt;br /&gt;
			tags[i]['name'] = 'blink'&lt;br /&gt;
			&lt;br /&gt;
	tags_writer = tags_file_writer.TagsFileWriter(file_name + '.obci.tag')&lt;br /&gt;
	for tag in tags:&lt;br /&gt;
		tags_writer.tag_received(tag)		&lt;br /&gt;
	tags_writer.finish_saving(0)	&lt;br /&gt;
 &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3. Analiza Heartbeat-Evoked Potential (HEP)== &lt;br /&gt;
&lt;br /&gt;
Celem tego zadania jest zaobserwowanie występowania ERP związanego z działaniem serca (szczegóły można doczytać tutaj: [https://www.sciencedirect.com/science/article/pii/S1053811919303738?via%3Dihub]. W zadaniu tym wykorzystany dane spoczynkowe zebrane podczas pierwszej rejestracji. &lt;br /&gt;
* w pierwszym kroku sygnał montujemy i filtrujemy;&lt;br /&gt;
* następnie zaznaczamy fragmenty sygnału, w których widzimy artefakty;&lt;br /&gt;
* w drugim robimy detekcję załamków R z EKG &amp;amp;mdash; po ich podstawie będziemy cieli sygnał (&amp;amp;minus;200-600 ms po R);&lt;br /&gt;
* następnie uśredniamy otrzymane odcinki.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10850</id>
		<title>Pracownia EEG 2/Potencjały wywołane</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10850"/>
		<updated>2024-09-24T13:39:35Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Eksperyment 2: rejestracja i analiza potencjału P3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Potencjały wywołane&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
==Potencjały wywołane==&lt;br /&gt;
=== Wstęp ===&lt;br /&gt;
Potencjały wywołane EEG (ang. ''evoked potentials'', EP) są śladami odpowiedzi mózgu na bodźce. W przypadku MEG poprawnie mówi się o polach wywołanych (ang. ''evoked fields'', EF).&lt;br /&gt;
Zwykle reakcja ta jest mała (wyjątek stanowią [[Elektroencefalografia/Metody_analizy_sygnałów_EEG_-_analiza_w_dziedzinie_czasu |kompleksy K]]) i w zapisie pojedynczej realizacji reakcji na bodziec najczęściej niewidoczna wśród czynności pochodzącej od wielu innych procesów zachodzących w tym samym czasie w mózgu. &lt;br /&gt;
Ich wyodrębnienie z tak zwanego tła EEG/MEG, czyli manifestacji elektrycznej innych, trwających w tym samym czasie w mózgu procesów (aktywny prąd niezależny), wymaga w dniu dzisiejszym zapisu odpowiedzi na szereg powtórzeń tego samego bodźca (&amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;). Pierwsze potencjały wywołane pokazał pod koniec lat 40-tych Dawson (Dawson, 1947) wykonując superpozycję pojedynczych realizacji na kliszy fotograficznej.&lt;br /&gt;
Z czasem skomplikowane urządzenia analogowe zastąpione zostały przez cyfrowe uśrednianie kolejnych fragmentów EEG, zsynchronizowanych według momentu wystąpienia bodźca, łatwo realizowane za pomocą komputera.&lt;br /&gt;
&lt;br /&gt;
[[Grafika:EP.png|thumb|640px|center|&amp;lt;figure id=&amp;quot;fig:EP&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Uśrednianie potencjałów wywołanych. a) ciągły zapis EEG z wyróżnionymi momentami wystąpienia bodźca (w tym przypadku słuchowego) b) kilkadziesiąt kolejnych odcinków, wyciętych jako sekunda EEG od momentu wystąpienia kolejnych bodźców, ustawione jeden pod drugim c) uśredniony potencjał wywołany &amp;amp;mdash; widać m. in. załamek P300 ok. 300 milisekund po bodźcu]]&lt;br /&gt;
&lt;br /&gt;
Techniki te opierają się na założeniu, że zawarta w EEG odpowiedź mózgu na każdy z kolejnych bodźców jest niezmienna, a EEG odzwierciedlające pozostałe procesy traktowane jest jak nieskorelowany z nią proces stochastyczny. Zależnie od rodzaju potencjałów wywołanych, założenia te są mniej lub bardziej nieuzasadnione; podważa je choćby powszechnie znany efekt habituacji, polegający na osłabieniu późnych potencjałów wywołanych kolejnymi powtórzeniami bodźca.&lt;br /&gt;
&lt;br /&gt;
Istota potencjałów wywołanych jest przedmiotem otwartej dyskusji i dziesiątków prac, dotykających od lat podstawowych w tej dziedzinie pytań: czym jest potencjał wywołany, który widzimy w uśrednionym przebiegu? Czy naprawdę wynika z deterministycznie powtarzanej, jednakowej odpowiedzi pojawiającej się po każdym powtórzeniu bodźca niezależnie od &amp;amp;bdquo;tła&amp;amp;rdquo;, czy może wynika z reorganizacji faz tego właśnie &amp;amp;bdquo;tła&amp;amp;rdquo; EEG, czy może kombinacji tych dwóch efektów? Jest to wspaniałe pole dla zastosowań zaawansowanych metod modelowania i analizy sygnałów. W ostatnich latach powstają dziesiątki prac na ten temat, a od czasu do czasu również krytyczne artykuły wykazujące, że dotychczasowe odkrycia są raczej artefaktami stosowanych metod a nie wynikają z własności analizowanych danych (Yeung et al., 2004). Jak widać jest tu wciąż bardzo wiele do zrobienia, gdyż zrozumienie tego mechanizmu stoi na drodze do &amp;amp;bdquo;świętego Graala&amp;amp;rdquo;, którym w tej dziedzinie jest wyodrębnienie pojedynczych potencjałów wywołanych.&lt;br /&gt;
&lt;br /&gt;
Niezależnie od tego, w neurofizjologii klinicznej nazwą potencjał wywołany określa się krzywą widoczną po uśrednieniu odpowiedzi na kilkanaście do kilku tysięcy bodźców (Szelenberger 2000). Gromadzona od dziesięcioleci wiedza o behawioralnych i klinicznych korelatach potencjałów wywołanych opiera się na rozpoznawaniu w przebiegach uśrednionych tak zwanych załamków, czyli przejściowych wzrostów lub spadków potencjału (na przykład na &amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; widać załamek P300). Nazwy załamków składają się zwykle z litery &amp;amp;bdquo;P&amp;amp;rdquo; (od ang. ''positive''), jeśli wychylenie jest dodatnie, lub &amp;amp;bdquo;N&amp;amp;rdquo; (od ang. ''negative''), jeśli wychylenie jest ujemne, oraz liczby. Uwaga: &lt;br /&gt;
* Nie ma niestety jednej ustalonej konwencji prezentacji potencjałów koniecznie trzeba więc zwracać uwagę na orientację wykresu, a wykonując wykres samemu - zamieszczać informację o orientacji kierunku dodatniego,gdyż kierunek dodatni może być wykresie skierowany do góry lub do dołu. &lt;br /&gt;
* Liczba następująca po N lub P określa przybliżoną liczbę milisekund od wystąpienia bodźca, czyli tak zwaną latencję. Nie można jednak ścisłego związku między tą liczbą a liczbą milisekund np. potencjał P300 w zależności od szczegółów paradygmatu doświadczalnego może wystąpić znacznie później. np. w eksperymentach językowych zdarza się że P300 występuje później niż N400 :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;Rys. %i&amp;lt;/xr&amp;gt; przedstawia schematycznie najważniejsze załamki rozpoznawane w potencjałach słuchowych, czyli wywoływanych bodźcem dźwiękowym. Dla potencjałów wzrokowych i somatosensorycznych istnieją podobne klasyfikacje.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Zalamki.png|thumb|320px|right|&amp;lt;figure id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Orientacyjny schemat załamków rozpoznawanych w słuchowych potencjach wywołanych, na podstawie (Szelenberger 2000). Skala czasu logarytmiczna. Najszybsze (do 12 ms) składowe egzogenne to potencjały pniowe (BAEP), oznaczane jako fale I-VII. Litery &amp;amp;bdquo;P&amp;amp;rdquo; i &amp;amp;bdquo;N&amp;amp;rdquo; oznaczają dodatnie i ujemne wychylenia związane z dalszymi załamkami]]&lt;br /&gt;
&lt;br /&gt;
Najszybsze (czyli o najmniejszej latencji) składowe to potencjały egzogenne, odzwierciedlające wstępne fazy przetwarzania informacji. W potencjałach słuchowych są to potencjały pnia (ang. ''brainstem auditory evoked potentials'', BAEP), składające się z siedmiu fal występujących pomiędzy 1 a 12 ms od bodźca. Są one generowane np. w nerwie słuchowym czy pniu mózgu, i wykorzystywane w klinicznej diagnostyce integralności dróg słuchowych. Podobnie jak inne wczesne potencjały o latencjach poniżej 100 ms, są praktycznie niezależne od stanu uwagi.&lt;br /&gt;
&lt;br /&gt;
Po potencjałach o średniej latencji (między 12 a 50 ms) zaczynają się późne potencjały słuchowe (od 100 ms od podania bodźca), odzwierciedlające bardziej złożone reakcje na bodziec. Potencjały ok. 100 ms obserwowane w okolicach sensorycznych odzwierciedlają odpowiedź tejże kory na bodziec. Ich amplituda zależy od parametrów fizycznych bodźca oraz od uwagi, np. amplituda załamka N100 wzrasta w stanie skupienia uwagi czy pobudzenia emocjonalnego. Pierwszy i najpopularniejszy całkowicie endogenny załamek to P300, pojawiający się po rozpoznaniu bodźca oczekiwanego, na którym skupiamy uwagę: na przykład, jeśli w serii pojawiających się losowo liter mamy zliczać wystąpienia jednej z nich, to na średniej odpowiedzi na pojawienie się tej litery pojawi się załamek P300. Załamek ten występuje również w odpowiedzi na bodźce wyczekiwane, niespodziewane i ważne dla osoby (np. własne imię). &lt;br /&gt;
&lt;br /&gt;
=== Uśrednianie w dziedzinie czasu ===&lt;br /&gt;
Jak już było wspomniane powyżej podstawową techniką stosowaną do analizy potencjałów wywołanych jest uśrednianie wielu realizacji odpowiedzi na bodziec wyrównanych względem jakiegoś charakterystycznego zdarzenia, np. momentu podania bodźca albo momentu behawioralnej reakcji na bodziec (np. wciśnięcie przycisku). Podejście to bazuje na trzech założeniach:&lt;br /&gt;
* Reakcja jest czasowo związana z bodźcem. Tzn. w kolejnych realizacjach występuje ona zawsze z tym samym opóźnieniem.&lt;br /&gt;
* Reakcja na bodziec skutkuje zawsze pojawieniem się w sygnale składowej o stałym kształcie (mówimy o stałej morfologii).&lt;br /&gt;
* Spontaniczna czynność EEG &amp;amp;mdash; ta która nie dotyczy przetwarzania interesującego nas bodźca &amp;amp;mdash; jest niezależnym, stacjonarnym szumem o średniej zero.&lt;br /&gt;
&lt;br /&gt;
Zgodnie z powyższymi założeniami mierzony w ''i''-tej realizacji sygnał można wyrazić jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Uśrednianie po ''N'' realizacjach daje:&lt;br /&gt;
: &amp;lt;math&amp;gt;\bar x (t) = \frac{1}{N} \sum_{i=1}^N x_i(t) = \frac{1}{N} \left(N s(t) + \sum_{i=1}^N n_i(t) \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
Wartość oczekiwana średniego sygnału wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[ \bar x(t) \right] = s(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż dla szumu o średniej zero mamy:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[\frac{1}{N} \sum_{i=1}^N n_i(t)\right] = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
Wariancja &amp;lt;math&amp;gt;\bar x(t)&amp;lt;/math&amp;gt; wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \mathrm{E} \left[  \left( \frac{1}{N} \sum_{i=1}^N n_i(t)\right)^2 \right] \approx \frac{1}{N} \sigma^2_{n(t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; jest deterministyczne. &lt;br /&gt;
&lt;br /&gt;
Dla potencjałów pojawiających się w pierwszych kilkudziesięciu milisekundach po bodźcu model ten można uznać za poprawny, gdyż wykazują one zależność głównie od parametrów fizycznych bodźca. Dla późniejszych składowych staje się on coraz bardziej wątpliwy ze względu na występujące korelacje ze stanem (np. uwagi) badanego.&lt;br /&gt;
&lt;br /&gt;
Dla późniejszych składowych można by postulować bardziej ogólną wersję modelu potencjału wywołanego:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s_i(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Ten model uwidacznia, że do opisu potencjału wywołanego potrzebna jest nie tylko średnia, ale i wyższe momenty rozkładu (np. drugi moment centralny czyli wariancja).&lt;br /&gt;
&lt;br /&gt;
====Wariancja w przypadku szumu skorelowanego ====&lt;br /&gt;
W poprzednim paragrafie pokazaliśmy, że w przypadku niezależnego szumu wariancja uśrednionego sygnału (w danej chwili czasu) maleje jak  &amp;lt;math&amp;gt;\frac{1}{N}&amp;lt;/math&amp;gt;. Jednak w przypadku gdy kolejne próbki szumu są skorelowane (np. występuje silna aktywność rytmiczna alfa) sytuacja się komplikuje. Intuicyjnie łatwo możemy to sobie wyobrazić w granicznym przypadku. Załóżmy, że tło dla  potencjałów o stałej morfologii stanowi sinusoida. Jeśli będziemy podawać bodźce w odstępach będących wielokrotnością okresu tej sinusoidy to w uśrednianych fragmentach sygnału owa sinusoida jest tak samo powtarzalna jak badany potencjał i uśrednianie nie prowadzi do poprawy stosunku amplitudy sygnału do amplitudy tła. &lt;br /&gt;
&lt;br /&gt;
Stopień zależności pomiędzy próbkami można zmierzyć przy pomocy funkcji autokorelacji. &lt;br /&gt;
Jeśli funkcję autokorelacji przybliżymy przez:&lt;br /&gt;
: &amp;lt;math&amp;gt;R_{xx}(\tau) = \sigma^2 \exp(-\beta |\tau|) \cos(2 \pi f_0 \tau)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;\sigma^2&amp;lt;/math&amp;gt; jest wariancją szumu, &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; jest średnią częstością aktywności rytmicznej, &amp;lt;math&amp;gt;\beta/ \pi&amp;lt;/math&amp;gt; jest szerokością pasma tej czynności, zaś &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; opóźnieniem, to wariancję potencjału wywołanego można wyrazić jako&amp;lt;!-- \cite{Spekreijse_1976}--&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \frac{\sigma^2}{N} \left[ \frac{1-\exp(-2 \beta T)}{1 - 2 \exp(- \beta T) \cos(2 \pi f_0 T) +\exp(-2 \beta T)} \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; jest odstępem między bodźcami. &lt;br /&gt;
Widać stąd, że obecność czynności rytmicznej w tle wpływa na stosunek sygnału do szumu. Z powyższego równania widać, że stosunek wariancji dąży do &amp;lt;math&amp;gt;\frac{\sigma^2}{N}&amp;lt;/math&amp;gt; gdy &amp;lt;math&amp;gt;\beta T&amp;lt;/math&amp;gt; staje się duże.  &lt;br /&gt;
&lt;br /&gt;
Periodyczna stymulacja może ponadto prowadzić do wzbudzenia czynności rytmicznej o częstości równej częstości pobudzania bądź jej harmonicznej.&lt;br /&gt;
&lt;br /&gt;
===Wariancja latencji===&lt;br /&gt;
&lt;br /&gt;
Jedną z form zmienności potencjału wywołanego w pojedynczych realizacjach jest wariancja latencji. &lt;br /&gt;
[[Grafika:Wariancja_latencji.png|thumb|500px|right|&lt;br /&gt;
Czerwona linia: Uśrednianie 100 potencjałów wywołanych o latncjach z rozkładu normalnego N(300,30 ), Niebieskie linie: przykładowe pojedyncze realizacje wzięte do średniej]]# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
Zmienność latencji prowadzi do:&lt;br /&gt;
* zmniejszenia amplitudy &amp;lt;math&amp;gt;\bar x&amp;lt;/math&amp;gt;&lt;br /&gt;
* wzrostu rozciągłości czasowej załamka&lt;br /&gt;
&lt;br /&gt;
O tych konsekwencjach zmienności latencji należy w szczególności pamiętać porównując średnie potencjały uzyskane w różnych warunkach eksperymentalnych. Gdy zauważymy, że średnie potencjały różnią się amplitudą należy rozważyć możliwość, że w istocie warunki eksperymentalne wpływają na różnice w wariancji latencji. &lt;br /&gt;
&lt;br /&gt;
Naturalne jest, że zmienność latencji jest bardziej widoczna w przypadku załamków trwających krótko niż w przypadku załamków trwających długo. Wariancja latencji rożnie wraz z jej wartością, stąd wśród późnych składowych potencjałów wywołanych nie obserwuje się komponentów krótkotrwałych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Habituacja ===&lt;br /&gt;
Zmienność w odpowiedziach na kolejno występujące po sobie bodźce można podzielić na komponent stochastyczny i deterministyczny. Komponent deterministyczny odzwierciedla zmianę czułości  układu nerwowego  na kolejne bodźce. Nowy bodziec często wywołuje reakcje pobudzenia widoczną w wielu parametrach takich jak przewodnictwo skóry, rytm serca i reaktywność kory mózgowej. Powszechnie obserwowanym zjawiskiem jest spadek reaktywności na powtarzające się bodźce zwany habituacją. Niekiedy obserwuje się także zjawisko przeciwne &amp;amp;mdash; wzrost reaktywności na bodziec &amp;amp;mdash; zwane sensytyzacją. &lt;br /&gt;
&lt;br /&gt;
Klasycznym sposobem na badanie tych zjawisk w potencjałach wywołanych jest uśrednianie w podzbiorach lub  uśrednianie blokowe. Wymaga ono  zmiany paradygmatu rejestracji danych. Załóżmy, że interesującym nas bodźcem jest błysk światła. Chcemy zaobserwować ewentualne zmiany amplitudy i latencji w ciągu 100 potencjałów będących reakcją na błysk powtarzający się co 500 ms.&lt;br /&gt;
====Uśrednianie w podzbiorach ====&lt;br /&gt;
W metodzie tej musimy założyć, że proces habituacji jest powolny, tzn. zmiany pomiędzy kolejnymi reakcjami są bardzo małe. W takim przypadku możemy podzielić długą serię bodźców na ciąg pod-serii i uśrednienie przeprowadzić dla każdej pod-serii osobno.&lt;br /&gt;
[[Plik:Usrednianie_podzbiory.svg‎|640px|thumb|center|Ilustracja uśredniania w podzbiorach]]&lt;br /&gt;
&lt;br /&gt;
====Uśrednianie blokowe====&lt;br /&gt;
W tym celu eksperyment wykonujemy w wielu seriach. Jedna seria składa się ze 100 błysków powtarzanych co 500 ms.  Po serii następuje przerwa trwająca np. 5 s (długość przerwy wyraża nasze oszacowanie czasu potrzebnego na zanik habituacji). Po przerwie seria jest powtarzana. Powtórzeń serii wykonujemy ''N''.&lt;br /&gt;
Następnie uśredniamy fragmenty sygnałów odpowiadające sobie w kolejnych seriach. &lt;br /&gt;
&lt;br /&gt;
W tym paradygmacie zakładamy, że każda seria rejestrowana jest w tych samych warunkach. Zaniedbujemy efekty związane ze zmęczeniem i zmianami w np. stopniu koncentracji badanego.&lt;br /&gt;
[[Plik:Usrednianie blokowe.svg|Usrednianie blokowe.svg|640px|thumb|center|Ilustracja uśredniania w blokach]]&lt;br /&gt;
&lt;br /&gt;
===Załamki w krzywej potencjału wywołanego vs ukryte komponenty===&lt;br /&gt;
Komponenta potencjału wywołanego to bardzo ważne ale jednocześnie źle określone pojęcie. Krzywa otrzymana w wyniku uśredniania potencjałów wywołanych przedstawia serię załamków dodatnich i ujemnych, ale trzeba być świadomym, że ten przebieg napięcia rejestrowany przez elektrody przedstawia tak naprawdę sumę potencjałów pochodzących od wielu dość niezależnie działających źródeł w mózgu. Przyczynek pochodzący od jednego funkcjonalnego źródła będziemy określać jako komponentę. &lt;br /&gt;
&lt;br /&gt;
Komentarza wymaga też pojęcie źródła funkcjonalnego. Czynność elektryczną synchronicznie działających neuronów piramidalnych w określonym fragmencie kory mózgowej z pewnej odległości można przybliżyć potencjałem dipola prądowego. Taki aktywny fragment kory stanowi źródło dające przyczynek do mierzonego na powierzchni głowy potencjału. W najprostszej sytuacji taki przyczynek może być obserwowany jako komponenta. Mózg jest jednak obiektem niezwykle złożonym i gęsto połączonym. Wiele obszarów korowych może być funkcjonalnie połączonych i aktywowanych synchronicznie w celu realizacji określonego zadania &amp;amp;mdash; o takim funkcjonalnym zespole też możemy myśleć jako o pojedynczym źródle, choć może ono mieć złożoną strukturę przestrzenną. Często zatem myślimy o komponentach ukrytych potencjału wywołanego jako o aktywności takich funkcjonalnych zespołów. &lt;br /&gt;
&lt;br /&gt;
Po tym wstępie widać już chyba, że do zrozumienia co dzieje się w czasie reakcji na bodziec, którą obserwujemy w potencjale wywołanym, bardziej pożądane byłoby badanie komponent ukrytych niż poszczególnych załamków krzywej potencjału wywołanego, która stanowi ważoną sumę owych komponentów. Zanim przejdziemy do omówienia technik służących &amp;amp;bdquo;wyłuskiwaniu&amp;amp;rdquo; komponent prześledźmy kilka symulacji i wnioski z nich płynące.&lt;br /&gt;
&lt;br /&gt;
==== Załamki i komponenty nie są tym samym.====&lt;br /&gt;
Tę samą krzywą można otrzymać na nieskończenie wiele sposobów  przez sumowanie rożnych kombinacji domniemanych komponentów. Przykładowy rysunek pokazuje, jak tę samą krzywą można złożyć z dwóch rożnych zestawów komponentów (kod wytwarzający przykładową symulację pokazany jest poniżej).&lt;br /&gt;
[[Plik:Sumowanie_komponentow1.png|center|thumb|600px| Panel a) przedstawia hipotetyczną krzywą ERP, panel b) jedna z możliwych dekompozycji sygnału w panelu a), panel c) inna możliwa dekompozycja sygnału z panelu a) ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ICA==&lt;br /&gt;
Popularna w ostatnich latach metoda &amp;quot;czyszczenia&amp;quot; sygnału z artefaktów opiera się na analizie składowych niezależnych.&lt;br /&gt;
&lt;br /&gt;
Analiza składowych niezależnych (ang. ''Independent Components Analysis'',&lt;br /&gt;
ICA) to jedno z określeń dla metod rozwiązywania problemu tzw. ślepej&lt;br /&gt;
separacji źródeł (''blind source separation, BSS''). Przyjęty model&lt;br /&gt;
zakłada, że mamy do czynienia z następującą sytuacją: dane którymi&lt;br /&gt;
dysponujemy (&amp;lt;math&amp;gt;\vec{x}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. zapisy z kilku mikrofonów)&lt;br /&gt;
są liniową mieszaniną kilku statystycznie niezależnych sygnałów&lt;br /&gt;
(&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. głosy kilku mówiących jednocześnie osób,&lt;br /&gt;
tzw. ''cocktail party problem''): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
\vec{x} = A \vec{s}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; zwiemy macierzą mieszającą, a&lt;br /&gt;
rozwiązania szukamy w postaci macierzy separującej &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, takiej, że wektor sygnałów &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \vec{y}=B\vec{x}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
jest możliwie bliski (nieznanym) sygnałom&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt;.  Wymóg niezależności statystycznej elementów&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{y}&amp;lt;/math&amp;gt; wymaga uwzględnienia statystyk rzędów wyższych&lt;br /&gt;
niż 2, czyli korelacji (używanych w PCA). Przetwarzanie wstępne&lt;br /&gt;
polega często na wyzerowaniu statystyk do rzędu 2, czy odjęciu&lt;br /&gt;
średniej i obrocie diagonalizującym macierz kowariancji (zwykle&lt;br /&gt;
PCA). Uzyskanie w prosty sposób dekorelacji ułatwia działanie procedur&lt;br /&gt;
realizujących dalsze wymagania niezależności. Realizowane są one&lt;br /&gt;
zwykle z pomocą sztucznych sieci neuronowych o specjalnie dobieranych&lt;br /&gt;
regułach uczenia.&lt;br /&gt;
&lt;br /&gt;
Procedura usuwania artefaktów polega na zerowaniu komponentów, które zidentyfikujemy -- na przykład na podstawie kształtu, widma i rozkładu przestrzennego -- i odtwarzaniu sygnału z pominięciem tych komponentów. Procedura jest zaimplementowania w programie Svarog, którego aktualną wersję można ściągnąć stąd: https://braintech.pl/software/svarog-streamer/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Zadanie 1: Rejestracja i analiza potencjałów wzrokowych=&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 1. Obserwacja bodźca wzrokowego  ===&lt;br /&gt;
 &lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
* Paradygmat: z odległości około 40 cm badany obserwuje wyświetalny na ekranie biały kwadrat. Bodźce trwają 300 ms i  powtarzają się co 0,5 sekundy. Bodziec poprzedza punkt fiksacji pokazywany przez 300 ms. Natężenie bodźca ma przyjąć jedną z 4 wartości (manipulujemy jego przeźroczystością: 1, 0,7, 0,3 i 0,1, gdzie 1 oznacza brak przeźroczystości). Każda z intensywności bodźca ma pojawić się 100 razy podczas badania, bodźce podawane mają być w sposób losowy. Zadanie poprzedza krótka instrukcja, a kończy podziękowanie. &lt;br /&gt;
&lt;br /&gt;
* Pomiar&lt;br /&gt;
**Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 10 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%. [[Plik:Glowka10-20 ERPy.svg|thumb|600px|right]]&lt;br /&gt;
** Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
** Montujemy także elektrody M1 i M2 i FCz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# W sygnale wyszukujemy wzrokowo odcinki z artefaktami i oznaczamy je tagami w SVAROGu.&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +800 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# W przypadku, gdy dane są zanieczyszczone wieloma mrugnięciami (zwłaszcza tylnych okolicach), należy skorzystać z metody ICA w SVAROGU, informacje tutaj: [https://brain.fuw.edu.pl/edu/index.php/Pracownia_EEG/EEG_spoczynkowe#ICA_.28.C4.87wiczenie_dodatkowe.29])&lt;br /&gt;
# Porównujemy zestawy danych otrzymane po wzrokowym i automatycznym (metodą opisaną powyżej) usunięciu artefaktów.&lt;br /&gt;
# Uśredniamy wycięte sygnały.&lt;br /&gt;
# Rysujemy średni potencjał we wszystkich kanałach.&lt;br /&gt;
# Pierwszy sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 jako różnicę między ekstremalną wartością załamka N2 a ekstremalną wartością załamka N2. &lt;br /&gt;
# Drugi sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 w stosunku do zera. &lt;br /&gt;
# Porównujemy uzyskane amplitudy w 4 warunkach za pomocą odpowiedniego testu statystycznego (porównanie warunków ze skrajnymi wartościami amplitudy) &amp;amp;mdash; zastosuj test permutacyjny (opisany poniżej) lub test t-Studenta/nieparametryczny odpowiednik). &lt;br /&gt;
&lt;br /&gt;
**Opis testu permutacyjnego &lt;br /&gt;
Pytanie: Czy intensywność bodźca wpływa na amplitudę potencjału P1?&lt;br /&gt;
Jak stwierdzić czy amplitudy załamków P1 istotnie różnią się pomiędzy seriami?&lt;br /&gt;
&lt;br /&gt;
Musimy przeprowadzić test statystyczny. Możemy skonstruować go np. tak:&lt;br /&gt;
Mamy dwa warunki I i II. Jako statystykę przyjmiemy różnicę pomiędzy amplitudą załamka zmierzoną w serii z dwoma diodami (P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt;) a amplitudą zmierzoną w serii z jedną diodą (P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;):&lt;br /&gt;
: ''S'' = P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt; &amp;amp;minus; P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;&lt;br /&gt;
Postawmy hipotezę zerową, że nie ma różnicy w amplitudzie pomiędzy warunkiem II a I oraz hipotezę alternatywną, że różnica taka występuje.&lt;br /&gt;
: H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;: ''S'' = 0&lt;br /&gt;
: H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;: ''S'' &amp;amp;ne; 0&lt;br /&gt;
Zgodnie z H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; dla wartości ''S'' nie ma różnicy czy realizacja została zarejestrowana w warunkach I czy II, zatem można losowo poprzypisywać numery warunków do realizacji i w ten sposób uzyskać rozkład statystyki ''S'' pod warunkiem prawdziwości H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, czyli obliczyć średnie potencjały dla &amp;amp;bdquo;pomieszanych&amp;amp;rdquo; tagów, wyliczyć średnie potencjały dla sztucznie wygenerowaych grup, i wyliczyć różnicę amplitud dla tych średnich, czyli wartość statystyki dla hipotezy H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Zaimplementuj test permutacyjny zgodny z powyższą koncepcją.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===Wersja 2: obserwacja habituacji / uśrednianie w blokach ===&lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje błyski diody. &lt;br /&gt;
#* Błyski powtarzają się co 0,5 sekundy. &lt;br /&gt;
#* Rejestrujemy 60 serii po 15 błysków.  &lt;br /&gt;
#* Pomiędzy seriami badany odpoczywa około 10 sekund.&lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrodę FCz (na linii centralnej pomiędzy Fz a Cz), będziemy jej używać w montażu i w czasie analizy jako referencji.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 0,1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +600 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy wycięte sygnały o tym samym numerze wewnątrz serii.&lt;br /&gt;
# Rysujemy serie 15 uśrednionych potencjałów dla tego kanału, który wykazywał najsilniejszy potencjał w pierwszej wersji eksperymentu. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 2: rejestracja i analiza potencjału P3 ===&lt;br /&gt;
====Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje średni kwadrat, który występuje w dwóch jasnych kolorach. &lt;br /&gt;
#* Bodźce trwają 300 ms, poprzedzane punktem fiksacji wyświetlanym 0.5s przerwa między próbami jest losowana i wynosi od 0.6-1 s (punkt fiksacji też jest wyświetlany).  &lt;br /&gt;
#* Proporcja wystapień bodźców koloru pierwszego i drugiego wynosi 1:10.   &lt;br /&gt;
#* Zadaniem badanego jest zareagowanie nacisnięciem klawisza klawiatury na kwadrat w rzadkim kolorze (w instrukcji do badania podajemy jaki to kolor). &lt;br /&gt;
#* Wykonujemy tyle realizacji aby zarejestrować 100 powtórzeń bodźców rzadkich. &lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrody M1 i M2, będziemy ich używać w montażu i w czasie analizy jako referencji typu połączone uszy.&lt;br /&gt;
#* Częstość próbkowania 256 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +900 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy osobno realizacje dla każdego koloru kwadratu. &lt;br /&gt;
# Nakładamy na siebie na rysunkach oba typy średnich.&lt;br /&gt;
# Wyznaczamy amplitudę P3 i liczymy test statystyczny pomiędzy warunkami.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Ćwiczenie dodatkowe: P300 BCI==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy elektrody z systemu 10-10 umieszczone nad korą wzrokową: P07, O1, O2, PO8, PO3, PO4, Pz, Cz.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
obci_gui --presets eeg_workshop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i z guzika &amp;amp;bdquo;select amplifier&amp;amp;rdquo; wybieramy właściwy wzmacniacz.&lt;br /&gt;
&lt;br /&gt;
Do kontroli jakości sygnału możemy uruchomić Svaroga.&lt;br /&gt;
&lt;br /&gt;
Dane z kalibracji zapisują się w pliku test1 w katalogu domowym użytkownika, z labiryntu w pliku test2.&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu kalibracji pojawia się napis &amp;amp;bdquo;Trwają obliczenia&amp;amp;rdquo; lub podobny. Odczekujemy kilka minut, aż skończy się peer &amp;amp;bdquo;Calibration&amp;amp;rdquo; (widoczny w obci_gui) i zamykamy okienko klawiszami Alt-F4 lub zatrzymując scenariusz guzikiem &amp;amp;bdquo;Stop&amp;amp;rdquo;. W katalogu domowym pojawi się plik z wynikami kalibracji, co pozwala na uruchomienie scenariusza &amp;amp;bdquo;labirynt&amp;amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Po zebraniu danych, przed wczytaniem ich do Svaroga należy w tym samym katalogu uruchomić skrypt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.read_manager import ReadManager&lt;br /&gt;
&lt;br /&gt;
def main(): &lt;br /&gt;
	file_name = 'test1'&lt;br /&gt;
	&lt;br /&gt;
	mgr = ReadManager(&lt;br /&gt;
		file_name + '.obci.xml',&lt;br /&gt;
		file_name + '.obci.raw',&lt;br /&gt;
		file_name + '.obci.tag')&lt;br /&gt;
	&lt;br /&gt;
	tags = mgr.get_tags()&lt;br /&gt;
	for i in xrange(0, len(tags)):&lt;br /&gt;
		if tags[i]['desc']['index'] == tags[i]['desc']['target']:&lt;br /&gt;
			tags[i]['name'] = 'blink_target'&lt;br /&gt;
		else:&lt;br /&gt;
			tags[i]['name'] = 'blink'&lt;br /&gt;
			&lt;br /&gt;
	tags_writer = tags_file_writer.TagsFileWriter(file_name + '.obci.tag')&lt;br /&gt;
	for tag in tags:&lt;br /&gt;
		tags_writer.tag_received(tag)		&lt;br /&gt;
	tags_writer.finish_saving(0)	&lt;br /&gt;
 &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3. Analiza Heartbeat-Evoked Potential (HEP)== &lt;br /&gt;
&lt;br /&gt;
Celem tego zadania jest zaobserwowanie występowania ERP związanego z działaniem serca (szczegóły można doczytać tutaj: [https://www.sciencedirect.com/science/article/pii/S1053811919303738?via%3Dihub]. W zadaniu tym wykorzystany dane spoczynkowe zebrane podczas pierwszej rejestracji. &lt;br /&gt;
* w pierwszym kroku sygnał montujemy i filtrujemy;&lt;br /&gt;
* następnie zaznaczamy fragmenty sygnału, w których widzimy artefakty;&lt;br /&gt;
* w drugim robimy detekcję załamków R z EKG &amp;amp;mdash; po ich podstawie będziemy cieli sygnał (&amp;amp;minus;200-600 ms po R);&lt;br /&gt;
* następnie uśredniamy otrzymane odcinki.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10849</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10849"/>
		<updated>2024-09-24T13:28:28Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1==&lt;br /&gt;
&lt;br /&gt;
===Procedura ===&lt;br /&gt;
W programie Psychopy przygotuj procedurę w ramach której osoba badana bedzie patrzeć na mogający biały kwadrat na czarnym tle. Częstość migania ma byc wybierana losowo z póli: 5, 12, 15, 20 Hz, wypełnienie ma wynosić 50%. Jedna próba ma trwać 5s. Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości powinny być zapisywane w tagach. dego warunku należy zebrać po 30 powtórzeń. &lt;br /&gt;
&lt;br /&gt;
Pomiar wykonujemy za pomocą następujących elektrod: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. Na podstawie tagów wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą.Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 12 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 12 Hz dla stymulacji pozostałymi częstościami. &lt;br /&gt;
#Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
===Zadanie 2===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Na rysunku zaznacz początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
=Podsumowanie= &lt;br /&gt;
W ramach podsumowania uzupełnij poniższą tabelę &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Porównanie metod&lt;br /&gt;
|-&lt;br /&gt;
! . !! ERP !! moc widmowa FFT !! transformata Hilberta&lt;br /&gt;
|-&lt;br /&gt;
| ilość wymaganych danych || ... || ... || ... &lt;br /&gt;
|-&lt;br /&gt;
| założenia fizjologiczne || ... || ... || ...&lt;br /&gt;
|-&lt;br /&gt;
| przykłady aktywności mózgu, które analizujemy daną metodą || ... || ... || ...  &lt;br /&gt;
|-&lt;br /&gt;
| charakterystyka danych || ... || ... || ... &lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
=Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10848</id>
		<title>Pracownia EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10848"/>
		<updated>2024-09-24T13:17:18Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Do przypomnienia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Pracownia EEG 2|Pracownia EEG 2]] / Krótkie przypomnienie z anatomii i funkcji mózgu&lt;br /&gt;
&lt;br /&gt;
==Do przypomnienia==&lt;br /&gt;
&lt;br /&gt;
[[Elektroencefalografia/Mózg]]&lt;br /&gt;
&lt;br /&gt;
[[Pracownia Sygnałów Biologicznych/Zajecia 9]]&lt;br /&gt;
&lt;br /&gt;
==Budowa i podstawowe funkcje mózgu== &lt;br /&gt;
Poniżej obrazek pokazujący lokalizację podstawowych ośrodków w mózgu: &lt;br /&gt;
&lt;br /&gt;
[[Plik:Mozg.jpeg|center|thumb|center|800px| Mózg z zaznaczonymi obszarami odpowiadającymi za główne funkcje. Obrazek pobrano z: [[https://dana.org/resources/neuroanatomy-the-basics/]].]]&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10847</id>
		<title>Pracownia EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10847"/>
		<updated>2024-09-24T13:16:07Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Do przypomnienia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Pracownia EEG 2|Pracownia EEG 2]] / Krótkie przypomnienie z anatomii i funkcji mózgu&lt;br /&gt;
&lt;br /&gt;
==Do przypomnienia==&lt;br /&gt;
&lt;br /&gt;
[[Elektroencefalografia/Mózg]]&lt;br /&gt;
&lt;br /&gt;
[[Pracownia Sygnałów Biologicznych/Zajecia 9]]&lt;br /&gt;
&lt;br /&gt;
[[Plik:Mozg.jpeg|center|thumb|center|800px| Mózg z zaznaczonymi obszarami odpowiadającymi za główne funkcje. Obrazek pobrano z: [[https://dana.org/resources/neuroanatomy-the-basics/]].]]&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10846</id>
		<title>Pracownia EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10846"/>
		<updated>2024-09-24T13:13:12Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Do przypomnienia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Pracownia EEG 2|Pracownia EEG 2]] / Krótkie przypomnienie z anatomii i funkcji mózgu&lt;br /&gt;
&lt;br /&gt;
==Do przypomnienia==&lt;br /&gt;
&lt;br /&gt;
[[Elektroencefalografia/Mózg]]&lt;br /&gt;
&lt;br /&gt;
[[Pracownia Sygnałów Biologicznych/Zajecia 9]]&lt;br /&gt;
&lt;br /&gt;
[[Plik:Mozg.jpeg|center|800 px/&amp;gt;Mózg z zaznaczonymi obszarami odpowiadającymi za główne funkcje.]]&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10845</id>
		<title>Pracownia EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10845"/>
		<updated>2024-09-24T13:12:38Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Do przypomnienia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Pracownia EEG 2|Pracownia EEG 2]] / Krótkie przypomnienie z anatomii i funkcji mózgu&lt;br /&gt;
&lt;br /&gt;
==Do przypomnienia==&lt;br /&gt;
&lt;br /&gt;
[[Elektroencefalografia/Mózg]]&lt;br /&gt;
&lt;br /&gt;
[[Pracownia Sygnałów Biologicznych/Zajecia 9]]&lt;br /&gt;
&lt;br /&gt;
[[Plik:Mozg.jpeg|center/&amp;gt;Mózg z zaznaczonymi obszarami odpowiadającymi za główne funkcje.]]&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Plik:Mozg.jpeg&amp;diff=10844</id>
		<title>Plik:Mozg.jpeg</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Plik:Mozg.jpeg&amp;diff=10844"/>
		<updated>2024-09-24T13:10:54Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10843</id>
		<title>Pracownia EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10843"/>
		<updated>2024-09-24T13:10:27Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Do przypomnienia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Pracownia EEG 2|Pracownia EEG 2]] / Krótkie przypomnienie z anatomii i funkcji mózgu&lt;br /&gt;
&lt;br /&gt;
==Do przypomnienia==&lt;br /&gt;
&lt;br /&gt;
[[Elektroencefalografia/Mózg]]&lt;br /&gt;
&lt;br /&gt;
[[Pracownia Sygnałów Biologicznych/Zajecia 9]]&lt;br /&gt;
&lt;br /&gt;
[[Plik:mózg.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid3&amp;quot; /&amp;gt;Fale delta  w czasie snu w zapisie polisomnograficznym.]]&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10842</id>
		<title>Pracownia EEG 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10842"/>
		<updated>2024-09-24T12:54:26Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Materiały */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pracownia EEG 2=&lt;br /&gt;
&lt;br /&gt;
==Terminy==&lt;br /&gt;
Zajęcia odbywają się w sali 4.59 w budynku Pasteura 5. &lt;br /&gt;
&lt;br /&gt;
* we wtorki w godz. 10:30 - 13:45&lt;br /&gt;
* w środy w godz. 13:15 - 16:30&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; ze względu na logiczny poniedziałek w dniu 02.10.2024 zajęcia z Pracowni EEG się nie odbywają. &lt;br /&gt;
&lt;br /&gt;
==Materiały==&lt;br /&gt;
#[[Pracownia_EEG 2/Wprowadzenie do Psychopy|Wprowadzenie do Psychopy]] &lt;br /&gt;
#[[Pracownia_EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu|Krótkie przypomnienie z anatomii i funkcji mózgu]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_spoczynkowe|EEG spoczynkowe, artefakty ]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_wlasności_EEG_spoczynkowego|Własności EEG spoczynkowego: funkcja autokorelacji i widmo]] &lt;br /&gt;
#[[Pracownia_EEG 2/Potencjały_wywołane|Potencjały wywołane]]&lt;br /&gt;
#[[Pracownia_EEG 2/SSVEP_1|SSVEP]]&lt;br /&gt;
#[[Pracownia_EEG 2/AR_1|Widmowa analiza parametryczna]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS_2|Wprowadzenie do metod czas-częstość]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS|Synchronizacja i desynchronizacja sygnału EEG związana z bodźcem]]&lt;br /&gt;
#[[Pracownia_EEG 2/Projekt|Projekt]]&lt;br /&gt;
&lt;br /&gt;
Autorzy: dr hab. Maciej Kamiński,&lt;br /&gt;
dr Rafał Kuś,&lt;br /&gt;
dr hab. Jarosław Żygierewicz&lt;br /&gt;
dr Anna Duszyk-Bogorodzka&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Zasady zaliczenia pracowni==&lt;br /&gt;
Materiał zajęć jest podzielony na bloki tematyczne. W każdym bloku studenci mają do wykonania zestaw ćwiczeń. &lt;br /&gt;
Zaliczenie bloku ma dwa elementy:&lt;br /&gt;
&lt;br /&gt;
* prezentacja - każda osoba z grupy przygotowuje prezentację dotyczącą jednego zagadnienia losowanego spośród występujących w danym bloku tematycznym. &lt;br /&gt;
&lt;br /&gt;
* raport - krótki opis wykonanego ćwiczenia przygotowany według załączonego wzorca. Każda osoba opisuje ćwiczenie, które wcześniej prezentowała. Termin złożenia raportu jest do tygodnia po prezentacji.&lt;br /&gt;
&lt;br /&gt;
=== Terminy prezentacji ===&lt;br /&gt;
Prezentacje z pierwszej części ćwiczeń odbędą się na zajęciach we wtorek 14.11.2023 i w środę 22.11.2023.&lt;br /&gt;
&lt;br /&gt;
Zagadnienia do omówienia:&lt;br /&gt;
&lt;br /&gt;
# Charakterystyka artefaktów w sygnale EEG.&lt;br /&gt;
# Funkcja autokowariancji i autokorelacji dla sygnałów z oczu otwartych i zamkniętych, omówienie różnic między nimi. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach.&lt;br /&gt;
# Korelacje wzajemne dla sygnałów z oczu otwartych i zamkniętych, omówienie różnic między nimi. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach.&lt;br /&gt;
# Omówienie statystyki służącej do oceny istotności korelacji, wyniki.&lt;br /&gt;
# Związek autokorelacji i korelacji wzajemnej z widmem; wyniki dla sygnałów w zakresie 0-40 Hz — amplituda i faza. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach na podstawie przesunięcia fazowego.&lt;br /&gt;
# Związek autokorelacji i korelacji wzajemnej z widmem; wyniki dla sygnałów w zakresie 8-12 Hz — amplituda i faza. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach na podstawie przesunięcia fazowego.&lt;br /&gt;
# Omówienie zadania 5. &lt;br /&gt;
&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Artefakty, funkcje kowariancji i korelacji własnej i wzajemnej, właściwości. Przykładowe wyniki dla danych z oczu otwartych i zamkniętych, filtrowanych i niefiltrowanych.&lt;br /&gt;
# Macierz korelacji wybranych kanałów EEG w różnych sytuacjach. Statystyka do oceny istotności wyników. Oszacowanie opóźnienia.&lt;br /&gt;
# Związek korelacji z widmem. Macierz gęstości widmowych wybranych kanałów EEG. Amplituda i faza. Porównanie z widmem Welcha. Oszacowanie opóźnienia z przesunięcia fazowego.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Prezentacje z drugiej części ćwiczeń odbędą się na zajęciach we wtorek 06.12.2022.&amp;lt;br&amp;gt;&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Sygnały symulowane — uśrednianie w modelu addytywnym i z fluktuacją latencji. Wpływ referencji na amplitudę P300&lt;br /&gt;
# Omówienie metod statystycznych (resamplingowej i analitycznej). Porównanie estymowania amplitudy P100 a istotność statystyczna.&lt;br /&gt;
# Sygnały symulowane — uśrednianie z resetem fazy. Wpływ filtrów. Usuwanie artefaktów ręcznie lub za pomocą progu.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Prezentacje z trzeciej części ćwiczeń odbędą się na zajęciach we wtorek 10.01.2023.&amp;lt;br&amp;gt;&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Omówienie trzech metod estymacji widma sygnałów SSVEP&lt;br /&gt;
# Zbieranie danych SSVEP. Krzywa odpowiedzi SSVEP w zależności od częstości&lt;br /&gt;
# Transformacja Hilberta. Zastosowanie do sygnałów rzeczywistych.&lt;br /&gt;
&lt;br /&gt;
Prezentacje z drugiej części ćwiczeń będą polegały na wybraniu do omówienia przez każdą osobę jednego tematu z części symulacyjnej i części eksperymentalnej. &lt;br /&gt;
&lt;br /&gt;
Zagadnienia do części symulacyjnej:&lt;br /&gt;
&lt;br /&gt;
# Uśrednianie w modelu addytywnym: sygnał + szum.&lt;br /&gt;
# Uśrednianie w modelu addytywnym: sygnał + szum + niezależna czynność rytmiczna.&lt;br /&gt;
# Uśrednianie w modelu z resetem fazy.&lt;br /&gt;
# Uśrednianie potencjału z fluktuacją latencji.&lt;br /&gt;
# Wpływ filtrów.&lt;br /&gt;
&lt;br /&gt;
Zagadnienia do części eksperymentalnej:&lt;br /&gt;
&lt;br /&gt;
# Zależność załamków potencjałów wzrokowych od intensywności bodźca.&lt;br /&gt;
# Zależność późnych załamków od uwagi.&lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania raportu===&lt;br /&gt;
Raport przygotowujemy w środowisku LaTex, korzystając z [https://drive.google.com/file/d/173TL7f5-VN83ijjJYPBaiOx96N6nokOb/view?usp=sharing podanego tutaj wzorca].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Wstęp=====&lt;br /&gt;
W tej sekcji należy krótko opisać czego dotyczą ćwiczenia w danym dziale.&lt;br /&gt;
W kolejnych sekcjach należy zaprezentować rozwiązania i wyniki otrzymane dla konkretnego zadania. &lt;br /&gt;
&lt;br /&gt;
Ocenie podlegają:&lt;br /&gt;
* kompletność prezentacji;&lt;br /&gt;
* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
&lt;br /&gt;
=====Zadanie 1=====&lt;br /&gt;
&lt;br /&gt;
======Cel zadania======&lt;br /&gt;
przypomnienie, co i po co było liczone;&lt;br /&gt;
&lt;br /&gt;
======Zestaw pomiarowy======&lt;br /&gt;
Jaki sprzęt i w jakiej konfiguracji został użyty?&lt;br /&gt;
======Przeprowadzone pomiary======&lt;br /&gt;
Parametry pomiarów: &lt;br /&gt;
*rejestrowane kanały, &lt;br /&gt;
* montaż, &lt;br /&gt;
* częstość próbkowania, &lt;br /&gt;
* zastosowane filtry.&lt;br /&gt;
&lt;br /&gt;
Jaki był paradygmat doświadczenia?&lt;br /&gt;
&lt;br /&gt;
======Obliczenia/Algorytm======&lt;br /&gt;
jeśli zadanie wymaga napisania programu, należy przedstawić zastosowany algorytm (w punktach lub w postaci schematu)&lt;br /&gt;
&lt;br /&gt;
======Wyniki======&lt;br /&gt;
Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
*na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
* interpretację wykresów.&lt;br /&gt;
&lt;br /&gt;
Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
&lt;br /&gt;
======Wnioski======&lt;br /&gt;
Co wynika z zaprezentowanych materiałów.&lt;br /&gt;
&lt;br /&gt;
=====Zadanie 2=====&lt;br /&gt;
&amp;lt;math&amp;gt;\vdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Udział autorów=====&lt;br /&gt;
Tu proszę napisać, który z autorów przyłożył się do którego elementu pracy (podlega to weryfikacji przez prowadzącego zajęcia). Ważnym elementem pracy,  poza występującymi bezpośrednio  w raporcie sekcjami, jest implementacja opisywanych metod. W końcowym rozliczeniu pracowni każdy student musi wykazać się istotnym wkładem do każdego z elementów:&lt;br /&gt;
* przeprowadzenia pomiarów&lt;br /&gt;
* implementacji metod obliczeniowych&lt;br /&gt;
* redakcji tekstu&lt;br /&gt;
&lt;br /&gt;
=====Bibliografia=====&lt;br /&gt;
[1] ....&lt;br /&gt;
&lt;br /&gt;
[2] ....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania prezentacji===&lt;br /&gt;
# Wyniki ćwiczeń przedstawiamy w postaci prezentacji komputerowej (OpenOffice, PowerPoint, LibreOffice, Acrobat, itp.); czas trwania &amp;amp;mdash; maksymalnie 15 minut.&lt;br /&gt;
# Należy uwzględnić wyniki uzyskane w ćwiczeniach wskazanych przez prowadzących.&amp;lt;!--wszystkich części ćwiczeń w danym dziale.&lt;br /&gt;
# Należy zadbać o prawidłową postać wykresów, w tym w szczególności:&lt;br /&gt;
#* obecność opisów osi (w miarę możliwości);&lt;br /&gt;
#* spójne zakresy osi i skalowanie wykresów;&lt;br /&gt;
#* właściwy dobór skali (tak, aby uwidocznić najważniejsze rzeczy);&lt;br /&gt;
#* obecność tytułów i innych podpisów ułatwiających zrozumienie prezentowanych treści.&lt;br /&gt;
# Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
#* przypomnienie co było liczone (i jak, jeśli trzeba);&lt;br /&gt;
#* na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
#* interpretację wykresów.&amp;lt;br&amp;gt;Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
# Ocenie podlegają:&lt;br /&gt;
#* kompletność prezentacji;&lt;br /&gt;
#* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
#* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
# Każdy z powyższych elementów prezentacji będzie oceniany w 10-punktowej skali. Punkty zebrane w ciągu semestru będą przekładać się na ocenę końcową.&lt;br /&gt;
# Wyniki dodatkowe, ponadprogramowe, są mile widziane i mogą skutkować lepszą oceną.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10841</id>
		<title>Pracownia EEG 2/Projekt</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10841"/>
		<updated>2024-09-24T12:53:02Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]]/ Projekt&lt;br /&gt;
&lt;br /&gt;
Państwa zadaniem jest wykonanie replikacji pracy: O'Connell i in.: Uncovering the Neural Signature of Lapsing Attention: Electrophysiological Signals Predict Errors up to 20 s before They Occur [[https://www.jneurosci.org/content/29/26/8604]]. &lt;br /&gt;
&lt;br /&gt;
Pracujemy w grupach 3 osobowych. &lt;br /&gt;
&lt;br /&gt;
Co należy zrobić: &lt;br /&gt;
&lt;br /&gt;
# zapoznać się z załączonym artykułem&lt;br /&gt;
# wypisać hipotezy/pytania badawcze stawiane przez autorów&lt;br /&gt;
# dokładnie przeczytać rozdział 'Methods', rozpisać sobie zastosowaną procedurę oraz wskaźniki obliczane z sygnału EEG&lt;br /&gt;
# zaprogramować procedurę w programie Psychopy &lt;br /&gt;
# Przetestować procedurę w programie SVAROG (ze sztucznym sygnałem), wczytać te dane i sprawdzić, czy zgadzają się tagi, liczba prób, długości prób itd. &lt;br /&gt;
# Wykonać rejestrację na 4 osobach (mogą być z grupy oraz zaproszone z zewnątrz) &lt;br /&gt;
# Przeanalizować zebrane dane wg opisu z artykułu&lt;br /&gt;
# Przetestować statystycznie hipotezy stawiane przez autorów &lt;br /&gt;
# dla chętnych: można dodać nowe wskaźniki, które poznaliśmy na zajęciach, ale z fizjologicznym uzasadnieniem. &lt;br /&gt;
#przygotować krótką prezentację (do 15 min) projektu z naciskiem na uzyskane wyniki.&lt;br /&gt;
&lt;br /&gt;
Kryteria oceny: &lt;br /&gt;
#  poprawność procedury badawczej 0-2 punktów &lt;br /&gt;
#  poprawność analizy poszczególnych wskaźników 0-8 punktów &lt;br /&gt;
#  poprawność analiz statystycznych 0-3 punktów&lt;br /&gt;
#  jakość prezentacji (przejrzystość, kompletność przekazu, podpisy i wygląd wykresów, wnioski i konkluzje) 0-5 punktów &lt;br /&gt;
#  zastosowanie dodatkowych miar 0-2&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10840</id>
		<title>Pracownia EEG 2/Projekt</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10840"/>
		<updated>2024-09-24T12:45:34Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Projekt&lt;br /&gt;
&lt;br /&gt;
Państwa zadaniem jest wykonanie replikacji pracy: O'Connell i in.: Uncovering the Neural Signature of Lapsing Attention: Electrophysiological Signals Predict Errors up to 20 s before They Occur [[https://www.jneurosci.org/content/29/26/8604]]. &lt;br /&gt;
&lt;br /&gt;
Pracujemy w grupach 3 osobowych. &lt;br /&gt;
&lt;br /&gt;
Co należy zrobić: &lt;br /&gt;
&lt;br /&gt;
# zapoznać się z załączonym artykułem&lt;br /&gt;
# wypisać hipotezy/pytania badawcze stawiane przez autorów&lt;br /&gt;
# dokładnie przeczytać rozdział 'Methods', rozpisać sobie zastosowaną procedurę oraz wskaźniki obliczane z sygnału EEG&lt;br /&gt;
# zaprogramować procedurę w programie Psychopy &lt;br /&gt;
# Przetestować procedurę w programie SVAROG (ze sztucznym sygnałem), wczytać te dane i sprawdzić, czy zgadzają się tagi, liczba prób, długości prób itd. &lt;br /&gt;
# Wykonać rejestrację na 4 osobach (mogą być z grupy oraz zaproszone z zewnątrz) &lt;br /&gt;
# Przeanalizować zebrane dane wg opisu z artykułu&lt;br /&gt;
# Przetestować statystycznie hipotezy stawiane przez autorów &lt;br /&gt;
# dla chętnych: można dodać nowe wskaźniki, które poznaliśmy na zajęciach, ale z fizjologicznym uzasadnieniem. &lt;br /&gt;
#przygotować krótką prezentację (do 15 min) projektu z naciskiem na uzyskane wyniki.&lt;br /&gt;
&lt;br /&gt;
Kryteria oceny: &lt;br /&gt;
#  poprawność procedury badawczej 0-2 punktów &lt;br /&gt;
#  poprawność analizy poszczególnych wskaźników 0-8 punktów &lt;br /&gt;
#  poprawność analiz statystycznych 0-3 punktów&lt;br /&gt;
#  jakość prezentacji (przejrzystość, kompletność przekazu, podpisy i wygląd wykresów, wnioski i konkluzje) 0-5 punktów &lt;br /&gt;
#  zastosowanie dodatkowych miar 0-2&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10839</id>
		<title>Pracownia EEG 2/Projekt</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10839"/>
		<updated>2024-09-24T12:40:42Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Projekt&lt;br /&gt;
&lt;br /&gt;
Państwa zadaniem jest wykonanie replikacji pracy: O'Connell i in.: Uncovering the Neural Signature of Lapsing Attention: Electrophysiological Signals Predict Errors up to 20 s before They Occur [[https://www.jneurosci.org/content/29/26/8604]]. &lt;br /&gt;
&lt;br /&gt;
Pracujemy w grupach 3 osobowych. &lt;br /&gt;
&lt;br /&gt;
Co należy zrobić: &lt;br /&gt;
&lt;br /&gt;
# zapoznać się z załączonym artykułem&lt;br /&gt;
# wypisać hipotezy/pytania badawcze stawiane przez autorów&lt;br /&gt;
# dokładnie przeczytać rozdział 'Methods', rozpisać sobie zastosowaną procedurę oraz wskaźniki obliczane z sygnału EEG&lt;br /&gt;
# zaprogramować procedurę w programie Psychopy &lt;br /&gt;
# Przetestować procedurę w programie SVAROG (ze sztucznym sygnałem), wczytać te dane i sprawdzić, czy zgadzają się tagi, liczba prób, długości prób itd. &lt;br /&gt;
# Wykonać rejestrację na 4 osobach (mogą być z grupy oraz zaproszone z zewnątrz) &lt;br /&gt;
# Przeanalizować zebrane dane wg opisu z artykułu&lt;br /&gt;
# Przetestować statystycznie hipotezy stawiane przez autorów &lt;br /&gt;
# dla chętnych: można dodać nowe wskaźniki, które poznaliśmy na zajęciach, ale z fizjologicznym uzasadnieniem. &lt;br /&gt;
#przygotować krótką prezentację (do 15 min) projektu z naciskiem na uzyskane wyniki.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10838</id>
		<title>Pracownia EEG 2/Projekt</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10838"/>
		<updated>2024-09-24T12:31:12Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Projekt&lt;br /&gt;
&lt;br /&gt;
Państwa zadaniem jest wykonanie replikacji pracy: O'Connell i in.: Uncovering the Neural Signature of Lapsing Attention: Electrophysiological Signals Predict Errors up to 20 s before They Occur [[https://www.jneurosci.org/content/29/26/8604]].&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10837</id>
		<title>Pracownia EEG 2/Projekt</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Projekt&amp;diff=10837"/>
		<updated>2024-09-24T12:30:15Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Utworzono nową stronę &amp;quot;[[]Pracownia EEG 2|Pracownia EEG 2/Projekt]  Państwa zadaniem jest wykonanie replikacji pracy: O'Connell i in.: Uncovering the Neural Signature of Lapsing Attention: El...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[]Pracownia EEG 2|Pracownia EEG 2/Projekt]&lt;br /&gt;
&lt;br /&gt;
Państwa zadaniem jest wykonanie replikacji pracy: O'Connell i in.: Uncovering the Neural Signature of Lapsing Attention: Electrophysiological Signals Predict Errors up to 20 s before They Occur [[https://www.jneurosci.org/content/29/26/8604]].&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10836</id>
		<title>Pracownia EEG 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2&amp;diff=10836"/>
		<updated>2024-09-24T12:22:49Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Pracownia EEG 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Pracownia EEG 2=&lt;br /&gt;
&lt;br /&gt;
==Terminy==&lt;br /&gt;
Zajęcia odbywają się w sali 4.59 w budynku Pasteura 5. &lt;br /&gt;
&lt;br /&gt;
* we wtorki w godz. 10:30 - 13:45&lt;br /&gt;
* w środy w godz. 13:15 - 16:30&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; ze względu na logiczny poniedziałek w dniu 02.10.2024 zajęcia z Pracowni EEG się nie odbywają. &lt;br /&gt;
&lt;br /&gt;
==Materiały==&lt;br /&gt;
#[[Pracownia_EEG 2/Wprowadzenie do Psychopy|Wprowadzenie do Psychopy]] &lt;br /&gt;
#[[Pracownia_EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu|Krótkie przypomnienie z anatomii i funkcji mózgu]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_spoczynkowe|EEG spoczynkowe, artefakty ]]&lt;br /&gt;
#[[Pracownia_EEG 2/EEG_wlasności_EEG_spoczynkowego|Własności EEG spoczynkowego: funkcja autokorelacji i widmo]] &lt;br /&gt;
#[[Pracownia_EEG 2/Potencjały_wywołane|Potencjały wywołane]]&lt;br /&gt;
#[[Pracownia_EEG 2/SSVEP_1|SSVEP]]&lt;br /&gt;
#[[Pracownia_EEG 2/AR_1|Widmowa analiza parametryczna]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS_2|Wprowadzenie do metod czas-częstość]]&lt;br /&gt;
#[[Pracownia_EEG 2/ERDS|Synchronizacja i desynchronizacja sygnału EEG związana z bodźcem]]&lt;br /&gt;
#[[Pracownia_EEG 2/Projekt]]&lt;br /&gt;
&lt;br /&gt;
Autorzy: dr hab. Maciej Kamiński,&lt;br /&gt;
dr Rafał Kuś,&lt;br /&gt;
dr hab. Jarosław Żygierewicz&lt;br /&gt;
dr Anna Duszyk-Bogorodzka&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==Zasady zaliczenia pracowni==&lt;br /&gt;
Materiał zajęć jest podzielony na bloki tematyczne. W każdym bloku studenci mają do wykonania zestaw ćwiczeń. &lt;br /&gt;
Zaliczenie bloku ma dwa elementy:&lt;br /&gt;
&lt;br /&gt;
* prezentacja - każda osoba z grupy przygotowuje prezentację dotyczącą jednego zagadnienia losowanego spośród występujących w danym bloku tematycznym. &lt;br /&gt;
&lt;br /&gt;
* raport - krótki opis wykonanego ćwiczenia przygotowany według załączonego wzorca. Każda osoba opisuje ćwiczenie, które wcześniej prezentowała. Termin złożenia raportu jest do tygodnia po prezentacji.&lt;br /&gt;
&lt;br /&gt;
=== Terminy prezentacji ===&lt;br /&gt;
Prezentacje z pierwszej części ćwiczeń odbędą się na zajęciach we wtorek 14.11.2023 i w środę 22.11.2023.&lt;br /&gt;
&lt;br /&gt;
Zagadnienia do omówienia:&lt;br /&gt;
&lt;br /&gt;
# Charakterystyka artefaktów w sygnale EEG.&lt;br /&gt;
# Funkcja autokowariancji i autokorelacji dla sygnałów z oczu otwartych i zamkniętych, omówienie różnic między nimi. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach.&lt;br /&gt;
# Korelacje wzajemne dla sygnałów z oczu otwartych i zamkniętych, omówienie różnic między nimi. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach.&lt;br /&gt;
# Omówienie statystyki służącej do oceny istotności korelacji, wyniki.&lt;br /&gt;
# Związek autokorelacji i korelacji wzajemnej z widmem; wyniki dla sygnałów w zakresie 0-40 Hz — amplituda i faza. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach na podstawie przesunięcia fazowego.&lt;br /&gt;
# Związek autokorelacji i korelacji wzajemnej z widmem; wyniki dla sygnałów w zakresie 8-12 Hz — amplituda i faza. Oszacowanie możliwego opóźnienia rytmu alfa w mierzonych sygnałach na podstawie przesunięcia fazowego.&lt;br /&gt;
# Omówienie zadania 5. &lt;br /&gt;
&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Artefakty, funkcje kowariancji i korelacji własnej i wzajemnej, właściwości. Przykładowe wyniki dla danych z oczu otwartych i zamkniętych, filtrowanych i niefiltrowanych.&lt;br /&gt;
# Macierz korelacji wybranych kanałów EEG w różnych sytuacjach. Statystyka do oceny istotności wyników. Oszacowanie opóźnienia.&lt;br /&gt;
# Związek korelacji z widmem. Macierz gęstości widmowych wybranych kanałów EEG. Amplituda i faza. Porównanie z widmem Welcha. Oszacowanie opóźnienia z przesunięcia fazowego.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Prezentacje z drugiej części ćwiczeń odbędą się na zajęciach we wtorek 06.12.2022.&amp;lt;br&amp;gt;&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Sygnały symulowane — uśrednianie w modelu addytywnym i z fluktuacją latencji. Wpływ referencji na amplitudę P300&lt;br /&gt;
# Omówienie metod statystycznych (resamplingowej i analitycznej). Porównanie estymowania amplitudy P100 a istotność statystyczna.&lt;br /&gt;
# Sygnały symulowane — uśrednianie z resetem fazy. Wpływ filtrów. Usuwanie artefaktów ręcznie lub za pomocą progu.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Prezentacje z trzeciej części ćwiczeń odbędą się na zajęciach we wtorek 10.01.2023.&amp;lt;br&amp;gt;&lt;br /&gt;
Tematy:&amp;lt;br&amp;gt;&lt;br /&gt;
# Omówienie trzech metod estymacji widma sygnałów SSVEP&lt;br /&gt;
# Zbieranie danych SSVEP. Krzywa odpowiedzi SSVEP w zależności od częstości&lt;br /&gt;
# Transformacja Hilberta. Zastosowanie do sygnałów rzeczywistych.&lt;br /&gt;
&lt;br /&gt;
Prezentacje z drugiej części ćwiczeń będą polegały na wybraniu do omówienia przez każdą osobę jednego tematu z części symulacyjnej i części eksperymentalnej. &lt;br /&gt;
&lt;br /&gt;
Zagadnienia do części symulacyjnej:&lt;br /&gt;
&lt;br /&gt;
# Uśrednianie w modelu addytywnym: sygnał + szum.&lt;br /&gt;
# Uśrednianie w modelu addytywnym: sygnał + szum + niezależna czynność rytmiczna.&lt;br /&gt;
# Uśrednianie w modelu z resetem fazy.&lt;br /&gt;
# Uśrednianie potencjału z fluktuacją latencji.&lt;br /&gt;
# Wpływ filtrów.&lt;br /&gt;
&lt;br /&gt;
Zagadnienia do części eksperymentalnej:&lt;br /&gt;
&lt;br /&gt;
# Zależność załamków potencjałów wzrokowych od intensywności bodźca.&lt;br /&gt;
# Zależność późnych załamków od uwagi.&lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania raportu===&lt;br /&gt;
Raport przygotowujemy w środowisku LaTex, korzystając z [https://drive.google.com/file/d/173TL7f5-VN83ijjJYPBaiOx96N6nokOb/view?usp=sharing podanego tutaj wzorca].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====Wstęp=====&lt;br /&gt;
W tej sekcji należy krótko opisać czego dotyczą ćwiczenia w danym dziale.&lt;br /&gt;
W kolejnych sekcjach należy zaprezentować rozwiązania i wyniki otrzymane dla konkretnego zadania. &lt;br /&gt;
&lt;br /&gt;
Ocenie podlegają:&lt;br /&gt;
* kompletność prezentacji;&lt;br /&gt;
* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
&lt;br /&gt;
=====Zadanie 1=====&lt;br /&gt;
&lt;br /&gt;
======Cel zadania======&lt;br /&gt;
przypomnienie, co i po co było liczone;&lt;br /&gt;
&lt;br /&gt;
======Zestaw pomiarowy======&lt;br /&gt;
Jaki sprzęt i w jakiej konfiguracji został użyty?&lt;br /&gt;
======Przeprowadzone pomiary======&lt;br /&gt;
Parametry pomiarów: &lt;br /&gt;
*rejestrowane kanały, &lt;br /&gt;
* montaż, &lt;br /&gt;
* częstość próbkowania, &lt;br /&gt;
* zastosowane filtry.&lt;br /&gt;
&lt;br /&gt;
Jaki był paradygmat doświadczenia?&lt;br /&gt;
&lt;br /&gt;
======Obliczenia/Algorytm======&lt;br /&gt;
jeśli zadanie wymaga napisania programu, należy przedstawić zastosowany algorytm (w punktach lub w postaci schematu)&lt;br /&gt;
&lt;br /&gt;
======Wyniki======&lt;br /&gt;
Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
*na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
* interpretację wykresów.&lt;br /&gt;
&lt;br /&gt;
Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
&lt;br /&gt;
======Wnioski======&lt;br /&gt;
Co wynika z zaprezentowanych materiałów.&lt;br /&gt;
&lt;br /&gt;
=====Zadanie 2=====&lt;br /&gt;
&amp;lt;math&amp;gt;\vdots&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Udział autorów=====&lt;br /&gt;
Tu proszę napisać, który z autorów przyłożył się do którego elementu pracy (podlega to weryfikacji przez prowadzącego zajęcia). Ważnym elementem pracy,  poza występującymi bezpośrednio  w raporcie sekcjami, jest implementacja opisywanych metod. W końcowym rozliczeniu pracowni każdy student musi wykazać się istotnym wkładem do każdego z elementów:&lt;br /&gt;
* przeprowadzenia pomiarów&lt;br /&gt;
* implementacji metod obliczeniowych&lt;br /&gt;
* redakcji tekstu&lt;br /&gt;
&lt;br /&gt;
=====Bibliografia=====&lt;br /&gt;
[1] ....&lt;br /&gt;
&lt;br /&gt;
[2] ....&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Wskazówki dotyczące przygotowania prezentacji===&lt;br /&gt;
# Wyniki ćwiczeń przedstawiamy w postaci prezentacji komputerowej (OpenOffice, PowerPoint, LibreOffice, Acrobat, itp.); czas trwania &amp;amp;mdash; maksymalnie 15 minut.&lt;br /&gt;
# Należy uwzględnić wyniki uzyskane w ćwiczeniach wskazanych przez prowadzących.&amp;lt;!--wszystkich części ćwiczeń w danym dziale.&lt;br /&gt;
# Należy zadbać o prawidłową postać wykresów, w tym w szczególności:&lt;br /&gt;
#* obecność opisów osi (w miarę możliwości);&lt;br /&gt;
#* spójne zakresy osi i skalowanie wykresów;&lt;br /&gt;
#* właściwy dobór skali (tak, aby uwidocznić najważniejsze rzeczy);&lt;br /&gt;
#* obecność tytułów i innych podpisów ułatwiających zrozumienie prezentowanych treści.&lt;br /&gt;
# Prezentacja wyników powinna uwzględniać:&lt;br /&gt;
#* przypomnienie co było liczone (i jak, jeśli trzeba);&lt;br /&gt;
#* na co należy zwrócić uwagę w prezentowanych wynikach;&lt;br /&gt;
#* interpretację wykresów.&amp;lt;br&amp;gt;Część z tych informacji można dołożyć do rysunków w postaci krótkich wyjaśnień.&lt;br /&gt;
# Ocenie podlegają:&lt;br /&gt;
#* kompletność prezentacji;&lt;br /&gt;
#* czytelność prezentowanych wielkości i zjawisk;&lt;br /&gt;
#* merytoryczna poprawność wypowiedzi.&lt;br /&gt;
# Każdy z powyższych elementów prezentacji będzie oceniany w 10-punktowej skali. Punkty zebrane w ciągu semestru będą przekładać się na ocenę końcową.&lt;br /&gt;
# Wyniki dodatkowe, ponadprogramowe, są mile widziane i mogą skutkować lepszą oceną.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/EEG_wlasno%C5%9Bci_EEG_spoczynkowego&amp;diff=10835</id>
		<title>Pracownia EEG 2/EEG wlasności EEG spoczynkowego</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/EEG_wlasno%C5%9Bci_EEG_spoczynkowego&amp;diff=10835"/>
		<updated>2024-09-24T12:20:53Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Zadanie 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Własności EEG spoczynkowego: funkcja autokorelacji i widmo&lt;br /&gt;
&lt;br /&gt;
=Estymacja funkcji autokowariancji, autokorelacji i koherencji sygnału.=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Z funkcjami tymi spotkaliśmy się już na zajęciach z [[Ćwiczenia_4|analizy sygnałów]].&lt;br /&gt;
&lt;br /&gt;
Funkcja autokowariancji sygnału charakteryzuje liniową zależność wartości tego sygnału w danej określonej chwili czasu od wartości (tego samego sygnału) w innej chwili.&lt;br /&gt;
W przypadku [[Nieparametryczne_widmo_mocy#Sygna.C5.82y_stochastyczne  | stacjonarnych procesów stochastycznych]], przebieg tej funkcji nie zależy od czasu. &lt;br /&gt;
Oznacza to, że obliczając funkcję autokorelacji sygnału pomiędzy chwilą czasu &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;x(t+\tau )&amp;lt;/math&amp;gt; otrzymamy tę samą wartość, jak dla przypadku obliczania funkcji autokorelacji pomiędzy momentami &amp;lt;math&amp;gt;x(t + T)&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;x(t + T+\tau )&amp;lt;/math&amp;gt;, gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; to dowolny przedział czasu. Innymi słowy, funkcja autokorelacji procesu stacjonarnego zależy tylko od odstępu czasu pomiędzy próbkami &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt;, dla którego jest wyznaczana, a nie od konkretnej chwili czasu. Odrębną klasę sygnałów stanowią procesy niestacjonarne, w przypadku których funkcja autokorelacji będzie zależeć od czasu &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; w którym jest obliczana. Estymator funkcji autokowariancji uzyskuje się poprzez obliczanie iloczynów wartości sygnału &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; w chwilach czasu &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; czyli &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt; i wartości sygnału &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; w chwili czasu ''t''+&amp;amp;tau; czyli &amp;lt;math&amp;gt;x(t+\tau)&amp;lt;/math&amp;gt; i uśredniając wartości iloczynów po czasie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid79&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma (\tau) = \mathrm{cov}(x(t),x(t-\tau ))=\mathrm{E}[(x(t)-\mu )(x(t-\tau )-\mu )]&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(1)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid80&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu = \mathrm{E}[x(t)]&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(2)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W przypadku sygnałów ciągłych estymatę tę można zapisać w poniższy sposób:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid81&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma (\tau ) = \frac{1}{T}\int _0^{T}(x(t)-\mu )(x(t-\tau )-\mu )dt&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(3)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
natomiast dla sygnałów dyskretnych jako:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid82&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma (k) = \frac{1}{N-1}\sum _{i=1}^{N-|k|}(x(i+k)-x_s)(x(i)-x_s)&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(4)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid83&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_s = \frac{\sum _{i=1}^{N}x(i)}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(5)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcja autokowariancji może osiągać dowolne wartości, dlatego aby można było porównać przebieg tej funkcji np. pomiędzy dwoma sygnałami, wprowadzono wersję znormalizowaną tej funkcji &amp;amp;mdash; ''funkcję autokorelacji''. Normalizacja ta wygląda następująco:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid84&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\rho (k) = \frac{\gamma (\tau )}{\sigma^2}&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(6)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid85&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma ^2 = \mathrm{E}[(x(t)-\mu )^2]&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(7)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wariancję sygnału (&amp;lt;math&amp;gt;\gamma (0)=\sigma ^2&amp;lt;/math&amp;gt;) można wyrazić przez funkcję autokowariancji dla przesunięcia &amp;lt;math&amp;gt;\tau =0&amp;lt;/math&amp;gt;.  Wynika z tego, że funkcja korelacji przyjmuje wartości z zakresu [&amp;amp;minus;1,&amp;amp;nbsp;1]. Ostatecznie estymator funkcji autokorelacji można zapisać jak poniżej:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid86&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\rho(k) = \frac{\gamma (k)}{\gamma (0)}&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(8)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcję autokorelacji estymuje się w celu określenia, w jakim stopniu wartości sygnału w danej chwili czasu wpływają na wartości sygnału w kolejnych chwilach czasu. Ma to kluczowe znaczenie przy rozpoznawaniu rodzaju procesów fizycznych odpowiedzialnego za generowanie sygnału. Funkcja ta zawsze mam maksimum dla przesunięcia &amp;lt;math&amp;gt;\tau =0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cechą charakterystyczną funkcji autokorelacji jest to, iż w przypadku sygnałów harmonicznych, przebieg funkcji ma charakter okresowy, z okresem takim samym jak okres badanego sygnału. W przypadku szumu, funkcja autokorelacji ma kształt funkcji delta Diraca.&lt;br /&gt;
&lt;br /&gt;
==Polecenie:==&lt;br /&gt;
Zaimplementuj funkcję do obliczania funkcji korelacji zgodnie ze wzorem (4). Funkcja powinna przyjmować dwa wektory i maksymalne przesunięcie wzajemne tych wektorów, natomiast zwracać powinna wektor zawierający funkcję autokorelacji. Wywołanie przykładowe:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
print koreluj(a,a,2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
powinno dać wynik:&lt;br /&gt;
 [-0.5  0.   1.   0.  -0.5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{hidden begin|title=Przykładowe rozwiązanie:}}--&amp;gt;&lt;br /&gt;
 &amp;lt;!-- &amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
def koreluj_pol(x,y,max_tau):&lt;br /&gt;
    x = x - np.mean(x)&lt;br /&gt;
    y = y - np.mean(y)&lt;br /&gt;
    N= len(x)&lt;br /&gt;
    cor = np.zeros(max_tau+1)&lt;br /&gt;
    cor[0] = np.sum(x[:]*y[:]) &lt;br /&gt;
    for i in range(1,max_tau+1):&lt;br /&gt;
        cor[i] = np.sum(x[i:]*y[:-i])&lt;br /&gt;
        &lt;br /&gt;
    cor = cor /(N-1)&lt;br /&gt;
    return cor&lt;br /&gt;
&lt;br /&gt;
def koreluj(x,y,max_tau):&lt;br /&gt;
    cor = np.zeros(2*max_tau+1)    &lt;br /&gt;
    cor[max_tau:] = koreluj_pol(x,y,max_tau)&lt;br /&gt;
    tmp = koreluj_pol(y,x,max_tau)&lt;br /&gt;
    cor[:max_tau+1] = tmp[-1::-1]&lt;br /&gt;
    return cor    &lt;br /&gt;
    &lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
for i in range(3):&lt;br /&gt;
    print koreluj(a,a,i)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
b = np.array([-1,-2,-3])&lt;br /&gt;
&lt;br /&gt;
for i in range(3):&lt;br /&gt;
    print koreluj(a,b,i)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1: Pomiar sygnału EEG ==&lt;br /&gt;
&lt;br /&gt;
Zarejestruj 10 minut sygnału EEG, w trakcie których badana osoba będzie siedziała z otwartymi oczami oraz kolejne 10 minut w stanie czuwania z zamkniętymi oczami. Rejestrację należy wykonać na pełnym czepku 10-20 z częstością próbkowania 128 Hz. &lt;br /&gt;
&lt;br /&gt;
==Zadanie 2:  Funkcje autokowariancji i autokorelacji==&lt;br /&gt;
W tym zadaniu posłużymy się sygnałami zarejestrowanymi w punkcie 3. poprzedniego ćwiczenia. Zaobserwuj, na którym kanale rytm alfa osiąga najwyższą wartość. Następnie zaimplementuj w Pythonie następujące kroki:&lt;br /&gt;
&lt;br /&gt;
#	Wczytaj dane z wybranego kanału.&lt;br /&gt;
#	Oblicz funkcję autokorelacji dla sygnału zarejestrowanego w warunkach, gdy osoba badana siedziała z otwartymi oczami. Narysuj autokorelogram, to jest wykres wartości funkcji autokorelacji względem przesunięcia &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt;. Oś &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt; wyskaluj w sekundach.&lt;br /&gt;
#	Powtórz krok 2, tym razem dla sygnału zebranego w warunkach czuwania z zamkniętymi oczami.&lt;br /&gt;
#	Porównaj autokorelogramy.&lt;br /&gt;
&lt;br /&gt;
=Związek autokorelacji z widmem sygnału=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Zgodnie z twierdzeniem Chinczyna, z którym zapoznaliśmy się na wykładzie z [[Twierdzenie_Wienera-Chinczyna|Analizy Sygnałów]], widmową gęstość mocy sygnału można policzyć jako transformatę Fouriera funkcji autokowariancji:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid93&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S(f) = \int _{-\infty }^{\infty }\gamma (\tau )e^{-2\pi i f \tau}d\tau &amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(9)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	&amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; &amp;amp;mdash; częstość&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	&amp;lt;math&amp;gt;S(f)&amp;lt;/math&amp;gt; &amp;amp;mdash;  gęstość widmowa mocy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Poniższy kod ilustruje to twierdzenie:&lt;br /&gt;
&amp;lt;source lang = py&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from __future__ import division&lt;br /&gt;
import pylab as py&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy.fft import rfft,fft,fftfreq,fftshift&lt;br /&gt;
 &lt;br /&gt;
def widmo_mocy(s, Fs):&lt;br /&gt;
    '''Funkcja licąca widmo mocy metodą periodogramu,&lt;br /&gt;
	pobiera sygnał i częstość próbkowania&lt;br /&gt;
	zwraca widmo mocy i oś częstości&lt;br /&gt;
    '''&lt;br /&gt;
    S = fft(s)/np.sqrt(len(s))&lt;br /&gt;
    S_moc = S*S.conj()&lt;br /&gt;
    S_moc = S_moc.real&lt;br /&gt;
    F = fftfreq(len(s), 1/Fs)&lt;br /&gt;
    return (fftshift(S_moc),fftshift(F))&lt;br /&gt;
 &lt;br /&gt;
def sin(f = 1, T = 1, Fs = 128, phi =0 ):&lt;br /&gt;
    '''sin o zadanej częstości (w Hz), długości, fazie i częstości próbkowania&lt;br /&gt;
    Domyślnie wytwarzany jest sygnał reprezentujący &lt;br /&gt;
    1 sekundę sinusa o częstości 1Hz i zerowej fazie próbkowanego 128 Hz&lt;br /&gt;
    '''&lt;br /&gt;
    dt = 1.0/Fs&lt;br /&gt;
    t = np.arange(0,T,dt)&lt;br /&gt;
    s = np.sin(2*np.pi*f*t + phi)&lt;br /&gt;
    return (s,t)&lt;br /&gt;
 &lt;br /&gt;
# sygnał próbny będzie próbkowany z częstością FS&lt;br /&gt;
FS = 100.0&lt;br /&gt;
# sygnałem próbnym będzie sinusoida o częstości f &lt;br /&gt;
(s,t) = sin(f=10.5,Fs=FS)&lt;br /&gt;
# obliczamy moc i energię sygnału w dziedzinie czasu&lt;br /&gt;
moc_w_czasie = s**2&lt;br /&gt;
energia_w_czasie = np.sum(moc_w_czasie)&lt;br /&gt;
print 'energia w czasie: ', energia_w_czasie&lt;br /&gt;
 &lt;br /&gt;
# obliczamy widmo mocy sygnału i jego energię estymowaną w dziedzinie częstości&lt;br /&gt;
(moc_w_czestosci, F) = widmo_mocy(s, Fs=FS)&lt;br /&gt;
energia_w_czestosci = np.sum(moc_w_czestosci)&lt;br /&gt;
print 'energia w czestosci: ', energia_w_czestosci&lt;br /&gt;
 &lt;br /&gt;
# estymujemy funkcję autokorelacji sygnału&lt;br /&gt;
ak = 1./(2*len(s)-1)*np.correlate(s,s,'full')&lt;br /&gt;
&lt;br /&gt;
# estymujemy widmo mocy i energię sygnału z twierdzenia Chinczyna korzystając z funkcji fft:&lt;br /&gt;
moc_chi = np.abs(fft(ak))&lt;br /&gt;
energia_chin = sum(moc_chi)&lt;br /&gt;
print 'energia z tw. Chinczyna przez fft: ', energia_chin&lt;br /&gt;
 &lt;br /&gt;
# estymujemy widmo mocy i energię sygnału z twierdzenia Chinczyna korzystając z jawnej postaci transformaty Fouriera:&lt;br /&gt;
FF = np.linspace(-FS/2,FS/2,1000)&lt;br /&gt;
M = np.zeros(len(FF),dtype='complex')&lt;br /&gt;
 &lt;br /&gt;
for i,f in enumerate( FF):&lt;br /&gt;
    for tau in range(len(ak)):&lt;br /&gt;
        M[i] += ak[tau]*np.exp(2*np.pi*1j*f*(len(ak)-tau)/FS) &lt;br /&gt;
M = np.abs(M)&lt;br /&gt;
energia_chin_sum = np.sum(M)* (len(ak)/len(FF))&lt;br /&gt;
print 'energia z tw. Chinczyna przez sumowanie: ', energia_chin_sum&lt;br /&gt;
&lt;br /&gt;
# Rysunki&lt;br /&gt;
py.figure(1)&lt;br /&gt;
py.subplot(3,1,1)&lt;br /&gt;
py.plot(t,s)&lt;br /&gt;
py.title(u'Sygnal')&lt;br /&gt;
py.subplot(3,1,2)&lt;br /&gt;
py.plot(t,moc_w_czasie)&lt;br /&gt;
py.title(u'moc w czasie')&lt;br /&gt;
py.subplot(3,1,3)&lt;br /&gt;
py.plot(F,moc_w_czestosci)&lt;br /&gt;
py.title(u'moc w czestosci')&lt;br /&gt;
 &lt;br /&gt;
py.figure(2)&lt;br /&gt;
py.subplot(3,1,1)&lt;br /&gt;
py.title('f. autokowariancji')&lt;br /&gt;
py.plot(np.arange(-len(ak)/2,len(ak)/2,1)/FS ,ak)&lt;br /&gt;
py.subplot(3,1,2)&lt;br /&gt;
py.plot(fftshift(fftfreq(len(moc_chi),1./FS)),fftshift(moc_chi))&lt;br /&gt;
py.title('widmo mocy z Tw. Chinczyna przez fft')&lt;br /&gt;
py.subplot(3,1,3)&lt;br /&gt;
py.plot(FF,M)&lt;br /&gt;
py.title('widmo mocy z Tw. Chinczyna przez sumowanie')&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W wyniku powinniśmy zobaczyć w terminalu:&lt;br /&gt;
 energia w czasie:  50.0&lt;br /&gt;
 energia w czestosci:  50.0&lt;br /&gt;
 energia z tw. Chinczyna przez fft:  50.0&lt;br /&gt;
 energia z tw. Chinczyna przez sumowanie:  49.9501172217&lt;br /&gt;
&lt;br /&gt;
oraz powinny pojawić się rysunki:&lt;br /&gt;
[[Plik:Fig_chinczyn1.png|thumb 200 px|center]]&lt;br /&gt;
[[Plik:Fig_chinczyn2.png|thumb 200 px|center]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Polecenie ==&lt;br /&gt;
Zaimplementuj funkcję obliczającą transformację Fouriera dyskretyzując wzór (9) dla zadanego wektora częstości &amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt; i zadanej częstości próbkowania sygnału (tutaj: 10).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Wywołanie przykładowe:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
t= np.arange(0,1,0.1)&lt;br /&gt;
x = np.sin(2*np.pi*2*t)&lt;br /&gt;
f = np.arange(-5,5,1)&lt;br /&gt;
X,f = fourier(x,f,10.0)&lt;br /&gt;
print X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natomiast wywołanie:&lt;br /&gt;
&amp;lt;source lang ='python'&amp;gt;&lt;br /&gt;
t= np.arange(0,1,0.1)&lt;br /&gt;
x = np.sin(2*np.pi*2*t)&lt;br /&gt;
f = np.arange(-5,5,0.01)&lt;br /&gt;
X = fourier(x,f,10.0)&lt;br /&gt;
py.plot(f,np.abs(X))&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Powinno wytworzyć rysunek:&lt;br /&gt;
&lt;br /&gt;
[[Plik:Fourier_test.png]] &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def koreluj_pol(x,y,max_tau):&lt;br /&gt;
    x = x - np.mean(x)&lt;br /&gt;
    y = y - np.mean(y)&lt;br /&gt;
    N= len(x)&lt;br /&gt;
    cor = np.zeros(max_tau+1)&lt;br /&gt;
    cor[0] = np.sum(x[:]*y[:]) &lt;br /&gt;
    for i in range(1,max_tau+1):&lt;br /&gt;
        cor[i] = np.sum(x[i:]*y[:-i])&lt;br /&gt;
        &lt;br /&gt;
    cor = cor /(N)&lt;br /&gt;
    return cor&lt;br /&gt;
&lt;br /&gt;
def koreluj(x,y,max_tau):&lt;br /&gt;
    cor = np.zeros(2*max_tau+1)    &lt;br /&gt;
    cor[max_tau:] = koreluj_pol(x,y,max_tau)&lt;br /&gt;
    tmp = koreluj_pol(y,x,max_tau)&lt;br /&gt;
    cor[:max_tau+1] = tmp[-1::-1]&lt;br /&gt;
    return cor  &lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def fourier_chin(x, FF, FS):&lt;br /&gt;
    ak = koreluj(x,x,len(x)-1)&lt;br /&gt;
    M = np.zeros(len(FF),dtype='complex') &lt;br /&gt;
    for i,f in enumerate( FF):&lt;br /&gt;
        for tau in range(len(ak)):&lt;br /&gt;
	    M[i] += ak[tau]*np.exp(-2*np.pi*1j*f*( tau- len(x))/FS)&lt;br /&gt;
    #M/=np.sqrt(len(ak))&lt;br /&gt;
    return M&lt;br /&gt;
    &lt;br /&gt;
def fourier(ak, FF, FS):&lt;br /&gt;
   &lt;br /&gt;
    M = np.zeros(len(FF),dtype='complex') &lt;br /&gt;
    for i,f in enumerate( FF):&lt;br /&gt;
        for tau in range(len(ak)):&lt;br /&gt;
	    M[i] += ak[tau]*np.exp(-2*np.pi*1j*f*( tau)/FS)&lt;br /&gt;
    M/=np.sqrt(len(ak))&lt;br /&gt;
    return M&lt;br /&gt;
t= np.arange(0,1,0.05)&lt;br /&gt;
x = np.sin(2*np.pi*2*t)&lt;br /&gt;
f = np.arange(-5,5,0.01)&lt;br /&gt;
&lt;br /&gt;
X = fourier_chin(x,f,10.0)&lt;br /&gt;
Xf = fourier(x,f,10.0)&lt;br /&gt;
print X&lt;br /&gt;
py.plot(f,np.abs(X), f,np.abs(Xf)**2)&lt;br /&gt;
py.show()&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3: Związek autokorelacji z widmem sygnału==&lt;br /&gt;
Oblicz gęstość widmową mocy sygnału zarejestrowanego w trakcie czuwania z zamkniętymi oczami, korzystając z twierdzenia Chinczyna oraz [[Nieparametryczne_widmo_mocy#Metoda_Welcha | metodą Welcha]].&lt;br /&gt;
Znajdź częstość rytmu &amp;amp;alpha; dla osoby, która była badana.&lt;br /&gt;
&lt;br /&gt;
==Funkcja kowariancji (wzajemnej)==&lt;br /&gt;
&lt;br /&gt;
W celu scharakteryzowania zależności wzajemnej dwóch sygnałów losowych, stosuje się funkcję kowariancji, zdefiniowaną w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid98&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma _{xy} (\tau ) = \mathrm{cov}(x(t),y(t-\tau ))=\mathrm{E}[(x(t)-\mu _x)(y(t-\tau )-\mu _y)]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid99&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\mu _x = \mathrm{E}[x(t)]\\&lt;br /&gt;
\mu _y = \mathrm{E}[y(t)]\\ \end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W przypadku sygnałów ciągłych estymatę tę można zapisać w poniższy sposób:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid100&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma _{xy} (\tau ) = \frac{1}{T}\int _0^{T}(x(t)-\mu_x)(y(t-\tau)-\mu_y)dt&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
natomiast dla sygnałów dyskretnych jako:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid101&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma _{xy}(k) = \frac{1}{N-1}\sum _{i=0}^{N-k}(x(i+k)-x_s)(y(i)-y_s)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W odróżnieniu od funkcji autokowariancji, funkcja kowariancji nie musi mieć maksimum dla przesunięcia &amp;lt;math&amp;gt;\tau =0&amp;lt;/math&amp;gt;. Ponadto posiada ona następującą cechę:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid102&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma _{xy}(-\tau ) = \gamma _{yx}(\tau )&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcję kowariancji można znormalizować:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid103&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\rho (\tau) = \frac{\mathrm{E}[(x(t)-\mu _x)(y(t-\tau )-\mu _y)]}{\sqrt{\mathrm{E}[(x(t)-\mu _x)^2]\mathrm{E}[(y(t)-\mu _y)^2]}} = \frac{\gamma _{xy}}{\sigma_x\sigma_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
Otrzymaną funkcję nazywamy funkcją korelacji.&lt;br /&gt;
Jednym z zastosowań funkcji korelacji jest wyznaczanie czasu przejścia sygnału przez dany układ liniowy. Funkcja korelacji pomiędzy sygnałem na wejściu układu i sygnałem na jego wyjściu osiągnie wartość maksymalną dla przesunięcia &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt; równego czasowi, jaki potrzebował sygnał na pokonanie danego układu. Niestety, taka metoda wyznaczania opóźnienia obarczona jest pewną wadą &amp;amp;mdash; w przypadku gdy prędkość sygnału bądź jego droga zależą od częstości, wtedy na wykresie funkcji korelacji nie uzyskamy wyraźnego maksimum.&lt;br /&gt;
&lt;br /&gt;
=====Polecenie =====&lt;br /&gt;
Zaimplementuj funkcję obliczającą funkcję kowariancji dla różnych sygnałów ''x'' i ''y'' (równanie 13) skorzystaj przy tym z własności opisanej równaniem (14). &lt;br /&gt;
Przykładowe wywołanie:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
b = np.array([-1,-2,-3])&lt;br /&gt;
&lt;br /&gt;
print koreluj(a,b,2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
powinno dać w wyniku:&lt;br /&gt;
 [ 0.5 0.  -1.   0.   0.5]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
def koreluj(x,y,max_tau):&lt;br /&gt;
    x = x - np.mean(x)&lt;br /&gt;
    y = y - np.mean(y)&lt;br /&gt;
    cor = np.zeros(2*max_tau+1)&lt;br /&gt;
    cor[max_tau] = np.sum(x[:]*y[:]) &lt;br /&gt;
    for i in range(1,max_tau+1):&lt;br /&gt;
        cor[max_tau+i] = np.sum(x[i:]*y[:-i])&lt;br /&gt;
        cor[max_tau-i] = np.sum(y[i:]*x[:-i])&lt;br /&gt;
    N= len(x)&lt;br /&gt;
    cor = cor /(N-1)&lt;br /&gt;
    return cor&lt;br /&gt;
&lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
b = np.array([-1,-2,-3])&lt;br /&gt;
for i in range(3):&lt;br /&gt;
    print koreluj(a,b,i)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}} --&amp;gt;&lt;br /&gt;
===Zadanie 4===&lt;br /&gt;
Z danych zarejestrowanych w trakcie czuwania z zamkniętymi oczami wybierz sygnały z następujących kanałów: Fp1, P3, Pz, P4, Fp2, O1, O2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Dla każdego kanału oblicz funkcję autokorelacji, zaś  dla każdej pary kanałów oblicz funkcję korelacji wzajemnej. Wyniki zaprezentuj w formie kwadratowej macierzy wykresów (za pomocą funkcji subplot, tak jak na przykładowym rys. (rys. &amp;lt;xr id=&amp;quot;uid9&amp;quot;&amp;gt; %i&amp;lt;/xr&amp;gt;)). Na przekątnej macierzy narysuj funkcję autokorelacji odpowiednich kanałów, poza przekątną &amp;amp;mdash; funkcję korelacji wzajemnej. Wskaż kanały, które są najbardziej skorelowane ze sobą. Czy możliwe jest wyznaczenie opóźnienia sygnału pomiędzy tymi kanałami?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Powtórz punkt 1, tym razem jednak funkcję autokorelacji i korelacji wzajemnej oblicz na sygnałach przefiltrowanych filtrem wąskopasmowym w paśmie alfa charakterystycznym dla badanej osoby. ([[%C4%86wiczenia_7#Funkcje_do_projektowania_filtr.C3.B3w_IIR_dost.C4.99pne_w_module_scipy.signal|przypomnienie konstrukcji filtrów]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Oszacuj istotność statystyczną zależności między parami kanałów. Twoją hipotezą zerową jest brak istotnej korelacji pomiędzy sygnałami zarejestrowanymi przez dwie różne elektrody EEG. Hipoteza alternatywna to występowanie zależności pomiędzy tymi sygnałami. Podanie estymatorów wariancji funkcji korelacji jest bardzo trudne, dlatego jednym ze sposobów oszacowania progu powyżej którego wartość funkcji korelacji można byłoby uznać za istotną statystycznie, jest zastosowanie metody ''bootstrap''. Teoretycznie, funkcja korelacji policzona dla dwóch rzeczywistych, nieskorelowanych sygnałów, powinna wynosić 0 dla każdego przesunięcia &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt;. Tak jest jednak w przypadku sygnałów nieskończonych; w analizie sygnałów takowych nie spotkamy.&lt;br /&gt;
&lt;br /&gt;
Dokonując losowej zamiany kolejności próbek, możemy doprowadzić do wytworzenia sygnałów zależnych losowo, które jednak ze względu na skończony czas trwania, dadzą niezerową funkcję korelacji. Poziom losowych fluktuacji tej funkcji oszacujemy wykonując następujące kroki:&lt;br /&gt;
&amp;lt;ol type=&amp;quot;A&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Losowa zamiana kolejności próbek w analizowanych sygnałach. Jeżeli pomiędzy dwoma sygnałami istnieją jakieś zależności, losowa zamiana próbek doprowadzi do zniszczenia tych związków. W ten sposób uzyskujemy sygnały, które teoretycznie są nieskorelowane.&lt;br /&gt;
&amp;lt;li&amp;gt; Obliczenie funkcji  korelacji wzajemnej dla sygnałów policzonych w punkcie A.&lt;br /&gt;
&amp;lt;li&amp;gt; Powtórzenie kroków A i B wiele (np. 1000) razy.&lt;br /&gt;
&amp;lt;li&amp;gt; Oszacowanie 95% przedziału ufności dla wartości średniej funkcji korelacji wzajemnej dla danego przesunięcia &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; korzystając z otrzymanego w kroku C empirycznego rozkładu wartości tych funkcji dla sygnałów niezależnych.  &lt;br /&gt;
&amp;lt;li&amp;gt; Powtórzenie kroków A-D dla kolejnych przesunięć &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;li&amp;gt; Sprawdzenie, dla których przesunięć &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt; funkcje autokorelacji i korelacji obliczone dla oryginalnych sygnałów uzyskały wartości wyższe niż wartości progowe oszacowane dla sygnałów o losowych zależnościach.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Procedura opisana powyżej ma jednak '''zasadniczą wadę'''. Staramy się w niej oszacować poziom przypadkowych korelacji pomiędzy dwoma sygnałami dla kolejnych przesunięć &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt;, co jest niczym innym jak wielokrotnym powtórzeniem pewnego testu. Obserwowanie korelacji dla wielu par kanałów równocześnie również prowadzi do zwiększenia szansy na zaobserwowanie ekstremalnie dużych fluktuacji.&lt;br /&gt;
Występuje tu zatem ''problem wielokrotnych porównań''.&lt;br /&gt;
Przypominamy, iż może to doprowadzić do przypadkowego uznania wyników jako &amp;amp;bdquo;istotnych&amp;amp;rdquo; statystycznie. Np. jeśli pojedynczy test wykonujemy na poziomie istotności 5% to dopuszczamy odrzucenie w 1 przypadku na 20 hipotezy zerowej pomimo, iż jest ona prawdziwa. Z drugiej jednak strony, jeśli powtórzymy wykonywany test 20 razy, to oczekujemy uzyskania 1 przypadku, w którym poziom ''p'' będzie mniejszy od 5% co jest przesłanką za odrzuceniem hipotezy zerowej. &lt;br /&gt;
&lt;br /&gt;
W przypadku wykonywania serii testów należałoby więc zastosować odpowiednie poprawki, np. [http://www.bmj.com/content/310/6973/170.full korektę Bonferroniego] czy [http://en.wikipedia.org/wiki/False_discovery_rate false discovery rate (FDR)]. Innym rozwiązaniem w analizowanym przez nas problemie jest zastosowanie tzw. statystyk wartości ekstremalnych, które prowadzą do następujących zmian w procedurze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol type=&amp;quot;A&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Losowa zmiana kolejności próbek w analizowanych sygnałach (we wszystkich analizowanych kanałach). Jeżeli pomiędzy dwoma sygnałami istnieją jakieś zależności, losowa zamiana próbek doprowadzi do zniszczenia tych związków. W ten sposób uzyskujemy sygnały, które teoretycznie są nieskorelowane.&lt;br /&gt;
&amp;lt;li&amp;gt;	Obliczenie funkcji korelacji dla sygnałów otrzymanych w punkcie A.&lt;br /&gt;
&amp;lt;li&amp;gt;    Zapamiętanie maksymalnej wartości bezwzględnej funkcji korelacji z punktu B (maksimum bierzemy po wszystkich przesunięciach i po wszystkich parach kanałów; dla funkcji autokorelacji, ze względu na jej normalizację do 1 dla zerowego przesunięcia, tam maksymalnych wartości poszukujemy dla przesunięć innych niż 0).&lt;br /&gt;
&amp;lt;li&amp;gt;	Powtórzenie kroków A-C 1000 razy. Uzyskamy w ten sposób rozkład maksymalnych wartości funkcji korelacji możliwych do zaobserwowania dla sygnałów niezależnych.&lt;br /&gt;
&amp;lt;li&amp;gt;    Wyznaczenie 95 centyla rozkładu wartości maksymalnych.&lt;br /&gt;
&amp;lt;li&amp;gt;	Nałożenie na rysunki funkcji korelacji uzyskane w Zadaniu 2 poziomych linii symbolizujących poziom zależności dwóch sygnałów o losowych zależnościach i sprawdzenie, dla których przesunięć &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt; wartości funkcji korelacji przekraczają estymowane progi istotności statystycznej.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Plik:Korelacje_wzajemne.png|700px|center|thumb|&amp;lt;figure id=&amp;quot;uid9&amp;quot; /&amp;gt;Przykład wyniku analizy korelacji wzajemnych dla sygnału niefiltrowanego z naniesionymi granicami możliwych fluktuacji.]]&lt;br /&gt;
&lt;br /&gt;
==Wzajemna gęstość widmowa sygnałów==&lt;br /&gt;
&lt;br /&gt;
Podobnie jak w przypadku twierdzenia Chinczyna dla pojedynczego sygnału, możliwe jest policzenie transformaty Fouriera funkcji kowariancji. Uzyskana w ten sposób wielkość nazywa się funkcją wzajemnej gęstości mocy widmowej sygnału:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid122&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S_{xy}(f) = \int _{-\infty }^{\infty }\gamma_{xy}(\tau )e^{-2\pi i f \tau}d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W celu dalszego omówienia własności funkcji wzajemnej mocy widmowej sygnałów funkcję tę zapiszemy w postaci:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid123&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
S_{xy}(f) = |S_{xy}(f)|e^{i\phi _{xy}(f)}\\&lt;br /&gt;
\\&lt;br /&gt;
\phi _{xy} = \arg(S_{xy}) &lt;br /&gt;
\end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&amp;lt;!-- \mathrm{arc\,tg}\left[\frac{\mathrm{Im}(S_{xy}(f))}{\mathrm{Re}(S_{xy}(f))}\right]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wartość bezwzględna funkcji wzajemnej gęstości mocy widmowej osiąga największą wartość dla '''częstości''', w których sygnały &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;y(t)&amp;lt;/math&amp;gt; są ze sobą skorelowane. Funkcja wzajemnej mocy widmowej sygnałów pozbawiona jest zatem wady, która charakteryzowała funkcję korelacji, to jest problemu z wyznaczeniem czasu transmisji sygnału, w przypadku gdy czas ten zależał od częstości. Przy pomocy funkcji wzajemnej mocy widmowej, czas ten można oszacować przy pomocy fazy tej funkcji &amp;amp;mdash; &amp;lt;math&amp;gt;\phi _{xy}(f)&amp;lt;/math&amp;gt;. Jeśli funkcja wzajemnej mocy widmowej została wyznaczona pomiędzy sygnałami na wejściu i wyjściu układu liniowego, to faza ta reprezentuje przesunięcie fazowe sygnału przy przejściu przez układ. Czas tego przejścia można oszacować za pomocą następującej wyrażenia:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid124&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\tau = \frac{\phi _{xy}(f)}{2\pi f}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Podobnie jak w przypadku funkcji autokorelacji i korelacji wzajemnej, funkcję wzajemnej gęstości mocy widmowej można znormalizować:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid125&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
C_{xy}(f) = \frac{S_{xy}(f)}{\sqrt{S_x(f)S_y(f)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Znormalizowaną postać funkcji wzajemnej gęstości mocy widmowej nazywamy funkcją ''koherencji''. &lt;br /&gt;
Koherencja jest wielkością zespoloną. Faza koherencji odzwierciedla różnicę faz pomiędzy dwoma sygnałami. Moduł koherencji reprezentuje stopień synchronizacji sygnałów i zawiera się w przedziale od 0.0 do 1.0. Moduł tej funkcji zawiera się w przedziale od 0 do 1. Wartości 0 odpowiada brak synchronizacji pomiędzy sygnałami, zaś wartości 1 pełna synchronizacja dwóch przebiegów czasowych. Należy również zwrócić uwagę na nazewnictwo - często sam moduł koherencji określany jest jako koherencja, w literaturze anglojęzycznej moduł koherencji posiada jednak odrębną nazwę: Magnitude Square Coherence (MSC). Istotny jest również sposób estymacji modułu koherencji, który wyprowadzono w następnym rozdziale, zaś sam estymator reprezentuje wzór (36).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zadanie 5===&lt;br /&gt;
Zaimplementuj funkcję obliczającą wzajemną gęstość widmową dla pary kanałów. &lt;br /&gt;
&amp;lt;!--Niech argumentami tej funkcji będą dwa wektory zawierające sygnały, zakres częstości, częstość próbkowania. --&amp;gt;&lt;br /&gt;
Oblicz i narysuj macierz gęstości widmowych (własnych i wzajemnych) dla kolejnych par kanałów (tych samych co w zadaniu 3). Wyniki zaprezentuj w postaci kwadratowej macierzy rysunków. Ponieważ są to funkcje zespolone, dobrze jest zaprezentować osobno ich wartość i fazę. Uzyskane wartości bezwzględne narysuj nad przekątną tej macierzy, a fazę pod przekątną.&lt;br /&gt;
&lt;br /&gt;
===Zadanie 6===&lt;br /&gt;
Przygotuj sygnał dwukanałowy, w którym jako pierwszy sygnał wybierz fragment sygnału EEG (z danych zebranych wcześniej) o długości 2000 próbek, a jako drugiego sygnału użyj tego samego fragmentu EEG, ale opóźnionego o wybraną liczbę (1 - 5) próbek. Oblicz widma wzajemne tych sygnałów i zaprezentuj ich fazy na rysunku. Na podstawie tych widm znajdź wartość przesunięcia czasowego tych sygnałów.&lt;br /&gt;
&lt;br /&gt;
Obliczenia powtórz w przypadku, gdy do drugiego sygnału dodany będzie szum o wariancji równej 0,25 wariancji oryginalnego sygnału.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/EEG_wlasno%C5%9Bci_EEG_spoczynkowego&amp;diff=10834</id>
		<title>Pracownia EEG 2/EEG wlasności EEG spoczynkowego</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/EEG_wlasno%C5%9Bci_EEG_spoczynkowego&amp;diff=10834"/>
		<updated>2024-09-24T12:20:39Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Własności EEG spoczynkowego: funkcja autokorelacji i widmo&lt;br /&gt;
&lt;br /&gt;
=Estymacja funkcji autokowariancji, autokorelacji i koherencji sygnału.=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Z funkcjami tymi spotkaliśmy się już na zajęciach z [[Ćwiczenia_4|analizy sygnałów]].&lt;br /&gt;
&lt;br /&gt;
Funkcja autokowariancji sygnału charakteryzuje liniową zależność wartości tego sygnału w danej określonej chwili czasu od wartości (tego samego sygnału) w innej chwili.&lt;br /&gt;
W przypadku [[Nieparametryczne_widmo_mocy#Sygna.C5.82y_stochastyczne  | stacjonarnych procesów stochastycznych]], przebieg tej funkcji nie zależy od czasu. &lt;br /&gt;
Oznacza to, że obliczając funkcję autokorelacji sygnału pomiędzy chwilą czasu &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;x(t+\tau )&amp;lt;/math&amp;gt; otrzymamy tę samą wartość, jak dla przypadku obliczania funkcji autokorelacji pomiędzy momentami &amp;lt;math&amp;gt;x(t + T)&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;x(t + T+\tau )&amp;lt;/math&amp;gt;, gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; to dowolny przedział czasu. Innymi słowy, funkcja autokorelacji procesu stacjonarnego zależy tylko od odstępu czasu pomiędzy próbkami &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt;, dla którego jest wyznaczana, a nie od konkretnej chwili czasu. Odrębną klasę sygnałów stanowią procesy niestacjonarne, w przypadku których funkcja autokorelacji będzie zależeć od czasu &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; w którym jest obliczana. Estymator funkcji autokowariancji uzyskuje się poprzez obliczanie iloczynów wartości sygnału &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; w chwilach czasu &amp;lt;math&amp;gt;t&amp;lt;/math&amp;gt; czyli &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt; i wartości sygnału &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; w chwili czasu ''t''+&amp;amp;tau; czyli &amp;lt;math&amp;gt;x(t+\tau)&amp;lt;/math&amp;gt; i uśredniając wartości iloczynów po czasie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid79&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma (\tau) = \mathrm{cov}(x(t),x(t-\tau ))=\mathrm{E}[(x(t)-\mu )(x(t-\tau )-\mu )]&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(1)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid80&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\mu = \mathrm{E}[x(t)]&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(2)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W przypadku sygnałów ciągłych estymatę tę można zapisać w poniższy sposób:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid81&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma (\tau ) = \frac{1}{T}\int _0^{T}(x(t)-\mu )(x(t-\tau )-\mu )dt&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(3)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
natomiast dla sygnałów dyskretnych jako:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid82&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma (k) = \frac{1}{N-1}\sum _{i=1}^{N-|k|}(x(i+k)-x_s)(x(i)-x_s)&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(4)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid83&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_s = \frac{\sum _{i=1}^{N}x(i)}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(5)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcja autokowariancji może osiągać dowolne wartości, dlatego aby można było porównać przebieg tej funkcji np. pomiędzy dwoma sygnałami, wprowadzono wersję znormalizowaną tej funkcji &amp;amp;mdash; ''funkcję autokorelacji''. Normalizacja ta wygląda następująco:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid84&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\rho (k) = \frac{\gamma (\tau )}{\sigma^2}&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(6)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid85&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\sigma ^2 = \mathrm{E}[(x(t)-\mu )^2]&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(7)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wariancję sygnału (&amp;lt;math&amp;gt;\gamma (0)=\sigma ^2&amp;lt;/math&amp;gt;) można wyrazić przez funkcję autokowariancji dla przesunięcia &amp;lt;math&amp;gt;\tau =0&amp;lt;/math&amp;gt;.  Wynika z tego, że funkcja korelacji przyjmuje wartości z zakresu [&amp;amp;minus;1,&amp;amp;nbsp;1]. Ostatecznie estymator funkcji autokorelacji można zapisać jak poniżej:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid86&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\rho(k) = \frac{\gamma (k)}{\gamma (0)}&lt;br /&gt;
&amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(8)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcję autokorelacji estymuje się w celu określenia, w jakim stopniu wartości sygnału w danej chwili czasu wpływają na wartości sygnału w kolejnych chwilach czasu. Ma to kluczowe znaczenie przy rozpoznawaniu rodzaju procesów fizycznych odpowiedzialnego za generowanie sygnału. Funkcja ta zawsze mam maksimum dla przesunięcia &amp;lt;math&amp;gt;\tau =0&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cechą charakterystyczną funkcji autokorelacji jest to, iż w przypadku sygnałów harmonicznych, przebieg funkcji ma charakter okresowy, z okresem takim samym jak okres badanego sygnału. W przypadku szumu, funkcja autokorelacji ma kształt funkcji delta Diraca.&lt;br /&gt;
&lt;br /&gt;
==Polecenie:==&lt;br /&gt;
Zaimplementuj funkcję do obliczania funkcji korelacji zgodnie ze wzorem (4). Funkcja powinna przyjmować dwa wektory i maksymalne przesunięcie wzajemne tych wektorów, natomiast zwracać powinna wektor zawierający funkcję autokorelacji. Wywołanie przykładowe:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
print koreluj(a,a,2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
powinno dać wynik:&lt;br /&gt;
 [-0.5  0.   1.   0.  -0.5]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--{{hidden begin|title=Przykładowe rozwiązanie:}}--&amp;gt;&lt;br /&gt;
 &amp;lt;!-- &amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
&lt;br /&gt;
def koreluj_pol(x,y,max_tau):&lt;br /&gt;
    x = x - np.mean(x)&lt;br /&gt;
    y = y - np.mean(y)&lt;br /&gt;
    N= len(x)&lt;br /&gt;
    cor = np.zeros(max_tau+1)&lt;br /&gt;
    cor[0] = np.sum(x[:]*y[:]) &lt;br /&gt;
    for i in range(1,max_tau+1):&lt;br /&gt;
        cor[i] = np.sum(x[i:]*y[:-i])&lt;br /&gt;
        &lt;br /&gt;
    cor = cor /(N-1)&lt;br /&gt;
    return cor&lt;br /&gt;
&lt;br /&gt;
def koreluj(x,y,max_tau):&lt;br /&gt;
    cor = np.zeros(2*max_tau+1)    &lt;br /&gt;
    cor[max_tau:] = koreluj_pol(x,y,max_tau)&lt;br /&gt;
    tmp = koreluj_pol(y,x,max_tau)&lt;br /&gt;
    cor[:max_tau+1] = tmp[-1::-1]&lt;br /&gt;
    return cor    &lt;br /&gt;
    &lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
for i in range(3):&lt;br /&gt;
    print koreluj(a,a,i)&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
b = np.array([-1,-2,-3])&lt;br /&gt;
&lt;br /&gt;
for i in range(3):&lt;br /&gt;
    print koreluj(a,b,i)&lt;br /&gt;
    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1: Pomiar sygnału EEG ==&lt;br /&gt;
&lt;br /&gt;
Zarejestruj 10 minut sygnału EEG, w trakcie których badana osoba będzie siedziała z otwartymi oczami oraz kolejne 10 minut w stanie czuwania z zamkniętymi oczami. Rejestrację należy wykonać na pełnym czepku 10-20 z częstością próbkowania 128 Hz. &lt;br /&gt;
&lt;br /&gt;
==Zadanie 2:  Funkcje autokowariancji i autokorelacji==&lt;br /&gt;
W tym zadaniu posłużymy się sygnałami zarejestrowanymi w punkcie 3. poprzedniego ćwiczenia. Zaobserwuj, na którym kanale rytm alfa osiąga najwyższą wartość. Następnie zaimplementuj w Pythonie następujące kroki:&lt;br /&gt;
&lt;br /&gt;
#	Wczytaj dane z wybranego kanału.&lt;br /&gt;
#	Oblicz funkcję autokorelacji dla sygnału zarejestrowanego w warunkach, gdy osoba badana siedziała z otwartymi oczami. Narysuj autokorelogram, to jest wykres wartości funkcji autokorelacji względem przesunięcia &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt;. Oś &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt; wyskaluj w sekundach.&lt;br /&gt;
#	Powtórz krok 2, tym razem dla sygnału zebranego w warunkach czuwania z zamkniętymi oczami.&lt;br /&gt;
#	Porównaj autokorelogramy.&lt;br /&gt;
&lt;br /&gt;
=Związek autokorelacji z widmem sygnału=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Zgodnie z twierdzeniem Chinczyna, z którym zapoznaliśmy się na wykładzie z [[Twierdzenie_Wienera-Chinczyna|Analizy Sygnałów]], widmową gęstość mocy sygnału można policzyć jako transformatę Fouriera funkcji autokowariancji:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid93&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S(f) = \int _{-\infty }^{\infty }\gamma (\tau )e^{-2\pi i f \tau}d\tau &amp;lt;/math&amp;gt; &amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;(9)&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	&amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt; &amp;amp;mdash; częstość&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	&amp;lt;math&amp;gt;S(f)&amp;lt;/math&amp;gt; &amp;amp;mdash;  gęstość widmowa mocy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Poniższy kod ilustruje to twierdzenie:&lt;br /&gt;
&amp;lt;source lang = py&amp;gt;&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
from __future__ import division&lt;br /&gt;
import pylab as py&lt;br /&gt;
import numpy as np&lt;br /&gt;
from numpy.fft import rfft,fft,fftfreq,fftshift&lt;br /&gt;
 &lt;br /&gt;
def widmo_mocy(s, Fs):&lt;br /&gt;
    '''Funkcja licąca widmo mocy metodą periodogramu,&lt;br /&gt;
	pobiera sygnał i częstość próbkowania&lt;br /&gt;
	zwraca widmo mocy i oś częstości&lt;br /&gt;
    '''&lt;br /&gt;
    S = fft(s)/np.sqrt(len(s))&lt;br /&gt;
    S_moc = S*S.conj()&lt;br /&gt;
    S_moc = S_moc.real&lt;br /&gt;
    F = fftfreq(len(s), 1/Fs)&lt;br /&gt;
    return (fftshift(S_moc),fftshift(F))&lt;br /&gt;
 &lt;br /&gt;
def sin(f = 1, T = 1, Fs = 128, phi =0 ):&lt;br /&gt;
    '''sin o zadanej częstości (w Hz), długości, fazie i częstości próbkowania&lt;br /&gt;
    Domyślnie wytwarzany jest sygnał reprezentujący &lt;br /&gt;
    1 sekundę sinusa o częstości 1Hz i zerowej fazie próbkowanego 128 Hz&lt;br /&gt;
    '''&lt;br /&gt;
    dt = 1.0/Fs&lt;br /&gt;
    t = np.arange(0,T,dt)&lt;br /&gt;
    s = np.sin(2*np.pi*f*t + phi)&lt;br /&gt;
    return (s,t)&lt;br /&gt;
 &lt;br /&gt;
# sygnał próbny będzie próbkowany z częstością FS&lt;br /&gt;
FS = 100.0&lt;br /&gt;
# sygnałem próbnym będzie sinusoida o częstości f &lt;br /&gt;
(s,t) = sin(f=10.5,Fs=FS)&lt;br /&gt;
# obliczamy moc i energię sygnału w dziedzinie czasu&lt;br /&gt;
moc_w_czasie = s**2&lt;br /&gt;
energia_w_czasie = np.sum(moc_w_czasie)&lt;br /&gt;
print 'energia w czasie: ', energia_w_czasie&lt;br /&gt;
 &lt;br /&gt;
# obliczamy widmo mocy sygnału i jego energię estymowaną w dziedzinie częstości&lt;br /&gt;
(moc_w_czestosci, F) = widmo_mocy(s, Fs=FS)&lt;br /&gt;
energia_w_czestosci = np.sum(moc_w_czestosci)&lt;br /&gt;
print 'energia w czestosci: ', energia_w_czestosci&lt;br /&gt;
 &lt;br /&gt;
# estymujemy funkcję autokorelacji sygnału&lt;br /&gt;
ak = 1./(2*len(s)-1)*np.correlate(s,s,'full')&lt;br /&gt;
&lt;br /&gt;
# estymujemy widmo mocy i energię sygnału z twierdzenia Chinczyna korzystając z funkcji fft:&lt;br /&gt;
moc_chi = np.abs(fft(ak))&lt;br /&gt;
energia_chin = sum(moc_chi)&lt;br /&gt;
print 'energia z tw. Chinczyna przez fft: ', energia_chin&lt;br /&gt;
 &lt;br /&gt;
# estymujemy widmo mocy i energię sygnału z twierdzenia Chinczyna korzystając z jawnej postaci transformaty Fouriera:&lt;br /&gt;
FF = np.linspace(-FS/2,FS/2,1000)&lt;br /&gt;
M = np.zeros(len(FF),dtype='complex')&lt;br /&gt;
 &lt;br /&gt;
for i,f in enumerate( FF):&lt;br /&gt;
    for tau in range(len(ak)):&lt;br /&gt;
        M[i] += ak[tau]*np.exp(2*np.pi*1j*f*(len(ak)-tau)/FS) &lt;br /&gt;
M = np.abs(M)&lt;br /&gt;
energia_chin_sum = np.sum(M)* (len(ak)/len(FF))&lt;br /&gt;
print 'energia z tw. Chinczyna przez sumowanie: ', energia_chin_sum&lt;br /&gt;
&lt;br /&gt;
# Rysunki&lt;br /&gt;
py.figure(1)&lt;br /&gt;
py.subplot(3,1,1)&lt;br /&gt;
py.plot(t,s)&lt;br /&gt;
py.title(u'Sygnal')&lt;br /&gt;
py.subplot(3,1,2)&lt;br /&gt;
py.plot(t,moc_w_czasie)&lt;br /&gt;
py.title(u'moc w czasie')&lt;br /&gt;
py.subplot(3,1,3)&lt;br /&gt;
py.plot(F,moc_w_czestosci)&lt;br /&gt;
py.title(u'moc w czestosci')&lt;br /&gt;
 &lt;br /&gt;
py.figure(2)&lt;br /&gt;
py.subplot(3,1,1)&lt;br /&gt;
py.title('f. autokowariancji')&lt;br /&gt;
py.plot(np.arange(-len(ak)/2,len(ak)/2,1)/FS ,ak)&lt;br /&gt;
py.subplot(3,1,2)&lt;br /&gt;
py.plot(fftshift(fftfreq(len(moc_chi),1./FS)),fftshift(moc_chi))&lt;br /&gt;
py.title('widmo mocy z Tw. Chinczyna przez fft')&lt;br /&gt;
py.subplot(3,1,3)&lt;br /&gt;
py.plot(FF,M)&lt;br /&gt;
py.title('widmo mocy z Tw. Chinczyna przez sumowanie')&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W wyniku powinniśmy zobaczyć w terminalu:&lt;br /&gt;
 energia w czasie:  50.0&lt;br /&gt;
 energia w czestosci:  50.0&lt;br /&gt;
 energia z tw. Chinczyna przez fft:  50.0&lt;br /&gt;
 energia z tw. Chinczyna przez sumowanie:  49.9501172217&lt;br /&gt;
&lt;br /&gt;
oraz powinny pojawić się rysunki:&lt;br /&gt;
[[Plik:Fig_chinczyn1.png|thumb 200 px|center]]&lt;br /&gt;
[[Plik:Fig_chinczyn2.png|thumb 200 px|center]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Polecenie ==&lt;br /&gt;
Zaimplementuj funkcję obliczającą transformację Fouriera dyskretyzując wzór (9) dla zadanego wektora częstości &amp;lt;tt&amp;gt;f&amp;lt;/tt&amp;gt; i zadanej częstości próbkowania sygnału (tutaj: 10).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Wywołanie przykładowe:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
t= np.arange(0,1,0.1)&lt;br /&gt;
x = np.sin(2*np.pi*2*t)&lt;br /&gt;
f = np.arange(-5,5,1)&lt;br /&gt;
X,f = fourier(x,f,10.0)&lt;br /&gt;
print X&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Natomiast wywołanie:&lt;br /&gt;
&amp;lt;source lang ='python'&amp;gt;&lt;br /&gt;
t= np.arange(0,1,0.1)&lt;br /&gt;
x = np.sin(2*np.pi*2*t)&lt;br /&gt;
f = np.arange(-5,5,0.01)&lt;br /&gt;
X = fourier(x,f,10.0)&lt;br /&gt;
py.plot(f,np.abs(X))&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Powinno wytworzyć rysunek:&lt;br /&gt;
&lt;br /&gt;
[[Plik:Fourier_test.png]] &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;tt&amp;gt;*&amp;lt;/tt&amp;gt; --&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def koreluj_pol(x,y,max_tau):&lt;br /&gt;
    x = x - np.mean(x)&lt;br /&gt;
    y = y - np.mean(y)&lt;br /&gt;
    N= len(x)&lt;br /&gt;
    cor = np.zeros(max_tau+1)&lt;br /&gt;
    cor[0] = np.sum(x[:]*y[:]) &lt;br /&gt;
    for i in range(1,max_tau+1):&lt;br /&gt;
        cor[i] = np.sum(x[i:]*y[:-i])&lt;br /&gt;
        &lt;br /&gt;
    cor = cor /(N)&lt;br /&gt;
    return cor&lt;br /&gt;
&lt;br /&gt;
def koreluj(x,y,max_tau):&lt;br /&gt;
    cor = np.zeros(2*max_tau+1)    &lt;br /&gt;
    cor[max_tau:] = koreluj_pol(x,y,max_tau)&lt;br /&gt;
    tmp = koreluj_pol(y,x,max_tau)&lt;br /&gt;
    cor[:max_tau+1] = tmp[-1::-1]&lt;br /&gt;
    return cor  &lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
def fourier_chin(x, FF, FS):&lt;br /&gt;
    ak = koreluj(x,x,len(x)-1)&lt;br /&gt;
    M = np.zeros(len(FF),dtype='complex') &lt;br /&gt;
    for i,f in enumerate( FF):&lt;br /&gt;
        for tau in range(len(ak)):&lt;br /&gt;
	    M[i] += ak[tau]*np.exp(-2*np.pi*1j*f*( tau- len(x))/FS)&lt;br /&gt;
    #M/=np.sqrt(len(ak))&lt;br /&gt;
    return M&lt;br /&gt;
    &lt;br /&gt;
def fourier(ak, FF, FS):&lt;br /&gt;
   &lt;br /&gt;
    M = np.zeros(len(FF),dtype='complex') &lt;br /&gt;
    for i,f in enumerate( FF):&lt;br /&gt;
        for tau in range(len(ak)):&lt;br /&gt;
	    M[i] += ak[tau]*np.exp(-2*np.pi*1j*f*( tau)/FS)&lt;br /&gt;
    M/=np.sqrt(len(ak))&lt;br /&gt;
    return M&lt;br /&gt;
t= np.arange(0,1,0.05)&lt;br /&gt;
x = np.sin(2*np.pi*2*t)&lt;br /&gt;
f = np.arange(-5,5,0.01)&lt;br /&gt;
&lt;br /&gt;
X = fourier_chin(x,f,10.0)&lt;br /&gt;
Xf = fourier(x,f,10.0)&lt;br /&gt;
print X&lt;br /&gt;
py.plot(f,np.abs(X), f,np.abs(Xf)**2)&lt;br /&gt;
py.show()&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3: Związek autokorelacji z widmem sygnału==&lt;br /&gt;
Oblicz gęstość widmową mocy sygnału zarejestrowanego w trakcie czuwania z zamkniętymi oczami, korzystając z twierdzenia Chinczyna oraz [[Nieparametryczne_widmo_mocy#Metoda_Welcha | metodą Welcha]].&lt;br /&gt;
Znajdź częstość rytmu &amp;amp;alpha; dla osoby, która była badana.&lt;br /&gt;
&lt;br /&gt;
==Funkcja kowariancji (wzajemnej)==&lt;br /&gt;
&lt;br /&gt;
W celu scharakteryzowania zależności wzajemnej dwóch sygnałów losowych, stosuje się funkcję kowariancji, zdefiniowaną w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid98&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma _{xy} (\tau ) = \mathrm{cov}(x(t),y(t-\tau ))=\mathrm{E}[(x(t)-\mu _x)(y(t-\tau )-\mu _y)]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gdzie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid99&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\mu _x = \mathrm{E}[x(t)]\\&lt;br /&gt;
\mu _y = \mathrm{E}[y(t)]\\ \end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W przypadku sygnałów ciągłych estymatę tę można zapisać w poniższy sposób:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid100&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma _{xy} (\tau ) = \frac{1}{T}\int _0^{T}(x(t)-\mu_x)(y(t-\tau)-\mu_y)dt&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
natomiast dla sygnałów dyskretnych jako:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid101&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma _{xy}(k) = \frac{1}{N-1}\sum _{i=0}^{N-k}(x(i+k)-x_s)(y(i)-y_s)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W odróżnieniu od funkcji autokowariancji, funkcja kowariancji nie musi mieć maksimum dla przesunięcia &amp;lt;math&amp;gt;\tau =0&amp;lt;/math&amp;gt;. Ponadto posiada ona następującą cechę:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid102&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\gamma _{xy}(-\tau ) = \gamma _{yx}(\tau )&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcję kowariancji można znormalizować:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid103&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\rho (\tau) = \frac{\mathrm{E}[(x(t)-\mu _x)(y(t-\tau )-\mu _y)]}{\sqrt{\mathrm{E}[(x(t)-\mu _x)^2]\mathrm{E}[(y(t)-\mu _y)^2]}} = \frac{\gamma _{xy}}{\sigma_x\sigma_y}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
Otrzymaną funkcję nazywamy funkcją korelacji.&lt;br /&gt;
Jednym z zastosowań funkcji korelacji jest wyznaczanie czasu przejścia sygnału przez dany układ liniowy. Funkcja korelacji pomiędzy sygnałem na wejściu układu i sygnałem na jego wyjściu osiągnie wartość maksymalną dla przesunięcia &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt; równego czasowi, jaki potrzebował sygnał na pokonanie danego układu. Niestety, taka metoda wyznaczania opóźnienia obarczona jest pewną wadą &amp;amp;mdash; w przypadku gdy prędkość sygnału bądź jego droga zależą od częstości, wtedy na wykresie funkcji korelacji nie uzyskamy wyraźnego maksimum.&lt;br /&gt;
&lt;br /&gt;
=====Polecenie =====&lt;br /&gt;
Zaimplementuj funkcję obliczającą funkcję kowariancji dla różnych sygnałów ''x'' i ''y'' (równanie 13) skorzystaj przy tym z własności opisanej równaniem (14). &lt;br /&gt;
Przykładowe wywołanie:&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
b = np.array([-1,-2,-3])&lt;br /&gt;
&lt;br /&gt;
print koreluj(a,b,2)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
powinno dać w wyniku:&lt;br /&gt;
 [ 0.5 0.  -1.   0.   0.5]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
{{hidden begin|title=Przykładowe rozwiązanie:}}&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
def koreluj(x,y,max_tau):&lt;br /&gt;
    x = x - np.mean(x)&lt;br /&gt;
    y = y - np.mean(y)&lt;br /&gt;
    cor = np.zeros(2*max_tau+1)&lt;br /&gt;
    cor[max_tau] = np.sum(x[:]*y[:]) &lt;br /&gt;
    for i in range(1,max_tau+1):&lt;br /&gt;
        cor[max_tau+i] = np.sum(x[i:]*y[:-i])&lt;br /&gt;
        cor[max_tau-i] = np.sum(y[i:]*x[:-i])&lt;br /&gt;
    N= len(x)&lt;br /&gt;
    cor = cor /(N-1)&lt;br /&gt;
    return cor&lt;br /&gt;
&lt;br /&gt;
a = np.array([1,2,3])&lt;br /&gt;
b = np.array([-1,-2,-3])&lt;br /&gt;
for i in range(3):&lt;br /&gt;
    print koreluj(a,b,i)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}} --&amp;gt;&lt;br /&gt;
===Zadanie 3===&lt;br /&gt;
Z danych zarejestrowanych w trakcie czuwania z zamkniętymi oczami wybierz sygnały z następujących kanałów: Fp1, P3, Pz, P4, Fp2, O1, O2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Dla każdego kanału oblicz funkcję autokorelacji, zaś  dla każdej pary kanałów oblicz funkcję korelacji wzajemnej. Wyniki zaprezentuj w formie kwadratowej macierzy wykresów (za pomocą funkcji subplot, tak jak na przykładowym rys. (rys. &amp;lt;xr id=&amp;quot;uid9&amp;quot;&amp;gt; %i&amp;lt;/xr&amp;gt;)). Na przekątnej macierzy narysuj funkcję autokorelacji odpowiednich kanałów, poza przekątną &amp;amp;mdash; funkcję korelacji wzajemnej. Wskaż kanały, które są najbardziej skorelowane ze sobą. Czy możliwe jest wyznaczenie opóźnienia sygnału pomiędzy tymi kanałami?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Powtórz punkt 1, tym razem jednak funkcję autokorelacji i korelacji wzajemnej oblicz na sygnałach przefiltrowanych filtrem wąskopasmowym w paśmie alfa charakterystycznym dla badanej osoby. ([[%C4%86wiczenia_7#Funkcje_do_projektowania_filtr.C3.B3w_IIR_dost.C4.99pne_w_module_scipy.signal|przypomnienie konstrukcji filtrów]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Oszacuj istotność statystyczną zależności między parami kanałów. Twoją hipotezą zerową jest brak istotnej korelacji pomiędzy sygnałami zarejestrowanymi przez dwie różne elektrody EEG. Hipoteza alternatywna to występowanie zależności pomiędzy tymi sygnałami. Podanie estymatorów wariancji funkcji korelacji jest bardzo trudne, dlatego jednym ze sposobów oszacowania progu powyżej którego wartość funkcji korelacji można byłoby uznać za istotną statystycznie, jest zastosowanie metody ''bootstrap''. Teoretycznie, funkcja korelacji policzona dla dwóch rzeczywistych, nieskorelowanych sygnałów, powinna wynosić 0 dla każdego przesunięcia &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt;. Tak jest jednak w przypadku sygnałów nieskończonych; w analizie sygnałów takowych nie spotkamy.&lt;br /&gt;
&lt;br /&gt;
Dokonując losowej zamiany kolejności próbek, możemy doprowadzić do wytworzenia sygnałów zależnych losowo, które jednak ze względu na skończony czas trwania, dadzą niezerową funkcję korelacji. Poziom losowych fluktuacji tej funkcji oszacujemy wykonując następujące kroki:&lt;br /&gt;
&amp;lt;ol type=&amp;quot;A&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt; Losowa zamiana kolejności próbek w analizowanych sygnałach. Jeżeli pomiędzy dwoma sygnałami istnieją jakieś zależności, losowa zamiana próbek doprowadzi do zniszczenia tych związków. W ten sposób uzyskujemy sygnały, które teoretycznie są nieskorelowane.&lt;br /&gt;
&amp;lt;li&amp;gt; Obliczenie funkcji  korelacji wzajemnej dla sygnałów policzonych w punkcie A.&lt;br /&gt;
&amp;lt;li&amp;gt; Powtórzenie kroków A i B wiele (np. 1000) razy.&lt;br /&gt;
&amp;lt;li&amp;gt; Oszacowanie 95% przedziału ufności dla wartości średniej funkcji korelacji wzajemnej dla danego przesunięcia &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; korzystając z otrzymanego w kroku C empirycznego rozkładu wartości tych funkcji dla sygnałów niezależnych.  &lt;br /&gt;
&amp;lt;li&amp;gt; Powtórzenie kroków A-D dla kolejnych przesunięć &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;li&amp;gt; Sprawdzenie, dla których przesunięć &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt; funkcje autokorelacji i korelacji obliczone dla oryginalnych sygnałów uzyskały wartości wyższe niż wartości progowe oszacowane dla sygnałów o losowych zależnościach.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Procedura opisana powyżej ma jednak '''zasadniczą wadę'''. Staramy się w niej oszacować poziom przypadkowych korelacji pomiędzy dwoma sygnałami dla kolejnych przesunięć &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt;, co jest niczym innym jak wielokrotnym powtórzeniem pewnego testu. Obserwowanie korelacji dla wielu par kanałów równocześnie również prowadzi do zwiększenia szansy na zaobserwowanie ekstremalnie dużych fluktuacji.&lt;br /&gt;
Występuje tu zatem ''problem wielokrotnych porównań''.&lt;br /&gt;
Przypominamy, iż może to doprowadzić do przypadkowego uznania wyników jako &amp;amp;bdquo;istotnych&amp;amp;rdquo; statystycznie. Np. jeśli pojedynczy test wykonujemy na poziomie istotności 5% to dopuszczamy odrzucenie w 1 przypadku na 20 hipotezy zerowej pomimo, iż jest ona prawdziwa. Z drugiej jednak strony, jeśli powtórzymy wykonywany test 20 razy, to oczekujemy uzyskania 1 przypadku, w którym poziom ''p'' będzie mniejszy od 5% co jest przesłanką za odrzuceniem hipotezy zerowej. &lt;br /&gt;
&lt;br /&gt;
W przypadku wykonywania serii testów należałoby więc zastosować odpowiednie poprawki, np. [http://www.bmj.com/content/310/6973/170.full korektę Bonferroniego] czy [http://en.wikipedia.org/wiki/False_discovery_rate false discovery rate (FDR)]. Innym rozwiązaniem w analizowanym przez nas problemie jest zastosowanie tzw. statystyk wartości ekstremalnych, które prowadzą do następujących zmian w procedurze:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ol type=&amp;quot;A&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Losowa zmiana kolejności próbek w analizowanych sygnałach (we wszystkich analizowanych kanałach). Jeżeli pomiędzy dwoma sygnałami istnieją jakieś zależności, losowa zamiana próbek doprowadzi do zniszczenia tych związków. W ten sposób uzyskujemy sygnały, które teoretycznie są nieskorelowane.&lt;br /&gt;
&amp;lt;li&amp;gt;	Obliczenie funkcji korelacji dla sygnałów otrzymanych w punkcie A.&lt;br /&gt;
&amp;lt;li&amp;gt;    Zapamiętanie maksymalnej wartości bezwzględnej funkcji korelacji z punktu B (maksimum bierzemy po wszystkich przesunięciach i po wszystkich parach kanałów; dla funkcji autokorelacji, ze względu na jej normalizację do 1 dla zerowego przesunięcia, tam maksymalnych wartości poszukujemy dla przesunięć innych niż 0).&lt;br /&gt;
&amp;lt;li&amp;gt;	Powtórzenie kroków A-C 1000 razy. Uzyskamy w ten sposób rozkład maksymalnych wartości funkcji korelacji możliwych do zaobserwowania dla sygnałów niezależnych.&lt;br /&gt;
&amp;lt;li&amp;gt;    Wyznaczenie 95 centyla rozkładu wartości maksymalnych.&lt;br /&gt;
&amp;lt;li&amp;gt;	Nałożenie na rysunki funkcji korelacji uzyskane w Zadaniu 2 poziomych linii symbolizujących poziom zależności dwóch sygnałów o losowych zależnościach i sprawdzenie, dla których przesunięć &amp;lt;math&amp;gt;\tau &amp;lt;/math&amp;gt; wartości funkcji korelacji przekraczają estymowane progi istotności statystycznej.&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Plik:Korelacje_wzajemne.png|700px|center|thumb|&amp;lt;figure id=&amp;quot;uid9&amp;quot; /&amp;gt;Przykład wyniku analizy korelacji wzajemnych dla sygnału niefiltrowanego z naniesionymi granicami możliwych fluktuacji.]]&lt;br /&gt;
&lt;br /&gt;
==Wzajemna gęstość widmowa sygnałów==&lt;br /&gt;
&lt;br /&gt;
Podobnie jak w przypadku twierdzenia Chinczyna dla pojedynczego sygnału, możliwe jest policzenie transformaty Fouriera funkcji kowariancji. Uzyskana w ten sposób wielkość nazywa się funkcją wzajemnej gęstości mocy widmowej sygnału:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid122&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
S_{xy}(f) = \int _{-\infty }^{\infty }\gamma_{xy}(\tau )e^{-2\pi i f \tau}d\tau &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W celu dalszego omówienia własności funkcji wzajemnej mocy widmowej sygnałów funkcję tę zapiszemy w postaci:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid123&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
S_{xy}(f) = |S_{xy}(f)|e^{i\phi _{xy}(f)}\\&lt;br /&gt;
\\&lt;br /&gt;
\phi _{xy} = \arg(S_{xy}) &lt;br /&gt;
\end{array} &amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&amp;lt;!-- \mathrm{arc\,tg}\left[\frac{\mathrm{Im}(S_{xy}(f))}{\mathrm{Re}(S_{xy}(f))}\right]--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wartość bezwzględna funkcji wzajemnej gęstości mocy widmowej osiąga największą wartość dla '''częstości''', w których sygnały &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;y(t)&amp;lt;/math&amp;gt; są ze sobą skorelowane. Funkcja wzajemnej mocy widmowej sygnałów pozbawiona jest zatem wady, która charakteryzowała funkcję korelacji, to jest problemu z wyznaczeniem czasu transmisji sygnału, w przypadku gdy czas ten zależał od częstości. Przy pomocy funkcji wzajemnej mocy widmowej, czas ten można oszacować przy pomocy fazy tej funkcji &amp;amp;mdash; &amp;lt;math&amp;gt;\phi _{xy}(f)&amp;lt;/math&amp;gt;. Jeśli funkcja wzajemnej mocy widmowej została wyznaczona pomiędzy sygnałami na wejściu i wyjściu układu liniowego, to faza ta reprezentuje przesunięcie fazowe sygnału przy przejściu przez układ. Czas tego przejścia można oszacować za pomocą następującej wyrażenia:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid124&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\tau = \frac{\phi _{xy}(f)}{2\pi f}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Podobnie jak w przypadku funkcji autokorelacji i korelacji wzajemnej, funkcję wzajemnej gęstości mocy widmowej można znormalizować:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;uid125&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
C_{xy}(f) = \frac{S_{xy}(f)}{\sqrt{S_x(f)S_y(f)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Znormalizowaną postać funkcji wzajemnej gęstości mocy widmowej nazywamy funkcją ''koherencji''. &lt;br /&gt;
Koherencja jest wielkością zespoloną. Faza koherencji odzwierciedla różnicę faz pomiędzy dwoma sygnałami. Moduł koherencji reprezentuje stopień synchronizacji sygnałów i zawiera się w przedziale od 0.0 do 1.0. Moduł tej funkcji zawiera się w przedziale od 0 do 1. Wartości 0 odpowiada brak synchronizacji pomiędzy sygnałami, zaś wartości 1 pełna synchronizacja dwóch przebiegów czasowych. Należy również zwrócić uwagę na nazewnictwo - często sam moduł koherencji określany jest jako koherencja, w literaturze anglojęzycznej moduł koherencji posiada jednak odrębną nazwę: Magnitude Square Coherence (MSC). Istotny jest również sposób estymacji modułu koherencji, który wyprowadzono w następnym rozdziale, zaś sam estymator reprezentuje wzór (36).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Zadanie 5===&lt;br /&gt;
Zaimplementuj funkcję obliczającą wzajemną gęstość widmową dla pary kanałów. &lt;br /&gt;
&amp;lt;!--Niech argumentami tej funkcji będą dwa wektory zawierające sygnały, zakres częstości, częstość próbkowania. --&amp;gt;&lt;br /&gt;
Oblicz i narysuj macierz gęstości widmowych (własnych i wzajemnych) dla kolejnych par kanałów (tych samych co w zadaniu 3). Wyniki zaprezentuj w postaci kwadratowej macierzy rysunków. Ponieważ są to funkcje zespolone, dobrze jest zaprezentować osobno ich wartość i fazę. Uzyskane wartości bezwzględne narysuj nad przekątną tej macierzy, a fazę pod przekątną.&lt;br /&gt;
&lt;br /&gt;
===Zadanie 6===&lt;br /&gt;
Przygotuj sygnał dwukanałowy, w którym jako pierwszy sygnał wybierz fragment sygnału EEG (z danych zebranych wcześniej) o długości 2000 próbek, a jako drugiego sygnału użyj tego samego fragmentu EEG, ale opóźnionego o wybraną liczbę (1 - 5) próbek. Oblicz widma wzajemne tych sygnałów i zaprezentuj ich fazy na rysunku. Na podstawie tych widm znajdź wartość przesunięcia czasowego tych sygnałów.&lt;br /&gt;
&lt;br /&gt;
Obliczenia powtórz w przypadku, gdy do drugiego sygnału dodany będzie szum o wariancji równej 0,25 wariancji oryginalnego sygnału.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10833</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10833"/>
		<updated>2024-09-24T12:06:25Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1==&lt;br /&gt;
&lt;br /&gt;
===Procedura ===&lt;br /&gt;
W programie Psychopy przygotuj procedurę w ramach której osoba badana bedzie patrzeć na mogający biały kwadrat na czarnym tle. Częstość migania ma byc wybierana losowo z póli: 5, 12, 15, 20 Hz, wypełnienie ma wynosić 50%. Jedna próba ma trwać 5s. Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości powinny być zapisywane w tagach. dego warunku należy zebrać po 30 powtórzeń. &lt;br /&gt;
&lt;br /&gt;
Pomiar wykonujemy za pomocą następujących elektrod: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. Na podstawie tagów wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą.Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 12 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 12 Hz dla stymulacji pozostałymi częstościami. &lt;br /&gt;
#Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
===Zadanie 2===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Na rysunku zaznacz początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
=Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10832</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10832"/>
		<updated>2024-09-24T10:25:59Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1==&lt;br /&gt;
W programie Psychopy przygotuj procedurę w ramach której osoba badana bedzie patrzeć na mogający biały kwadrat na czarnym tle. Częstość migania ma byc wybierana losowo z póli: 5, 12, 15, 20 Hz. Jedna próba ma trwać 5s. Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości powinny być zapisywane w tagach. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
=Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10831</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10831"/>
		<updated>2024-09-24T10:18:25Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
=Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10830</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10830"/>
		<updated>2024-09-24T10:16:41Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
&amp;lt;!--* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.--&amp;gt;&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10829</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10829"/>
		<updated>2024-09-24T10:13:35Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- =Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
&amp;lt;!--* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.--&amp;gt;&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10828</id>
		<title>Pracownia EEG 2/Potencjały wywołane</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10828"/>
		<updated>2024-09-24T09:58:55Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Potencjały wywołane&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
==Potencjały wywołane==&lt;br /&gt;
=== Wstęp ===&lt;br /&gt;
Potencjały wywołane EEG (ang. ''evoked potentials'', EP) są śladami odpowiedzi mózgu na bodźce. W przypadku MEG poprawnie mówi się o polach wywołanych (ang. ''evoked fields'', EF).&lt;br /&gt;
Zwykle reakcja ta jest mała (wyjątek stanowią [[Elektroencefalografia/Metody_analizy_sygnałów_EEG_-_analiza_w_dziedzinie_czasu |kompleksy K]]) i w zapisie pojedynczej realizacji reakcji na bodziec najczęściej niewidoczna wśród czynności pochodzącej od wielu innych procesów zachodzących w tym samym czasie w mózgu. &lt;br /&gt;
Ich wyodrębnienie z tak zwanego tła EEG/MEG, czyli manifestacji elektrycznej innych, trwających w tym samym czasie w mózgu procesów (aktywny prąd niezależny), wymaga w dniu dzisiejszym zapisu odpowiedzi na szereg powtórzeń tego samego bodźca (&amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;). Pierwsze potencjały wywołane pokazał pod koniec lat 40-tych Dawson (Dawson, 1947) wykonując superpozycję pojedynczych realizacji na kliszy fotograficznej.&lt;br /&gt;
Z czasem skomplikowane urządzenia analogowe zastąpione zostały przez cyfrowe uśrednianie kolejnych fragmentów EEG, zsynchronizowanych według momentu wystąpienia bodźca, łatwo realizowane za pomocą komputera.&lt;br /&gt;
&lt;br /&gt;
[[Grafika:EP.png|thumb|640px|center|&amp;lt;figure id=&amp;quot;fig:EP&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Uśrednianie potencjałów wywołanych. a) ciągły zapis EEG z wyróżnionymi momentami wystąpienia bodźca (w tym przypadku słuchowego) b) kilkadziesiąt kolejnych odcinków, wyciętych jako sekunda EEG od momentu wystąpienia kolejnych bodźców, ustawione jeden pod drugim c) uśredniony potencjał wywołany &amp;amp;mdash; widać m. in. załamek P300 ok. 300 milisekund po bodźcu]]&lt;br /&gt;
&lt;br /&gt;
Techniki te opierają się na założeniu, że zawarta w EEG odpowiedź mózgu na każdy z kolejnych bodźców jest niezmienna, a EEG odzwierciedlające pozostałe procesy traktowane jest jak nieskorelowany z nią proces stochastyczny. Zależnie od rodzaju potencjałów wywołanych, założenia te są mniej lub bardziej nieuzasadnione; podważa je choćby powszechnie znany efekt habituacji, polegający na osłabieniu późnych potencjałów wywołanych kolejnymi powtórzeniami bodźca.&lt;br /&gt;
&lt;br /&gt;
Istota potencjałów wywołanych jest przedmiotem otwartej dyskusji i dziesiątków prac, dotykających od lat podstawowych w tej dziedzinie pytań: czym jest potencjał wywołany, który widzimy w uśrednionym przebiegu? Czy naprawdę wynika z deterministycznie powtarzanej, jednakowej odpowiedzi pojawiającej się po każdym powtórzeniu bodźca niezależnie od &amp;amp;bdquo;tła&amp;amp;rdquo;, czy może wynika z reorganizacji faz tego właśnie &amp;amp;bdquo;tła&amp;amp;rdquo; EEG, czy może kombinacji tych dwóch efektów? Jest to wspaniałe pole dla zastosowań zaawansowanych metod modelowania i analizy sygnałów. W ostatnich latach powstają dziesiątki prac na ten temat, a od czasu do czasu również krytyczne artykuły wykazujące, że dotychczasowe odkrycia są raczej artefaktami stosowanych metod a nie wynikają z własności analizowanych danych (Yeung et al., 2004). Jak widać jest tu wciąż bardzo wiele do zrobienia, gdyż zrozumienie tego mechanizmu stoi na drodze do &amp;amp;bdquo;świętego Graala&amp;amp;rdquo;, którym w tej dziedzinie jest wyodrębnienie pojedynczych potencjałów wywołanych.&lt;br /&gt;
&lt;br /&gt;
Niezależnie od tego, w neurofizjologii klinicznej nazwą potencjał wywołany określa się krzywą widoczną po uśrednieniu odpowiedzi na kilkanaście do kilku tysięcy bodźców (Szelenberger 2000). Gromadzona od dziesięcioleci wiedza o behawioralnych i klinicznych korelatach potencjałów wywołanych opiera się na rozpoznawaniu w przebiegach uśrednionych tak zwanych załamków, czyli przejściowych wzrostów lub spadków potencjału (na przykład na &amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; widać załamek P300). Nazwy załamków składają się zwykle z litery &amp;amp;bdquo;P&amp;amp;rdquo; (od ang. ''positive''), jeśli wychylenie jest dodatnie, lub &amp;amp;bdquo;N&amp;amp;rdquo; (od ang. ''negative''), jeśli wychylenie jest ujemne, oraz liczby. Uwaga: &lt;br /&gt;
* Nie ma niestety jednej ustalonej konwencji prezentacji potencjałów koniecznie trzeba więc zwracać uwagę na orientację wykresu, a wykonując wykres samemu - zamieszczać informację o orientacji kierunku dodatniego,gdyż kierunek dodatni może być wykresie skierowany do góry lub do dołu. &lt;br /&gt;
* Liczba następująca po N lub P określa przybliżoną liczbę milisekund od wystąpienia bodźca, czyli tak zwaną latencję. Nie można jednak ścisłego związku między tą liczbą a liczbą milisekund np. potencjał P300 w zależności od szczegółów paradygmatu doświadczalnego może wystąpić znacznie później. np. w eksperymentach językowych zdarza się że P300 występuje później niż N400 :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;Rys. %i&amp;lt;/xr&amp;gt; przedstawia schematycznie najważniejsze załamki rozpoznawane w potencjałach słuchowych, czyli wywoływanych bodźcem dźwiękowym. Dla potencjałów wzrokowych i somatosensorycznych istnieją podobne klasyfikacje.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Zalamki.png|thumb|320px|right|&amp;lt;figure id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Orientacyjny schemat załamków rozpoznawanych w słuchowych potencjach wywołanych, na podstawie (Szelenberger 2000). Skala czasu logarytmiczna. Najszybsze (do 12 ms) składowe egzogenne to potencjały pniowe (BAEP), oznaczane jako fale I-VII. Litery &amp;amp;bdquo;P&amp;amp;rdquo; i &amp;amp;bdquo;N&amp;amp;rdquo; oznaczają dodatnie i ujemne wychylenia związane z dalszymi załamkami]]&lt;br /&gt;
&lt;br /&gt;
Najszybsze (czyli o najmniejszej latencji) składowe to potencjały egzogenne, odzwierciedlające wstępne fazy przetwarzania informacji. W potencjałach słuchowych są to potencjały pnia (ang. ''brainstem auditory evoked potentials'', BAEP), składające się z siedmiu fal występujących pomiędzy 1 a 12 ms od bodźca. Są one generowane np. w nerwie słuchowym czy pniu mózgu, i wykorzystywane w klinicznej diagnostyce integralności dróg słuchowych. Podobnie jak inne wczesne potencjały o latencjach poniżej 100 ms, są praktycznie niezależne od stanu uwagi.&lt;br /&gt;
&lt;br /&gt;
Po potencjałach o średniej latencji (między 12 a 50 ms) zaczynają się późne potencjały słuchowe (od 100 ms od podania bodźca), odzwierciedlające bardziej złożone reakcje na bodziec. Potencjały ok. 100 ms obserwowane w okolicach sensorycznych odzwierciedlają odpowiedź tejże kory na bodziec. Ich amplituda zależy od parametrów fizycznych bodźca oraz od uwagi, np. amplituda załamka N100 wzrasta w stanie skupienia uwagi czy pobudzenia emocjonalnego. Pierwszy i najpopularniejszy całkowicie endogenny załamek to P300, pojawiający się po rozpoznaniu bodźca oczekiwanego, na którym skupiamy uwagę: na przykład, jeśli w serii pojawiających się losowo liter mamy zliczać wystąpienia jednej z nich, to na średniej odpowiedzi na pojawienie się tej litery pojawi się załamek P300. Załamek ten występuje również w odpowiedzi na bodźce wyczekiwane, niespodziewane i ważne dla osoby (np. własne imię). &lt;br /&gt;
&lt;br /&gt;
=== Uśrednianie w dziedzinie czasu ===&lt;br /&gt;
Jak już było wspomniane powyżej podstawową techniką stosowaną do analizy potencjałów wywołanych jest uśrednianie wielu realizacji odpowiedzi na bodziec wyrównanych względem jakiegoś charakterystycznego zdarzenia, np. momentu podania bodźca albo momentu behawioralnej reakcji na bodziec (np. wciśnięcie przycisku). Podejście to bazuje na trzech założeniach:&lt;br /&gt;
* Reakcja jest czasowo związana z bodźcem. Tzn. w kolejnych realizacjach występuje ona zawsze z tym samym opóźnieniem.&lt;br /&gt;
* Reakcja na bodziec skutkuje zawsze pojawieniem się w sygnale składowej o stałym kształcie (mówimy o stałej morfologii).&lt;br /&gt;
* Spontaniczna czynność EEG &amp;amp;mdash; ta która nie dotyczy przetwarzania interesującego nas bodźca &amp;amp;mdash; jest niezależnym, stacjonarnym szumem o średniej zero.&lt;br /&gt;
&lt;br /&gt;
Zgodnie z powyższymi założeniami mierzony w ''i''-tej realizacji sygnał można wyrazić jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Uśrednianie po ''N'' realizacjach daje:&lt;br /&gt;
: &amp;lt;math&amp;gt;\bar x (t) = \frac{1}{N} \sum_{i=1}^N x_i(t) = \frac{1}{N} \left(N s(t) + \sum_{i=1}^N n_i(t) \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
Wartość oczekiwana średniego sygnału wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[ \bar x(t) \right] = s(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż dla szumu o średniej zero mamy:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[\frac{1}{N} \sum_{i=1}^N n_i(t)\right] = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
Wariancja &amp;lt;math&amp;gt;\bar x(t)&amp;lt;/math&amp;gt; wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \mathrm{E} \left[  \left( \frac{1}{N} \sum_{i=1}^N n_i(t)\right)^2 \right] \approx \frac{1}{N} \sigma^2_{n(t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; jest deterministyczne. &lt;br /&gt;
&lt;br /&gt;
Dla potencjałów pojawiających się w pierwszych kilkudziesięciu milisekundach po bodźcu model ten można uznać za poprawny, gdyż wykazują one zależność głównie od parametrów fizycznych bodźca. Dla późniejszych składowych staje się on coraz bardziej wątpliwy ze względu na występujące korelacje ze stanem (np. uwagi) badanego.&lt;br /&gt;
&lt;br /&gt;
Dla późniejszych składowych można by postulować bardziej ogólną wersję modelu potencjału wywołanego:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s_i(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Ten model uwidacznia, że do opisu potencjału wywołanego potrzebna jest nie tylko średnia, ale i wyższe momenty rozkładu (np. drugi moment centralny czyli wariancja).&lt;br /&gt;
&lt;br /&gt;
====Wariancja w przypadku szumu skorelowanego ====&lt;br /&gt;
W poprzednim paragrafie pokazaliśmy, że w przypadku niezależnego szumu wariancja uśrednionego sygnału (w danej chwili czasu) maleje jak  &amp;lt;math&amp;gt;\frac{1}{N}&amp;lt;/math&amp;gt;. Jednak w przypadku gdy kolejne próbki szumu są skorelowane (np. występuje silna aktywność rytmiczna alfa) sytuacja się komplikuje. Intuicyjnie łatwo możemy to sobie wyobrazić w granicznym przypadku. Załóżmy, że tło dla  potencjałów o stałej morfologii stanowi sinusoida. Jeśli będziemy podawać bodźce w odstępach będących wielokrotnością okresu tej sinusoidy to w uśrednianych fragmentach sygnału owa sinusoida jest tak samo powtarzalna jak badany potencjał i uśrednianie nie prowadzi do poprawy stosunku amplitudy sygnału do amplitudy tła. &lt;br /&gt;
&lt;br /&gt;
Stopień zależności pomiędzy próbkami można zmierzyć przy pomocy funkcji autokorelacji. &lt;br /&gt;
Jeśli funkcję autokorelacji przybliżymy przez:&lt;br /&gt;
: &amp;lt;math&amp;gt;R_{xx}(\tau) = \sigma^2 \exp(-\beta |\tau|) \cos(2 \pi f_0 \tau)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;\sigma^2&amp;lt;/math&amp;gt; jest wariancją szumu, &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; jest średnią częstością aktywności rytmicznej, &amp;lt;math&amp;gt;\beta/ \pi&amp;lt;/math&amp;gt; jest szerokością pasma tej czynności, zaś &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; opóźnieniem, to wariancję potencjału wywołanego można wyrazić jako&amp;lt;!-- \cite{Spekreijse_1976}--&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \frac{\sigma^2}{N} \left[ \frac{1-\exp(-2 \beta T)}{1 - 2 \exp(- \beta T) \cos(2 \pi f_0 T) +\exp(-2 \beta T)} \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; jest odstępem między bodźcami. &lt;br /&gt;
Widać stąd, że obecność czynności rytmicznej w tle wpływa na stosunek sygnału do szumu. Z powyższego równania widać, że stosunek wariancji dąży do &amp;lt;math&amp;gt;\frac{\sigma^2}{N}&amp;lt;/math&amp;gt; gdy &amp;lt;math&amp;gt;\beta T&amp;lt;/math&amp;gt; staje się duże.  &lt;br /&gt;
&lt;br /&gt;
Periodyczna stymulacja może ponadto prowadzić do wzbudzenia czynności rytmicznej o częstości równej częstości pobudzania bądź jej harmonicznej.&lt;br /&gt;
&lt;br /&gt;
===Wariancja latencji===&lt;br /&gt;
&lt;br /&gt;
Jedną z form zmienności potencjału wywołanego w pojedynczych realizacjach jest wariancja latencji. &lt;br /&gt;
[[Grafika:Wariancja_latencji.png|thumb|500px|right|&lt;br /&gt;
Czerwona linia: Uśrednianie 100 potencjałów wywołanych o latncjach z rozkładu normalnego N(300,30 ), Niebieskie linie: przykładowe pojedyncze realizacje wzięte do średniej]]# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
Zmienność latencji prowadzi do:&lt;br /&gt;
* zmniejszenia amplitudy &amp;lt;math&amp;gt;\bar x&amp;lt;/math&amp;gt;&lt;br /&gt;
* wzrostu rozciągłości czasowej załamka&lt;br /&gt;
&lt;br /&gt;
O tych konsekwencjach zmienności latencji należy w szczególności pamiętać porównując średnie potencjały uzyskane w różnych warunkach eksperymentalnych. Gdy zauważymy, że średnie potencjały różnią się amplitudą należy rozważyć możliwość, że w istocie warunki eksperymentalne wpływają na różnice w wariancji latencji. &lt;br /&gt;
&lt;br /&gt;
Naturalne jest, że zmienność latencji jest bardziej widoczna w przypadku załamków trwających krótko niż w przypadku załamków trwających długo. Wariancja latencji rożnie wraz z jej wartością, stąd wśród późnych składowych potencjałów wywołanych nie obserwuje się komponentów krótkotrwałych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Habituacja ===&lt;br /&gt;
Zmienność w odpowiedziach na kolejno występujące po sobie bodźce można podzielić na komponent stochastyczny i deterministyczny. Komponent deterministyczny odzwierciedla zmianę czułości  układu nerwowego  na kolejne bodźce. Nowy bodziec często wywołuje reakcje pobudzenia widoczną w wielu parametrach takich jak przewodnictwo skóry, rytm serca i reaktywność kory mózgowej. Powszechnie obserwowanym zjawiskiem jest spadek reaktywności na powtarzające się bodźce zwany habituacją. Niekiedy obserwuje się także zjawisko przeciwne &amp;amp;mdash; wzrost reaktywności na bodziec &amp;amp;mdash; zwane sensytyzacją. &lt;br /&gt;
&lt;br /&gt;
Klasycznym sposobem na badanie tych zjawisk w potencjałach wywołanych jest uśrednianie w podzbiorach lub  uśrednianie blokowe. Wymaga ono  zmiany paradygmatu rejestracji danych. Załóżmy, że interesującym nas bodźcem jest błysk światła. Chcemy zaobserwować ewentualne zmiany amplitudy i latencji w ciągu 100 potencjałów będących reakcją na błysk powtarzający się co 500 ms.&lt;br /&gt;
====Uśrednianie w podzbiorach ====&lt;br /&gt;
W metodzie tej musimy założyć, że proces habituacji jest powolny, tzn. zmiany pomiędzy kolejnymi reakcjami są bardzo małe. W takim przypadku możemy podzielić długą serię bodźców na ciąg pod-serii i uśrednienie przeprowadzić dla każdej pod-serii osobno.&lt;br /&gt;
[[Plik:Usrednianie_podzbiory.svg‎|640px|thumb|center|Ilustracja uśredniania w podzbiorach]]&lt;br /&gt;
&lt;br /&gt;
====Uśrednianie blokowe====&lt;br /&gt;
W tym celu eksperyment wykonujemy w wielu seriach. Jedna seria składa się ze 100 błysków powtarzanych co 500 ms.  Po serii następuje przerwa trwająca np. 5 s (długość przerwy wyraża nasze oszacowanie czasu potrzebnego na zanik habituacji). Po przerwie seria jest powtarzana. Powtórzeń serii wykonujemy ''N''.&lt;br /&gt;
Następnie uśredniamy fragmenty sygnałów odpowiadające sobie w kolejnych seriach. &lt;br /&gt;
&lt;br /&gt;
W tym paradygmacie zakładamy, że każda seria rejestrowana jest w tych samych warunkach. Zaniedbujemy efekty związane ze zmęczeniem i zmianami w np. stopniu koncentracji badanego.&lt;br /&gt;
[[Plik:Usrednianie blokowe.svg|Usrednianie blokowe.svg|640px|thumb|center|Ilustracja uśredniania w blokach]]&lt;br /&gt;
&lt;br /&gt;
===Załamki w krzywej potencjału wywołanego vs ukryte komponenty===&lt;br /&gt;
Komponenta potencjału wywołanego to bardzo ważne ale jednocześnie źle określone pojęcie. Krzywa otrzymana w wyniku uśredniania potencjałów wywołanych przedstawia serię załamków dodatnich i ujemnych, ale trzeba być świadomym, że ten przebieg napięcia rejestrowany przez elektrody przedstawia tak naprawdę sumę potencjałów pochodzących od wielu dość niezależnie działających źródeł w mózgu. Przyczynek pochodzący od jednego funkcjonalnego źródła będziemy określać jako komponentę. &lt;br /&gt;
&lt;br /&gt;
Komentarza wymaga też pojęcie źródła funkcjonalnego. Czynność elektryczną synchronicznie działających neuronów piramidalnych w określonym fragmencie kory mózgowej z pewnej odległości można przybliżyć potencjałem dipola prądowego. Taki aktywny fragment kory stanowi źródło dające przyczynek do mierzonego na powierzchni głowy potencjału. W najprostszej sytuacji taki przyczynek może być obserwowany jako komponenta. Mózg jest jednak obiektem niezwykle złożonym i gęsto połączonym. Wiele obszarów korowych może być funkcjonalnie połączonych i aktywowanych synchronicznie w celu realizacji określonego zadania &amp;amp;mdash; o takim funkcjonalnym zespole też możemy myśleć jako o pojedynczym źródle, choć może ono mieć złożoną strukturę przestrzenną. Często zatem myślimy o komponentach ukrytych potencjału wywołanego jako o aktywności takich funkcjonalnych zespołów. &lt;br /&gt;
&lt;br /&gt;
Po tym wstępie widać już chyba, że do zrozumienia co dzieje się w czasie reakcji na bodziec, którą obserwujemy w potencjale wywołanym, bardziej pożądane byłoby badanie komponent ukrytych niż poszczególnych załamków krzywej potencjału wywołanego, która stanowi ważoną sumę owych komponentów. Zanim przejdziemy do omówienia technik służących &amp;amp;bdquo;wyłuskiwaniu&amp;amp;rdquo; komponent prześledźmy kilka symulacji i wnioski z nich płynące.&lt;br /&gt;
&lt;br /&gt;
==== Załamki i komponenty nie są tym samym.====&lt;br /&gt;
Tę samą krzywą można otrzymać na nieskończenie wiele sposobów  przez sumowanie rożnych kombinacji domniemanych komponentów. Przykładowy rysunek pokazuje, jak tę samą krzywą można złożyć z dwóch rożnych zestawów komponentów (kod wytwarzający przykładową symulację pokazany jest poniżej).&lt;br /&gt;
[[Plik:Sumowanie_komponentow1.png|center|thumb|600px| Panel a) przedstawia hipotetyczną krzywą ERP, panel b) jedna z możliwych dekompozycji sygnału w panelu a), panel c) inna możliwa dekompozycja sygnału z panelu a) ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==ICA==&lt;br /&gt;
Popularna w ostatnich latach metoda &amp;quot;czyszczenia&amp;quot; sygnału z artefaktów opiera się na analizie składowych niezależnych.&lt;br /&gt;
&lt;br /&gt;
Analiza składowych niezależnych (ang. ''Independent Components Analysis'',&lt;br /&gt;
ICA) to jedno z określeń dla metod rozwiązywania problemu tzw. ślepej&lt;br /&gt;
separacji źródeł (''blind source separation, BSS''). Przyjęty model&lt;br /&gt;
zakłada, że mamy do czynienia z następującą sytuacją: dane którymi&lt;br /&gt;
dysponujemy (&amp;lt;math&amp;gt;\vec{x}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. zapisy z kilku mikrofonów)&lt;br /&gt;
są liniową mieszaniną kilku statystycznie niezależnych sygnałów&lt;br /&gt;
(&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. głosy kilku mówiących jednocześnie osób,&lt;br /&gt;
tzw. ''cocktail party problem''): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
\vec{x} = A \vec{s}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; zwiemy macierzą mieszającą, a&lt;br /&gt;
rozwiązania szukamy w postaci macierzy separującej &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, takiej, że wektor sygnałów &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \vec{y}=B\vec{x}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
jest możliwie bliski (nieznanym) sygnałom&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt;.  Wymóg niezależności statystycznej elementów&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{y}&amp;lt;/math&amp;gt; wymaga uwzględnienia statystyk rzędów wyższych&lt;br /&gt;
niż 2, czyli korelacji (używanych w PCA). Przetwarzanie wstępne&lt;br /&gt;
polega często na wyzerowaniu statystyk do rzędu 2, czy odjęciu&lt;br /&gt;
średniej i obrocie diagonalizującym macierz kowariancji (zwykle&lt;br /&gt;
PCA). Uzyskanie w prosty sposób dekorelacji ułatwia działanie procedur&lt;br /&gt;
realizujących dalsze wymagania niezależności. Realizowane są one&lt;br /&gt;
zwykle z pomocą sztucznych sieci neuronowych o specjalnie dobieranych&lt;br /&gt;
regułach uczenia.&lt;br /&gt;
&lt;br /&gt;
Procedura usuwania artefaktów polega na zerowaniu komponentów, które zidentyfikujemy -- na przykład na podstawie kształtu, widma i rozkładu przestrzennego -- i odtwarzaniu sygnału z pominięciem tych komponentów. Procedura jest zaimplementowania w programie Svarog, którego aktualną wersję można ściągnąć stąd: https://braintech.pl/software/svarog-streamer/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Zadanie 1: Rejestracja i analiza potencjałów wzrokowych=&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 1. Obserwacja bodźca wzrokowego  ===&lt;br /&gt;
 &lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
* Paradygmat: z odległości około 40 cm badany obserwuje wyświetalny na ekranie biały kwadrat. Bodźce trwają 300 ms i  powtarzają się co 0,5 sekundy. Bodziec poprzedza punkt fiksacji pokazywany przez 300 ms. Natężenie bodźca ma przyjąć jedną z 4 wartości (manipulujemy jego przeźroczystością: 1, 0,7, 0,3 i 0,1, gdzie 1 oznacza brak przeźroczystości). Każda z intensywności bodźca ma pojawić się 100 razy podczas badania, bodźce podawane mają być w sposób losowy. Zadanie poprzedza krótka instrukcja, a kończy podziękowanie. &lt;br /&gt;
&lt;br /&gt;
* Pomiar&lt;br /&gt;
**Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 10 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%. [[Plik:Glowka10-20 ERPy.svg|thumb|600px|right]]&lt;br /&gt;
** Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
** Montujemy także elektrody M1 i M2 i FCz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# W sygnale wyszukujemy wzrokowo odcinki z artefaktami i oznaczamy je tagami w SVAROGu.&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +800 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# W przypadku, gdy dane są zanieczyszczone wieloma mrugnięciami (zwłaszcza tylnych okolicach), należy skorzystać z metody ICA w SVAROGU, informacje tutaj: [https://brain.fuw.edu.pl/edu/index.php/Pracownia_EEG/EEG_spoczynkowe#ICA_.28.C4.87wiczenie_dodatkowe.29])&lt;br /&gt;
# Porównujemy zestawy danych otrzymane po wzrokowym i automatycznym (metodą opisaną powyżej) usunięciu artefaktów.&lt;br /&gt;
# Uśredniamy wycięte sygnały.&lt;br /&gt;
# Rysujemy średni potencjał we wszystkich kanałach.&lt;br /&gt;
# Pierwszy sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 jako różnicę między ekstremalną wartością załamka N2 a ekstremalną wartością załamka N2. &lt;br /&gt;
# Drugi sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 w stosunku do zera. &lt;br /&gt;
# Porównujemy uzyskane amplitudy w 4 warunkach za pomocą odpowiedniego testu statystycznego (porównanie warunków ze skrajnymi wartościami amplitudy) &amp;amp;mdash; zastosuj test permutacyjny (opisany poniżej) lub test t-Studenta/nieparametryczny odpowiednik). &lt;br /&gt;
&lt;br /&gt;
**Opis testu permutacyjnego &lt;br /&gt;
Pytanie: Czy intensywność bodźca wpływa na amplitudę potencjału P1?&lt;br /&gt;
Jak stwierdzić czy amplitudy załamków P1 istotnie różnią się pomiędzy seriami?&lt;br /&gt;
&lt;br /&gt;
Musimy przeprowadzić test statystyczny. Możemy skonstruować go np. tak:&lt;br /&gt;
Mamy dwa warunki I i II. Jako statystykę przyjmiemy różnicę pomiędzy amplitudą załamka zmierzoną w serii z dwoma diodami (P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt;) a amplitudą zmierzoną w serii z jedną diodą (P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;):&lt;br /&gt;
: ''S'' = P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt; &amp;amp;minus; P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;&lt;br /&gt;
Postawmy hipotezę zerową, że nie ma różnicy w amplitudzie pomiędzy warunkiem II a I oraz hipotezę alternatywną, że różnica taka występuje.&lt;br /&gt;
: H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;: ''S'' = 0&lt;br /&gt;
: H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;: ''S'' &amp;amp;ne; 0&lt;br /&gt;
Zgodnie z H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; dla wartości ''S'' nie ma różnicy czy realizacja została zarejestrowana w warunkach I czy II, zatem można losowo poprzypisywać numery warunków do realizacji i w ten sposób uzyskać rozkład statystyki ''S'' pod warunkiem prawdziwości H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, czyli obliczyć średnie potencjały dla &amp;amp;bdquo;pomieszanych&amp;amp;rdquo; tagów, wyliczyć średnie potencjały dla sztucznie wygenerowaych grup, i wyliczyć różnicę amplitud dla tych średnich, czyli wartość statystyki dla hipotezy H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Zaimplementuj test permutacyjny zgodny z powyższą koncepcją.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===Wersja 2: obserwacja habituacji / uśrednianie w blokach ===&lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje błyski diody. &lt;br /&gt;
#* Błyski powtarzają się co 0,5 sekundy. &lt;br /&gt;
#* Rejestrujemy 60 serii po 15 błysków.  &lt;br /&gt;
#* Pomiędzy seriami badany odpoczywa około 10 sekund.&lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrodę FCz (na linii centralnej pomiędzy Fz a Cz), będziemy jej używać w montażu i w czasie analizy jako referencji.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 0,1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +600 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy wycięte sygnały o tym samym numerze wewnątrz serii.&lt;br /&gt;
# Rysujemy serie 15 uśrednionych potencjałów dla tego kanału, który wykazywał najsilniejszy potencjał w pierwszej wersji eksperymentu. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 2: rejestracja i analiza potencjału P3 ===&lt;br /&gt;
====Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje kwadrat, który występuje w dwóch kolorach. &lt;br /&gt;
#* Bodźce trwają 300 ms, poprzedzane punktem fiksacji wyświetlanym na 300 ms, przerwa między próbami jest losowana i wynosi od 0.8-1.2 s.  &lt;br /&gt;
#* Proporcja wystapień bodźców koloru pierwszego i drugiego wynosi 1:5.   &lt;br /&gt;
#* Zadaniem badanego jest liczenie kwadratów w rzadkim kolorze. &lt;br /&gt;
#* Wykonujemy tyle realizacji aby zarejestrować 100 powtórzeń bodźców rzadkich. &lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrody M1 i M2, będziemy ich używać w montażu i w czasie analizy jako referencji typu połączone uszy.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +900 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy osobno realizacje dla każdego koloru kwadratu. &lt;br /&gt;
# Nakładamy na siebie na rysunkach oba typy średnich.&lt;br /&gt;
# Wyznaczamy amplitudę P3 i liczymy test statystyczny pomiędzy warunkami.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Ćwiczenie dodatkowe: P300 BCI==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy elektrody z systemu 10-10 umieszczone nad korą wzrokową: P07, O1, O2, PO8, PO3, PO4, Pz, Cz.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
obci_gui --presets eeg_workshop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i z guzika &amp;amp;bdquo;select amplifier&amp;amp;rdquo; wybieramy właściwy wzmacniacz.&lt;br /&gt;
&lt;br /&gt;
Do kontroli jakości sygnału możemy uruchomić Svaroga.&lt;br /&gt;
&lt;br /&gt;
Dane z kalibracji zapisują się w pliku test1 w katalogu domowym użytkownika, z labiryntu w pliku test2.&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu kalibracji pojawia się napis &amp;amp;bdquo;Trwają obliczenia&amp;amp;rdquo; lub podobny. Odczekujemy kilka minut, aż skończy się peer &amp;amp;bdquo;Calibration&amp;amp;rdquo; (widoczny w obci_gui) i zamykamy okienko klawiszami Alt-F4 lub zatrzymując scenariusz guzikiem &amp;amp;bdquo;Stop&amp;amp;rdquo;. W katalogu domowym pojawi się plik z wynikami kalibracji, co pozwala na uruchomienie scenariusza &amp;amp;bdquo;labirynt&amp;amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Po zebraniu danych, przed wczytaniem ich do Svaroga należy w tym samym katalogu uruchomić skrypt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.read_manager import ReadManager&lt;br /&gt;
&lt;br /&gt;
def main(): &lt;br /&gt;
	file_name = 'test1'&lt;br /&gt;
	&lt;br /&gt;
	mgr = ReadManager(&lt;br /&gt;
		file_name + '.obci.xml',&lt;br /&gt;
		file_name + '.obci.raw',&lt;br /&gt;
		file_name + '.obci.tag')&lt;br /&gt;
	&lt;br /&gt;
	tags = mgr.get_tags()&lt;br /&gt;
	for i in xrange(0, len(tags)):&lt;br /&gt;
		if tags[i]['desc']['index'] == tags[i]['desc']['target']:&lt;br /&gt;
			tags[i]['name'] = 'blink_target'&lt;br /&gt;
		else:&lt;br /&gt;
			tags[i]['name'] = 'blink'&lt;br /&gt;
			&lt;br /&gt;
	tags_writer = tags_file_writer.TagsFileWriter(file_name + '.obci.tag')&lt;br /&gt;
	for tag in tags:&lt;br /&gt;
		tags_writer.tag_received(tag)		&lt;br /&gt;
	tags_writer.finish_saving(0)	&lt;br /&gt;
 &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3. Analiza Heartbeat-Evoked Potential (HEP)== &lt;br /&gt;
&lt;br /&gt;
Celem tego zadania jest zaobserwowanie występowania ERP związanego z działaniem serca (szczegóły można doczytać tutaj: [https://www.sciencedirect.com/science/article/pii/S1053811919303738?via%3Dihub]. W zadaniu tym wykorzystany dane spoczynkowe zebrane podczas pierwszej rejestracji. &lt;br /&gt;
* w pierwszym kroku sygnał montujemy i filtrujemy;&lt;br /&gt;
* następnie zaznaczamy fragmenty sygnału, w których widzimy artefakty;&lt;br /&gt;
* w drugim robimy detekcję załamków R z EKG &amp;amp;mdash; po ich podstawie będziemy cieli sygnał (&amp;amp;minus;200-600 ms po R);&lt;br /&gt;
* następnie uśredniamy otrzymane odcinki.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/EEG_spoczynkowe&amp;diff=10827</id>
		<title>Pracownia EEG 2/EEG spoczynkowe</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/EEG_spoczynkowe&amp;diff=10827"/>
		<updated>2024-09-24T09:58:06Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / EEG spoczynkowe, artefakty&lt;br /&gt;
&lt;br /&gt;
==Podstawowe grafoelementy zapisu EEG i ich główne cechy==&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;delta;===&lt;br /&gt;
&lt;br /&gt;
Przebieg rytmu delta zaprezentowano na &amp;lt;xr id=&amp;quot;uid3&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt;. Jest to wysokoamplitudowa aktywność o niskiej częstości (0-4 Hz) i czasie trwania co najmniej 1/4 s. Do celów praktycznych przyjęto, że dolną granicą częstości jest 0,5 Hz. Pojawiające się podczas głębokiego snu fale delta o amplitudzie przekraczającej 75 &amp;amp;mu;V nazywa się falami wolnymi (ang. ''slow wave activity'', SWA). Występowanie SWA spowodowane jest wysoką synchronizacją neuronów kory (większą synchronizację spotyka się tylko podczas ataku epilepsji). Fale delta rejestruje się także podczas głębokiej medytacji, u małych dzieci i w przypadku pewnego rodzaju uszkodzeń mózgu.&lt;br /&gt;
&lt;br /&gt;
[[Plik:SWA.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid3&amp;quot; /&amp;gt;Fale delta  w czasie snu w zapisie polisomnograficznym.]]&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;theta;===&lt;br /&gt;
&lt;br /&gt;
Rytmem teta (ang. ''theta'') (&amp;lt;xr id=&amp;quot;uid9&amp;quot;&amp;gt; rys. %i&amp;lt;/xr&amp;gt;) nazywamy aktywność w paśmie częstości od 3 do 7 Hz i rozpiętości (ang. ''peak-to-peak'') rzędu kilkudziesięciu &amp;amp;mu;V. Charakterystyczne fale teta występują np. w okresie snu płytkiego &amp;amp;mdash; przypuszcza się że w tym czasie następuje przyswajanie i utrwalanie uczonych treści. Fale teta są najczęściej występującymi falami mózgowymi podczas medytacji, transu, hipnozy, intensywnego marzenia, intensywnych emocji. Odmienny rodzaj fal teta jest związany z aktywnością poznawczą, kojarzeniem (w szczególności uwagą), a także procesami pamięciowymi (tzw. rytm FM&amp;amp;Theta; &amp;amp;mdash; ''frontal midline theta''). Jest on obserwowany głównie w przyśrodkowej części przedniej części mózgu.&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
* Rytmiczny przebieg o częstości 3-7 Hz.&lt;br /&gt;
* Najwyższa amplituda w stanie czuwania w okolicach linii środkowej i obszarach skroniowych.&lt;br /&gt;
* Rozkład amplitudy symetryczny na półkulach określonych przez płaszczyznę strzałkową&lt;br /&gt;
Cechy patologiczne:&lt;br /&gt;
* Asymetryczny rozkład amplitudy (dominacja rytmu na jednej półkuli) bądź też jego występowanie w zapisie tylko na jednym odprowadzeniu może świadczyć o patologii.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Fala pila.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid9&amp;quot; /&amp;gt;Przykład rytmu teta we śnie.]]&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;alpha;===&lt;br /&gt;
&lt;br /&gt;
Fala alfa to jedna z najwcześniej zaobserwowanych struktur (grafoelementów) EEG.&lt;br /&gt;
Reprezentuje ona rytmiczną aktywność kory mózgowej w paśmie 8-12 Hz. Występowanie rytmu alfa przypisuje się stanowi relaksu z zamkniętymi oczami. Fale alfa najlepiej widoczne są w odprowadzeniach potylicznych, czyli z okolic kory odpowiadającej za przetwarzanie informacji wzrokowych. Rytm o częstości w paśmie alfa rejestrowany w okolicach kory motorycznej nazywany jest rytmem mi (ang. ''mu''), ze względu na kształt fali przypominającej literę &amp;amp;mu;. Wykazuje on istotny zanik w momencie wykonywania ruchu przez człowieka lub tylko zamierzenia jego wykonania.&lt;br /&gt;
&lt;br /&gt;
Rytm alfa fundamentalne znaczenie w analizie EEG snu. Mimo, że nie występuje podczas właściwego snu to świadczy o „przedsennym” czuwaniu pacjenta, a jej zanik oznacza przejście ze stanu czuwania do płytkiego snu. Fale alfa zanikają także podczas wysiłku umysłowego, np. wykonywaniu działań matematycznych albo przy otwarciu oczu i zadziałaniu na nie światła. Blokowanie rytmu alfa jest wyrazem desynchronizacji aktywności neuronów, zachodzącej pod wpływem koncentracji umysłowej lub stymulacji narządów zmysłów. Przebieg fali alfa zaprezentowano na &amp;lt;xr id=&amp;quot;uid11_a&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt; i  &amp;lt;xr id=&amp;quot;uid11_b&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Alpha.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid11_a&amp;quot; /&amp;gt;Rytm alfa w zapisie polisomnograficznym szczególnie wyraźnie widoczny w odprowadzeniu O2 (referencja do uśrednionego potencjału z uszu).]]&lt;br /&gt;
[[Plik:Alpha_z_widmem.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid11_b&amp;quot; /&amp;gt;Rytm alfa w zapisie polisomnograficznym szczególnie wyraźnie widoczny w odprowadzeniu O2 (referencja do uśrednionego potencjału z uszu). We wstawce widoczna jest estymata widma gęstości mocy z zaznaczonego fragmentu sygnału.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Podstawowy rytm prawidłowego zapisu EEG u dorosłej osoby.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Quasi harmoniczny przebieg o częstości 7-13 Hz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Wzrost amplitudy po zamknięciu oczu, w stanie relaksu czy czuwania z zamkniętymi oczami.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Zanika po otwarciu oczu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Fale alfa najlepiej widoczne są w odprowadzeniach tylnych, czyli z okolic części kory odpowiadającej za przetwarzanie informacji wzrokowych. Czasem jednak może propagować się w kierunku obszarów tylno skroniowych i ciemieniowych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Występuje mniej lub bardziej symetrycznie względem płaszczyzny strzałkowej, zwykle jednak ma większą amplitudę nad półkulą dominującą.&lt;br /&gt;
Zbyt duża asymetria amplitudy rytmu alfa lub też jego brak po jednej stronie zawsze świadczy o jakiejś patologii. Często jednak przyczyną takiej asymetrii jest niewłaściwe umieszczenie elektrod na głowie bądź budowa anatomiczna czaszki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Cechy patologiczne:&lt;br /&gt;
* Częstość rytmu ulega zmniejszeniu pod wpływem takich czynników jak: choroby metaboliczne, wczesne fazy otępienia, leki.&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;mu;===&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Rytmiczny przebieg o częstości od 7-11 Hz, z uwagi na co często mylony z rytmem alfa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Wyraźny przebieg, kształtem przypominający grecką literę &amp;amp;mu;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Zanika w trakcie wykonywania ruchu bądź nawet pod wpływem samego jego wyobrażenia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;beta;===&lt;br /&gt;
[[Plik:EEG_beta_1.png|768px|thumb|&amp;lt;figure id=&amp;quot;uid28&amp;quot; /&amp;gt;Rytm beta. Na osi pionowej &amp;amp;mdash; amplituda w &amp;amp;mu;V, na osi poziomej &amp;amp;mdash; czas.]]&lt;br /&gt;
Fale beta (&amp;lt;xr id=&amp;quot;uid28&amp;quot;&amp;gt;rys.&amp;lt;/xr&amp;gt;) to niskoamplitudowe oscylacje o częstości w przedziale 13-30 Hz. W paśmie beta wyróżnia się następujące przedziały: wolne fale beta (12-15 Hz), właściwe, średnie pasmo beta (15-18 Hz) i szybkie fale beta, o częstości powyżej 19 Hz. Ta mało zsynchronizowana praca neuronów charakteryzuje zwykłą codzienną aktywność kory mózgowej u człowieka, percepcję zmysłową i pracę umysłową. Specyficzna aktywność beta towarzyszy również stanom po zażyciu niektórych leków. Fale beta zazwyczaj występują w okolicy czołowej. Obrazują one zaangażowanie kory mózgowej w aktywność poznawczą. Fale beta o małej amplitudzie występują podczas koncentracji uwagi, gdy mózg nastawiony jest na świadomy odbiór bodźców zewnętrznych za pomocą wszystkich zmysłów.&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Rytmiczny przebieg o częstości od 13 do 30 Hz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Amplituda nie zmienia się pod wpływem otwarcia lub zamknięcia oczu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Najwyższa amplituda w okolicach czołowo-centralnych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Asymetryczny zanik rytmu w trakcie wykonywania ruchu lub nawet jego wyobrażenia. Zanik obserwowalny jest w zapisie EEG z elektrod umieszczonych nad obszarami mózgu odpowiedzialnymi za kończynę wykonującą ruch (kontralatralnie czyli po przeciwnej stronie niż kończyna).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fale &amp;amp;gamma;===&lt;br /&gt;
[[Plik:EEG_gamma_1.png|768px|thumb|&amp;lt;figure id=&amp;quot;uid30&amp;quot; /&amp;gt;Rytm gamma. Na osi pionowej &amp;amp;mdash; amplituda w &amp;amp;mu;V, na osi poziomej &amp;amp;mdash; czas.]]&lt;br /&gt;
Fale gamma (&amp;lt;xr id=&amp;quot;uid30&amp;quot;&amp;gt; rys.&amp;lt;/xr&amp;gt;) to fale mózgowe o częstości w okolicach 40 Hz (30-80 Hz). Aktywność w paśmie 80-200 Hz określa się natomiast jako wysokoczęstotliwościową (ang. ''high'') gammę. Rytm gamma towarzyszy aktywności ruchowej i funkcjom motorycznym. Fale gamma związane są też z wyższymi procesami poznawczymi, m. in. percepcją sensoryczną, pamięcią. Przypuszcza się, że rytm gamma o częstotliwości około 40 Hz ma związek ze świadomością percepcyjną (dotyczącą wrażeń zmysłowych i ich postrzegania) oraz związany jest z integracją poszczególnych modalności zmysłowych w jeden spostrzegany obiekt. Aktywność high-gamma występuje podczas aktywacji kory mózgowej, zarówno przez bodźce zewnętrzne (np. dotykowe, wzrokowe), jak i wewnętrzne (przygotowanie ruchu, mowa). Fale o częstościach 100-250 Hz nazywane są ''ripples''. Rejestruje się je w sygnale z implantowanych mikroelektrod, a wysoko częstościową aktywność ''fast ripples'' (250-600 Hz) w szczególności u pacjentów z epilepsją, w obszarze ogniska epileptycznego.&lt;br /&gt;
&lt;br /&gt;
===Wrzeciona snu===&lt;br /&gt;
&lt;br /&gt;
Wrzeciona snu (ang. ''sleep spindles'') (&amp;lt;xr id=&amp;quot;uid32&amp;quot;&amp;gt; rys.&amp;lt;/xr&amp;gt;) to charakterystyczne struktury zaobserwowane już niemal od samych początków historii pomiarów EEG. Występują podczas umiarkowanie głębokiego snu. Wrzecionami snu nazywamy aktywność o częstości 11-15 Hz i czasie trwania 0,5-1,5 s. Obwiednia tych krótkich salw dość szybkiej aktywności o niewielkiej amplitudzie przypomina kształt wrzeciona. Wrzeciona pojawiają się we wszystkich odprowadzeniach, z tym, że ich amplituda i częstość może się nieznacznie zmieniać przy przejściu od przodu do tyłu głowy (od wrzecion „wolnych” po „szybkie”). Wrzeciona snu mogą występować w parach z kompleksami K.&lt;br /&gt;
&lt;br /&gt;
[[Plik:Wrzeciona.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Trzy wrzeciona snu.]]&lt;br /&gt;
&lt;br /&gt;
===Kompleksy K===&lt;br /&gt;
&lt;br /&gt;
Kompleksy K (ang. ''K-complexes'', w Polsce często nazywane zespołami K), (rys. &amp;lt;xr id=&amp;quot;uid32&amp;quot;&amp;gt; %i&amp;lt;/xr&amp;gt;) mogą pojawiać się pojedynczo lub też w serii po dwa podczas umiarkowanie głębokiego snu. Definiuje się je jako dwufazową (ostry spadek poprzedzony dodatnim maksimum), wysokonapięciową (to największe maksimum strefy), nisko częstotliwościową falę związaną z wrzecionami snu, przy czym jej czas trwania powinien przekraczać 0,5 s. Obecnie wymaga się aby struktury te miały częstość 1-4 cykli/s, amplitudę co najmniej dwa razy większą od średniej amplitudy tła i czas trwania 0,5-2 s. Amplituda kompleksu K jest zazwyczaj największa na czubku głowy. Kompleksy K mogą podczas snu występować spontanicznie lub też w odpowiedzi na bodźce.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:2kompleksy.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Kompleksy K z następującymi po nich wrzecionami snu.]]&lt;br /&gt;
&lt;br /&gt;
===Fale piłokształtne===&lt;br /&gt;
&lt;br /&gt;
Fale piłokształtne (ang. ''sawtooth waves'') pojawiają się w EEG w czasie snu w fazie REM, są to wierzchołkowe, ujemne fale o umiarkowanej częstości i amplitudzie. Z definicji falą piłokształtną nazywa się pojedyncze lub zgrupowane po kilka fale o częstości 6-10 Hz, amplitudzie rzędu kilkudziesięciu &amp;amp;mu;V i wyraźnym kształcie zębów piły.&lt;br /&gt;
&lt;br /&gt;
===Wierzchołkowe fale ostre===&lt;br /&gt;
&lt;br /&gt;
Wierzchołkowe fale ostre (ang. ''vertex sharp waves'') występują pod koniec okresu płytkiego snu. Aktywnością tą określa się ostry potencjał, maksymalny w okolicy wierzchołkowej, ujemny w stosunku do innych pól, o amplitudzie zmiennej, rozpiętości często dochodzącej do 250 &amp;amp;mu;V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Wierzcholkowa fala ostra.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Wierzcholkowa fala ostra.]]&lt;br /&gt;
&lt;br /&gt;
===Iglice===&lt;br /&gt;
&lt;br /&gt;
Iglice (ang. ''spikes''), to termin ograniczony do padaczkopodobnych wyładowań, obserwowanych także w zapisie międzynapadowym EEG. Są to grafoelementy wyraźnie wyróżniające się z czynności podstawowej, z ostrym wierzchołkiem i często następującą po nim falą wolną. Czas trwania iglicy wynosi zazwyczaj od 20 do 70 milisekund, a amplituda co najmniej dwa razy większa o od amplitudy tła w obrębie około 5 sekund.&lt;br /&gt;
&lt;br /&gt;
==Artefakty==&lt;br /&gt;
&lt;br /&gt;
===Niewłaściwie umocowanie elektrod===&lt;br /&gt;
Jednym z bardzo ważnych etapów przed wykonaniem rejestracji czynności elektrycznej mózgu jest umieszczenie na powierzchni głowy elektrod pomiarowych. Elektrody te powinny być rozlokowane zgodnie z wybranym uprzednio standardem (np. 10-20, czy 10-10). Lokalizacja elektrod w badaniu EEG była tematem [[Pracownia_Sygna%C5%82%C3%B3w_Biologicznych/Zajecia_9#Lokalizacja_elektrod_na_powierzchni_g.C5.82owy._System_10-20|IX spotkania na Pracowni Sygnałów Bioelektrycznych]] i nie będzie omawiana już w bieżących materiałach. W tym miejscu zapoznamy się bliżej z konsekwencjami nieprawidłowego umocowania elektrod na głowie badanej osoby. Jak wiemy, poszczególnym obszarom kory mózgowej można przypisać aktywność związaną z określoną czynnością behawioralną, np. w trakcie czuwania z zamkniętymi oczami, w płatach potylicznych powstaje rytmiczna czynność o częstości 7-13 Hz. Z kolei w trakcie planowania bądź wykonywania ruchu zachodzą zmiany w czynności elektrycznej mózgu w obszarach bruzdy Rolanda, nad którą zlokalizowane są miejsca przyłożenia elektrod C3, Cz i C4. Czynność elektryczna mózgu jest bardzo słaba (zwykle wynosi od kliku do kilkudziesięciu &amp;amp;mu;V) i szybko zanika wraz z odległością. Elektroda umieszczona w niewłaściwym miejscu (np. przesunięta o 1 cm względem prawidłowego położenia), nie będzie rejestrować interesującej nas czynności elektrycznej mózgu. Kolejna bardzo istotna kwestia, to przygotowanie skóry w miejscu przyłożenia elektrody. Najbardziej zewnętrzna cześć skóry &amp;amp;mdash; naskórek, jest martwy, zrogowaciały i pokryty tłuszczem. Powoduje to, iż opór elektryczny skóry jest bardzo duży (rzędu M&amp;amp;Omega;) i uniemożliwia rejestrację EEG. Pomiar tego sygnału nie może bowiem odbywać się na drodze &amp;amp;bdquo;radiowej&amp;amp;rdquo;, to jest np. za pomocą elektrody umieszczone w pewnej odległości od powierzchni głowy. Wynika to z warunków brzegowych dla pola elektrycznego na granicy ośrodka przewodzącego i próżni.&lt;br /&gt;
&lt;br /&gt;
Podsumowując, rejestracja sygnału EEG wymaga dobrego kontaktu elektrod ze skórą pacjenta, umożliwiającego przewodzenie prądów elektrycznych, będących wynikiem elektrycznej aktywności mózgu. W szczególności dotyczy to tzw. elektrody GND oraz referencyjnej. Niewłaściwe umocowanie tych elektrod na powierzchni głowy będzie skutkować zakłóceniem pomiaru na wszystkich elektrodach. Odpowiednie schematy połączeń elektrod ze wzmacniaczem EEG znajdują się w [[Elektroencefalografia/Fizyczne_i_techniczne_aspekty_rejestracji_sygnałów_bioelektrycznych#Budowa_elektroencefalografu|skrypcie o EEG]].&lt;br /&gt;
Brak dobrego kontaktu powoduje następujące efekty uboczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;	&lt;br /&gt;
&amp;lt;li&amp;gt;	Tłumienie sygnału (patrz wzór na zajęciach z Pracowni Sygnałów Bioelektrycznych).&lt;br /&gt;
&amp;lt;li&amp;gt;	Zakłócanie pomiaru EEG przez pole elektryczne od sieci zasilającej, widoczne w postaci harmonicznego sygnału o częstości 50 Hz i relatywnie wysokiej amplitudzie w porównaniu z amplitudą sygnału EEG.&lt;br /&gt;
&amp;lt;li&amp;gt;	&amp;amp;bdquo;Trzaskanie elektrod&amp;amp;rdquo;. Polega ono na krótkotrwałym braku kontaktu części elektrody ze skórą. Powoduje to nagłą zmianę potencjału, kształtem przypominającego wyładowania iglicowe, które pełnią ważną rolę w diagnostyce padaczki. Cechą odróżniającą skoki potencjału związane z patologią czynności elektrycznej mózgu, a nieszczelnym kontaktem elektrody ze skórą jest fakt, iż wyładowania związane z niewłaściwym umocowaniem elektrody są widoczne na:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	jednym (uszkodzonym) odprowadzeniu w przypadku odprowadzeń referencyjnych jednobiegunowych;&lt;br /&gt;
&amp;lt;li&amp;gt;	dwóch elektrodach w przypadku odprowadzeń dwubiegunowych.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli zmiana kontaktu ze skórą nie ma gwałtownego charakteru, niewłaściwie zamocowana elektroda może być źródłem powstawania zmian potencjału w zakresie pasm EEG, trudno odróżnialnych od prawdziwej czynności elektrycznej. Jedyną cechą różnicującą ten artefakt od sygnału EEG jest fakt jego występowania na pojedynczej elektrodzie, w przypadku odprowadzeń jednobiegunowych i dwóch sąsiednich kanałach, będących lustrzanymi odbiciami w przypadku odprowadzeń dwubiegunowych.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pocenie się===&lt;br /&gt;
Pocenie się badanej osoby prowadzi do:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Rozpuszczania klejów wodozmywalnych, za pomocą których elektrody przyczepiane są do powierzchni głowy. Pogarsza to kontakt elektrody ze skórą.&lt;br /&gt;
&amp;lt;li&amp;gt;	Tworzenie zwarć pomiędzy elektrodami. Pot składający głównie z wody, soli i innych związków chemicznych dobrze przewodzi prąd. W efekcie następuje redukcja impedancji pomiędzy elektrodami i zmiana wartości mierzonego potencjału.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wymienione powyżej zjawiska prowadzą do powstania w zapisie EEG bardzo wolnych, trwających kilka sekund fal.&lt;br /&gt;
===Mruganie===&lt;br /&gt;
Bardzo silny artefakt, trudny do wyeliminowania z zapisu EEG, mogący się objawić na wszystkich elektrodach, w szczególności zaś widoczny na odprowadzeniach przedczołowych i czołowych. Źródłem tego artefaktu jest występująca pomiędzy rogówką a siatkówką różnica potencjałów (sięgająca wartości kilku miliwotlów) oraz czynność elektryczna siatkówki o amplitudzie kilku mikrowoltów. W trakcie mrugania gałki oczne skręcają nieznacznie ku górze (tzw. zjawisko Bella) powodując nagły wzrost potencjału elektrycznego. Rogówka posiada potencjał dodatni względem siatkówki, w związku z czym na odprowadzeniach przedczołowych i czołowych obserwuje się wychylenie potencjału w kierunku dodatnich wartości względem potencjału na innych elektrodach. Zwiększony potencjał na elektrodach czołowych utrzymuje się tak długo, jak skręcone ku górze pozostają gałki oczne.&lt;br /&gt;
Powrót gałek do pozycji spoczynkowej powoduje redukcję potencjału na przednich elektrodach. Zmiana sygnału związana z artefaktem od gałki ocznej ma zatem charakter &amp;amp;bdquo;schodka&amp;amp;rdquo;, jednakże filtry w które wyposażony jest wzmacniacz EEG powodują rozmycie i wygładzenie tego zaburzenia, które przyjmuje łatwo rozpoznawalny kształt. Artefakt ten jest na tyle silny, iż pomimo losowego występowania, uśrednianie sygnałów EEG mierzonych w trakcie powtarzania tego samego paradygmatu doświadczalnego nie redukuje jego amplitudy w sposób zadowalający. Środkami mogącymi zmniejszyć jego występowanie jest przewidzenie w trakcie eksperymentu przerw na &amp;amp;bdquo;wymruganie&amp;amp;rdquo;, używanie środków nawilżających oczy (najlepiej w postaci żeli, które długo pozostają na gałce), lekkie zmrużenie oczu.&lt;br /&gt;
[[Plik:Artefakt_mrugnięcia.png|center|thumb| 800px|Mrugnięcia]]&lt;br /&gt;
&lt;br /&gt;
===Ruchy gałek ocznych na boki===&lt;br /&gt;
Źródło powstawania tych artefaktów jest takie samo jak w przypadku mrugania. W wyniku różnic potencjałów pomiędzy siatkówką a rogówką, zmiana orientacji gałki ocznej w przestrzeni powoduje zmianę pola elektrycznego i jego potencjału, który mierzymy. W przypadku skręcenia oczami w prawą stronę, nastąpi wzrost mierzonego potencjału na elektrodzie skroniowej prawej &amp;amp;mdash; F8 (dodatnio naładowana część gałki przybliża się do tej elektrody) i jego spadek na elektrodzie leżącej po przeciwnej stronie głowy &amp;amp;mdash; F7 (dodatnio naładowana część gałki odsuwa się do tej elektrody). Dzięki temu artefakt ten jest łatwo rozpoznawalny. U osób z oczopląsem artefakt ten występuje rytmicznie z częstością oczopląsu. Należy również pamiętać, że ruchy gałek ocznych są sterowane mięśniami, w związku z czym nagłe i silne ruchu gałek na boki będą powodowały występowanie wyładowań iglicowych związanych z czynnością mięśni. Amplituda tych wyładowań osiągnie największą wartość na elektrodach F8 i F7.&lt;br /&gt;
[[Plik:Artefakt_ruch_oczu_w_poziomie.png|center|thumb| 800px|Artefakt wywołany ruchem gałek ocznych w poziomie.]]&lt;br /&gt;
&lt;br /&gt;
===Elektryczna Czynność Mięśni &amp;amp;mdash; EMG===&lt;br /&gt;
Na głowie człowieka znajdują się mięśnie, bądź przyczepy mięśni odpowiedzialnych głównie za mimikę twarzy, ruchy gałek ocznych czy ruchy szczęki. W związku z powyższym artefakty mięśniowe najsilniej będą rejestrowane przez elektrody czołowe oraz skroniowe (przednie i środkowe). Artefakty te są znaczne silniejsze niż zapis EEG (mogą dochodzić do kilku mV), zaś ich widmo w niskich częstościach pokrywa się z pasmem beta i gamma w EEG. Powstawaniu artefaktów EMG sprzyja: niewłaściwe oświetlenie laboratorium (co powoduje mrużenie oczu), niewygodna dla pacjenta pozycja &amp;amp;mdash; brak oparcia dla głowy, brak oparcia dla rąk i nóg, wykonywane testy wymagające uwagi i koncentracji. W tym ostatnim przypadku, w trakcie rozwiązywania takiego testu, cześć spośród badanych osób ma tendencję do marszczenia czoła, czy mrużenia oczu.&lt;br /&gt;
[[Plik:Artefakt_marszczenie_czola.png|center|thumb| 800px|Marszczenie czoła.]]&lt;br /&gt;
[[Plik:Artefakt_napiecie_miesni_rak.png|center|thumb| 800px|Artefakt wywołany napięciem mięśni rąk.]]&lt;br /&gt;
[[Plik:Artefakt_zacisniecie_zebow.png|center|thumb| 800px|Artefakt wywołany zaciskaniem zębów.]]&lt;br /&gt;
&lt;br /&gt;
===Czynność elektryczna serca===&lt;br /&gt;
Artefakt ten pojawia się najczęściej rytmicznie wraz z czynnością elektryczną serca i przyjmuje charakterystyczny dla niego kształt. Zdarza się jednak, że nie każdy kolejny cykl pracy serca zostanie zmierzony przez elektrody EEG. Wtedy artefakt ten może być pomylony z wyładowaniami iglicowymi. Najlepszą metodą detekcji tego artefaktu jest jednoczesny pomiar EEG i EKG. Zakłócenie związane z EKG objawia się najsilniej na elektrodzie, które została umieszczona tuż nad jakąś tętniczką. Często to ma miejsce w przypadku gdy jako elektrodę referencyjną wybrano elektrodę umieszczoną na wyrostku sutkowatym (za uszami), gdzie u wielu osób przebiega właśnie mała tętniczka. Sygnały z kanałów referencyjnych odejmowane są od sygnałów zarejestrowanych od pozostałych kanałów co będzie w oczywisty sposób prowadzić do &amp;amp;bdquo;rozpowszechniania się&amp;amp;rdquo; artefaktu EKG po wszystkich elektrodach. O ile to możliwe, należy zmienić nieznacznie pozycję elektrody, tak aby nie znajdowała się ona nad tętniczką.&lt;br /&gt;
&lt;br /&gt;
===Żucie, ruchy języka===&lt;br /&gt;
Artefakt związany z żuciem to głównie potencjały od czynności elektrycznej mięśni o częstości występowania skorelowanej z rytmicznie powtarzającym się ruchem szczęk. &lt;br /&gt;
[[Plik:Artefakt_zucie.png|center|thumb| 800px|Artefakt wywołany żuciem.]]&lt;br /&gt;
&lt;br /&gt;
===Drżenie kończyn===&lt;br /&gt;
&lt;br /&gt;
Drżenie kończyn może być spowodowane chorobą (np. Parkinsona) lub długotrwałym siedzeniem w mało komfortowej pozycji. Ruchy kończyn będą wywoływały także ledwo zauważalne ruchy głowy. W sytuacji, gdy badana osoba cierpi na chorobę Parkinsona, drżenia kończyn prowadzą do powstania rytmicznej fali o częstości 5-6 Hz przypominającej wyładowania padaczkowe. W celu lepszej detekcji tego artefaktu wskazane jest rejestrowanie czynności EMG.&lt;br /&gt;
&lt;br /&gt;
===Artefakty związane z ruchem badanej osoby.===&lt;br /&gt;
Wywołane są dowolnymi ruchami głowy i ciała badanej osoby i związaną z nimi czynnością elektryczną mięśni. Powstałe potencjały są szerokopasmowe i mają znaczne amplitudy. Ruchy badanej osoby prowadzą do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	ruchu elektrod, a w związku tym pogorszenia ich kontaktu ze skór, a nawet oderwania elektrod od skóry;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zmiany strumienia pola elektromagnetycznego przechodzącego przez pętle utworzone przez elektrody i wzmacniacz. Zgodnie z prawem indukcji Faradaya, zmiana strumienia w czasie spowoduje powstaje siły elektromotorycznej.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Plik:Artefakt_ruch_glowa.png|thumb|800px|center|Artefakt wywołany ruchem głowy.]]&lt;br /&gt;
&lt;br /&gt;
===Redukcja artefaktów===&lt;br /&gt;
Kilka rad umożliwiających redukcję artefaktów, bądź ich lepsze rozpoznanie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zadbać o położenie wzmacniacza EEG z dala od innych urządzeń i kabli. Umieścić go na podkładce z tworzywa;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zadbać o komfortową pozycję dla pacjenta;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	mierzyć czynność EKG, EMG i elektrookulogram wraz z EEG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	sporządzać notatki na temat zachowania się pacjenta (jeśli mamy możliwość obserwowania go) &amp;amp;mdash; kiedy się poruszał, czy ktoś do niego podszedł np. celem poprawienia jakiegoś elementu układu eksperymentalnego.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1: Rejestracja EEG z artefaktami ==&lt;br /&gt;
&lt;br /&gt;
=== Przypomnij sobie:===&lt;br /&gt;
* [[Pracownia_Sygnałów_Biologicznych/Zajecia_9#Procedura_zak.C5.82adania_czepka.|procedurę zakładania czepka]] na głowie &lt;br /&gt;
* [[Pracownia_Sygnałów_Biologicznych/Zajecia_9#Oczyszczanie_sk.C3.B3ry_w_miejscu_przy.C5.82o.C5.BCenia_elektrody|przygotowanie skóry głowy]]&lt;br /&gt;
* [[Elektroencefalografia/Fizyczne_i_techniczne_aspekty_rejestracji_sygnałów_bioelektrycznych#Praktyczne_uwagi_dotycz.C4.85ce_przeprowadzania_rejestracji_sygna.C5.82u_EEG|techniczne uwagi]] dotyczące pomiaru EEG.&lt;br /&gt;
&lt;br /&gt;
=== Rejestracja ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;li&amp;gt;	Dokonaj przynajmniej 15-minutowego zapisu EEG w systemie 10-20, jako elektrody referencyjne wybierz elektrody uszne. Jednocześnie wraz z rejestracją EEG dokonaj pomiaru sygnału EKG z [[Pracownia_Sygnałów_Biologicznych/Zajecia_2_4|odprowadzenia I Einthovena]], EMG z szyi oraz elektrookulogamu. W trakcie pomiaru, w wybranych chwilach czasu wykonaj:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;	mrugnięcie,&lt;br /&gt;
	&amp;lt;li&amp;gt;	żucie,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch oczu w prawo,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch oczu w lewo,&lt;br /&gt;
	&amp;lt;li&amp;gt;	zmarszczenie czoła,&lt;br /&gt;
	&amp;lt;li&amp;gt;	zaciśnięcie zębów,&lt;br /&gt;
	&amp;lt;li&amp;gt;	napięcie mięśni szyi,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch głową&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wszystkie powyższe czynności powinny być odseparowane od siebie w czasie. Osoba biorąca razem z Tobą udział w eksperymencie powinna dokładnie zanotować moment wykonywania przez Ciebie kolejnych ruchów. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Praca z sygnałami===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Po zakończeniu rejestracji otwórz w SVAROGu z pliku zapisany sygnał. Obejrzyj dokładnie zarówno 2-minutowe odcinki sygnału pomiędzy wykonywanymi ruchami jak i w momencie wykonywania ruchów. Przygotuj w SVAROGU oznaczenia artefaktów z listy powyżej i oznacz zebrane zestawy danych odpowiednimi tagami. Następnie uzupełnij tabelę charakteryzującą artefakty. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Charakterystyka artefaktów&lt;br /&gt;
|-&lt;br /&gt;
! Artefakt !! Charakterystyka kształtu/ amplitudy  !! Topografia !! Charakterystyka w dziedzinie częstości !! Sposób usuwania z sygnału EEG&lt;br /&gt;
|-&lt;br /&gt;
| mrugnięcie || ... || ...|| ...|| ...&lt;br /&gt;
|-&lt;br /&gt;
| ... || ... || ... || ... || ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10826</id>
		<title>Pracownia EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10826"/>
		<updated>2024-09-24T09:56:59Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Pracownia EEG 2|Pracownia EEG 2]] / Krótkie przypomnienie z anatomii i funkcji mózgu&lt;br /&gt;
&lt;br /&gt;
==Do przypomnienia==&lt;br /&gt;
&lt;br /&gt;
[[Elektroencefalografia/Mózg]]&lt;br /&gt;
&lt;br /&gt;
[[Pracownia Sygnałów Biologicznych/Zajecia 9]]&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10825</id>
		<title>Pracownia EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10825"/>
		<updated>2024-09-24T09:54:53Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Do przypomnienia */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Pracownia EEG 2|Pracownia EEG 2]] / Krótkie przypomnienie z anatomii i funkcji mózgu&lt;br /&gt;
&lt;br /&gt;
==Do przypomnienia==&lt;br /&gt;
&lt;br /&gt;
[[Elektroencefalografia/Mózg]]&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10824</id>
		<title>Pracownia EEG 2/Krótkie przypomnienie z anatomii i funkcji mózgu</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Kr%C3%B3tkie_przypomnienie_z_anatomii_i_funkcji_m%C3%B3zgu&amp;diff=10824"/>
		<updated>2024-09-24T09:53:09Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Utworzono nową stronę &amp;quot; ==Do przypomnienia==  Elektroencefalografia/Mózg&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==Do przypomnienia==&lt;br /&gt;
&lt;br /&gt;
[[Elektroencefalografia/Mózg]]&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Wprowadzenie_do_Psychopy&amp;diff=10823</id>
		<title>Pracownia EEG 2/Wprowadzenie do Psychopy</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Wprowadzenie_do_Psychopy&amp;diff=10823"/>
		<updated>2024-09-24T09:37:40Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Wprowadzenie do Psychopy&lt;br /&gt;
&lt;br /&gt;
==Dlaczego Psychopy== &lt;br /&gt;
&lt;br /&gt;
W badaniach fizjologicznych i psychologicznych bardzo często wykorzystujemy różnego rodzaju procedury, w trakcie których prezentowane są badanego różne bodźce, bądź proszony jest o wykonanie różnych aktywności w odpowiedzi na polecenie bądź prezentowany bodziec. &lt;br /&gt;
Do przygotowania takiej procedury wykorzystywane są dedykowane programy, które umożliwiają łatwe i precyzyjne przygotowanie takiej procedury. Ich największą zaletą jest precyzyjna kontrola czasu prezentacji bodźca i rejestracji reakcji badanego. Dzięki temu możemy monitorować aktywność badanego i ograniczać błąd pomiaru wynikający z opóźnień systemu. &lt;br /&gt;
Jednym z takich programów jest Psychopy - [https://psychopy.org]. Jest to program rozwijany na Uniwersytecie w Nottingham w języku python na licencji GPL3. &lt;br /&gt;
&lt;br /&gt;
==Jak zbudować eksperyment== &lt;br /&gt;
&lt;br /&gt;
=== Gdzie przygotowujemy eksperyment === &lt;br /&gt;
Psychopy daje możliwość przygotowania procedury w klikalnym 'Builderze' bądź bezpośrednio w kodzie w Pythonie. Eksperyment przygotowany w Builderze możemy skompilować do kody pythonowego i tam wprowadzać modyfikacje. Możemy również użyć narzędzia 'Code' i w Builderze dodać fragmenty kodu pythonowego. &lt;br /&gt;
&lt;br /&gt;
===Routine===&lt;br /&gt;
&lt;br /&gt;
W Psychopy podstawową jednostką, z jakiej będziemy budować eksperyment jest 'Routine'. Jest co cegiełka, w ramach której mogą być prezentowane bodźce, wyświetlane instrukcje, rejestrowane reakcje badanego. &lt;br /&gt;
&lt;br /&gt;
W ramach każdej z Routine możemy umieszczać narzędzie do prezentacji bodźców tekstowych (np. słów, instrukcji), obrazków, dźwięków, filmów itd. Możemy też rejestrować relacje badanego za pomocą np. klawiatury, myszki bądź niektórych padów. &lt;br /&gt;
&lt;br /&gt;
Każde z takich narzędzi ma szereg parametrów, które można modyfikować: np. czas rozpoczęcia i zakończenia prezentacji, charakterystykę danego bodźca, np. wielkość, przejrzystość, położenie i orientację na ekranie. Dodatkowo, w wersji Psychopy dostępnej w ZFB (rozwijana jest własna gałąź Psychopy) jest możliwość wysyłania znaczników do sygnału EEG, który rejestrowany jest w SVAROGU. &lt;br /&gt;
&lt;br /&gt;
===Pętle===&lt;br /&gt;
&lt;br /&gt;
Jeżeli prezentację danego bodźca chcemy wielokrotnie potworzyć możemy skorzystać z pętli, w których możemy umieścić pojedynczą Routine bądź całą ich sekwencję. W ramach pętli możemy definiować zmienne, w ramach których, w każdej kolejnej próbie będzie ona przyjmować inną wartość. W ten sposób możemy prezentować na ekranie różne słowa lub obrazki. &lt;br /&gt;
Mamy do dyspozycji również kilka opcji porządku prezentacji bodźców w ramach takiej pętli. Mogą być one pokazywane kolejno (wg. kolejności wartości zmiennej), mogą być losowane bez i ze zwracaniem. Możemy również prezentować podczas eksperymentu tylko podzbiór wartości danej zmiennej.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Wprowadzenie_do_Psychopy&amp;diff=10822</id>
		<title>Pracownia EEG 2/Wprowadzenie do Psychopy</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Wprowadzenie_do_Psychopy&amp;diff=10822"/>
		<updated>2024-09-24T09:33:19Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Utworzono nową stronę &amp;quot;Pracownia EEG 2 / Wprowadzenie do Psychopy  ==Dlaczego Psychopy==   W badaniach fizjologicznych i psychologicznych bardzo często wykorzystujemy ró...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Wprowadzenie do Psychopy&lt;br /&gt;
&lt;br /&gt;
==Dlaczego Psychopy== &lt;br /&gt;
&lt;br /&gt;
W badaniach fizjologicznych i psychologicznych bardzo często wykorzystujemy różnego rodzaju procedury, w trakcie których prezentowane są badanego różne bodźce, bądź proszony jest o wykonanie różnych aktywności w odpowiedzi na polecenie bądź prezentowany bodziec. &lt;br /&gt;
Do przygotowania takiej procedury wykorzystywane są dedykowane programy, które umożliwiają łatwe i precyzyjne przygotowanie takiej procedury. Ich największą zaletą jest precyzyjna kontrola czasu prezentacji bodźca i rejestracji reakcji badanego. Dzięki temu możemy monitorować aktywność badanego i ograniczać błąd pomiaru wynikający z opóźnień systemu. &lt;br /&gt;
Jednym z takich programów jest Psychopy - [https://psychopy.org]. Jest to program rozwijany na Uniwersytecie w Nottingham w języku python na licencji GPL3. &lt;br /&gt;
&lt;br /&gt;
==Jak zbudować eksperyment== &lt;br /&gt;
&lt;br /&gt;
===Routine===&lt;br /&gt;
&lt;br /&gt;
W Psychopy podstawową jednostką, z jakiej będziemy budować eksperyment jest 'Routine'. Jest co cegiełka, w ramach której mogą być prezentowane bodźce, wyświetlane instrukcje, rejestrowane reakcje badanego. &lt;br /&gt;
&lt;br /&gt;
W ramach każdej z Routine możemy umieszczać narzędzie do prezentacji bodźców tekstowych (np. słów, instrukcji), obrazków, dźwięków, filmów itd. Możemy też rejestrować relacje badanego za pomocą np. klawiatury, myszki bądź niektórych padów. &lt;br /&gt;
&lt;br /&gt;
Każde z takich narzędzi ma szereg parametrów, które można modyfikować: np. czas rozpoczęcia i zakończenia prezentacji, charakterystykę danego bodźca, np. wielkość, przejrzystość, położenie i orientację na ekranie. Dodatkowo, w wersji Psychopy dostępnej w ZFB (rozwijana jest własna gałąź Psychopy) jest możliwość wysyłania znaczników do sygnału EEG, który rejestrowany jest w SVAROGU. &lt;br /&gt;
&lt;br /&gt;
===Pętle===&lt;br /&gt;
&lt;br /&gt;
Jeżeli prezentację danego bodźca chcemy wielokrotnie potworzyć możemy skorzystać z pętli, w których możemy umieścić pojedynczą Routine bądź całą ich sekwencję. W ramach pętli możemy definiować zmienne, w ramach których, w każdej kolejnej próbie będzie ona przyjmować inną wartość. W ten sposób możemy prezentować na ekranie różne słowa lub obrazki. &lt;br /&gt;
Mamy do dyspozycji również kilka opcji porządku prezentacji bodźców w ramach takiej pętli. Mogą być one pokazywane kolejno (wg. kolejności wartości zmiennej), mogą być losowane bez i ze zwracaniem. Możemy również prezentować podczas eksperymentu tylko podzbiór wartości danej zmiennej.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG/EEG_spoczynkowe&amp;diff=10821</id>
		<title>Pracownia EEG/EEG spoczynkowe</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG/EEG_spoczynkowe&amp;diff=10821"/>
		<updated>2024-09-24T08:40:50Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: /* Praca z sygnałami */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG|Pracownia EEG]] / EEG spoczynkowe, artefakty&lt;br /&gt;
&lt;br /&gt;
==Podstawowe grafoelementy zapisu EEG i ich główne cechy==&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;delta;===&lt;br /&gt;
&lt;br /&gt;
Przebieg rytmu delta zaprezentowano na &amp;lt;xr id=&amp;quot;uid3&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt;. Jest to wysokoamplitudowa aktywność o niskiej częstości (0-4 Hz) i czasie trwania co najmniej 1/4 s. Do celów praktycznych przyjęto, że dolną granicą częstości jest 0,5 Hz. Pojawiające się podczas głębokiego snu fale delta o amplitudzie przekraczającej 75 &amp;amp;mu;V nazywa się falami wolnymi (ang. ''slow wave activity'', SWA). Występowanie SWA spowodowane jest wysoką synchronizacją neuronów kory (większą synchronizację spotyka się tylko podczas ataku epilepsji). Fale delta rejestruje się także podczas głębokiej medytacji, u małych dzieci i w przypadku pewnego rodzaju uszkodzeń mózgu.&lt;br /&gt;
&lt;br /&gt;
[[Plik:SWA.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid3&amp;quot; /&amp;gt;Fale delta  w czasie snu w zapisie polisomnograficznym.]]&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;theta;===&lt;br /&gt;
&lt;br /&gt;
Rytmem teta (ang. ''theta'') (&amp;lt;xr id=&amp;quot;uid9&amp;quot;&amp;gt; rys. %i&amp;lt;/xr&amp;gt;) nazywamy aktywność w paśmie częstości od 3 do 7 Hz i rozpiętości (ang. ''peak-to-peak'') rzędu kilkudziesięciu &amp;amp;mu;V. Charakterystyczne fale teta występują np. w okresie snu płytkiego &amp;amp;mdash; przypuszcza się że w tym czasie następuje przyswajanie i utrwalanie uczonych treści. Fale teta są najczęściej występującymi falami mózgowymi podczas medytacji, transu, hipnozy, intensywnego marzenia, intensywnych emocji. Odmienny rodzaj fal teta jest związany z aktywnością poznawczą, kojarzeniem (w szczególności uwagą), a także procesami pamięciowymi (tzw. rytm FM&amp;amp;Theta; &amp;amp;mdash; ''frontal midline theta''). Jest on obserwowany głównie w przyśrodkowej części przedniej części mózgu.&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
* Rytmiczny przebieg o częstości 3-7 Hz.&lt;br /&gt;
* Najwyższa amplituda w stanie czuwania w okolicach linii środkowej i obszarach skroniowych.&lt;br /&gt;
* Rozkład amplitudy symetryczny na półkulach określonych przez płaszczyznę strzałkową&lt;br /&gt;
Cechy patologiczne:&lt;br /&gt;
* Asymetryczny rozkład amplitudy (dominacja rytmu na jednej półkuli) bądź też jego występowanie w zapisie tylko na jednym odprowadzeniu może świadczyć o patologii.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Fala pila.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid9&amp;quot; /&amp;gt;Przykład rytmu teta we śnie.]]&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;alpha;===&lt;br /&gt;
&lt;br /&gt;
Fala alfa to jedna z najwcześniej zaobserwowanych struktur (grafoelementów) EEG.&lt;br /&gt;
Reprezentuje ona rytmiczną aktywność kory mózgowej w paśmie 8-12 Hz. Występowanie rytmu alfa przypisuje się stanowi relaksu z zamkniętymi oczami. Fale alfa najlepiej widoczne są w odprowadzeniach potylicznych, czyli z okolic kory odpowiadającej za przetwarzanie informacji wzrokowych. Rytm o częstości w paśmie alfa rejestrowany w okolicach kory motorycznej nazywany jest rytmem mi (ang. ''mu''), ze względu na kształt fali przypominającej literę &amp;amp;mu;. Wykazuje on istotny zanik w momencie wykonywania ruchu przez człowieka lub tylko zamierzenia jego wykonania.&lt;br /&gt;
&lt;br /&gt;
Rytm alfa fundamentalne znaczenie w analizie EEG snu. Mimo, że nie występuje podczas właściwego snu to świadczy o „przedsennym” czuwaniu pacjenta, a jej zanik oznacza przejście ze stanu czuwania do płytkiego snu. Fale alfa zanikają także podczas wysiłku umysłowego, np. wykonywaniu działań matematycznych albo przy otwarciu oczu i zadziałaniu na nie światła. Blokowanie rytmu alfa jest wyrazem desynchronizacji aktywności neuronów, zachodzącej pod wpływem koncentracji umysłowej lub stymulacji narządów zmysłów. Przebieg fali alfa zaprezentowano na &amp;lt;xr id=&amp;quot;uid11_a&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt; i  &amp;lt;xr id=&amp;quot;uid11_b&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Alpha.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid11_a&amp;quot; /&amp;gt;Rytm alfa w zapisie polisomnograficznym szczególnie wyraźnie widoczny w odprowadzeniu O2 (referencja do uśrednionego potencjału z uszu).]]&lt;br /&gt;
[[Plik:Alpha_z_widmem.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid11_b&amp;quot; /&amp;gt;Rytm alfa w zapisie polisomnograficznym szczególnie wyraźnie widoczny w odprowadzeniu O2 (referencja do uśrednionego potencjału z uszu). We wstawce widoczna jest estymata widma gęstości mocy z zaznaczonego fragmentu sygnału.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Podstawowy rytm prawidłowego zapisu EEG u dorosłej osoby.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Quasi harmoniczny przebieg o częstości 7-13 Hz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Wzrost amplitudy po zamknięciu oczu, w stanie relaksu czy czuwania z zamkniętymi oczami.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Zanika po otwarciu oczu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Fale alfa najlepiej widoczne są w odprowadzeniach tylnych, czyli z okolic części kory odpowiadającej za przetwarzanie informacji wzrokowych. Czasem jednak może propagować się w kierunku obszarów tylno skroniowych i ciemieniowych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Występuje mniej lub bardziej symetrycznie względem płaszczyzny strzałkowej, zwykle jednak ma większą amplitudę nad półkulą dominującą.&lt;br /&gt;
Zbyt duża asymetria amplitudy rytmu alfa lub też jego brak po jednej stronie zawsze świadczy o jakiejś patologii. Często jednak przyczyną takiej asymetrii jest niewłaściwe umieszczenie elektrod na głowie bądź budowa anatomiczna czaszki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Cechy patologiczne:&lt;br /&gt;
* Częstość rytmu ulega zmniejszeniu pod wpływem takich czynników jak: choroby metaboliczne, wczesne fazy otępienia, leki.&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;mu;===&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Rytmiczny przebieg o częstości od 7-11 Hz, z uwagi na co często mylony z rytmem alfa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Wyraźny przebieg, kształtem przypominający grecką literę &amp;amp;mu;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Zanika w trakcie wykonywania ruchu bądź nawet pod wpływem samego jego wyobrażenia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;beta;===&lt;br /&gt;
[[Plik:EEG_beta_1.png|768px|thumb|&amp;lt;figure id=&amp;quot;uid28&amp;quot; /&amp;gt;Rytm beta. Na osi pionowej &amp;amp;mdash; amplituda w &amp;amp;mu;V, na osi poziomej &amp;amp;mdash; czas.]]&lt;br /&gt;
Fale beta (&amp;lt;xr id=&amp;quot;uid28&amp;quot;&amp;gt;rys.&amp;lt;/xr&amp;gt;) to niskoamplitudowe oscylacje o częstości w przedziale 13-30 Hz. W paśmie beta wyróżnia się następujące przedziały: wolne fale beta (12-15 Hz), właściwe, średnie pasmo beta (15-18 Hz) i szybkie fale beta, o częstości powyżej 19 Hz. Ta mało zsynchronizowana praca neuronów charakteryzuje zwykłą codzienną aktywność kory mózgowej u człowieka, percepcję zmysłową i pracę umysłową. Specyficzna aktywność beta towarzyszy również stanom po zażyciu niektórych leków. Fale beta zazwyczaj występują w okolicy czołowej. Obrazują one zaangażowanie kory mózgowej w aktywność poznawczą. Fale beta o małej amplitudzie występują podczas koncentracji uwagi, gdy mózg nastawiony jest na świadomy odbiór bodźców zewnętrznych za pomocą wszystkich zmysłów.&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Rytmiczny przebieg o częstości od 13 do 30 Hz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Amplituda nie zmienia się pod wpływem otwarcia lub zamknięcia oczu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Najwyższa amplituda w okolicach czołowo-centralnych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Asymetryczny zanik rytmu w trakcie wykonywania ruchu lub nawet jego wyobrażenia. Zanik obserwowalny jest w zapisie EEG z elektrod umieszczonych nad obszarami mózgu odpowiedzialnymi za kończynę wykonującą ruch (kontralatralnie czyli po przeciwnej stronie niż kończyna).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fale &amp;amp;gamma;===&lt;br /&gt;
[[Plik:EEG_gamma_1.png|768px|thumb|&amp;lt;figure id=&amp;quot;uid30&amp;quot; /&amp;gt;Rytm gamma. Na osi pionowej &amp;amp;mdash; amplituda w &amp;amp;mu;V, na osi poziomej &amp;amp;mdash; czas.]]&lt;br /&gt;
Fale gamma (&amp;lt;xr id=&amp;quot;uid30&amp;quot;&amp;gt; rys.&amp;lt;/xr&amp;gt;) to fale mózgowe o częstości w okolicach 40 Hz (30-80 Hz). Aktywność w paśmie 80-200 Hz określa się natomiast jako wysokoczęstotliwościową (ang. ''high'') gammę. Rytm gamma towarzyszy aktywności ruchowej i funkcjom motorycznym. Fale gamma związane są też z wyższymi procesami poznawczymi, m. in. percepcją sensoryczną, pamięcią. Przypuszcza się, że rytm gamma o częstotliwości około 40 Hz ma związek ze świadomością percepcyjną (dotyczącą wrażeń zmysłowych i ich postrzegania) oraz związany jest z integracją poszczególnych modalności zmysłowych w jeden spostrzegany obiekt. Aktywność high-gamma występuje podczas aktywacji kory mózgowej, zarówno przez bodźce zewnętrzne (np. dotykowe, wzrokowe), jak i wewnętrzne (przygotowanie ruchu, mowa). Fale o częstościach 100-250 Hz nazywane są ''ripples''. Rejestruje się je w sygnale z implantowanych mikroelektrod, a wysoko częstościową aktywność ''fast ripples'' (250-600 Hz) w szczególności u pacjentów z epilepsją, w obszarze ogniska epileptycznego.&lt;br /&gt;
&lt;br /&gt;
===Wrzeciona snu===&lt;br /&gt;
&lt;br /&gt;
Wrzeciona snu (ang. ''sleep spindles'') (&amp;lt;xr id=&amp;quot;uid32&amp;quot;&amp;gt; rys.&amp;lt;/xr&amp;gt;) to charakterystyczne struktury zaobserwowane już niemal od samych początków historii pomiarów EEG. Występują podczas umiarkowanie głębokiego snu. Wrzecionami snu nazywamy aktywność o częstości 11-15 Hz i czasie trwania 0,5-1,5 s. Obwiednia tych krótkich salw dość szybkiej aktywności o niewielkiej amplitudzie przypomina kształt wrzeciona. Wrzeciona pojawiają się we wszystkich odprowadzeniach, z tym, że ich amplituda i częstość może się nieznacznie zmieniać przy przejściu od przodu do tyłu głowy (od wrzecion „wolnych” po „szybkie”). Wrzeciona snu mogą występować w parach z kompleksami K.&lt;br /&gt;
&lt;br /&gt;
[[Plik:Wrzeciona.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Trzy wrzeciona snu.]]&lt;br /&gt;
&lt;br /&gt;
===Kompleksy K===&lt;br /&gt;
&lt;br /&gt;
Kompleksy K (ang. ''K-complexes'', w Polsce często nazywane zespołami K), (rys. &amp;lt;xr id=&amp;quot;uid32&amp;quot;&amp;gt; %i&amp;lt;/xr&amp;gt;) mogą pojawiać się pojedynczo lub też w serii po dwa podczas umiarkowanie głębokiego snu. Definiuje się je jako dwufazową (ostry spadek poprzedzony dodatnim maksimum), wysokonapięciową (to największe maksimum strefy), nisko częstotliwościową falę związaną z wrzecionami snu, przy czym jej czas trwania powinien przekraczać 0,5 s. Obecnie wymaga się aby struktury te miały częstość 1-4 cykli/s, amplitudę co najmniej dwa razy większą od średniej amplitudy tła i czas trwania 0,5-2 s. Amplituda kompleksu K jest zazwyczaj największa na czubku głowy. Kompleksy K mogą podczas snu występować spontanicznie lub też w odpowiedzi na bodźce.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:2kompleksy.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Kompleksy K z następującymi po nich wrzecionami snu.]]&lt;br /&gt;
&lt;br /&gt;
===Fale piłokształtne===&lt;br /&gt;
&lt;br /&gt;
Fale piłokształtne (ang. ''sawtooth waves'') pojawiają się w EEG w czasie snu w fazie REM, są to wierzchołkowe, ujemne fale o umiarkowanej częstości i amplitudzie. Z definicji falą piłokształtną nazywa się pojedyncze lub zgrupowane po kilka fale o częstości 6-10 Hz, amplitudzie rzędu kilkudziesięciu &amp;amp;mu;V i wyraźnym kształcie zębów piły.&lt;br /&gt;
&lt;br /&gt;
===Wierzchołkowe fale ostre===&lt;br /&gt;
&lt;br /&gt;
Wierzchołkowe fale ostre (ang. ''vertex sharp waves'') występują pod koniec okresu płytkiego snu. Aktywnością tą określa się ostry potencjał, maksymalny w okolicy wierzchołkowej, ujemny w stosunku do innych pól, o amplitudzie zmiennej, rozpiętości często dochodzącej do 250 &amp;amp;mu;V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Wierzcholkowa fala ostra.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Wierzcholkowa fala ostra.]]&lt;br /&gt;
&lt;br /&gt;
===Iglice===&lt;br /&gt;
&lt;br /&gt;
Iglice (ang. ''spikes''), to termin ograniczony do padaczkopodobnych wyładowań, obserwowanych także w zapisie międzynapadowym EEG. Są to grafoelementy wyraźnie wyróżniające się z czynności podstawowej, z ostrym wierzchołkiem i często następującą po nim falą wolną. Czas trwania iglicy wynosi zazwyczaj od 20 do 70 milisekund, a amplituda co najmniej dwa razy większa o od amplitudy tła w obrębie około 5 sekund.&lt;br /&gt;
&lt;br /&gt;
==Artefakty==&lt;br /&gt;
&lt;br /&gt;
===Niewłaściwie umocowanie elektrod===&lt;br /&gt;
Jednym z bardzo ważnych etapów przed wykonaniem rejestracji czynności elektrycznej mózgu jest umieszczenie na powierzchni głowy elektrod pomiarowych. Elektrody te powinny być rozlokowane zgodnie z wybranym uprzednio standardem (np. 10-20, czy 10-10). Lokalizacja elektrod w badaniu EEG była tematem [[Pracownia_Sygna%C5%82%C3%B3w_Biologicznych/Zajecia_9#Lokalizacja_elektrod_na_powierzchni_g.C5.82owy._System_10-20|IX spotkania na Pracowni Sygnałów Bioelektrycznych]] i nie będzie omawiana już w bieżących materiałach. W tym miejscu zapoznamy się bliżej z konsekwencjami nieprawidłowego umocowania elektrod na głowie badanej osoby. Jak wiemy, poszczególnym obszarom kory mózgowej można przypisać aktywność związaną z określoną czynnością behawioralną, np. w trakcie czuwania z zamkniętymi oczami, w płatach potylicznych powstaje rytmiczna czynność o częstości 7-13 Hz. Z kolei w trakcie planowania bądź wykonywania ruchu zachodzą zmiany w czynności elektrycznej mózgu w obszarach bruzdy Rolanda, nad którą zlokalizowane są miejsca przyłożenia elektrod C3, Cz i C4. Czynność elektryczna mózgu jest bardzo słaba (zwykle wynosi od kliku do kilkudziesięciu &amp;amp;mu;V) i szybko zanika wraz z odległością. Elektroda umieszczona w niewłaściwym miejscu (np. przesunięta o 1 cm względem prawidłowego położenia), nie będzie rejestrować interesującej nas czynności elektrycznej mózgu. Kolejna bardzo istotna kwestia, to przygotowanie skóry w miejscu przyłożenia elektrody. Najbardziej zewnętrzna cześć skóry &amp;amp;mdash; naskórek, jest martwy, zrogowaciały i pokryty tłuszczem. Powoduje to, iż opór elektryczny skóry jest bardzo duży (rzędu M&amp;amp;Omega;) i uniemożliwia rejestrację EEG. Pomiar tego sygnału nie może bowiem odbywać się na drodze &amp;amp;bdquo;radiowej&amp;amp;rdquo;, to jest np. za pomocą elektrody umieszczone w pewnej odległości od powierzchni głowy. Wynika to z warunków brzegowych dla pola elektrycznego na granicy ośrodka przewodzącego i próżni.&lt;br /&gt;
&lt;br /&gt;
Podsumowując, rejestracja sygnału EEG wymaga dobrego kontaktu elektrod ze skórą pacjenta, umożliwiającego przewodzenie prądów elektrycznych, będących wynikiem elektrycznej aktywności mózgu. W szczególności dotyczy to tzw. elektrody GND oraz referencyjnej. Niewłaściwe umocowanie tych elektrod na powierzchni głowy będzie skutkować zakłóceniem pomiaru na wszystkich elektrodach. Odpowiednie schematy połączeń elektrod ze wzmacniaczem EEG znajdują się w [[Elektroencefalografia/Fizyczne_i_techniczne_aspekty_rejestracji_sygnałów_bioelektrycznych#Budowa_elektroencefalografu|skrypcie o EEG]].&lt;br /&gt;
Brak dobrego kontaktu powoduje następujące efekty uboczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;	&lt;br /&gt;
&amp;lt;li&amp;gt;	Tłumienie sygnału (patrz wzór na zajęciach z Pracowni Sygnałów Bioelektrycznych).&lt;br /&gt;
&amp;lt;li&amp;gt;	Zakłócanie pomiaru EEG przez pole elektryczne od sieci zasilającej, widoczne w postaci harmonicznego sygnału o częstości 50 Hz i relatywnie wysokiej amplitudzie w porównaniu z amplitudą sygnału EEG.&lt;br /&gt;
&amp;lt;li&amp;gt;	&amp;amp;bdquo;Trzaskanie elektrod&amp;amp;rdquo;. Polega ono na krótkotrwałym braku kontaktu części elektrody ze skórą. Powoduje to nagłą zmianę potencjału, kształtem przypominającego wyładowania iglicowe, które pełnią ważną rolę w diagnostyce padaczki. Cechą odróżniającą skoki potencjału związane z patologią czynności elektrycznej mózgu, a nieszczelnym kontaktem elektrody ze skórą jest fakt, iż wyładowania związane z niewłaściwym umocowaniem elektrody są widoczne na:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	jednym (uszkodzonym) odprowadzeniu w przypadku odprowadzeń referencyjnych jednobiegunowych;&lt;br /&gt;
&amp;lt;li&amp;gt;	dwóch elektrodach w przypadku odprowadzeń dwubiegunowych.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli zmiana kontaktu ze skórą nie ma gwałtownego charakteru, niewłaściwie zamocowana elektroda może być źródłem powstawania zmian potencjału w zakresie pasm EEG, trudno odróżnialnych od prawdziwej czynności elektrycznej. Jedyną cechą różnicującą ten artefakt od sygnału EEG jest fakt jego występowania na pojedynczej elektrodzie, w przypadku odprowadzeń jednobiegunowych i dwóch sąsiednich kanałach, będących lustrzanymi odbiciami w przypadku odprowadzeń dwubiegunowych.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pocenie się===&lt;br /&gt;
Pocenie się badanej osoby prowadzi do:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Rozpuszczania klejów wodozmywalnych, za pomocą których elektrody przyczepiane są do powierzchni głowy. Pogarsza to kontakt elektrody ze skórą.&lt;br /&gt;
&amp;lt;li&amp;gt;	Tworzenie zwarć pomiędzy elektrodami. Pot składający głównie z wody, soli i innych związków chemicznych dobrze przewodzi prąd. W efekcie następuje redukcja impedancji pomiędzy elektrodami i zmiana wartości mierzonego potencjału.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wymienione powyżej zjawiska prowadzą do powstania w zapisie EEG bardzo wolnych, trwających kilka sekund fal.&lt;br /&gt;
===Mruganie===&lt;br /&gt;
Bardzo silny artefakt, trudny do wyeliminowania z zapisu EEG, mogący się objawić na wszystkich elektrodach, w szczególności zaś widoczny na odprowadzeniach przedczołowych i czołowych. Źródłem tego artefaktu jest występująca pomiędzy rogówką a siatkówką różnica potencjałów (sięgająca wartości kilku miliwotlów) oraz czynność elektryczna siatkówki o amplitudzie kilku mikrowoltów. W trakcie mrugania gałki oczne skręcają nieznacznie ku górze (tzw. zjawisko Bella) powodując nagły wzrost potencjału elektrycznego. Rogówka posiada potencjał dodatni względem siatkówki, w związku z czym na odprowadzeniach przedczołowych i czołowych obserwuje się wychylenie potencjału w kierunku dodatnich wartości względem potencjału na innych elektrodach. Zwiększony potencjał na elektrodach czołowych utrzymuje się tak długo, jak skręcone ku górze pozostają gałki oczne.&lt;br /&gt;
Powrót gałek do pozycji spoczynkowej powoduje redukcję potencjału na przednich elektrodach. Zmiana sygnału związana z artefaktem od gałki ocznej ma zatem charakter &amp;amp;bdquo;schodka&amp;amp;rdquo;, jednakże filtry w które wyposażony jest wzmacniacz EEG powodują rozmycie i wygładzenie tego zaburzenia, które przyjmuje łatwo rozpoznawalny kształt. Artefakt ten jest na tyle silny, iż pomimo losowego występowania, uśrednianie sygnałów EEG mierzonych w trakcie powtarzania tego samego paradygmatu doświadczalnego nie redukuje jego amplitudy w sposób zadowalający. Środkami mogącymi zmniejszyć jego występowanie jest przewidzenie w trakcie eksperymentu przerw na &amp;amp;bdquo;wymruganie&amp;amp;rdquo;, używanie środków nawilżających oczy (najlepiej w postaci żeli, które długo pozostają na gałce), lekkie zmrużenie oczu.&lt;br /&gt;
[[Plik:Artefakt_mrugnięcia.png|center|thumb| 800px|Mrugnięcia]]&lt;br /&gt;
&lt;br /&gt;
===Ruchy gałek ocznych na boki===&lt;br /&gt;
Źródło powstawania tych artefaktów jest takie samo jak w przypadku mrugania. W wyniku różnic potencjałów pomiędzy siatkówką a rogówką, zmiana orientacji gałki ocznej w przestrzeni powoduje zmianę pola elektrycznego i jego potencjału, który mierzymy. W przypadku skręcenia oczami w prawą stronę, nastąpi wzrost mierzonego potencjału na elektrodzie skroniowej prawej &amp;amp;mdash; F8 (dodatnio naładowana część gałki przybliża się do tej elektrody) i jego spadek na elektrodzie leżącej po przeciwnej stronie głowy &amp;amp;mdash; F7 (dodatnio naładowana część gałki odsuwa się do tej elektrody). Dzięki temu artefakt ten jest łatwo rozpoznawalny. U osób z oczopląsem artefakt ten występuje rytmicznie z częstością oczopląsu. Należy również pamiętać, że ruchy gałek ocznych są sterowane mięśniami, w związku z czym nagłe i silne ruchu gałek na boki będą powodowały występowanie wyładowań iglicowych związanych z czynnością mięśni. Amplituda tych wyładowań osiągnie największą wartość na elektrodach F8 i F7.&lt;br /&gt;
[[Plik:Artefakt_ruch_oczu_w_poziomie.png|center|thumb| 800px|Artefakt wywołany ruchem gałek ocznych w poziomie.]]&lt;br /&gt;
&lt;br /&gt;
===Elektryczna Czynność Mięśni &amp;amp;mdash; EMG===&lt;br /&gt;
Na głowie człowieka znajdują się mięśnie, bądź przyczepy mięśni odpowiedzialnych głównie za mimikę twarzy, ruchy gałek ocznych czy ruchy szczęki. W związku z powyższym artefakty mięśniowe najsilniej będą rejestrowane przez elektrody czołowe oraz skroniowe (przednie i środkowe). Artefakty te są znaczne silniejsze niż zapis EEG (mogą dochodzić do kilku mV), zaś ich widmo w niskich częstościach pokrywa się z pasmem beta i gamma w EEG. Powstawaniu artefaktów EMG sprzyja: niewłaściwe oświetlenie laboratorium (co powoduje mrużenie oczu), niewygodna dla pacjenta pozycja &amp;amp;mdash; brak oparcia dla głowy, brak oparcia dla rąk i nóg, wykonywane testy wymagające uwagi i koncentracji. W tym ostatnim przypadku, w trakcie rozwiązywania takiego testu, cześć spośród badanych osób ma tendencję do marszczenia czoła, czy mrużenia oczu.&lt;br /&gt;
[[Plik:Artefakt_marszczenie_czola.png|center|thumb| 800px|Marszczenie czoła.]]&lt;br /&gt;
[[Plik:Artefakt_napiecie_miesni_rak.png|center|thumb| 800px|Artefakt wywołany napięciem mięśni rąk.]]&lt;br /&gt;
[[Plik:Artefakt_zacisniecie_zebow.png|center|thumb| 800px|Artefakt wywołany zaciskaniem zębów.]]&lt;br /&gt;
&lt;br /&gt;
===Czynność elektryczna serca===&lt;br /&gt;
Artefakt ten pojawia się najczęściej rytmicznie wraz z czynnością elektryczną serca i przyjmuje charakterystyczny dla niego kształt. Zdarza się jednak, że nie każdy kolejny cykl pracy serca zostanie zmierzony przez elektrody EEG. Wtedy artefakt ten może być pomylony z wyładowaniami iglicowymi. Najlepszą metodą detekcji tego artefaktu jest jednoczesny pomiar EEG i EKG. Zakłócenie związane z EKG objawia się najsilniej na elektrodzie, które została umieszczona tuż nad jakąś tętniczką. Często to ma miejsce w przypadku gdy jako elektrodę referencyjną wybrano elektrodę umieszczoną na wyrostku sutkowatym (za uszami), gdzie u wielu osób przebiega właśnie mała tętniczka. Sygnały z kanałów referencyjnych odejmowane są od sygnałów zarejestrowanych od pozostałych kanałów co będzie w oczywisty sposób prowadzić do &amp;amp;bdquo;rozpowszechniania się&amp;amp;rdquo; artefaktu EKG po wszystkich elektrodach. O ile to możliwe, należy zmienić nieznacznie pozycję elektrody, tak aby nie znajdowała się ona nad tętniczką.&lt;br /&gt;
&lt;br /&gt;
===Żucie, ruchy języka===&lt;br /&gt;
Artefakt związany z żuciem to głównie potencjały od czynności elektrycznej mięśni o częstości występowania skorelowanej z rytmicznie powtarzającym się ruchem szczęk. &lt;br /&gt;
[[Plik:Artefakt_zucie.png|center|thumb| 800px|Artefakt wywołany żuciem.]]&lt;br /&gt;
&lt;br /&gt;
===Drżenie kończyn===&lt;br /&gt;
&lt;br /&gt;
Drżenie kończyn może być spowodowane chorobą (np. Parkinsona) lub długotrwałym siedzeniem w mało komfortowej pozycji. Ruchy kończyn będą wywoływały także ledwo zauważalne ruchy głowy. W sytuacji, gdy badana osoba cierpi na chorobę Parkinsona, drżenia kończyn prowadzą do powstania rytmicznej fali o częstości 5-6 Hz przypominającej wyładowania padaczkowe. W celu lepszej detekcji tego artefaktu wskazane jest rejestrowanie czynności EMG.&lt;br /&gt;
&lt;br /&gt;
===Artefakty związane z ruchem badanej osoby.===&lt;br /&gt;
Wywołane są dowolnymi ruchami głowy i ciała badanej osoby i związaną z nimi czynnością elektryczną mięśni. Powstałe potencjały są szerokopasmowe i mają znaczne amplitudy. Ruchy badanej osoby prowadzą do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	ruchu elektrod, a w związku tym pogorszenia ich kontaktu ze skór, a nawet oderwania elektrod od skóry;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zmiany strumienia pola elektromagnetycznego przechodzącego przez pętle utworzone przez elektrody i wzmacniacz. Zgodnie z prawem indukcji Faradaya, zmiana strumienia w czasie spowoduje powstaje siły elektromotorycznej.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Plik:Artefakt_ruch_glowa.png|thumb|800px|center|Artefakt wywołany ruchem głowy.]]&lt;br /&gt;
&lt;br /&gt;
===Redukcja artefaktów===&lt;br /&gt;
Kilka rad umożliwiających redukcję artefaktów, bądź ich lepsze rozpoznanie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zadbać o położenie wzmacniacza EEG z dala od innych urządzeń i kabli. Umieścić go na podkładce z tworzywa;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zadbać o komfortową pozycję dla pacjenta;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	mierzyć czynność EKG, EMG i elektrookulogram wraz z EEG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	sporządzać notatki na temat zachowania się pacjenta (jeśli mamy możliwość obserwowania go) &amp;amp;mdash; kiedy się poruszał, czy ktoś do niego podszedł np. celem poprawienia jakiegoś elementu układu eksperymentalnego.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1: Rejestracja EEG z artefaktami ==&lt;br /&gt;
&lt;br /&gt;
=== Przypomnij sobie:===&lt;br /&gt;
* [[Pracownia_Sygnałów_Biologicznych/Zajecia_9#Procedura_zak.C5.82adania_czepka.|procedurę zakładania czepka]] na głowie &lt;br /&gt;
* [[Pracownia_Sygnałów_Biologicznych/Zajecia_9#Oczyszczanie_sk.C3.B3ry_w_miejscu_przy.C5.82o.C5.BCenia_elektrody|przygotowanie skóry głowy]]&lt;br /&gt;
* [[Elektroencefalografia/Fizyczne_i_techniczne_aspekty_rejestracji_sygnałów_bioelektrycznych#Praktyczne_uwagi_dotycz.C4.85ce_przeprowadzania_rejestracji_sygna.C5.82u_EEG|techniczne uwagi]] dotyczące pomiaru EEG.&lt;br /&gt;
&lt;br /&gt;
=== Rejestracja ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;li&amp;gt;	Dokonaj przynajmniej 15-minutowego zapisu EEG w systemie 10-20, jako elektrody referencyjne wybierz elektrody uszne. Jednocześnie wraz z rejestracją EEG dokonaj pomiaru sygnału EKG z [[Pracownia_Sygnałów_Biologicznych/Zajecia_2_4|odprowadzenia I Einthovena]], EMG z szyi oraz elektrookulogamu. W trakcie pomiaru, w wybranych chwilach czasu wykonaj:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;	mrugnięcie,&lt;br /&gt;
	&amp;lt;li&amp;gt;	żucie,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch oczu w prawo,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch oczu w lewo,&lt;br /&gt;
	&amp;lt;li&amp;gt;	zmarszczenie czoła,&lt;br /&gt;
	&amp;lt;li&amp;gt;	zaciśnięcie zębów,&lt;br /&gt;
	&amp;lt;li&amp;gt;	napięcie mięśni szyi,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch głową&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wszystkie powyższe czynności powinny być odseparowane od siebie w czasie. Osoba biorąca razem z Tobą udział w eksperymencie powinna dokładnie zanotować moment wykonywania przez Ciebie kolejnych ruchów. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;li&amp;gt; Zarejestruj 10 minut sygnału EEG, w trakcie których badana osoba będzie siedziała z otwartymi oczami oraz kolejne 10 minut w stanie czuwania z zamkniętymi oczami. Sygnał ten będzie potrzebny w czasie kolejnych zajęć, więc zapisz jego kopię zapasową.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Praca z sygnałami===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Po zakończeniu rejestracji otwórz w SVAROGu z pliku zapisany sygnał. Obejrzyj dokładnie zarówno 2-minutowe odcinki sygnału pomiędzy wykonywanymi ruchami jak i w momencie wykonywania ruchów. Przygotuj w SVAROGU oznaczenia artefaktów z listy powyżej i oznacz zebrane zestawy danych odpowiednimi tagami. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&amp;lt;li&amp;gt; Zastosuj transformację ICA. Przyjrzyj się otrzymanym komponentom, ich przebiegom czasowym, widmom mocy i topografiom.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===ICA (ćwiczenie dodatkowe)===&lt;br /&gt;
Popularna w ostatnich latach metoda &amp;quot;czyszczenia&amp;quot; sygnału z artefaktów opiera się na analizie składowych niezależnych.&lt;br /&gt;
&lt;br /&gt;
Analiza składowych niezależnych (ang. ''Independent Components Analysis'',&lt;br /&gt;
ICA) to jedno z określeń dla metod rozwiązywania problemu tzw. ślepej&lt;br /&gt;
separacji źródeł (''blind source separation, BSS''). Przyjęty model&lt;br /&gt;
zakłada, że mamy do czynienia z następującą sytuacją: dane którymi&lt;br /&gt;
dysponujemy (&amp;lt;math&amp;gt;\vec{x}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. zapisy z kilku mikrofonów)&lt;br /&gt;
są liniową mieszaniną kilku statystycznie niezależnych sygnałów&lt;br /&gt;
(&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. głosy kilku mówiących jednocześnie osób,&lt;br /&gt;
tzw. ''cocktail party problem''): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
\vec{x} = A \vec{s}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; zwiemy macierzą mieszającą, a&lt;br /&gt;
rozwiązania szukamy w postaci macierzy separującej &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, takiej, że wektor sygnałów &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \vec{y}=B\vec{x}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
jest możliwie bliski (nieznanym) sygnałom&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt;.  Wymóg niezależności statystycznej elementów&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{y}&amp;lt;/math&amp;gt; wymaga uwzględnienia statystyk rzędów wyższych&lt;br /&gt;
niż 2, czyli korelacji (używanych w PCA). Przetwarzanie wstępne&lt;br /&gt;
polega często na wyzerowaniu statystyk do rzędu 2, czy odjęciu&lt;br /&gt;
średniej i obrocie diagonalizującym macierz kowariancji (zwykle&lt;br /&gt;
PCA). Uzyskanie w prosty sposób dekorelacji ułatwia działanie procedur&lt;br /&gt;
realizujących dalsze wymagania niezależności. Realizowane są one&lt;br /&gt;
zwykle z pomocą sztucznych sieci neuronowych o specjalnie dobieranych&lt;br /&gt;
regułach uczenia.&lt;br /&gt;
&lt;br /&gt;
Procedura usuwania artefaktów polega na zerowaniu komponentów, które zidentyfikujemy -- na przykład na podstawie kształtu, widma i rozkładu przestrzennego -- i odtwarzaniu sygnału z pominięciem tych komponentów. Procedura jest zaimplementowania w programie Svarog, którego aktualną wersję można ściągnąć stąd: https://braintech.pl/software/svarog-streamer/&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/EEG_spoczynkowe&amp;diff=10820</id>
		<title>Pracownia EEG 2/EEG spoczynkowe</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/EEG_spoczynkowe&amp;diff=10820"/>
		<updated>2024-09-24T08:20:08Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / EEG spoczynkowe, artefakty&lt;br /&gt;
&lt;br /&gt;
==Podstawowe grafoelementy zapisu EEG i ich główne cechy==&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;delta;===&lt;br /&gt;
&lt;br /&gt;
Przebieg rytmu delta zaprezentowano na &amp;lt;xr id=&amp;quot;uid3&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt;. Jest to wysokoamplitudowa aktywność o niskiej częstości (0-4 Hz) i czasie trwania co najmniej 1/4 s. Do celów praktycznych przyjęto, że dolną granicą częstości jest 0,5 Hz. Pojawiające się podczas głębokiego snu fale delta o amplitudzie przekraczającej 75 &amp;amp;mu;V nazywa się falami wolnymi (ang. ''slow wave activity'', SWA). Występowanie SWA spowodowane jest wysoką synchronizacją neuronów kory (większą synchronizację spotyka się tylko podczas ataku epilepsji). Fale delta rejestruje się także podczas głębokiej medytacji, u małych dzieci i w przypadku pewnego rodzaju uszkodzeń mózgu.&lt;br /&gt;
&lt;br /&gt;
[[Plik:SWA.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid3&amp;quot; /&amp;gt;Fale delta  w czasie snu w zapisie polisomnograficznym.]]&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;theta;===&lt;br /&gt;
&lt;br /&gt;
Rytmem teta (ang. ''theta'') (&amp;lt;xr id=&amp;quot;uid9&amp;quot;&amp;gt; rys. %i&amp;lt;/xr&amp;gt;) nazywamy aktywność w paśmie częstości od 3 do 7 Hz i rozpiętości (ang. ''peak-to-peak'') rzędu kilkudziesięciu &amp;amp;mu;V. Charakterystyczne fale teta występują np. w okresie snu płytkiego &amp;amp;mdash; przypuszcza się że w tym czasie następuje przyswajanie i utrwalanie uczonych treści. Fale teta są najczęściej występującymi falami mózgowymi podczas medytacji, transu, hipnozy, intensywnego marzenia, intensywnych emocji. Odmienny rodzaj fal teta jest związany z aktywnością poznawczą, kojarzeniem (w szczególności uwagą), a także procesami pamięciowymi (tzw. rytm FM&amp;amp;Theta; &amp;amp;mdash; ''frontal midline theta''). Jest on obserwowany głównie w przyśrodkowej części przedniej części mózgu.&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
* Rytmiczny przebieg o częstości 3-7 Hz.&lt;br /&gt;
* Najwyższa amplituda w stanie czuwania w okolicach linii środkowej i obszarach skroniowych.&lt;br /&gt;
* Rozkład amplitudy symetryczny na półkulach określonych przez płaszczyznę strzałkową&lt;br /&gt;
Cechy patologiczne:&lt;br /&gt;
* Asymetryczny rozkład amplitudy (dominacja rytmu na jednej półkuli) bądź też jego występowanie w zapisie tylko na jednym odprowadzeniu może świadczyć o patologii.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Fala pila.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid9&amp;quot; /&amp;gt;Przykład rytmu teta we śnie.]]&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;alpha;===&lt;br /&gt;
&lt;br /&gt;
Fala alfa to jedna z najwcześniej zaobserwowanych struktur (grafoelementów) EEG.&lt;br /&gt;
Reprezentuje ona rytmiczną aktywność kory mózgowej w paśmie 8-12 Hz. Występowanie rytmu alfa przypisuje się stanowi relaksu z zamkniętymi oczami. Fale alfa najlepiej widoczne są w odprowadzeniach potylicznych, czyli z okolic kory odpowiadającej za przetwarzanie informacji wzrokowych. Rytm o częstości w paśmie alfa rejestrowany w okolicach kory motorycznej nazywany jest rytmem mi (ang. ''mu''), ze względu na kształt fali przypominającej literę &amp;amp;mu;. Wykazuje on istotny zanik w momencie wykonywania ruchu przez człowieka lub tylko zamierzenia jego wykonania.&lt;br /&gt;
&lt;br /&gt;
Rytm alfa fundamentalne znaczenie w analizie EEG snu. Mimo, że nie występuje podczas właściwego snu to świadczy o „przedsennym” czuwaniu pacjenta, a jej zanik oznacza przejście ze stanu czuwania do płytkiego snu. Fale alfa zanikają także podczas wysiłku umysłowego, np. wykonywaniu działań matematycznych albo przy otwarciu oczu i zadziałaniu na nie światła. Blokowanie rytmu alfa jest wyrazem desynchronizacji aktywności neuronów, zachodzącej pod wpływem koncentracji umysłowej lub stymulacji narządów zmysłów. Przebieg fali alfa zaprezentowano na &amp;lt;xr id=&amp;quot;uid11_a&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt; i  &amp;lt;xr id=&amp;quot;uid11_b&amp;quot;&amp;gt; rysunku %i&amp;lt;/xr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Alpha.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid11_a&amp;quot; /&amp;gt;Rytm alfa w zapisie polisomnograficznym szczególnie wyraźnie widoczny w odprowadzeniu O2 (referencja do uśrednionego potencjału z uszu).]]&lt;br /&gt;
[[Plik:Alpha_z_widmem.png|center|800px|thumb|&amp;lt;figure id=&amp;quot;uid11_b&amp;quot; /&amp;gt;Rytm alfa w zapisie polisomnograficznym szczególnie wyraźnie widoczny w odprowadzeniu O2 (referencja do uśrednionego potencjału z uszu). We wstawce widoczna jest estymata widma gęstości mocy z zaznaczonego fragmentu sygnału.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Podstawowy rytm prawidłowego zapisu EEG u dorosłej osoby.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Quasi harmoniczny przebieg o częstości 7-13 Hz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Wzrost amplitudy po zamknięciu oczu, w stanie relaksu czy czuwania z zamkniętymi oczami.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Zanika po otwarciu oczu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Fale alfa najlepiej widoczne są w odprowadzeniach tylnych, czyli z okolic części kory odpowiadającej za przetwarzanie informacji wzrokowych. Czasem jednak może propagować się w kierunku obszarów tylno skroniowych i ciemieniowych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Występuje mniej lub bardziej symetrycznie względem płaszczyzny strzałkowej, zwykle jednak ma większą amplitudę nad półkulą dominującą.&lt;br /&gt;
Zbyt duża asymetria amplitudy rytmu alfa lub też jego brak po jednej stronie zawsze świadczy o jakiejś patologii. Często jednak przyczyną takiej asymetrii jest niewłaściwe umieszczenie elektrod na głowie bądź budowa anatomiczna czaszki.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
Cechy patologiczne:&lt;br /&gt;
* Częstość rytmu ulega zmniejszeniu pod wpływem takich czynników jak: choroby metaboliczne, wczesne fazy otępienia, leki.&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;mu;===&lt;br /&gt;
&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Rytmiczny przebieg o częstości od 7-11 Hz, z uwagi na co często mylony z rytmem alfa.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Wyraźny przebieg, kształtem przypominający grecką literę &amp;amp;mu;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Zanika w trakcie wykonywania ruchu bądź nawet pod wpływem samego jego wyobrażenia.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Rytm &amp;amp;beta;===&lt;br /&gt;
[[Plik:EEG_beta_1.png|768px|thumb|&amp;lt;figure id=&amp;quot;uid28&amp;quot; /&amp;gt;Rytm beta. Na osi pionowej &amp;amp;mdash; amplituda w &amp;amp;mu;V, na osi poziomej &amp;amp;mdash; czas.]]&lt;br /&gt;
Fale beta (&amp;lt;xr id=&amp;quot;uid28&amp;quot;&amp;gt;rys.&amp;lt;/xr&amp;gt;) to niskoamplitudowe oscylacje o częstości w przedziale 13-30 Hz. W paśmie beta wyróżnia się następujące przedziały: wolne fale beta (12-15 Hz), właściwe, średnie pasmo beta (15-18 Hz) i szybkie fale beta, o częstości powyżej 19 Hz. Ta mało zsynchronizowana praca neuronów charakteryzuje zwykłą codzienną aktywność kory mózgowej u człowieka, percepcję zmysłową i pracę umysłową. Specyficzna aktywność beta towarzyszy również stanom po zażyciu niektórych leków. Fale beta zazwyczaj występują w okolicy czołowej. Obrazują one zaangażowanie kory mózgowej w aktywność poznawczą. Fale beta o małej amplitudzie występują podczas koncentracji uwagi, gdy mózg nastawiony jest na świadomy odbiór bodźców zewnętrznych za pomocą wszystkich zmysłów.&lt;br /&gt;
Cechy charakterystyczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Rytmiczny przebieg o częstości od 13 do 30 Hz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Amplituda nie zmienia się pod wpływem otwarcia lub zamknięcia oczu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Najwyższa amplituda w okolicach czołowo-centralnych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	Asymetryczny zanik rytmu w trakcie wykonywania ruchu lub nawet jego wyobrażenia. Zanik obserwowalny jest w zapisie EEG z elektrod umieszczonych nad obszarami mózgu odpowiedzialnymi za kończynę wykonującą ruch (kontralatralnie czyli po przeciwnej stronie niż kończyna).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Fale &amp;amp;gamma;===&lt;br /&gt;
[[Plik:EEG_gamma_1.png|768px|thumb|&amp;lt;figure id=&amp;quot;uid30&amp;quot; /&amp;gt;Rytm gamma. Na osi pionowej &amp;amp;mdash; amplituda w &amp;amp;mu;V, na osi poziomej &amp;amp;mdash; czas.]]&lt;br /&gt;
Fale gamma (&amp;lt;xr id=&amp;quot;uid30&amp;quot;&amp;gt; rys.&amp;lt;/xr&amp;gt;) to fale mózgowe o częstości w okolicach 40 Hz (30-80 Hz). Aktywność w paśmie 80-200 Hz określa się natomiast jako wysokoczęstotliwościową (ang. ''high'') gammę. Rytm gamma towarzyszy aktywności ruchowej i funkcjom motorycznym. Fale gamma związane są też z wyższymi procesami poznawczymi, m. in. percepcją sensoryczną, pamięcią. Przypuszcza się, że rytm gamma o częstotliwości około 40 Hz ma związek ze świadomością percepcyjną (dotyczącą wrażeń zmysłowych i ich postrzegania) oraz związany jest z integracją poszczególnych modalności zmysłowych w jeden spostrzegany obiekt. Aktywność high-gamma występuje podczas aktywacji kory mózgowej, zarówno przez bodźce zewnętrzne (np. dotykowe, wzrokowe), jak i wewnętrzne (przygotowanie ruchu, mowa). Fale o częstościach 100-250 Hz nazywane są ''ripples''. Rejestruje się je w sygnale z implantowanych mikroelektrod, a wysoko częstościową aktywność ''fast ripples'' (250-600 Hz) w szczególności u pacjentów z epilepsją, w obszarze ogniska epileptycznego.&lt;br /&gt;
&lt;br /&gt;
===Wrzeciona snu===&lt;br /&gt;
&lt;br /&gt;
Wrzeciona snu (ang. ''sleep spindles'') (&amp;lt;xr id=&amp;quot;uid32&amp;quot;&amp;gt; rys.&amp;lt;/xr&amp;gt;) to charakterystyczne struktury zaobserwowane już niemal od samych początków historii pomiarów EEG. Występują podczas umiarkowanie głębokiego snu. Wrzecionami snu nazywamy aktywność o częstości 11-15 Hz i czasie trwania 0,5-1,5 s. Obwiednia tych krótkich salw dość szybkiej aktywności o niewielkiej amplitudzie przypomina kształt wrzeciona. Wrzeciona pojawiają się we wszystkich odprowadzeniach, z tym, że ich amplituda i częstość może się nieznacznie zmieniać przy przejściu od przodu do tyłu głowy (od wrzecion „wolnych” po „szybkie”). Wrzeciona snu mogą występować w parach z kompleksami K.&lt;br /&gt;
&lt;br /&gt;
[[Plik:Wrzeciona.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Trzy wrzeciona snu.]]&lt;br /&gt;
&lt;br /&gt;
===Kompleksy K===&lt;br /&gt;
&lt;br /&gt;
Kompleksy K (ang. ''K-complexes'', w Polsce często nazywane zespołami K), (rys. &amp;lt;xr id=&amp;quot;uid32&amp;quot;&amp;gt; %i&amp;lt;/xr&amp;gt;) mogą pojawiać się pojedynczo lub też w serii po dwa podczas umiarkowanie głębokiego snu. Definiuje się je jako dwufazową (ostry spadek poprzedzony dodatnim maksimum), wysokonapięciową (to największe maksimum strefy), nisko częstotliwościową falę związaną z wrzecionami snu, przy czym jej czas trwania powinien przekraczać 0,5 s. Obecnie wymaga się aby struktury te miały częstość 1-4 cykli/s, amplitudę co najmniej dwa razy większą od średniej amplitudy tła i czas trwania 0,5-2 s. Amplituda kompleksu K jest zazwyczaj największa na czubku głowy. Kompleksy K mogą podczas snu występować spontanicznie lub też w odpowiedzi na bodźce.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:2kompleksy.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Kompleksy K z następującymi po nich wrzecionami snu.]]&lt;br /&gt;
&lt;br /&gt;
===Fale piłokształtne===&lt;br /&gt;
&lt;br /&gt;
Fale piłokształtne (ang. ''sawtooth waves'') pojawiają się w EEG w czasie snu w fazie REM, są to wierzchołkowe, ujemne fale o umiarkowanej częstości i amplitudzie. Z definicji falą piłokształtną nazywa się pojedyncze lub zgrupowane po kilka fale o częstości 6-10 Hz, amplitudzie rzędu kilkudziesięciu &amp;amp;mu;V i wyraźnym kształcie zębów piły.&lt;br /&gt;
&lt;br /&gt;
===Wierzchołkowe fale ostre===&lt;br /&gt;
&lt;br /&gt;
Wierzchołkowe fale ostre (ang. ''vertex sharp waves'') występują pod koniec okresu płytkiego snu. Aktywnością tą określa się ostry potencjał, maksymalny w okolicy wierzchołkowej, ujemny w stosunku do innych pól, o amplitudzie zmiennej, rozpiętości często dochodzącej do 250 &amp;amp;mu;V.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Plik:Wierzcholkowa fala ostra.png|800px|center|thumb|&amp;lt;figure id=&amp;quot;uid32&amp;quot; /&amp;gt;Wierzcholkowa fala ostra.]]&lt;br /&gt;
&lt;br /&gt;
===Iglice===&lt;br /&gt;
&lt;br /&gt;
Iglice (ang. ''spikes''), to termin ograniczony do padaczkopodobnych wyładowań, obserwowanych także w zapisie międzynapadowym EEG. Są to grafoelementy wyraźnie wyróżniające się z czynności podstawowej, z ostrym wierzchołkiem i często następującą po nim falą wolną. Czas trwania iglicy wynosi zazwyczaj od 20 do 70 milisekund, a amplituda co najmniej dwa razy większa o od amplitudy tła w obrębie około 5 sekund.&lt;br /&gt;
&lt;br /&gt;
==Artefakty==&lt;br /&gt;
&lt;br /&gt;
===Niewłaściwie umocowanie elektrod===&lt;br /&gt;
Jednym z bardzo ważnych etapów przed wykonaniem rejestracji czynności elektrycznej mózgu jest umieszczenie na powierzchni głowy elektrod pomiarowych. Elektrody te powinny być rozlokowane zgodnie z wybranym uprzednio standardem (np. 10-20, czy 10-10). Lokalizacja elektrod w badaniu EEG była tematem [[Pracownia_Sygna%C5%82%C3%B3w_Biologicznych/Zajecia_9#Lokalizacja_elektrod_na_powierzchni_g.C5.82owy._System_10-20|IX spotkania na Pracowni Sygnałów Bioelektrycznych]] i nie będzie omawiana już w bieżących materiałach. W tym miejscu zapoznamy się bliżej z konsekwencjami nieprawidłowego umocowania elektrod na głowie badanej osoby. Jak wiemy, poszczególnym obszarom kory mózgowej można przypisać aktywność związaną z określoną czynnością behawioralną, np. w trakcie czuwania z zamkniętymi oczami, w płatach potylicznych powstaje rytmiczna czynność o częstości 7-13 Hz. Z kolei w trakcie planowania bądź wykonywania ruchu zachodzą zmiany w czynności elektrycznej mózgu w obszarach bruzdy Rolanda, nad którą zlokalizowane są miejsca przyłożenia elektrod C3, Cz i C4. Czynność elektryczna mózgu jest bardzo słaba (zwykle wynosi od kliku do kilkudziesięciu &amp;amp;mu;V) i szybko zanika wraz z odległością. Elektroda umieszczona w niewłaściwym miejscu (np. przesunięta o 1 cm względem prawidłowego położenia), nie będzie rejestrować interesującej nas czynności elektrycznej mózgu. Kolejna bardzo istotna kwestia, to przygotowanie skóry w miejscu przyłożenia elektrody. Najbardziej zewnętrzna cześć skóry &amp;amp;mdash; naskórek, jest martwy, zrogowaciały i pokryty tłuszczem. Powoduje to, iż opór elektryczny skóry jest bardzo duży (rzędu M&amp;amp;Omega;) i uniemożliwia rejestrację EEG. Pomiar tego sygnału nie może bowiem odbywać się na drodze &amp;amp;bdquo;radiowej&amp;amp;rdquo;, to jest np. za pomocą elektrody umieszczone w pewnej odległości od powierzchni głowy. Wynika to z warunków brzegowych dla pola elektrycznego na granicy ośrodka przewodzącego i próżni.&lt;br /&gt;
&lt;br /&gt;
Podsumowując, rejestracja sygnału EEG wymaga dobrego kontaktu elektrod ze skórą pacjenta, umożliwiającego przewodzenie prądów elektrycznych, będących wynikiem elektrycznej aktywności mózgu. W szczególności dotyczy to tzw. elektrody GND oraz referencyjnej. Niewłaściwe umocowanie tych elektrod na powierzchni głowy będzie skutkować zakłóceniem pomiaru na wszystkich elektrodach. Odpowiednie schematy połączeń elektrod ze wzmacniaczem EEG znajdują się w [[Elektroencefalografia/Fizyczne_i_techniczne_aspekty_rejestracji_sygnałów_bioelektrycznych#Budowa_elektroencefalografu|skrypcie o EEG]].&lt;br /&gt;
Brak dobrego kontaktu powoduje następujące efekty uboczne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;	&lt;br /&gt;
&amp;lt;li&amp;gt;	Tłumienie sygnału (patrz wzór na zajęciach z Pracowni Sygnałów Bioelektrycznych).&lt;br /&gt;
&amp;lt;li&amp;gt;	Zakłócanie pomiaru EEG przez pole elektryczne od sieci zasilającej, widoczne w postaci harmonicznego sygnału o częstości 50 Hz i relatywnie wysokiej amplitudzie w porównaniu z amplitudą sygnału EEG.&lt;br /&gt;
&amp;lt;li&amp;gt;	&amp;amp;bdquo;Trzaskanie elektrod&amp;amp;rdquo;. Polega ono na krótkotrwałym braku kontaktu części elektrody ze skórą. Powoduje to nagłą zmianę potencjału, kształtem przypominającego wyładowania iglicowe, które pełnią ważną rolę w diagnostyce padaczki. Cechą odróżniającą skoki potencjału związane z patologią czynności elektrycznej mózgu, a nieszczelnym kontaktem elektrody ze skórą jest fakt, iż wyładowania związane z niewłaściwym umocowaniem elektrody są widoczne na:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	jednym (uszkodzonym) odprowadzeniu w przypadku odprowadzeń referencyjnych jednobiegunowych;&lt;br /&gt;
&amp;lt;li&amp;gt;	dwóch elektrodach w przypadku odprowadzeń dwubiegunowych.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jeśli zmiana kontaktu ze skórą nie ma gwałtownego charakteru, niewłaściwie zamocowana elektroda może być źródłem powstawania zmian potencjału w zakresie pasm EEG, trudno odróżnialnych od prawdziwej czynności elektrycznej. Jedyną cechą różnicującą ten artefakt od sygnału EEG jest fakt jego występowania na pojedynczej elektrodzie, w przypadku odprowadzeń jednobiegunowych i dwóch sąsiednich kanałach, będących lustrzanymi odbiciami w przypadku odprowadzeń dwubiegunowych.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Pocenie się===&lt;br /&gt;
Pocenie się badanej osoby prowadzi do:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;	Rozpuszczania klejów wodozmywalnych, za pomocą których elektrody przyczepiane są do powierzchni głowy. Pogarsza to kontakt elektrody ze skórą.&lt;br /&gt;
&amp;lt;li&amp;gt;	Tworzenie zwarć pomiędzy elektrodami. Pot składający głównie z wody, soli i innych związków chemicznych dobrze przewodzi prąd. W efekcie następuje redukcja impedancji pomiędzy elektrodami i zmiana wartości mierzonego potencjału.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wymienione powyżej zjawiska prowadzą do powstania w zapisie EEG bardzo wolnych, trwających kilka sekund fal.&lt;br /&gt;
===Mruganie===&lt;br /&gt;
Bardzo silny artefakt, trudny do wyeliminowania z zapisu EEG, mogący się objawić na wszystkich elektrodach, w szczególności zaś widoczny na odprowadzeniach przedczołowych i czołowych. Źródłem tego artefaktu jest występująca pomiędzy rogówką a siatkówką różnica potencjałów (sięgająca wartości kilku miliwotlów) oraz czynność elektryczna siatkówki o amplitudzie kilku mikrowoltów. W trakcie mrugania gałki oczne skręcają nieznacznie ku górze (tzw. zjawisko Bella) powodując nagły wzrost potencjału elektrycznego. Rogówka posiada potencjał dodatni względem siatkówki, w związku z czym na odprowadzeniach przedczołowych i czołowych obserwuje się wychylenie potencjału w kierunku dodatnich wartości względem potencjału na innych elektrodach. Zwiększony potencjał na elektrodach czołowych utrzymuje się tak długo, jak skręcone ku górze pozostają gałki oczne.&lt;br /&gt;
Powrót gałek do pozycji spoczynkowej powoduje redukcję potencjału na przednich elektrodach. Zmiana sygnału związana z artefaktem od gałki ocznej ma zatem charakter &amp;amp;bdquo;schodka&amp;amp;rdquo;, jednakże filtry w które wyposażony jest wzmacniacz EEG powodują rozmycie i wygładzenie tego zaburzenia, które przyjmuje łatwo rozpoznawalny kształt. Artefakt ten jest na tyle silny, iż pomimo losowego występowania, uśrednianie sygnałów EEG mierzonych w trakcie powtarzania tego samego paradygmatu doświadczalnego nie redukuje jego amplitudy w sposób zadowalający. Środkami mogącymi zmniejszyć jego występowanie jest przewidzenie w trakcie eksperymentu przerw na &amp;amp;bdquo;wymruganie&amp;amp;rdquo;, używanie środków nawilżających oczy (najlepiej w postaci żeli, które długo pozostają na gałce), lekkie zmrużenie oczu.&lt;br /&gt;
[[Plik:Artefakt_mrugnięcia.png|center|thumb| 800px|Mrugnięcia]]&lt;br /&gt;
&lt;br /&gt;
===Ruchy gałek ocznych na boki===&lt;br /&gt;
Źródło powstawania tych artefaktów jest takie samo jak w przypadku mrugania. W wyniku różnic potencjałów pomiędzy siatkówką a rogówką, zmiana orientacji gałki ocznej w przestrzeni powoduje zmianę pola elektrycznego i jego potencjału, który mierzymy. W przypadku skręcenia oczami w prawą stronę, nastąpi wzrost mierzonego potencjału na elektrodzie skroniowej prawej &amp;amp;mdash; F8 (dodatnio naładowana część gałki przybliża się do tej elektrody) i jego spadek na elektrodzie leżącej po przeciwnej stronie głowy &amp;amp;mdash; F7 (dodatnio naładowana część gałki odsuwa się do tej elektrody). Dzięki temu artefakt ten jest łatwo rozpoznawalny. U osób z oczopląsem artefakt ten występuje rytmicznie z częstością oczopląsu. Należy również pamiętać, że ruchy gałek ocznych są sterowane mięśniami, w związku z czym nagłe i silne ruchu gałek na boki będą powodowały występowanie wyładowań iglicowych związanych z czynnością mięśni. Amplituda tych wyładowań osiągnie największą wartość na elektrodach F8 i F7.&lt;br /&gt;
[[Plik:Artefakt_ruch_oczu_w_poziomie.png|center|thumb| 800px|Artefakt wywołany ruchem gałek ocznych w poziomie.]]&lt;br /&gt;
&lt;br /&gt;
===Elektryczna Czynność Mięśni &amp;amp;mdash; EMG===&lt;br /&gt;
Na głowie człowieka znajdują się mięśnie, bądź przyczepy mięśni odpowiedzialnych głównie za mimikę twarzy, ruchy gałek ocznych czy ruchy szczęki. W związku z powyższym artefakty mięśniowe najsilniej będą rejestrowane przez elektrody czołowe oraz skroniowe (przednie i środkowe). Artefakty te są znaczne silniejsze niż zapis EEG (mogą dochodzić do kilku mV), zaś ich widmo w niskich częstościach pokrywa się z pasmem beta i gamma w EEG. Powstawaniu artefaktów EMG sprzyja: niewłaściwe oświetlenie laboratorium (co powoduje mrużenie oczu), niewygodna dla pacjenta pozycja &amp;amp;mdash; brak oparcia dla głowy, brak oparcia dla rąk i nóg, wykonywane testy wymagające uwagi i koncentracji. W tym ostatnim przypadku, w trakcie rozwiązywania takiego testu, cześć spośród badanych osób ma tendencję do marszczenia czoła, czy mrużenia oczu.&lt;br /&gt;
[[Plik:Artefakt_marszczenie_czola.png|center|thumb| 800px|Marszczenie czoła.]]&lt;br /&gt;
[[Plik:Artefakt_napiecie_miesni_rak.png|center|thumb| 800px|Artefakt wywołany napięciem mięśni rąk.]]&lt;br /&gt;
[[Plik:Artefakt_zacisniecie_zebow.png|center|thumb| 800px|Artefakt wywołany zaciskaniem zębów.]]&lt;br /&gt;
&lt;br /&gt;
===Czynność elektryczna serca===&lt;br /&gt;
Artefakt ten pojawia się najczęściej rytmicznie wraz z czynnością elektryczną serca i przyjmuje charakterystyczny dla niego kształt. Zdarza się jednak, że nie każdy kolejny cykl pracy serca zostanie zmierzony przez elektrody EEG. Wtedy artefakt ten może być pomylony z wyładowaniami iglicowymi. Najlepszą metodą detekcji tego artefaktu jest jednoczesny pomiar EEG i EKG. Zakłócenie związane z EKG objawia się najsilniej na elektrodzie, które została umieszczona tuż nad jakąś tętniczką. Często to ma miejsce w przypadku gdy jako elektrodę referencyjną wybrano elektrodę umieszczoną na wyrostku sutkowatym (za uszami), gdzie u wielu osób przebiega właśnie mała tętniczka. Sygnały z kanałów referencyjnych odejmowane są od sygnałów zarejestrowanych od pozostałych kanałów co będzie w oczywisty sposób prowadzić do &amp;amp;bdquo;rozpowszechniania się&amp;amp;rdquo; artefaktu EKG po wszystkich elektrodach. O ile to możliwe, należy zmienić nieznacznie pozycję elektrody, tak aby nie znajdowała się ona nad tętniczką.&lt;br /&gt;
&lt;br /&gt;
===Żucie, ruchy języka===&lt;br /&gt;
Artefakt związany z żuciem to głównie potencjały od czynności elektrycznej mięśni o częstości występowania skorelowanej z rytmicznie powtarzającym się ruchem szczęk. &lt;br /&gt;
[[Plik:Artefakt_zucie.png|center|thumb| 800px|Artefakt wywołany żuciem.]]&lt;br /&gt;
&lt;br /&gt;
===Drżenie kończyn===&lt;br /&gt;
&lt;br /&gt;
Drżenie kończyn może być spowodowane chorobą (np. Parkinsona) lub długotrwałym siedzeniem w mało komfortowej pozycji. Ruchy kończyn będą wywoływały także ledwo zauważalne ruchy głowy. W sytuacji, gdy badana osoba cierpi na chorobę Parkinsona, drżenia kończyn prowadzą do powstania rytmicznej fali o częstości 5-6 Hz przypominającej wyładowania padaczkowe. W celu lepszej detekcji tego artefaktu wskazane jest rejestrowanie czynności EMG.&lt;br /&gt;
&lt;br /&gt;
===Artefakty związane z ruchem badanej osoby.===&lt;br /&gt;
Wywołane są dowolnymi ruchami głowy i ciała badanej osoby i związaną z nimi czynnością elektryczną mięśni. Powstałe potencjały są szerokopasmowe i mają znaczne amplitudy. Ruchy badanej osoby prowadzą do:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	ruchu elektrod, a w związku tym pogorszenia ich kontaktu ze skór, a nawet oderwania elektrod od skóry;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zmiany strumienia pola elektromagnetycznego przechodzącego przez pętle utworzone przez elektrody i wzmacniacz. Zgodnie z prawem indukcji Faradaya, zmiana strumienia w czasie spowoduje powstaje siły elektromotorycznej.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Plik:Artefakt_ruch_glowa.png|thumb|800px|center|Artefakt wywołany ruchem głowy.]]&lt;br /&gt;
&lt;br /&gt;
===Redukcja artefaktów===&lt;br /&gt;
Kilka rad umożliwiających redukcję artefaktów, bądź ich lepsze rozpoznanie:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zadbać o położenie wzmacniacza EEG z dala od innych urządzeń i kabli. Umieścić go na podkładce z tworzywa;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	zadbać o komfortową pozycję dla pacjenta;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	mierzyć czynność EKG, EMG i elektrookulogram wraz z EEG;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;li&amp;gt;&lt;br /&gt;
	sporządzać notatki na temat zachowania się pacjenta (jeśli mamy możliwość obserwowania go) &amp;amp;mdash; kiedy się poruszał, czy ktoś do niego podszedł np. celem poprawienia jakiegoś elementu układu eksperymentalnego.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 1: Rejestracja EEG z artefaktami ==&lt;br /&gt;
&lt;br /&gt;
=== Przypomnij sobie:===&lt;br /&gt;
* [[Pracownia_Sygnałów_Biologicznych/Zajecia_9#Procedura_zak.C5.82adania_czepka.|procedurę zakładania czepka]] na głowie &lt;br /&gt;
* [[Pracownia_Sygnałów_Biologicznych/Zajecia_9#Oczyszczanie_sk.C3.B3ry_w_miejscu_przy.C5.82o.C5.BCenia_elektrody|przygotowanie skóry głowy]]&lt;br /&gt;
* [[Elektroencefalografia/Fizyczne_i_techniczne_aspekty_rejestracji_sygnałów_bioelektrycznych#Praktyczne_uwagi_dotycz.C4.85ce_przeprowadzania_rejestracji_sygna.C5.82u_EEG|techniczne uwagi]] dotyczące pomiaru EEG.&lt;br /&gt;
&lt;br /&gt;
=== Rejestracja ===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;li&amp;gt;	Dokonaj przynajmniej 15-minutowego zapisu EEG w systemie 10-20, jako elektrody referencyjne wybierz elektrody uszne. Jednocześnie wraz z rejestracją EEG dokonaj pomiaru sygnału EKG z [[Pracownia_Sygnałów_Biologicznych/Zajecia_2_4|odprowadzenia I Einthovena]], EMG z szyi oraz elektrookulogamu. W trakcie pomiaru, w wybranych chwilach czasu wykonaj:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
	&amp;lt;li&amp;gt;	mrugnięcie,&lt;br /&gt;
	&amp;lt;li&amp;gt;	żucie,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch oczu w prawo,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch oczu w lewo,&lt;br /&gt;
	&amp;lt;li&amp;gt;	zmarszczenie czoła,&lt;br /&gt;
	&amp;lt;li&amp;gt;	zaciśnięcie zębów,&lt;br /&gt;
	&amp;lt;li&amp;gt;	napięcie mięśni szyi,&lt;br /&gt;
	&amp;lt;li&amp;gt;	ruch głową&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wszystkie powyższe czynności powinny być odseparowane od siebie w czasie. Osoba biorąca razem z Tobą udział w eksperymencie powinna dokładnie zanotować moment wykonywania przez Ciebie kolejnych ruchów. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Praca z sygnałami===&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Po zakończeniu rejestracji otwórz w SVAROGu z pliku zapisany sygnał. Obejrzyj dokładnie zarówno 2-minutowe odcinki sygnału pomiędzy wykonywanymi ruchami jak i w momencie wykonywania ruchów. Przygotuj w SVAROGU oznaczenia artefaktów z listy powyżej i oznacz zebrane zestawy danych odpowiednimi tagami. Następnie uzupełnij tabelę charakteryzującą artefakty. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ Charakterystyka artefaktów&lt;br /&gt;
|-&lt;br /&gt;
! Artefakt !! Charakterystyka kształtu/ amplitudy  !! Topografia !! Charakterystyka w dziedzinie częstości !! Sposób usuwania z sygnału EEG&lt;br /&gt;
|-&lt;br /&gt;
| mrugnięcie || ... || ...|| ...|| ...&lt;br /&gt;
|-&lt;br /&gt;
| ... || ... || ... || ... || ...&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===ICA (ćwiczenie dodatkowe)===&lt;br /&gt;
Popularna w ostatnich latach metoda &amp;quot;czyszczenia&amp;quot; sygnału z artefaktów opiera się na analizie składowych niezależnych.&lt;br /&gt;
&lt;br /&gt;
Analiza składowych niezależnych (ang. ''Independent Components Analysis'',&lt;br /&gt;
ICA) to jedno z określeń dla metod rozwiązywania problemu tzw. ślepej&lt;br /&gt;
separacji źródeł (''blind source separation, BSS''). Przyjęty model&lt;br /&gt;
zakłada, że mamy do czynienia z następującą sytuacją: dane którymi&lt;br /&gt;
dysponujemy (&amp;lt;math&amp;gt;\vec{x}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. zapisy z kilku mikrofonów)&lt;br /&gt;
są liniową mieszaniną kilku statystycznie niezależnych sygnałów&lt;br /&gt;
(&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt; &amp;amp;mdash; np. głosy kilku mówiących jednocześnie osób,&lt;br /&gt;
tzw. ''cocktail party problem''): &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; &lt;br /&gt;
\vec{x} = A \vec{s}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;A&amp;lt;/math&amp;gt; zwiemy macierzą mieszającą, a&lt;br /&gt;
rozwiązania szukamy w postaci macierzy separującej &amp;lt;math&amp;gt;B&amp;lt;/math&amp;gt;, takiej, że wektor sygnałów &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt; \vec{y}=B\vec{x}&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
jest możliwie bliski (nieznanym) sygnałom&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{s}&amp;lt;/math&amp;gt;.  Wymóg niezależności statystycznej elementów&lt;br /&gt;
&amp;lt;math&amp;gt;\vec{y}&amp;lt;/math&amp;gt; wymaga uwzględnienia statystyk rzędów wyższych&lt;br /&gt;
niż 2, czyli korelacji (używanych w PCA). Przetwarzanie wstępne&lt;br /&gt;
polega często na wyzerowaniu statystyk do rzędu 2, czy odjęciu&lt;br /&gt;
średniej i obrocie diagonalizującym macierz kowariancji (zwykle&lt;br /&gt;
PCA). Uzyskanie w prosty sposób dekorelacji ułatwia działanie procedur&lt;br /&gt;
realizujących dalsze wymagania niezależności. Realizowane są one&lt;br /&gt;
zwykle z pomocą sztucznych sieci neuronowych o specjalnie dobieranych&lt;br /&gt;
regułach uczenia.&lt;br /&gt;
&lt;br /&gt;
Procedura usuwania artefaktów polega na zerowaniu komponentów, które zidentyfikujemy -- na przykład na podstawie kształtu, widma i rozkładu przestrzennego -- i odtwarzaniu sygnału z pominięciem tych komponentów. Procedura jest zaimplementowania w programie Svarog, którego aktualną wersję można ściągnąć stąd: https://braintech.pl/software/svarog-streamer/&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS&amp;diff=10819</id>
		<title>Pracownia EEG 2/ERDS</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS&amp;diff=10819"/>
		<updated>2024-09-24T07:53:00Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / ERD/S&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
Wśród badań wykonywanych z wykorzystaniem rejestracji EEG czy MEG można wyróżnić badania spoczynkowe, gdzie rejestrowana jest spontaniczna aktywność mózgu oraz badania zmian aktywności pod wpływem różnych bodźców, przy czym bodźce te mogą być pochodzenia egzo- lub endogennego. Reakcja na bodziec może wykazywać stały związek fazowy z momentem wystąpienia bodźca &amp;amp;mdash; w takiej sytuacji mówimy o potencjałach lub polach wywołanych (ang. ''event related potential'', ''ERP'' i ''event related field'', ''ERF'') &amp;amp;mdash; lub też może nie być fazowo związana z bodźcem.&lt;br /&gt;
&lt;br /&gt;
Niniejsza część pracowni poświęcona jest metodologii badania reakcji mózgu na bodźce, które są czasowo ale niekoniecznie fazowo związane z bodźcem.&lt;br /&gt;
&lt;br /&gt;
=Zmiany pasmowej mocy sygnału EEG=&lt;br /&gt;
Pierwsze rezultaty opisujące zmiany w mocy pasmowej sygnału EEG (spadek mocy rytmu alfa) związane z reakcją na bodziec zostały opisane w pracy doktorskiej Adolf Becka zatytułowanej &amp;amp;bdquo;Oznaczenie lokalizacyi w mózgu i rdzeniu za pomocą zjawisk elektrycznych&amp;amp;rdquo; (Beck,  1891). &lt;br /&gt;
Ilościowe badania zjawisk modulacji mocy sygnału EEG w reakcji na bodźce rozpoczęto stosunkowo niedawno. Począwszy od pracy (Pfurtscheller, 1979) zjawiska te zaczęto nazywać ''Event Related Desynchronization'' (ERD) &amp;amp;mdash; czyli desynchronizacja związana z bodźcem. Termin ERD dotyczy spadku mocy. Przez analogię w późniejszych pracach terminem ''Event Related Synchronization'' (ERS) opisywane są efekty polegające na wzroście mocy. W większości paradygmatów eksperymentalnych zjawiska ERD i ERS są małe w porównaniu ze zmiennością mocy sygnału EEG związanej ze spontaniczną aktywnością mózgu. W celu ich ilościowego badania wymagane jest zarejestrowanie wielu realizacji reakcji na bodziec i poddanie ich analizie statystycznej. &lt;br /&gt;
&lt;br /&gt;
[[Plik:Paradygmat erds.gif|thumb|800px|center]]&lt;br /&gt;
==Interpretacja fizjologiczna==&lt;br /&gt;
[[Plik:EEG_synchronicznosc.png|600px|thumb|right|Synchronicznie pobudzana grupa neuronów piramidalnych kory tworzy warstwę dipolową.]]&lt;br /&gt;
[[Plik:Mapka_tf_erds.png|600px|thumb|right|Przykładowa mapa zjawiska synchronizacji i desynchronizacji sygnału EEG w przestrzeni czas-częstość dla sygnału zearejestrowanego przez elektrodę C3. Osoba badana wykonywała szybki ruch palcem w momencie oznaczonym 0. Kolory odpowiadają procentowej zmianie mocy względem poprzedzającego okresu 2 s, zgodnie ze skalą barw umieszczoną po prawej stronie.  Na poziomej osi — czas w s, na pionowej częstość w Hz.]]&lt;br /&gt;
Terminy ERD i ERS mają swoje źródło w fizjologicznej interpretacji zmian mocy sygnału w określonych pasmach częstości.  Źródłem mierzalnego na powierzchni głowy sygnału elektrycznego lub magnetycznego jest synchroniczna aktywność wielu neuronów (głównie piramidalnych kory). Szacuje się, że wpływ na wielkość sygnału EEG lub MEG ma głównie stopień synchronizacji neuronów wytwarzających ten sygnał, a w drugiej kolejności ich ilość (Nunez, 1981). Tak więc wzrost mocy w pewnym paśmie (np. alfa ERS) interpretowany jest jako wzrost synchronizacji aktywności neuronów generujących aktywność EEG w tym paśmie, zaś spadek mocy (np. alfa ERD) interpretowany jest jako spadek synchronizacji neuronów generujących aktywność EEG w tym paśmie częstości. Przy takiej interpretacji należy pamiętać o skali w jakiej dokonywany jest pomiar. Zarówno elektrody EEG jak i cewki MEG mierzą sygnały średnie pochodzące od olbrzymich ilości neuronów. Zatem zmiana mocy w tym sygnale odpowiada desynchronizacji lub synchronizacji w skali makroskopowej (rzędu 10&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;-10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; neuronów). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zjawiska ERD i ERS badane były zarówno w eksperymentach motorycznych (Pfurtscheller, 1994, Pfurtscheller, 1996a, Pfurtscheller, 1996b , Pfurtscheller, 1999) jak i kognitywistycznych  (Tallon Baudry, 1996, Tallon, 1999, Kaiser, 2003).&lt;br /&gt;
Wnioski płynące z tych prac są takie, że znaczenie zjawisk ERD i ERS zależy od pasma częstości, w którym one występują. Aktywność w paśmie alfa wiązana jest ze stanem spoczynkowym, ERD w paśmie alfa i beta wiązane jest z pobudzeniem danego rejonu kory mózgowej, w którym zjawisko to zachodzi. ERS w paśmie alfa i beta następujący po ERD w tym samym paśmie częstości interpretowany jest najczęściej jako przejaw inhibicji lub kasowania poprzedniego stanu. Z kolei zwiększona aktywność w paśmie gamma jest interpretowana jako przejaw funkcjonalnej aktywacji danego fragmentu kory. Nowe wyniki pojawiają się na bieżąco i stawiane są nowe pytania co do możliwych interpretacji poszczególnych zjawisk  np. (Crone, 2010).&lt;br /&gt;
&lt;br /&gt;
Oprócz motywacji czysto poznawczych, badania zjawisk ERD i ERS stymulowane są przez praktyczne możliwości ich wykorzystania w diagnostyce epilepsji, gdzie są nadzieje na zastosowanie tej techniki w miejsce bardziej inwazyjnej metody mapowania mózgu przez elektrostymulację (Crone 1998a, Crone, 1998b, Crone, 2006) oraz w konstrukcji interfejsów mózg-komputer (Pfurtscheller, 2006).&lt;br /&gt;
[[Plik:Mapowanie.png|thumb|600px|center|Mapowanie kory czuciowo-ruchowej za pomocą stymulacji: dwie falki – bezwolne reakcje ruchowe, trzy falki – kloniczny skurcz mięśni, za Crone, 1998]]&lt;br /&gt;
[[Plik:Mapki_ECoG.jpg|thumb|600px|center|Mapowanie kory czuciowo-ruchowej za pomocą ERD/ERS.Pacjent z przyczyn medycznych miał umieszczoną na korze motorycznej siatkę elektrod (6×8, odstęp 1 cm). Pacjent miał zaciskać pięść w odpowiedzi na bodziec wzrokowy przez cały czas trwania bodźca (3 s)&lt;br /&gt;
Prezentowane mapy istotnych statystycznie zmian uzyskano na podstawie 49 wolnych od artefaktów realizacji.]]&lt;br /&gt;
&lt;br /&gt;
==Estymacja zmian mocy sygnału EEG w dziedzinie czasu==&lt;br /&gt;
Przebieg czasowy zjawiska ERD i ERS jest specyficzny dla pasm częstości.&lt;br /&gt;
[[Grafika:ERDS klasycznie_1.png|right|thumb|768px|&amp;lt;figure id=&amp;quot;fig:erds_klasycznie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt; Klasyczne obliczanie ERD/ERS. &amp;lt;br&amp;gt; a) Przykładowy zapis EEG jednej z ''N'' realizacji  &amp;lt;br&amp;gt; b) przefiltrowany sygnał EEG w wybranym paśmie (tutaj: [15 25] Hz)&amp;lt;br&amp;gt;  c) przefiltrowany sygnał podniesiony do kwadratu &amp;amp;mdash; w ten sposób uzyskujemy przebieg mocy pasmowej w czasie &amp;lt;br&amp;gt; d) uśredniony po realizacjach przebieg mocy pasmowej w czasie &amp;lt;br&amp;gt; e) wygładzony przebieg z d) za pomocą średniej biegnącej (tutaj okienko 0,25 s); czerwone pionowe linie wyznaczają okres referencyjny &amp;lt;br&amp;gt; f) ERD/ERS — względna zmiana sygnału e) w odniesieniu do okresu referencyjnego.]]&lt;br /&gt;
Klasyczny sposób estymowania  ERD i ERS (Pfurtscheller, 1979) polega na (patrz ilustracja): &lt;br /&gt;
*filtrowaniu pasmowym,&lt;br /&gt;
*wyrównaniu realizacji względem momentu wystąpienia bodźca, &lt;br /&gt;
*obliczaniu mocy chwilowej (podniesienie do kwadratu wartości każdej próbki sygnału), &lt;br /&gt;
*uśrednieniu mocy chwilowej po realizacjach, wygładzeniu przebiegu czasowego uśrednionej mocy chwilowej filtrem dolnoprzepustowym.&lt;br /&gt;
*Następnie względna zmiana mocy obliczana jest jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{ERD/ERS}_f(t) = \frac{P_f(t) - R_f}{R_f}  &amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie:&lt;br /&gt;
''P''&amp;lt;sub&amp;gt;''f ''&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; średnia moc chwilowa w paśmie częstości ''f''; uśrednianie przebiega po realizacjach.&lt;br /&gt;
''R''&amp;lt;sub&amp;gt;''f''&amp;lt;/sub&amp;gt; &amp;amp;mdash; średnia moc w paśmie ''f'' w okresie referencyjnym; uśrednianie przebiega po realizacjach i po czasie trwania okresu referencyjnego.&lt;br /&gt;
Klasycznym metodom obliczania ERD/ERS poświęcona jest praca (Pfurtscheller, 1999).&lt;br /&gt;
Całościowy obraz zmian mocy sygnału EEG związanych z bodźcem można dogodnie analizować w dziedzinie czas-częstość.&lt;br /&gt;
&lt;br /&gt;
=Cwiczenia=&lt;br /&gt;
&lt;br /&gt;
==Paradygmat ==&lt;br /&gt;
&lt;br /&gt;
===wersja 1===&lt;br /&gt;
Osoba badana siedzi wygodnie i trzyma przycisk podłączony do triggera.&lt;br /&gt;
Na ekranie w odstępach 13&amp;lt;math&amp;gt;\pm&amp;lt;/math&amp;gt;1 sekund wyświetlany jest krzyżyk. Krzyżyk wyświetlany jest przez 2 sekundy. W przeciągu 2 sekund po zniknięciu krzyżyka osoba badana w wybranym przez siebie momencie wciska przycisk. Proszę zarejestrować 60 realizacji.&lt;br /&gt;
&lt;br /&gt;
Przygotuj program implementujący powyższy paradygmat.&lt;br /&gt;
&lt;br /&gt;
===wersja 2===&lt;br /&gt;
Próba rozróżnienia ruchów lewą i prawą ręką &amp;amp;mdash; jak w BCI; na podstawie artykułu [[file:ERDS.BCI.TNSRE2012.pdf]], oczywiście w uproszczonej wersji :-)&lt;br /&gt;
&lt;br /&gt;
Procedura:&lt;br /&gt;
&lt;br /&gt;
Osoba badana ma za zadanie poruszać palcami (wskazującym oraz środkowym) prawej lub lewej ręki. Na ekranie monitora pojawia się strzałka, która widoczna jest przez okres 3 sek. i wskazuje rękę, którą będzie wykonywany ruch. Osoba badana ma ruszyć wskazaną ręką w wybranym przez siebie momencie PO zniknięciu strzałki. &lt;br /&gt;
Dla każdej ręki przewidziane jest 100 powtórzeń. W celu synchronizacji sygnału EEG ze wskazówkami pojawiającymi się na ekranie monitora, w lewym dolnym rogu (gdzie pojawia się biały kwadrat) powinna zostać umieszczona fotodioda. &lt;br /&gt;
&lt;br /&gt;
Rejestracja sygnału:&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy następujące elektrody umieszczone zgodnie z systemem 10--10: FC3, FC1, FCz, FC2, FC4, C5, C3, C1, Cz, C2, C4, C6, CP5, CP3, CP1, CPz, CP2, CP4, CP6, P1, P2, A1, A1. Dodatkowo wykonujemy pomiar z mięśnia extensor digitorum. W tym celu na obu rękach umieszczamy elektrody bipolarne do EMG (patrz Fig. 1 (elektroda ED3): http://jn.physiology.org/content/100/6/3225.long). Sygnał rejestrujemy z częstością 512 Hz.&lt;br /&gt;
&lt;br /&gt;
Procedura może zostać pobrana ze stony: https://github.com/mroja/signal_utils/tree/master/erds/arrows.&lt;br /&gt;
&lt;br /&gt;
===wersja 3=== &lt;br /&gt;
Osoba ma za zadanie ruszać palcem lub wyobrażać sobie ruch palcem. Polecenia te podawane są losowo (nie więcej niż 3 te same próby powinny być pod rząd). Na ekranie powinna zostać wyświetlona instrukcja, w której opisany jest cel badania. Następnie rozpoczyna się blok prób, w trakcie poszczególnej próby wyświetlane jest polecenie: &amp;amp;bdquo;Rusz palcem&amp;amp;rdquo;/&amp;amp;bdquo;Wyobraź sobie ruch palcem&amp;amp;rdquo; na 4 s, następnie 3 s przerwy (pusty ekran). Każde polecenie powinno być powtórzone 100 razy. &lt;br /&gt;
&lt;br /&gt;
W trakcie procedury powinien być zbierany sygnał EEG oraz EMG palca. Wykorzystujemy następujące elektrody EEG umieszczone zgodnie z systemem 10-10: FC3, FC1, FCz, FC2, FC4, C5, C3, C1, Cz, C2, C4, C6, CP5, CP3, CP1, CPz, CP2, CP4, CP6, P1, P2, A1, A1. częstość próbkowania: min. 1024 Hz. &lt;br /&gt;
&amp;lt;!--Analiza:&lt;br /&gt;
# ERD/S w pasmach&lt;br /&gt;
# uśrednione mapy czas-częstość osobno dla ruchu lewą i prawą ręką&lt;br /&gt;
# analiza możliwości rozróżnienia ruchu na podstawie EEG&lt;br /&gt;
&lt;br /&gt;
Uśrednianie spektrogramów wykonujemy samodzielnie w Pythonie, a na deser liczymy estymatę średnich rozkładów czas-częstość z MP:&lt;br /&gt;
&lt;br /&gt;
# eksportujemy tagi znalezione na podstawie EMG https://brain.fuw.edu.pl/edu/EEG:Pracownia_EEG/SSVEP_1#.C4.86wiczenie_dla_ch.C4.99tnych i oglądamy w Svarogu wyniki na tle sygnału&lt;br /&gt;
# ściągamy najnowszą wersję Svaroga z http://braintech.pl/svarog, umożliwiającą uśrednianie map&lt;br /&gt;
# Otwieramy w Svarogu plik sygnału wraz z tagami.&lt;br /&gt;
# Ustalamy odpowiedni montaż i filtrowanie sygnału.&lt;br /&gt;
# Uruchamiamy dekompozycję MP (Tools → MP decomposition) wybierając w ustawieniach (zakładka „Signal selection” → zakładka „Marked”)&lt;br /&gt;
## rodzaj taga oznaczającego kolejne powtórzenia&lt;br /&gt;
## początek i długość trwania analizowanego interwału czasu (w sekundach, względem wystąpienia taga)&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu obliczeń otwieramy rezultat w nowym oknie („Get result”). Obliczona w ten sposób „książka” składa się z dekompozycji MP kolejnych powtórzeń eksperymentu, przedstawionych w postaci map czas-częstość. Otrzymane mapy możemy następnie uśrednić (Tools → Average books) i zapisać do pliku graficznego o ustalonej rozdzielczości.--&amp;gt;&lt;br /&gt;
&amp;lt;!--==Rejestracja sygnału==&lt;br /&gt;
[[Plik:10_20zAFz.png|thumb| 600px|right]]&lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
# Elektrody referencyjne A1 i A2.&lt;br /&gt;
# Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz).&lt;br /&gt;
# Sygnał rejestrujemy z częstością 256 Hz.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analiza==&lt;br /&gt;
Czas wciśnięcia przycisku (wersja 1 i 2)/ wzorst EMG (wersja 3) oznaczymy jako 0.&lt;br /&gt;
Poniższą analizę zastosuj dla sygnałów w referencji do uśrednionych odprowadzeń usznych A1 i A2.&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie pasma &amp;amp;mu; i &amp;amp;beta;===&lt;br /&gt;
# Z sygnału wycinamy fragmenty od &amp;amp;minus;3 do &amp;amp;minus;1 sek. dla elektrod C3 i C4 (elektrody położone nad korą ruchową dłoni). &lt;br /&gt;
# Dla każdej realizacji obliczamy widma metodą Welcha.&lt;br /&gt;
# Otrzymane widma uśredniamy po realizacjach.&lt;br /&gt;
# Z sygnału wycinamy fragmenty od +0.5 do +2.5 sek. dla elektrod C3 i C4 (elektrody położone nad korą ruchową dłoni). &lt;br /&gt;
# Dla każdej realizacji obliczamy widma metodą Welcha.&lt;br /&gt;
# Otrzymane widma uśredniamy po realizacjach.&lt;br /&gt;
# Wykreśl widma z okresu poprzedzającego ruch i z okresu po ruchu nałożone na siebie, a także względną zmianę widma. Zaobserwuj w jakich zakresach częstości &amp;amp;mu; (pasmo około 10 Hz) i &amp;amp;beta; (około 23 Hz) występują największe zmiany.&lt;br /&gt;
#Dla wersji 3 - te same operacje wykonaj dla warunku wyobrażonego ruchu - w pierwszym kroku należy ocenić na podstawie sygnału EMG, czy został wykonany ruch - jeśli tak - próbę taką należy usunąć z analiz. Jako punkt 0 będziemy brać początek polecenia na podstawie tagów.&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie przebiegu czasowego ERD i ERS ===&lt;br /&gt;
# Zaprojektuj filtry pasmowo przepustowe (Chebyszewa 2 rodzaju) zgodne z wyznaczonymi pasmami. Zbadaj funkcje przenoszenia i odpowiedzi impulsowej.&lt;br /&gt;
# Powycinaj sygnały od &amp;amp;minus;3 do +3 sekund (wszystkie kanały). Przefiltruj każdą realizację. &lt;br /&gt;
# Oblicz moc chwilową za pomocą transformaty Hilberta (kwadrat amplitudy chwilowej).&lt;br /&gt;
# Uśrednij moc chwilową po realizacjach.&lt;br /&gt;
# Oblicz względną zmianę mocy chwilowej względem czasu &amp;amp;minus;3 do &amp;amp;minus;1. W ten sposób otrzymasz przebieg ERD i ERS w czasie.&lt;br /&gt;
# Wykreśl ERD i ERS w układzie topograficznym. (Rozmieść subploty tak, aby z w przybliżeniu odpowiadały pozycjom elektrod).&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie przebiegu czasowego ERD i ERS wersja w roku 2024===&lt;br /&gt;
# Zaprojektuj filtry pasmowo przepustowe (Chebyszewa 2 rodzaju) zgodne z wyznaczonymi pasmami. Zbadaj funkcje przenoszenia i odpowiedzi impulsowej.&lt;br /&gt;
# Przefiltruj wszystkie kanały danych: osobno w pasmie alfa i osobno w pasmie beta.&lt;br /&gt;
# Powycinaj realizacje zgodnie położeniem tagów (czas 0 s) od &amp;amp;minus;2 do +4,5 sekund (wszystkie kanały).&lt;br /&gt;
# Kolejne etapy analizy wykonujemy osobno dla pasm alfa i beta.&lt;br /&gt;
# Oblicz amplitudę chwilową w każdej realizacji za pomocą transformaty Hilberta.&lt;br /&gt;
# Oblicz moc chwilową podnosząc amplitudy chwilowe do kwadratu.&lt;br /&gt;
# Uśrednij moc chwilową po realizacjach.&lt;br /&gt;
# Oblicz moc referencyjną na odcinku &amp;amp;minus;1,5 s do &amp;amp;minus;0,5 s w każdym kanale (można sprawdzić też odcinek &amp;amp;minus;2 s do &amp;amp;minus;0,5 s).&lt;br /&gt;
# Oblicz względną zmianę mocy chwilowej — przebieg ERD i ERS w czasie.&lt;br /&gt;
# Wykreśl ERD i ERS w układzie topograficznym. (Rozmieść subploty tak, aby z w przybliżeniu odpowiadały pozycjom elektrod).&lt;br /&gt;
&lt;br /&gt;
===Transformacja Hjortha===&lt;br /&gt;
Transformacja Hjortha jest przybliżeniem numerycznym transformacji Laplace'a, czyli drugiej pochodnej przestrzennej.&lt;br /&gt;
Obliczamy ją jako różnicę potencjału pomiędzy daną elektrodą i średnią z czterech sąsiednich elektrod.&lt;br /&gt;
&lt;br /&gt;
Proszę przeliczyć potencjały C3, Cz i C4 na montaż Hjortha oraz powtórzyć analizę ERD/ERS opisaną powyżej.&lt;br /&gt;
Przykładowo dla elektrody C3 montaż Hjortha &amp;lt;math&amp;gt;\mathrm{C3_H}&amp;lt;/math&amp;gt; otrzymuje się w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt;\mathrm{C3_H = C3 - \frac{1}{4}(T3+F3+Cz+P3)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Literatura=&lt;br /&gt;
* Beck, A., 1891. Oznaczenie lokalizacyi w mózgu i rdzeniu za pomoca zjawisk elektrycznych. Ph.D. thesis, Polska Akademia Umiejętności, Kraków, seria II.&lt;br /&gt;
* Crone, N. E., Miglioretti, D. L., Gordon, B., Lesser, R. P., 1998a. Functional mapping of human sensorimotor cortex with electrocorticigraphic spectral analysis II. Event-related synchronization in the gamma band. Brain 121, 2301–15.&lt;br /&gt;
* Crone, N. E., Miglioretti, D. L., Gordon, B., Sieracki, J. M., Wilson, M. T., Uematsu, S., 1998b. Functional mapping of human sensorimotor cortex with electrocorticographic spectral analysis I. Alpha and beta event-related desynchronization. Brain 121, 2271–99.&lt;br /&gt;
* Crone, N. E., Korzeniewska, A., Franaszczuk, P. J., 2010. Cortical gamma responses: Searching high and low. International Journal of Psychophysiology.&lt;br /&gt;
*Crone, N. E., Sinai, A., Korzeniewska, A., 2006. High-frequency gamma oscilla- tions and human brain mapping with electrocorticography. Progress in Brain Research 159, 275–295.&lt;br /&gt;
* Kaiser, J., Lutzenberger, W., 2003. Induced gamma-band activity and human brain function. Neuroscientist 9, 475–84.&lt;br /&gt;
* Nunez, P. L., 1981. Electric Fields of the Brain. The Neurophysics of EEG. Oxford University Press, New York.&lt;br /&gt;
* Pfurtscheller, G., Aranibar, A., 1979. Evaluation of event-related desyn- chronization (ERD) preceding and following voluntary self-paced movement. Electroencephalography and Clinical Neurophysiology 46, 138–146.&lt;br /&gt;
* Pfurtscheller, G., Flotzinger, D., Neuper, C., 1994. Differentiation between finger, toe and tongue movement in man based on 40 Hz EEG. Electroencephalography and Clinical Neurophysiology 90, 456–60.&lt;br /&gt;
* Pfurtscheller, G., Lopes da Silva, F. H., 1999. Event-related EEG/MEG synchronization and desynchronization: basic principles. Clinical Neurophysiology 110, 1842–57.&lt;br /&gt;
* Pfurtscheller, G., 1999. Quantification of ERD and ERS in the time domain. In: W Pfurtscheller, G., Lopes da Silva, F. H. (Eds.), Event-related desynchroni- zation. Vol. 6. Elsevier, p. 89–105.&lt;br /&gt;
* Pfurtscheller, G., Neuper, C., 2006. Future prospects of ERD/ERS in the context of brain-computer interface (BCI) developments. Progress in Brain Research 159, 433–437.&lt;br /&gt;
* Pfurtscheller, G., Stancak Jr, A., C., N., 1996a. Post-movement beta synchronization. A correlate of an idling motor area? Electroencephalography and Clinical Neurophysiology 98, 281–93.&lt;br /&gt;
* Pfurtscheller, G., Stancak Jr, A., Neuper, C., 1996b. Event-related synchronization (ERS) in the alpha band—an electrophysiological correlate of cortical idling: a review. International Journal of Psychophysiology 24, 39–46.&lt;br /&gt;
*Tallon-Baudry, C., Bertrand, O., 1999. Oscillatory gamma activity in humans and its role in object representation. Trends Cogn. Sci. 3, 151–62.&lt;br /&gt;
* Tallon-Baudry, C., Bertrand, O., Delpuech, C., Pernier, J., 1996. Stimulus specificity of phase-locked and non-phase-locked 40 Hz visual responses in human. The Journal of Neuroscience 16, 4240–4249.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS&amp;diff=10818</id>
		<title>Pracownia EEG 2/ERDS</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS&amp;diff=10818"/>
		<updated>2024-09-24T07:52:44Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Utworzono nową stronę &amp;quot;Pracownia EEG / ERD/S  =Wstęp= Wśród badań wykonywanych z wykorzystaniem rejestracji EEG czy MEG można wyróżnić badania spoczynkowe, gdzie reje...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG|Pracownia EEG]] / ERD/S&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
Wśród badań wykonywanych z wykorzystaniem rejestracji EEG czy MEG można wyróżnić badania spoczynkowe, gdzie rejestrowana jest spontaniczna aktywność mózgu oraz badania zmian aktywności pod wpływem różnych bodźców, przy czym bodźce te mogą być pochodzenia egzo- lub endogennego. Reakcja na bodziec może wykazywać stały związek fazowy z momentem wystąpienia bodźca &amp;amp;mdash; w takiej sytuacji mówimy o potencjałach lub polach wywołanych (ang. ''event related potential'', ''ERP'' i ''event related field'', ''ERF'') &amp;amp;mdash; lub też może nie być fazowo związana z bodźcem.&lt;br /&gt;
&lt;br /&gt;
Niniejsza część pracowni poświęcona jest metodologii badania reakcji mózgu na bodźce, które są czasowo ale niekoniecznie fazowo związane z bodźcem.&lt;br /&gt;
&lt;br /&gt;
=Zmiany pasmowej mocy sygnału EEG=&lt;br /&gt;
Pierwsze rezultaty opisujące zmiany w mocy pasmowej sygnału EEG (spadek mocy rytmu alfa) związane z reakcją na bodziec zostały opisane w pracy doktorskiej Adolf Becka zatytułowanej &amp;amp;bdquo;Oznaczenie lokalizacyi w mózgu i rdzeniu za pomocą zjawisk elektrycznych&amp;amp;rdquo; (Beck,  1891). &lt;br /&gt;
Ilościowe badania zjawisk modulacji mocy sygnału EEG w reakcji na bodźce rozpoczęto stosunkowo niedawno. Począwszy od pracy (Pfurtscheller, 1979) zjawiska te zaczęto nazywać ''Event Related Desynchronization'' (ERD) &amp;amp;mdash; czyli desynchronizacja związana z bodźcem. Termin ERD dotyczy spadku mocy. Przez analogię w późniejszych pracach terminem ''Event Related Synchronization'' (ERS) opisywane są efekty polegające na wzroście mocy. W większości paradygmatów eksperymentalnych zjawiska ERD i ERS są małe w porównaniu ze zmiennością mocy sygnału EEG związanej ze spontaniczną aktywnością mózgu. W celu ich ilościowego badania wymagane jest zarejestrowanie wielu realizacji reakcji na bodziec i poddanie ich analizie statystycznej. &lt;br /&gt;
&lt;br /&gt;
[[Plik:Paradygmat erds.gif|thumb|800px|center]]&lt;br /&gt;
==Interpretacja fizjologiczna==&lt;br /&gt;
[[Plik:EEG_synchronicznosc.png|600px|thumb|right|Synchronicznie pobudzana grupa neuronów piramidalnych kory tworzy warstwę dipolową.]]&lt;br /&gt;
[[Plik:Mapka_tf_erds.png|600px|thumb|right|Przykładowa mapa zjawiska synchronizacji i desynchronizacji sygnału EEG w przestrzeni czas-częstość dla sygnału zearejestrowanego przez elektrodę C3. Osoba badana wykonywała szybki ruch palcem w momencie oznaczonym 0. Kolory odpowiadają procentowej zmianie mocy względem poprzedzającego okresu 2 s, zgodnie ze skalą barw umieszczoną po prawej stronie.  Na poziomej osi — czas w s, na pionowej częstość w Hz.]]&lt;br /&gt;
Terminy ERD i ERS mają swoje źródło w fizjologicznej interpretacji zmian mocy sygnału w określonych pasmach częstości.  Źródłem mierzalnego na powierzchni głowy sygnału elektrycznego lub magnetycznego jest synchroniczna aktywność wielu neuronów (głównie piramidalnych kory). Szacuje się, że wpływ na wielkość sygnału EEG lub MEG ma głównie stopień synchronizacji neuronów wytwarzających ten sygnał, a w drugiej kolejności ich ilość (Nunez, 1981). Tak więc wzrost mocy w pewnym paśmie (np. alfa ERS) interpretowany jest jako wzrost synchronizacji aktywności neuronów generujących aktywność EEG w tym paśmie, zaś spadek mocy (np. alfa ERD) interpretowany jest jako spadek synchronizacji neuronów generujących aktywność EEG w tym paśmie częstości. Przy takiej interpretacji należy pamiętać o skali w jakiej dokonywany jest pomiar. Zarówno elektrody EEG jak i cewki MEG mierzą sygnały średnie pochodzące od olbrzymich ilości neuronów. Zatem zmiana mocy w tym sygnale odpowiada desynchronizacji lub synchronizacji w skali makroskopowej (rzędu 10&amp;lt;sup&amp;gt;6&amp;lt;/sup&amp;gt;-10&amp;lt;sup&amp;gt;8&amp;lt;/sup&amp;gt; neuronów). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zjawiska ERD i ERS badane były zarówno w eksperymentach motorycznych (Pfurtscheller, 1994, Pfurtscheller, 1996a, Pfurtscheller, 1996b , Pfurtscheller, 1999) jak i kognitywistycznych  (Tallon Baudry, 1996, Tallon, 1999, Kaiser, 2003).&lt;br /&gt;
Wnioski płynące z tych prac są takie, że znaczenie zjawisk ERD i ERS zależy od pasma częstości, w którym one występują. Aktywność w paśmie alfa wiązana jest ze stanem spoczynkowym, ERD w paśmie alfa i beta wiązane jest z pobudzeniem danego rejonu kory mózgowej, w którym zjawisko to zachodzi. ERS w paśmie alfa i beta następujący po ERD w tym samym paśmie częstości interpretowany jest najczęściej jako przejaw inhibicji lub kasowania poprzedniego stanu. Z kolei zwiększona aktywność w paśmie gamma jest interpretowana jako przejaw funkcjonalnej aktywacji danego fragmentu kory. Nowe wyniki pojawiają się na bieżąco i stawiane są nowe pytania co do możliwych interpretacji poszczególnych zjawisk  np. (Crone, 2010).&lt;br /&gt;
&lt;br /&gt;
Oprócz motywacji czysto poznawczych, badania zjawisk ERD i ERS stymulowane są przez praktyczne możliwości ich wykorzystania w diagnostyce epilepsji, gdzie są nadzieje na zastosowanie tej techniki w miejsce bardziej inwazyjnej metody mapowania mózgu przez elektrostymulację (Crone 1998a, Crone, 1998b, Crone, 2006) oraz w konstrukcji interfejsów mózg-komputer (Pfurtscheller, 2006).&lt;br /&gt;
[[Plik:Mapowanie.png|thumb|600px|center|Mapowanie kory czuciowo-ruchowej za pomocą stymulacji: dwie falki – bezwolne reakcje ruchowe, trzy falki – kloniczny skurcz mięśni, za Crone, 1998]]&lt;br /&gt;
[[Plik:Mapki_ECoG.jpg|thumb|600px|center|Mapowanie kory czuciowo-ruchowej za pomocą ERD/ERS.Pacjent z przyczyn medycznych miał umieszczoną na korze motorycznej siatkę elektrod (6×8, odstęp 1 cm). Pacjent miał zaciskać pięść w odpowiedzi na bodziec wzrokowy przez cały czas trwania bodźca (3 s)&lt;br /&gt;
Prezentowane mapy istotnych statystycznie zmian uzyskano na podstawie 49 wolnych od artefaktów realizacji.]]&lt;br /&gt;
&lt;br /&gt;
==Estymacja zmian mocy sygnału EEG w dziedzinie czasu==&lt;br /&gt;
Przebieg czasowy zjawiska ERD i ERS jest specyficzny dla pasm częstości.&lt;br /&gt;
[[Grafika:ERDS klasycznie_1.png|right|thumb|768px|&amp;lt;figure id=&amp;quot;fig:erds_klasycznie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt; Klasyczne obliczanie ERD/ERS. &amp;lt;br&amp;gt; a) Przykładowy zapis EEG jednej z ''N'' realizacji  &amp;lt;br&amp;gt; b) przefiltrowany sygnał EEG w wybranym paśmie (tutaj: [15 25] Hz)&amp;lt;br&amp;gt;  c) przefiltrowany sygnał podniesiony do kwadratu &amp;amp;mdash; w ten sposób uzyskujemy przebieg mocy pasmowej w czasie &amp;lt;br&amp;gt; d) uśredniony po realizacjach przebieg mocy pasmowej w czasie &amp;lt;br&amp;gt; e) wygładzony przebieg z d) za pomocą średniej biegnącej (tutaj okienko 0,25 s); czerwone pionowe linie wyznaczają okres referencyjny &amp;lt;br&amp;gt; f) ERD/ERS — względna zmiana sygnału e) w odniesieniu do okresu referencyjnego.]]&lt;br /&gt;
Klasyczny sposób estymowania  ERD i ERS (Pfurtscheller, 1979) polega na (patrz ilustracja): &lt;br /&gt;
*filtrowaniu pasmowym,&lt;br /&gt;
*wyrównaniu realizacji względem momentu wystąpienia bodźca, &lt;br /&gt;
*obliczaniu mocy chwilowej (podniesienie do kwadratu wartości każdej próbki sygnału), &lt;br /&gt;
*uśrednieniu mocy chwilowej po realizacjach, wygładzeniu przebiegu czasowego uśrednionej mocy chwilowej filtrem dolnoprzepustowym.&lt;br /&gt;
*Następnie względna zmiana mocy obliczana jest jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{ERD/ERS}_f(t) = \frac{P_f(t) - R_f}{R_f}  &amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie:&lt;br /&gt;
''P''&amp;lt;sub&amp;gt;''f ''&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; średnia moc chwilowa w paśmie częstości ''f''; uśrednianie przebiega po realizacjach.&lt;br /&gt;
''R''&amp;lt;sub&amp;gt;''f''&amp;lt;/sub&amp;gt; &amp;amp;mdash; średnia moc w paśmie ''f'' w okresie referencyjnym; uśrednianie przebiega po realizacjach i po czasie trwania okresu referencyjnego.&lt;br /&gt;
Klasycznym metodom obliczania ERD/ERS poświęcona jest praca (Pfurtscheller, 1999).&lt;br /&gt;
Całościowy obraz zmian mocy sygnału EEG związanych z bodźcem można dogodnie analizować w dziedzinie czas-częstość.&lt;br /&gt;
&lt;br /&gt;
=Cwiczenia=&lt;br /&gt;
&lt;br /&gt;
==Paradygmat ==&lt;br /&gt;
&lt;br /&gt;
===wersja 1===&lt;br /&gt;
Osoba badana siedzi wygodnie i trzyma przycisk podłączony do triggera.&lt;br /&gt;
Na ekranie w odstępach 13&amp;lt;math&amp;gt;\pm&amp;lt;/math&amp;gt;1 sekund wyświetlany jest krzyżyk. Krzyżyk wyświetlany jest przez 2 sekundy. W przeciągu 2 sekund po zniknięciu krzyżyka osoba badana w wybranym przez siebie momencie wciska przycisk. Proszę zarejestrować 60 realizacji.&lt;br /&gt;
&lt;br /&gt;
Przygotuj program implementujący powyższy paradygmat.&lt;br /&gt;
&lt;br /&gt;
===wersja 2===&lt;br /&gt;
Próba rozróżnienia ruchów lewą i prawą ręką &amp;amp;mdash; jak w BCI; na podstawie artykułu [[file:ERDS.BCI.TNSRE2012.pdf]], oczywiście w uproszczonej wersji :-)&lt;br /&gt;
&lt;br /&gt;
Procedura:&lt;br /&gt;
&lt;br /&gt;
Osoba badana ma za zadanie poruszać palcami (wskazującym oraz środkowym) prawej lub lewej ręki. Na ekranie monitora pojawia się strzałka, która widoczna jest przez okres 3 sek. i wskazuje rękę, którą będzie wykonywany ruch. Osoba badana ma ruszyć wskazaną ręką w wybranym przez siebie momencie PO zniknięciu strzałki. &lt;br /&gt;
Dla każdej ręki przewidziane jest 100 powtórzeń. W celu synchronizacji sygnału EEG ze wskazówkami pojawiającymi się na ekranie monitora, w lewym dolnym rogu (gdzie pojawia się biały kwadrat) powinna zostać umieszczona fotodioda. &lt;br /&gt;
&lt;br /&gt;
Rejestracja sygnału:&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy następujące elektrody umieszczone zgodnie z systemem 10--10: FC3, FC1, FCz, FC2, FC4, C5, C3, C1, Cz, C2, C4, C6, CP5, CP3, CP1, CPz, CP2, CP4, CP6, P1, P2, A1, A1. Dodatkowo wykonujemy pomiar z mięśnia extensor digitorum. W tym celu na obu rękach umieszczamy elektrody bipolarne do EMG (patrz Fig. 1 (elektroda ED3): http://jn.physiology.org/content/100/6/3225.long). Sygnał rejestrujemy z częstością 512 Hz.&lt;br /&gt;
&lt;br /&gt;
Procedura może zostać pobrana ze stony: https://github.com/mroja/signal_utils/tree/master/erds/arrows.&lt;br /&gt;
&lt;br /&gt;
===wersja 3=== &lt;br /&gt;
Osoba ma za zadanie ruszać palcem lub wyobrażać sobie ruch palcem. Polecenia te podawane są losowo (nie więcej niż 3 te same próby powinny być pod rząd). Na ekranie powinna zostać wyświetlona instrukcja, w której opisany jest cel badania. Następnie rozpoczyna się blok prób, w trakcie poszczególnej próby wyświetlane jest polecenie: &amp;amp;bdquo;Rusz palcem&amp;amp;rdquo;/&amp;amp;bdquo;Wyobraź sobie ruch palcem&amp;amp;rdquo; na 4 s, następnie 3 s przerwy (pusty ekran). Każde polecenie powinno być powtórzone 100 razy. &lt;br /&gt;
&lt;br /&gt;
W trakcie procedury powinien być zbierany sygnał EEG oraz EMG palca. Wykorzystujemy następujące elektrody EEG umieszczone zgodnie z systemem 10-10: FC3, FC1, FCz, FC2, FC4, C5, C3, C1, Cz, C2, C4, C6, CP5, CP3, CP1, CPz, CP2, CP4, CP6, P1, P2, A1, A1. częstość próbkowania: min. 1024 Hz. &lt;br /&gt;
&amp;lt;!--Analiza:&lt;br /&gt;
# ERD/S w pasmach&lt;br /&gt;
# uśrednione mapy czas-częstość osobno dla ruchu lewą i prawą ręką&lt;br /&gt;
# analiza możliwości rozróżnienia ruchu na podstawie EEG&lt;br /&gt;
&lt;br /&gt;
Uśrednianie spektrogramów wykonujemy samodzielnie w Pythonie, a na deser liczymy estymatę średnich rozkładów czas-częstość z MP:&lt;br /&gt;
&lt;br /&gt;
# eksportujemy tagi znalezione na podstawie EMG https://brain.fuw.edu.pl/edu/EEG:Pracownia_EEG/SSVEP_1#.C4.86wiczenie_dla_ch.C4.99tnych i oglądamy w Svarogu wyniki na tle sygnału&lt;br /&gt;
# ściągamy najnowszą wersję Svaroga z http://braintech.pl/svarog, umożliwiającą uśrednianie map&lt;br /&gt;
# Otwieramy w Svarogu plik sygnału wraz z tagami.&lt;br /&gt;
# Ustalamy odpowiedni montaż i filtrowanie sygnału.&lt;br /&gt;
# Uruchamiamy dekompozycję MP (Tools → MP decomposition) wybierając w ustawieniach (zakładka „Signal selection” → zakładka „Marked”)&lt;br /&gt;
## rodzaj taga oznaczającego kolejne powtórzenia&lt;br /&gt;
## początek i długość trwania analizowanego interwału czasu (w sekundach, względem wystąpienia taga)&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu obliczeń otwieramy rezultat w nowym oknie („Get result”). Obliczona w ten sposób „książka” składa się z dekompozycji MP kolejnych powtórzeń eksperymentu, przedstawionych w postaci map czas-częstość. Otrzymane mapy możemy następnie uśrednić (Tools → Average books) i zapisać do pliku graficznego o ustalonej rozdzielczości.--&amp;gt;&lt;br /&gt;
&amp;lt;!--==Rejestracja sygnału==&lt;br /&gt;
[[Plik:10_20zAFz.png|thumb| 600px|right]]&lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;lt;math&amp;gt;\Omega&amp;lt;/math&amp;gt; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
# Elektrody referencyjne A1 i A2.&lt;br /&gt;
# Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz).&lt;br /&gt;
# Sygnał rejestrujemy z częstością 256 Hz.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Analiza==&lt;br /&gt;
Czas wciśnięcia przycisku (wersja 1 i 2)/ wzorst EMG (wersja 3) oznaczymy jako 0.&lt;br /&gt;
Poniższą analizę zastosuj dla sygnałów w referencji do uśrednionych odprowadzeń usznych A1 i A2.&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie pasma &amp;amp;mu; i &amp;amp;beta;===&lt;br /&gt;
# Z sygnału wycinamy fragmenty od &amp;amp;minus;3 do &amp;amp;minus;1 sek. dla elektrod C3 i C4 (elektrody położone nad korą ruchową dłoni). &lt;br /&gt;
# Dla każdej realizacji obliczamy widma metodą Welcha.&lt;br /&gt;
# Otrzymane widma uśredniamy po realizacjach.&lt;br /&gt;
# Z sygnału wycinamy fragmenty od +0.5 do +2.5 sek. dla elektrod C3 i C4 (elektrody położone nad korą ruchową dłoni). &lt;br /&gt;
# Dla każdej realizacji obliczamy widma metodą Welcha.&lt;br /&gt;
# Otrzymane widma uśredniamy po realizacjach.&lt;br /&gt;
# Wykreśl widma z okresu poprzedzającego ruch i z okresu po ruchu nałożone na siebie, a także względną zmianę widma. Zaobserwuj w jakich zakresach częstości &amp;amp;mu; (pasmo około 10 Hz) i &amp;amp;beta; (około 23 Hz) występują największe zmiany.&lt;br /&gt;
#Dla wersji 3 - te same operacje wykonaj dla warunku wyobrażonego ruchu - w pierwszym kroku należy ocenić na podstawie sygnału EMG, czy został wykonany ruch - jeśli tak - próbę taką należy usunąć z analiz. Jako punkt 0 będziemy brać początek polecenia na podstawie tagów.&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie przebiegu czasowego ERD i ERS ===&lt;br /&gt;
# Zaprojektuj filtry pasmowo przepustowe (Chebyszewa 2 rodzaju) zgodne z wyznaczonymi pasmami. Zbadaj funkcje przenoszenia i odpowiedzi impulsowej.&lt;br /&gt;
# Powycinaj sygnały od &amp;amp;minus;3 do +3 sekund (wszystkie kanały). Przefiltruj każdą realizację. &lt;br /&gt;
# Oblicz moc chwilową za pomocą transformaty Hilberta (kwadrat amplitudy chwilowej).&lt;br /&gt;
# Uśrednij moc chwilową po realizacjach.&lt;br /&gt;
# Oblicz względną zmianę mocy chwilowej względem czasu &amp;amp;minus;3 do &amp;amp;minus;1. W ten sposób otrzymasz przebieg ERD i ERS w czasie.&lt;br /&gt;
# Wykreśl ERD i ERS w układzie topograficznym. (Rozmieść subploty tak, aby z w przybliżeniu odpowiadały pozycjom elektrod).&lt;br /&gt;
&lt;br /&gt;
===Wyznaczenie przebiegu czasowego ERD i ERS wersja w roku 2024===&lt;br /&gt;
# Zaprojektuj filtry pasmowo przepustowe (Chebyszewa 2 rodzaju) zgodne z wyznaczonymi pasmami. Zbadaj funkcje przenoszenia i odpowiedzi impulsowej.&lt;br /&gt;
# Przefiltruj wszystkie kanały danych: osobno w pasmie alfa i osobno w pasmie beta.&lt;br /&gt;
# Powycinaj realizacje zgodnie położeniem tagów (czas 0 s) od &amp;amp;minus;2 do +4,5 sekund (wszystkie kanały).&lt;br /&gt;
# Kolejne etapy analizy wykonujemy osobno dla pasm alfa i beta.&lt;br /&gt;
# Oblicz amplitudę chwilową w każdej realizacji za pomocą transformaty Hilberta.&lt;br /&gt;
# Oblicz moc chwilową podnosząc amplitudy chwilowe do kwadratu.&lt;br /&gt;
# Uśrednij moc chwilową po realizacjach.&lt;br /&gt;
# Oblicz moc referencyjną na odcinku &amp;amp;minus;1,5 s do &amp;amp;minus;0,5 s w każdym kanale (można sprawdzić też odcinek &amp;amp;minus;2 s do &amp;amp;minus;0,5 s).&lt;br /&gt;
# Oblicz względną zmianę mocy chwilowej — przebieg ERD i ERS w czasie.&lt;br /&gt;
# Wykreśl ERD i ERS w układzie topograficznym. (Rozmieść subploty tak, aby z w przybliżeniu odpowiadały pozycjom elektrod).&lt;br /&gt;
&lt;br /&gt;
===Transformacja Hjortha===&lt;br /&gt;
Transformacja Hjortha jest przybliżeniem numerycznym transformacji Laplace'a, czyli drugiej pochodnej przestrzennej.&lt;br /&gt;
Obliczamy ją jako różnicę potencjału pomiędzy daną elektrodą i średnią z czterech sąsiednich elektrod.&lt;br /&gt;
&lt;br /&gt;
Proszę przeliczyć potencjały C3, Cz i C4 na montaż Hjortha oraz powtórzyć analizę ERD/ERS opisaną powyżej.&lt;br /&gt;
Przykładowo dla elektrody C3 montaż Hjortha &amp;lt;math&amp;gt;\mathrm{C3_H}&amp;lt;/math&amp;gt; otrzymuje się w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt;\mathrm{C3_H = C3 - \frac{1}{4}(T3+F3+Cz+P3)}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Literatura=&lt;br /&gt;
* Beck, A., 1891. Oznaczenie lokalizacyi w mózgu i rdzeniu za pomoca zjawisk elektrycznych. Ph.D. thesis, Polska Akademia Umiejętności, Kraków, seria II.&lt;br /&gt;
* Crone, N. E., Miglioretti, D. L., Gordon, B., Lesser, R. P., 1998a. Functional mapping of human sensorimotor cortex with electrocorticigraphic spectral analysis II. Event-related synchronization in the gamma band. Brain 121, 2301–15.&lt;br /&gt;
* Crone, N. E., Miglioretti, D. L., Gordon, B., Sieracki, J. M., Wilson, M. T., Uematsu, S., 1998b. Functional mapping of human sensorimotor cortex with electrocorticographic spectral analysis I. Alpha and beta event-related desynchronization. Brain 121, 2271–99.&lt;br /&gt;
* Crone, N. E., Korzeniewska, A., Franaszczuk, P. J., 2010. Cortical gamma responses: Searching high and low. International Journal of Psychophysiology.&lt;br /&gt;
*Crone, N. E., Sinai, A., Korzeniewska, A., 2006. High-frequency gamma oscilla- tions and human brain mapping with electrocorticography. Progress in Brain Research 159, 275–295.&lt;br /&gt;
* Kaiser, J., Lutzenberger, W., 2003. Induced gamma-band activity and human brain function. Neuroscientist 9, 475–84.&lt;br /&gt;
* Nunez, P. L., 1981. Electric Fields of the Brain. The Neurophysics of EEG. Oxford University Press, New York.&lt;br /&gt;
* Pfurtscheller, G., Aranibar, A., 1979. Evaluation of event-related desyn- chronization (ERD) preceding and following voluntary self-paced movement. Electroencephalography and Clinical Neurophysiology 46, 138–146.&lt;br /&gt;
* Pfurtscheller, G., Flotzinger, D., Neuper, C., 1994. Differentiation between finger, toe and tongue movement in man based on 40 Hz EEG. Electroencephalography and Clinical Neurophysiology 90, 456–60.&lt;br /&gt;
* Pfurtscheller, G., Lopes da Silva, F. H., 1999. Event-related EEG/MEG synchronization and desynchronization: basic principles. Clinical Neurophysiology 110, 1842–57.&lt;br /&gt;
* Pfurtscheller, G., 1999. Quantification of ERD and ERS in the time domain. In: W Pfurtscheller, G., Lopes da Silva, F. H. (Eds.), Event-related desynchroni- zation. Vol. 6. Elsevier, p. 89–105.&lt;br /&gt;
* Pfurtscheller, G., Neuper, C., 2006. Future prospects of ERD/ERS in the context of brain-computer interface (BCI) developments. Progress in Brain Research 159, 433–437.&lt;br /&gt;
* Pfurtscheller, G., Stancak Jr, A., C., N., 1996a. Post-movement beta synchronization. A correlate of an idling motor area? Electroencephalography and Clinical Neurophysiology 98, 281–93.&lt;br /&gt;
* Pfurtscheller, G., Stancak Jr, A., Neuper, C., 1996b. Event-related synchronization (ERS) in the alpha band—an electrophysiological correlate of cortical idling: a review. International Journal of Psychophysiology 24, 39–46.&lt;br /&gt;
*Tallon-Baudry, C., Bertrand, O., 1999. Oscillatory gamma activity in humans and its role in object representation. Trends Cogn. Sci. 3, 151–62.&lt;br /&gt;
* Tallon-Baudry, C., Bertrand, O., Delpuech, C., Pernier, J., 1996. Stimulus specificity of phase-locked and non-phase-locked 40 Hz visual responses in human. The Journal of Neuroscience 16, 4240–4249.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS_2&amp;diff=10817</id>
		<title>Pracownia EEG 2/ERDS 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS_2&amp;diff=10817"/>
		<updated>2024-09-24T07:52:09Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Czas-częstość&lt;br /&gt;
&lt;br /&gt;
=Estymacja  i analiza względnych zmian gęstości energii sygnału EEG w przestrzeni czas-częstość=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Moduł tf używany w przykładach można pobrać w wersji Pythona stąd:}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
def czas(T = 1.0, Fs = 128.0):&lt;br /&gt;
    dt = 1.0/Fs&lt;br /&gt;
    t = np.arange(0,T,dt)&lt;br /&gt;
    return t&lt;br /&gt;
&lt;br /&gt;
def gauss(t0 = 0.3, sigma = 0.02, T = 1.0, Fs = 128.0):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = np.exp(-((t-t0)/(sigma))**2/2)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def g2(t0 = 0.3, sigma = 0.02, T = 1.0, Fs = 128.0):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = (-(t-t0)/(sigma))*np.exp(-((t-t0)/(sigma))**2/2)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def g3(t0 = 0.3, sigma = 0.02, T = 1.0, Fs = 128.0):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = np.exp(-((t-t0)/(sigma))**2/2)&lt;br /&gt;
    s[t&amp;lt;t0] = 0&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def gabor(t0 = 0.5, sigma = 0.1, T = 1.0, f=10, phi = 0, Fs = 128.0):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = np.exp(-((t-t0)/(sigma))**2/2) * np.cos(2*np.pi*f*(t-t0) + phi)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def sin(f = 10.0, T = 1.0, Fs = 128.0, phi =0 ):&lt;br /&gt;
    '''sin o zadanej cz?sto?ci (w Hz), d?ugo?ci, fazie i cz?sto?ci próbkowania&lt;br /&gt;
	Domy?lnie wytwarzany jest sygna? reprezentuj?cy &lt;br /&gt;
	1 sekund? sinusa o cz?sto?ci 1Hz i zerowej fazie próbkowanego 128 Hz&lt;br /&gt;
	'''&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = np.sin(2*np.pi*f*t + phi)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def chirp(f0,fk,T,Fs):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    f  = f0 + (fk-f0)/2.0/(T)*t&lt;br /&gt;
    s  = np.cos(2*np.pi*t*f)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def cwt(x, MinF,MaxF,Fs,w=7.0,df=1.0,plot = True):&lt;br /&gt;
    '''w - parametr falki Morleta,&lt;br /&gt;
      wiaze sie z jej czestoscia centralna i skala w nastepujacy sposob:&lt;br /&gt;
      f = 2*s*w / T&lt;br /&gt;
      gdzie: s-skala,  T-dlugosc sygnalu w sek.'''&lt;br /&gt;
    T= len(x)/Fs&lt;br /&gt;
    M = len(x)&lt;br /&gt;
    t = np.arange(0,T,1./Fs)&lt;br /&gt;
    freqs = np.arange(MinF,MaxF,df)&lt;br /&gt;
    P = np.zeros((len(freqs),M))&lt;br /&gt;
    X = ss.fft(x)&lt;br /&gt;
    for i,f in enumerate(freqs):&lt;br /&gt;
        s = T*f/(2*w)&lt;br /&gt;
        psi = ss.fft(ss.morlet(M, w=w, s=s, complete=True))&lt;br /&gt;
        psi /= np.sqrt(np.sum(psi*psi.conj()))    &lt;br /&gt;
        tmp = np.fft.fftshift(ss.ifft(X*psi))&lt;br /&gt;
        P[i,:] = (tmp*tmp.conj()).real&lt;br /&gt;
    &lt;br /&gt;
    if plot:&lt;br /&gt;
        py.imshow(P,aspect='auto',origin='lower',extent=(0,T,MinF, MaxF))&lt;br /&gt;
        py.show()&lt;br /&gt;
    return P,f,t&lt;br /&gt;
&lt;br /&gt;
def wvd(x, Fs, plot=True):&lt;br /&gt;
    samples = len(x)&lt;br /&gt;
    N = samples / 2&lt;br /&gt;
    z = np.zeros(samples)&lt;br /&gt;
    xh = ss.hilbert(x)&lt;br /&gt;
    x_period_h = np.concatenate((z,xh,z));&lt;br /&gt;
 &lt;br /&gt;
    t = range(0, samples, 1)  # czas w samplach&lt;br /&gt;
    tfr = np.zeros((samples , samples), dtype=complex)&lt;br /&gt;
    for ti in t:&lt;br /&gt;
        for tau in range(-samples/2,samples/2):&lt;br /&gt;
	    tfr[samples/2 + tau, ti] =  x_period_h[samples+ti +  tau] * x_period_h[samples+ti - tau].conj() &lt;br /&gt;
    tfr = np.fft.fftshift(tfr,axes = 0)&lt;br /&gt;
    Tfr = np.fft.fft(tfr, samples, axis=0)/samples&lt;br /&gt;
    ts = np.array(t, dtype=float) / (float(Fs))&lt;br /&gt;
    f = np.linspace(0, Fs / 2, N)&lt;br /&gt;
    if plot:&lt;br /&gt;
        py.imshow( Tfr.real, interpolation='nearest', extent=[0, ts[-1], 0, f[-1]], origin='lower', aspect='auto')&lt;br /&gt;
        py.show()&lt;br /&gt;
    return Tfr, ts, f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    t = czas()&lt;br /&gt;
    Fs = 512.0&lt;br /&gt;
    T = 1.0&lt;br /&gt;
    #py.plot(t,sin(),t,gauss(),t,g2(),t,g3(),t,gabor())&lt;br /&gt;
    ch = chirp(5,Fs/2-5,T,Fs)&lt;br /&gt;
    py.plot(ch)&lt;br /&gt;
    py.show()&lt;br /&gt;
    #cwt(gabor(),0.1,64,128)&lt;br /&gt;
    #cwt(ch,0.1,Fs/2,Fs)&lt;br /&gt;
    #ch = gabor(t0=0,f=Fs/2)&lt;br /&gt;
    wvd(ch,Fs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[https://brain.fuw.edu.pl/~suffa/LabEEG/TF.zip Moduł czas-częstość w Matlabie]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zasada nieoznaczoności dla przestrzeni czas-częstość==&lt;br /&gt;
Poniższy rysunek obrazuje koncepcję zasady nieoznaczoności w przypadku analizy czas-częstość: im dokładniej znamy lokalizację interesującego nas fragmentu sygnału (struktury) w czasie tym mniej dokładnie możemy poznać jego częstość.&lt;br /&gt;
&lt;br /&gt;
[[Plik:Zasada_nieoznaczonosci_tf.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Zasadę tą można wyrazić formalnie w następujący sposób. &lt;br /&gt;
Potraktujmy moc sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt; (o skończonej energii) jak rozkład zmiennej losowej. Aby rozkład był unormowany trzeba podzielić go przez energię sygnału: &amp;lt;math&amp;gt;E_x = \int_{-\infty}^{\infty} |x(t)|^2 dt &amp;lt; \infty&amp;lt;/math&amp;gt;. Zatem rozkład ten jest postaci: &amp;lt;math&amp;gt;p(t) = \frac{1}{E_x}|x(t)|^2 &amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Jako lokalizację występowania sygnału w czasie przyjmujemy średnie położenie jego energii:&lt;br /&gt;
: &amp;lt;math&amp;gt;t_0 = \frac{1}{E_x} \int_{-\infty}^{\infty}t |x(t)|^2 dt&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jako miarę skupienia energii wokół tego położenia przyjmujemy wariancję:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma_t^2 = \frac{1}{E_x}\int_{-\infty}^{\infty} (t - t_0)^2 |x(t)|^2 dt &amp;lt;/math&amp;gt;&lt;br /&gt;
Analogicznie w dziedzinie częstości:&lt;br /&gt;
: &amp;lt;math&amp;gt;f_0 = \frac{1}{E_x} \int_{-\infty}^{\infty}f |X(f)|^2 df&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma_f^2 = \frac{1}{E_x}\int_{-\infty}^{\infty} (f - f_0)^2 |X(f)|^2 df &amp;lt;/math&amp;gt;&lt;br /&gt;
Można pokazać (np. Pinsky, 2002), że iloczyn wariancji energii w czasie i w częstości jest ograniczony od dołu:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma_t^2 \sigma_f^2 \ge \frac{1}{16 \pi^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Estymatory gęstości widmowej dla przestrzeni czas-częstość==&lt;br /&gt;
Energię sygnału w jednej z dziedzin, czasu bądź częstości, możemy policzyć tak:&lt;br /&gt;
: &amp;lt;math&amp;gt; E_x=\int_{-\infty}^{\infty}{|x(t)|^2 dt} = \int_{-\infty}^{\infty}{|X(f)|^2 df}&amp;lt;/math&amp;gt; &lt;br /&gt;
i interpretujemy &amp;lt;math&amp;gt;|x(t)|^2&amp;lt;/math&amp;gt;  albo &amp;lt;math&amp;gt;|X(f)|^2&amp;lt;/math&amp;gt;  jako gęstości energii.&lt;br /&gt;
Stąd pomysł, żeby rozszerzyć tą koncepcję na obie dziedziny jednocześnie i wprowadzić pojęcie gęstości energii w dziedzinie czas-częstość &amp;lt;math&amp;gt;\rho_x(t,f)&amp;lt;/math&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt; E_x=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}{\rho_x(t,f) dt df}&amp;lt;/math&amp;gt; &lt;br /&gt;
muszą też być spełnione własności brzegowe:&lt;br /&gt;
: &amp;lt;math&amp;gt; \int_{-\infty}^{\infty}{\rho_x(t,f) dt}=|X(f)|^2&amp;lt;/math&amp;gt; &lt;br /&gt;
: &amp;lt;math&amp;gt; \int_{-\infty}^{\infty}{\rho_x(t,f) df} = |x(t)|^2&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Dystrybucja energii===&lt;br /&gt;
Podobnie jak widmo mocy, gęstość energii fizycznego sygnału nie może być obliczona, może być jedynie estymowana. W celu estymacji gęstości energii można posłużyć się dwuwymiarowymi dystrybucjami energii. &lt;br /&gt;
Jedną z podstawowych dystrybucji jest dystrybucja  Wigner-Ville'a (WVD):&lt;br /&gt;
: &amp;lt;math&amp;gt; W_x(t,f)=\int_{-\infty}^{\infty}x(t+\tau/2)x^*(t-\tau/2)e^{-i 2 \pi f \tau} d\tau&amp;lt;/math&amp;gt; &lt;br /&gt;
lub&lt;br /&gt;
: &amp;lt;math&amp;gt; W_x(t,f) = \int_{-\infty}^{\infty} X(f+\xi/2)X^*(f-\xi/2) e^{i 2 \pi \xi t} d\xi&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Implementacja====&lt;br /&gt;
Przykładowa implementacja WVD dla sygnału rzeczywistego:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
def wvd(x, Fs, plot=True):&lt;br /&gt;
    samples = len(x)&lt;br /&gt;
    N = samples / 2&lt;br /&gt;
    z = np.zeros(samples)&lt;br /&gt;
    xh = ss.hilbert(x)&lt;br /&gt;
    x_period_h = np.concatenate((z,xh,z));&lt;br /&gt;
 &lt;br /&gt;
    t = range(0, samples, 1)  # czas w samplach&lt;br /&gt;
    tfr = np.zeros((samples , samples), dtype=complex)&lt;br /&gt;
    for ti in t:&lt;br /&gt;
        for tau in range(-samples/2,samples/2):&lt;br /&gt;
	    tfr[samples/2 + tau, ti] =  x_period_h[samples+ti +  tau] * x_period_h[samples+ti - tau].conj() &lt;br /&gt;
    tfr = np.fft.fftshift(tfr,axes = 0)&lt;br /&gt;
    Tfr = np.fft.fft(tfr, samples, axis=0)/samples&lt;br /&gt;
    ts = np.array(t, dtype=float) / (float(Fs))&lt;br /&gt;
    f = np.linspace(0, Fs / 2, N)&lt;br /&gt;
    if plot:&lt;br /&gt;
        py.imshow( Tfr.real, interpolation='nearest', extent=[0, ts[-1], 0, f[-1]], origin='lower', aspect='auto')&lt;br /&gt;
        py.show()&lt;br /&gt;
    return Tfr, ts, f&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
function [Tfr,ts,f]=tf_wvd(x,Fs,varargin)&lt;br /&gt;
&lt;br /&gt;
doplot = true;&lt;br /&gt;
switch nargin&lt;br /&gt;
    case 0:1&lt;br /&gt;
        disp('tf_wvd - not enough input arguments');&lt;br /&gt;
        return&lt;br /&gt;
    case 2&lt;br /&gt;
&lt;br /&gt;
    otherwise&lt;br /&gt;
        doplot=varargin{1};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
x = hilbert(x);&lt;br /&gt;
samples = length(x);&lt;br /&gt;
N = floor(samples/2);&lt;br /&gt;
t = 0:samples; t(end)= [];&lt;br /&gt;
tfr = zeros(N,samples);&lt;br /&gt;
for ti=t&lt;br /&gt;
    for tau=0:min(ti,samples-ti)-1&lt;br /&gt;
        tfr(tau+1,ti+1) = x(ti+tau+1).*conj(x(ti-tau+1));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Tfr = fft(tfr,samples,1);&lt;br /&gt;
ts = t./Fs;&lt;br /&gt;
f = linspace(0,Fs/2,N);&lt;br /&gt;
&lt;br /&gt;
if doplot&lt;br /&gt;
    pcolor(linspace(0,ts(end),size(Tfr,2)),linspace(0,f(end),size(Tfr,1)),real(Tfr)); shading interp;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Własności====&lt;br /&gt;
Własności WVD:&lt;br /&gt;
* zachowanie energii &lt;br /&gt;
* własności brzegowe&lt;br /&gt;
* zachowywanie przesunięcia w czasie i w częstości&lt;br /&gt;
: &amp;lt;math&amp;gt; y(t) = x(t-t_0) \Rightarrow W_y(t,f) = W_x(t-t_0,f)&amp;lt;/math&amp;gt; &lt;br /&gt;
: &amp;lt;math&amp;gt; y(t) = x(t)e^{i 2 \pi f_0 t} \Rightarrow W_y(t,f) = W_x(t,f-f_0)&amp;lt;/math&amp;gt; &lt;br /&gt;
* zachowywanie skalowania&lt;br /&gt;
: &amp;lt;math&amp;gt; y(t)=\sqrt{k}x(kt) \Rightarrow W_y(t,f) = W_x(kt, f/k)&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Wyrazy mieszane====&lt;br /&gt;
WVD jest reprezentacją kwadratową więc:&lt;br /&gt;
: &amp;lt;math&amp;gt; y(t) = x_1(t)+x_2(t) \Rightarrow W_y(t, f) = W_{x_1}(t, f)+W_{x_2}(t, f)+W_{x_1,x_2}(t, f)+W_{x_2,x_1}(t, f)&amp;lt;/math&amp;gt; &lt;br /&gt;
gdzie &lt;br /&gt;
: &amp;lt;math&amp;gt; W_{x_1,x_2}(t, f) = \int_{-\infty}^{\infty} x_1(t+\tau/2)x_2^*(t-\tau/2)e^{-i 2 \pi f \tau} d\tau&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Rozdzielczość====&lt;br /&gt;
&lt;br /&gt;
* idealnie dla chirpów liniowych (sygnał o liniowo zmieniającej się częstości chwilowej):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import tf as tf&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
Fs = 512.0&lt;br /&gt;
T = 1.0&lt;br /&gt;
t = tf.czas(T,Fs)&lt;br /&gt;
ch = tf.chirp(5,Fs/2-5,T,Fs)&lt;br /&gt;
Tfr,ts,f = tf.wvd(ch,Fs,False)&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
py.plot(t,ch)&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
py.imshow(Tfr.real,interpolation= 'nearest',extent=[0,ts[-1],0,f[-1]],origin='lower',aspect='auto')&lt;br /&gt;
py.show() &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
Fs = 512.0;&lt;br /&gt;
T = 1.0;&lt;br /&gt;
t = tf_czas(T,Fs);&lt;br /&gt;
ch = tf_chirp(5,Fs/2-5,T,Fs);&lt;br /&gt;
[Tfr,ts,f] = tf_wvd(ch,Fs,false);&lt;br /&gt;
subplot(2,1,1)&lt;br /&gt;
plot(t,ch)&lt;br /&gt;
subplot(2,1,2)&lt;br /&gt;
pcolor(linspace(0,ts(end),size(Tfr,2)),linspace(0,f(end),size(Tfr,1)),real(Tfr)); shading interp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* struktura wyrazów mieszanych: zaobserwuj, że niezależnie od tego jak bardzo odseparowane są struktury w przestrzeni czas-częstość pomiędzy nimi powstają wyrazy mieszane. Zauważ, że wyrazy mieszane mają wysoką częstość przestrzennej zmienności.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import tf as tf&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
Fs = 512.0&lt;br /&gt;
T = 1.0&lt;br /&gt;
t = tf.czas(T,Fs)&lt;br /&gt;
s1 = tf.gabor(t0=0.3, sigma = 0.05, T = 1.0, f=100, phi = 0,Fs=Fs)&lt;br /&gt;
s2 = tf.gabor(t0=0.7, sigma = 0.05, T = 1.0, f=200, phi = 0,Fs=Fs)&lt;br /&gt;
s = s1 + s2&lt;br /&gt;
Tfr,ts,f = tf.wvd(s,Fs,False)&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
py.plot(t,s)&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
py.imshow(Tfr.real,interpolation= 'nearest',extent=[0,ts[-1],0,f[-1]],origin='lower',aspect='auto')&lt;br /&gt;
py.show()  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
Fs = 512.0;&lt;br /&gt;
T = 1.0;&lt;br /&gt;
t = tf_czas(T,Fs);&lt;br /&gt;
s1 = tf_gabor(0.3, 0.05, 1.0, 100, 0, Fs);&lt;br /&gt;
s2 = tf_gabor(0.7, 0.05, 1.0, 200, 0, Fs);&lt;br /&gt;
s = s1 + s2;&lt;br /&gt;
[Tfr,ts,f] = tf_wvd(s,Fs,false);&lt;br /&gt;
subplot(2,1,1)&lt;br /&gt;
plot(t,s)&lt;br /&gt;
subplot(2,1,2)&lt;br /&gt;
pcolor(linspace(0,ts(end),size(Tfr,2)),linspace(0,f(end),size(Tfr,1)),real(Tfr)); shading interp;&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Klasa Cohena===&lt;br /&gt;
WVD jest najprostszym elementem klasy Cohena. Ogólnie klasę tę można zapisać jako:&lt;br /&gt;
: &amp;lt;math&amp;gt; C_x(t,f,\Pi) = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} \Pi(s-t, \xi - f) W_x(s,\xi) ds d\xi&amp;lt;/math&amp;gt; &lt;br /&gt;
gdzie&lt;br /&gt;
: &amp;lt;math&amp;gt; \Pi(t,f) =  \int_{-\infty}^{\infty}\int_{-\infty}^{\infty} f(\xi, \tau) e^{-i 2 \pi (f\tau + \xi t)} dt df&amp;lt;/math&amp;gt; &lt;br /&gt;
Najczęściej &amp;lt;math&amp;gt; \Pi&amp;lt;/math&amp;gt;  wybiera się jako pewną funkcję gładzącą &amp;amp;mdash; w zależności od tego wyboru będziemy mieli w różnym stopniu osłabiane wyrazy mieszane.&lt;br /&gt;
&lt;br /&gt;
===MP &amp;amp;mdash; dopasowanie kroczące===&lt;br /&gt;
====Definicja====&lt;br /&gt;
Algorytm dopasowania kroczącego (ang. ''matching pursuit'', ''MP'') jest algorytmem iteracyjnie rozkładającym sygnał &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; na funkcje bazowe (tzw. '''atomy czas-częstość''') &amp;lt;math&amp;gt;g_{\gamma_n}&amp;lt;/math&amp;gt;  pochodzące ze zbioru &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; (zwanego '''słownikiem'''):&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
\left \{&lt;br /&gt;
 \begin{array}{l}&lt;br /&gt;
  R^0s =  s\\&lt;br /&gt;
  R^ns = \langle R^ns,g_{\gamma_n} \rangle g_{\gamma_n}+R^{n+1}s\\&lt;br /&gt;
  g_{\gamma_n} = \arg \max_{g_{\gamma_i} \in D } |\langle R^ns, g_{\gamma_i}\rangle|&lt;br /&gt;
 \end{array}&lt;br /&gt;
\right .&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie:&lt;br /&gt;
&amp;lt;math&amp;gt;\arg \max_{g_{\gamma_i} \in D }&amp;lt;/math&amp;gt; oznacza tego &amp;lt;math&amp;gt; g_{\gamma_i}&amp;lt;/math&amp;gt;, który daje największy iloczyn skalarny z aktualnym residuum:  &amp;lt;math&amp;gt;|\langle R^ns, g_{\gamma_i}\rangle|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Słowniki mogą być dowolne, ale najczęściej składamy je z funkcji Diraca, sinus i Gabora:&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
g_\gamma (t) = K(\gamma)e^{ -\pi\left( \frac{t-u}{\sigma} \right)^2}&lt;br /&gt;
\sin\left(2 \pi  f (t-u)+\phi\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
normalizacja &amp;lt;math&amp;gt; K(\gamma)&amp;lt;/math&amp;gt;   jest taka, że &amp;lt;math&amp;gt; ||g_{\gamma}||=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\gamma=\{ u, f, \sigma,&lt;br /&gt;
\phi \}&amp;lt;/math&amp;gt; to parametry funkcji w słowniku (&amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; &amp;amp;mdash; translacja w czasie, &amp;lt;math&amp;gt; f&amp;lt;/math&amp;gt; &amp;amp;mdash; częstość, &amp;lt;math&amp;gt; \sigma&amp;lt;/math&amp;gt; &amp;amp;mdash; szerokość w czasie, &amp;lt;math&amp;gt; \phi&amp;lt;/math&amp;gt; &amp;amp;mdash; faza).&lt;br /&gt;
&lt;br /&gt;
====Dystrybucja energii====&lt;br /&gt;
Reprezentację czas-częstość uzyskujemy z dekompozycji MP sumując dystrybucje WVD pojedynczych atomów:&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
W_{ g_{\gamma_n}}(t, f)=\int g_{\gamma_n} \bigl (t + \frac{\tau}{2} \bigr)\;&lt;br /&gt;
g_{\gamma_n}^*\left(t- \frac{\tau}{2} \right) e^{- i 2 \pi f \tau } d \tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
E^{MP}  = \sum_{n=0}^M |\langle R^n s, \;g_{\gamma_n} \rangle|^2 \; W_{g_{\gamma_n}} (t, f)&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
W wyrażeniu tym nie ma wyrazów mieszanych :-)&lt;br /&gt;
&lt;br /&gt;
==Krótkoczasowa transformacja Fouriera i spektrogram==&lt;br /&gt;
&lt;br /&gt;
===Definicja krótkoczasowej transformacji Fouriera===&lt;br /&gt;
Krótkoczasowa transformacja Fouriera (ang. ''short-time Fourier transform'', ''STFT'') może być rozumiana jako seria transformacji Fouriera wykonanych na sygnale podzielonym na okienka, przy czym położenie okienka w czasie jest w ramach takiej serii przesuwane monotonicznie. W wersji ciągłej możemy to zapisać tak:&lt;br /&gt;
: &amp;lt;math&amp;gt;F_x(t,f; h)= \int_{-\infty}^{\infty}{x(u) h^*(u-t)e^{- i 2 \pi u f} du} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Własności====&lt;br /&gt;
Jeśli okienko ma skończoną energię to STFT jest transformacją odwracalną i można odzyskać z niej sygnał w reprezentacji czasowej:&lt;br /&gt;
: &amp;lt;math&amp;gt; x(t) = \frac{1}{E_h}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}F_x(u,f;h)h(t-u)e^{i 2\pi t f}\,du\,df &amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;E_h=\int_{-\infty}^{\infty}|h(t)|^2\,dt &amp;lt;/math&amp;gt;&lt;br /&gt;
Tak więc sygnał może być rozłożony na liniową kombinację elementarnych falek-&amp;amp;bdquo;atomów&amp;amp;rdquo; postaci:&lt;br /&gt;
: &amp;lt;math&amp;gt;h_{t,f}(u)=h(u-t)e^{i 2 \pi f u}&amp;lt;/math&amp;gt;&lt;br /&gt;
Każdy atom uzyskiwany jest przez translację pojedynczego okna &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; w czasie i jego modulację częstością &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
''Ciekawostka: zbiór wszystkich możliwych transformacji tego typu tworzy grupę Weyl-Heisenberga.''&lt;br /&gt;
&lt;br /&gt;
===Spektrogram===&lt;br /&gt;
====Definicja====&lt;br /&gt;
Spektrogram: kwadrat modułu STFT jest estymatą gęstości energii w przestrzeni czas-częstość:&lt;br /&gt;
: &amp;lt;math&amp;gt;S_x(t, f) =\left|\int_{-\infty}^{\infty}{x(u) h^*(u - t) e^{-i 2\pi f u} du}\right|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Implementacja====&lt;br /&gt;
Spektrogram zaiplementowany jest w module matplotlib.pyplot jako funkcja &amp;lt;tt&amp;gt;specgram&amp;lt;/tt&amp;gt; ([http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.specgram dokumentacja]).&lt;br /&gt;
&lt;br /&gt;
====Własności====&lt;br /&gt;
=====Przesunięcia =====&lt;br /&gt;
Spektrogram zachowuje przesunięcie:&lt;br /&gt;
&lt;br /&gt;
w czasie&lt;br /&gt;
:&amp;lt;math&amp;gt;y(t) = x(t - t_0)\Rightarrow  S_y(t, f; h) = S_x(t - t_0, f; h)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as py&lt;br /&gt;
from tf import czas, gabor&lt;br /&gt;
import numpy as np&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
# parametry&lt;br /&gt;
t0    = 1.0&lt;br /&gt;
sigma = 0.1&lt;br /&gt;
T     = 4.0&lt;br /&gt;
f     = 10&lt;br /&gt;
phi   = 0&lt;br /&gt;
Fs    = 128.0&lt;br /&gt;
NFFT  = int(Fs)&lt;br /&gt;
&lt;br /&gt;
sig1 = gabor(t0, sigma, T, f, phi, Fs) # sygnał&lt;br /&gt;
sig2 = gabor(t0 + 2, sigma, T, f, phi, Fs) # sygnał przesunięty w czasie&lt;br /&gt;
&lt;br /&gt;
py.subplot(221)&lt;br /&gt;
h = ss.hamming(NFFT)&lt;br /&gt;
sig1_padded = (np.concatenate((np.zeros(NFFT/2),sig1,np.zeros(NFFT/2))))&lt;br /&gt;
P,f,t,im1 = py.specgram(sig1_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
py.subplot(222)&lt;br /&gt;
sig2_padded = (np.concatenate((np.zeros(NFFT/2),sig2,np.zeros(NFFT/2))))&lt;br /&gt;
P,f,t,im2 = py.specgram(sig2_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
py.subplot(223)&lt;br /&gt;
time    = czas(T, Fs)&lt;br /&gt;
py.plot(time,sig1)&lt;br /&gt;
&lt;br /&gt;
py.subplot(224)&lt;br /&gt;
py.plot(time ,sig2)&lt;br /&gt;
&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
% parametry&lt;br /&gt;
t0    = 1.0;&lt;br /&gt;
sigma = 0.1;&lt;br /&gt;
T     = 4.0;&lt;br /&gt;
f     = 10;&lt;br /&gt;
phi   = 0;&lt;br /&gt;
Fs    = 128.0;&lt;br /&gt;
NFFT  = floor(Fs);&lt;br /&gt;
 &lt;br /&gt;
sig1 = tf_gabor(t0, sigma, T, f, phi, Fs); &lt;br /&gt;
        % sygnał&lt;br /&gt;
sig2 = tf_gabor(t0 + 2, sigma, T, f, phi, Fs); &lt;br /&gt;
        % sygnał przesunięty w czasie&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,1);&lt;br /&gt;
sig1_padded = [zeros(1,floor(NFFT/2)), sig1, zeros(1,floor(NFFT/2))];&lt;br /&gt;
P=spectrogram(sig1_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
&lt;br /&gt;
subplot(2,2,2)&lt;br /&gt;
sig2_padded = [zeros(1,floor(NFFT/2)), sig2, zeros(1,floor(NFFT/2))];&lt;br /&gt;
P=spectrogram(sig2_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
&lt;br /&gt;
subplot(2,2,3)&lt;br /&gt;
time    = tf_czas(T, Fs);&lt;br /&gt;
plot(time,sig1);&lt;br /&gt;
  &lt;br /&gt;
subplot(2,2,4)&lt;br /&gt;
plot(time ,sig2);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i w częstości:&lt;br /&gt;
: &amp;lt;math&amp;gt;y(t) = x(t) e ^{i 2 \pi f_0 t}\Rightarrow S_y(t, f; h) = S_x(t, f - f_0; h)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang =python&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as py&lt;br /&gt;
from tf import czas, gabor&lt;br /&gt;
import numpy as np&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
# parametry&lt;br /&gt;
t0    = 1.0&lt;br /&gt;
sigma = 0.1&lt;br /&gt;
T     = 4.0&lt;br /&gt;
f     = 10&lt;br /&gt;
phi   = 0&lt;br /&gt;
Fs    = 128.0&lt;br /&gt;
NFFT  = int(Fs)&lt;br /&gt;
time    = czas(T, Fs)&lt;br /&gt;
sig1 = gabor(t0, sigma, T, f, phi, Fs) # sygnał&lt;br /&gt;
sig2 = gabor(t0, sigma, T, f+20, phi, Fs)# sygnał przesunięty w częstości&lt;br /&gt;
&lt;br /&gt;
py.subplot(221)&lt;br /&gt;
h = ss.hamming(NFFT)&lt;br /&gt;
sig1_padded = (np.concatenate((np.zeros(NFFT/2),sig1,np.zeros(NFFT/2))))&lt;br /&gt;
P,f,t,im1 = py.specgram(sig1_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
py.subplot(222)&lt;br /&gt;
sig2_padded = (np.concatenate((np.zeros(NFFT/2),sig2,np.zeros(NFFT/2))))&lt;br /&gt;
P,f,t,im2 = py.specgram(sig2_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
py.subplot(223)&lt;br /&gt;
py.plot(time,sig1)&lt;br /&gt;
&lt;br /&gt;
py.subplot(224)&lt;br /&gt;
py.plot(time ,sig2)&lt;br /&gt;
&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang =matlab&amp;gt;&lt;br /&gt;
% parametry&lt;br /&gt;
t0    = 1.0;&lt;br /&gt;
sigma = 0.1;&lt;br /&gt;
T     = 4.0;&lt;br /&gt;
f     = 10;&lt;br /&gt;
phi   = 0;&lt;br /&gt;
Fs    = 128.0;&lt;br /&gt;
NFFT  = floor(Fs);&lt;br /&gt;
time    = tf_czas(T, Fs);&lt;br /&gt;
sig1 = tf_gabor(t0, sigma, T, f, phi, Fs); &lt;br /&gt;
        % sygnał&lt;br /&gt;
sig2 = tf_gabor(t0, sigma, T, f+20, phi, Fs);&lt;br /&gt;
        % sygnał przesunięty w częstości&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,1);&lt;br /&gt;
sig1_padded = [zeros(1,floor(NFFT/2)),sig1,zeros(1,floor(NFFT/2))];&lt;br /&gt;
P=spectrogram(sig1_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,2)&lt;br /&gt;
sig2_padded = [zeros(1,floor(NFFT/2)),sig2,zeros(1,floor(NFFT/2))];&lt;br /&gt;
P=spectrogram(sig2_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,3)&lt;br /&gt;
plot(time,sig1);&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,4)&lt;br /&gt;
plot(time ,sig2);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Wyrazy mieszane=====&lt;br /&gt;
Spektrogram jest reprezentacją kwadratową. Spektrogram sumy sygnałów nie jest sumą spektrogramów sygnałów składowych, jest tam jeszcze coś: &lt;br /&gt;
: &amp;lt;math&amp;gt;y(t) = x_1(t)+x_2(t) \Rightarrow S_y(t, f) = S_{x_1}(t, f)+S_{x_2}(t, f)+S_{x_1,x_2}(t, f)+S_{x_2,x_1}(t, f)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &lt;br /&gt;
: &amp;lt;math&amp;gt;S_{x_1,x_2}(t, f) = F_{x_1}(t, f)F^*_{x_2}(t, f)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jak mogą wyglądać wyrazy mieszane ilustruje poniższy kod. Kolejne subploty pokazują spektrogramy uzyskane dla sygnału będącego sumą dwóch funkcji Gabora o częstościach różniących się o 2 Hz i położeniach różniących się o kolejne wielokrotności 0,1 s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as py&lt;br /&gt;
from tf import czas, gabor&lt;br /&gt;
import numpy as np&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
# parametry&lt;br /&gt;
t0    = 1.0&lt;br /&gt;
sigma = 0.05&lt;br /&gt;
T     = 2.0&lt;br /&gt;
f0     = 20&lt;br /&gt;
phi   = 0&lt;br /&gt;
Fs    = 128.0&lt;br /&gt;
NFFT  = int(Fs)&lt;br /&gt;
time  = czas(T, Fs)&lt;br /&gt;
h = ss.hamming(NFFT)&lt;br /&gt;
&lt;br /&gt;
for i in range(9):&lt;br /&gt;
    py.subplot(3,3,i+1)&lt;br /&gt;
    sig1  = gabor(t0, sigma, T, f0, phi, Fs) # sygnal&lt;br /&gt;
    sig2  = gabor(t0+i*0.1, sigma, T, f0+2, phi, Fs)# sygnał przesunięty w częstości o 2 Hz i w czasie o i*0.1 s&lt;br /&gt;
    sig1_padded = (np.concatenate((np.zeros(NFFT/2),sig1,np.zeros(NFFT/2))))&lt;br /&gt;
    sig2_padded = (np.concatenate((np.zeros(NFFT/2),sig2,np.zeros(NFFT/2))))&lt;br /&gt;
    P,f,t,im1 = py.specgram(sig1_padded+sig2_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
    py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
    &lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
% parametry&lt;br /&gt;
t0    = 1.0;&lt;br /&gt;
sigma = 0.05;&lt;br /&gt;
T     = 2.0;&lt;br /&gt;
f0    = 20;&lt;br /&gt;
phi   = 0;&lt;br /&gt;
Fs    = 128.0;&lt;br /&gt;
NFFT  = floor(Fs);&lt;br /&gt;
time  = tf_czas(T, Fs);&lt;br /&gt;
 &lt;br /&gt;
for i=0:8&lt;br /&gt;
    subplot(3,3,i+1)&lt;br /&gt;
    sig1  = tf_gabor(t0, sigma, T, f0, phi, Fs); % sygnal&lt;br /&gt;
    sig2  = tf_gabor(t0+i*0.1, sigma, T, f0+2, phi, Fs);&lt;br /&gt;
        % sygnał przesunięty w częstości o 2 Hz i w czasie o i*0.1 s&lt;br /&gt;
    sig1_padded = [zeros(1,floor(NFFT/2)),sig1,zeros(1,floor(NFFT/2))];&lt;br /&gt;
    sig2_padded = [zeros(1,floor(NFFT/2)),sig2,zeros(1,floor(NFFT/2))];&lt;br /&gt;
    P=spectrogram(sig1_padded+sig2_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
    pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wyrazy mieszane występują także w przypadku pojedynczej struktury dla sygnału rzeczywistego. &amp;amp;bdquo;Mieszające się&amp;amp;rdquo; obiekty to energia zlokalizowana w dodatniej i ujemnej części widma częstości. Efekt jest stosunkowo słaby i uwidacznia się dopiero na mapach czas-częstość logarytmu gęstości energii. Problem ten można obejść stosując transformację Hilberta, gdyż po tej transformacji cała energia skupiona jest w dodatniej części widma. Własność tę ilustruje poniższy program:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from matplotlib.pyplot import specgram, plot, subplot, show, imshow&lt;br /&gt;
from tf import czas, gabor&lt;br /&gt;
from numpy import pi, log&lt;br /&gt;
from scipy.signal import hamming, hilbert&lt;br /&gt;
&lt;br /&gt;
# parametry&lt;br /&gt;
t0    = 0.5&lt;br /&gt;
sigma = 0.1&lt;br /&gt;
T     = 1.0&lt;br /&gt;
f     = 30&lt;br /&gt;
phi   = 0&lt;br /&gt;
Fs    = 256.0&lt;br /&gt;
&lt;br /&gt;
s = gabor(t0, sigma, T, f, phi, Fs) &lt;br /&gt;
t = czas(T, Fs)&lt;br /&gt;
&lt;br /&gt;
subplot(411)&lt;br /&gt;
plot(t,s)&lt;br /&gt;
&lt;br /&gt;
subplot(412)&lt;br /&gt;
h = hamming(32)&lt;br /&gt;
NFFT =len(h)&lt;br /&gt;
P,f,t,im1 = specgram(s,NFFT = len(h),Fs = Fs,window = h, noverlap = 31,sides = 'twosided') &lt;br /&gt;
imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
subplot(413)&lt;br /&gt;
imshow(log(P),aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subplot(414)&lt;br /&gt;
s_ana = hilbert(s) # sygnał analityczny&lt;br /&gt;
P,f,t,im2 = specgram(s_ana,NFFT = len(h),Fs = Fs,window = h, noverlap = 31, sides = 'twosided') &lt;br /&gt;
imshow(log(P),aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
% parametry&lt;br /&gt;
t0    = 0.5;&lt;br /&gt;
sigma = 0.1;&lt;br /&gt;
T     = 1.0;&lt;br /&gt;
f     = 30;&lt;br /&gt;
phi   = 0;&lt;br /&gt;
Fs    = 256.0;&lt;br /&gt;
NFFT  = 32;&lt;br /&gt;
Fs2   = floor(Fs/2);&lt;br /&gt;
 &lt;br /&gt;
s = tf_gabor(t0, sigma, T, f, phi, Fs);&lt;br /&gt;
t = tf_czas(T, Fs);&lt;br /&gt;
f = linspace(-Fs2,Fs2,NFFT+1); f(end) = [];&lt;br /&gt;
 &lt;br /&gt;
subplot(4,1,1)&lt;br /&gt;
plot(t,s);&lt;br /&gt;
 &lt;br /&gt;
subplot(4,1,2)&lt;br /&gt;
P=spectrogram(s,NFFT,NFFT-1,f,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(f(1),f(end),size(P,1)),abs(P)); shading interp;&lt;br /&gt;
 &lt;br /&gt;
subplot(4,1,3)&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(f(1),f(end),size(P,1)),log(abs(P))); shading interp;&lt;br /&gt;
 &lt;br /&gt;
subplot(4,1,4)&lt;br /&gt;
s_ana = hilbert(s); % sygnał analityczny&lt;br /&gt;
P=spectrogram(s_ana,NFFT,NFFT-1,f,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(f(1),f(end),size(P,1)),log(abs(P))); shading interp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ćwiczenie:====&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać rozdzielczość czasową spektrogramu posługując się funkcją delta oraz rozdzielczość częstotliwościową posługując się funkcją sinus (Trzeba &amp;amp;bdquo;przeskanować&amp;amp;rdquo; czas funkcją delta, a częstości sinusem). Proszę wykonać to dla kilku długości okienek ''h''.&lt;br /&gt;
* Proszę zbadać rozdzielczość spektrogramu przy pomocy dwóch funkcji Gabora, dla różnych ich odległości w czasie i w częstości. Zaobserwować strukturę wyrazów mieszanych. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Problem wyboru optymalnego estymatora gęstości energii w przestrzeni czas-częstość dla sygnałów EEG==&lt;br /&gt;
 &lt;br /&gt;
Dwa aspekty, które trzeba wziąć pod uwagę w praktyce analizy sygnałów EEG to:&lt;br /&gt;
* rozdzielczość czas-częstość oferowaną przez daną metodę;&lt;br /&gt;
* łatwość interpretacji wyników dla sygnałów złożonych z wielu, ''a priori'' nieznanych struktur &amp;amp;mdash; takim niezwykle złożonym sygnałem jest EEG.&lt;br /&gt;
&lt;br /&gt;
Jeśli chodzi o rozdzielczość czasowo-częstościową estymatorów gęstości energii sygnałów to wiadomo, że jest ona ograniczona przez zasadę nieoznaczoności Heisenberga w analizie sygnałów. &lt;br /&gt;
&lt;br /&gt;
Minimum iloczynu wariancji w dziedzinie czasu i wariancji w dziedzinie częstości, osiągane jest przez dystrybucję Wigner-Villa  dla sygnału będącego funkcją Gabora. &lt;br /&gt;
Dystrybucja Wigner-Villa jest formą kwadratową. W przypadku bardziej złożonych sygnałów własność ta prowadzi do powstawania wyrazów mieszanych, które utrudniają prawidłową interpretację wyników.  Dystrybucje wywodzące się z dystrybucji Wigner-Villa tworzą klasę dystrybucji Cohena. W klasie tych dystrybucji do tłumienia wyrazów mieszanych  stosowane jest jądro, będące efektywnie czasowo-częstościowym filtrem dolnoprzepustowym. Często stosowanym w czasowo-częstościowej analizie sygnałów reprezentantem klasy dystrybucji Cohena jest dystrybucja Choi-Williamsa, gdzie jądrem filtru jest dwuwymiarowa funkcja Gaussa. Odpowiedni dobór własności jądra umożliwia stłumienie niektórych wyrazów mieszanych --- metoda ta może być szczególnie efektywna jeśli znane są \emph{a priori} czasowo-częstościowe własności struktur obecnych w sygnale. Należy także pamiętać, że filtrowanie prowadzi do zmniejszenia rozdzielczości czas-częstość. &lt;br /&gt;
Alternatywą dla dystrybucji czas-częstość są metody oparte o liniowe reprezentacje czas-częstość takie jak krótkoczasowa transformata Fouriera (spektrogram) czy transformata falkowa (skalogram). W metodach tych sygnał analizowany jest przy pomocy funkcji zlokalizowanych w czasie i częstości. Zastosowanie funkcji zlokalizowanych częściowo zmniejsza problem wyrazów mieszanych, jednak ich rozdzielczość czas-częstość jest związana z rozciągłością czasowo-częstościową stosowanych funkcji. Metody te nie zapewniają dopasowania do struktur obecnych w sygnale.&lt;br /&gt;
&lt;br /&gt;
W pracy {\bf H1} zademonstrowano, że najbardziej optymalne dla analizy sygnałów EEG własności posiada metoda oparta o dekompozycję sygnału algorytmem Matching Pursuit (MP). Ten estymator gęstości energii konstruowany jest jako suma dystrybucji Wigner-Villa poszczególnych składowych wyodrębnionych z sygnału w trakcie dekompozycji. W sposób wynikający bezpośrednio z konstrukcji, estymator ten nie posiada wyrazów mieszanych oferując jednocześnie najwyższą możliwą rozdzielczość czasowo-częstościową. Kompromis pomiędzy rozdzielczością w czasie a rozdzielczością w częstości jest w każdej iteracji algorytmu MP optymalizowany ze względu na struktury występujące w sygnale.  W tym sensie metoda ta jest lokalnie adaptywną reprezentacją czas-częstość, w odróżnieniu od krótkoczasowej transformaty Fouriera czy transformat falkowych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klasyczna technika pomiaru efektów ERD/ERS opisana w sekcji \ref{sect:ERDS_klasycznie} bazuje na uśrednianiu energii sygnałów przefiltrowanych w wybranym paśmie częstości. Wymaga ona wyboru \emph{reaktywnych} (dających największe zmiany mocy) pasm częstości. Pasm takich zwykle poszukiwano metodą prób i błędów. &lt;br /&gt;
Ze względu na dużą zmienność osobniczą pasm reaktywnych, znacznie lepszym podejściem, które umożliwia całościowe spojrzenie na efekty modyfikacji widma mocy sygnału EEG, jest analiza czasowo-częstościowa. Polega ona na estymowaniu gęstości energii w przestrzeni czas-częstość dla każdego powtórzenia osobno. Następnie dla każdej częstości, obliczana jest miara ERD/ERS, przy pomocy równania \eqref{eq:ERD_klasyczny}. W efekcie uzyskiwana jest mapa prezentująca zjawiska ERD/ERS w przestrzeni czas-częstość.&lt;br /&gt;
&lt;br /&gt;
Najczęściej stosowanymi do szacowania ERD/ERS estymatorami gęstości energii są: spektrogram \citep{Makeig_1993}, skalogram \citep{Tallon_1996}, dystrybucje klasy Cohena \citep{Lachaux_2000} lub filtrowanie pasmowe w zachodzących na siebie pasmach częstości \citep{Graimann_2002}. W sytuacjach gdy istotna jest wysoka rozdzielczość czasowo-częstościowa zaproponowana została metoda Matching Pursuit \citep{Durka_2001}. &lt;br /&gt;
Raportowane wyniki zależą w pewnym stopniu od własności sygnału, ale również w pewnym stopniu od zastosowanego estymatora i jego parametrów. &lt;br /&gt;
&lt;br /&gt;
Prace innych autorów zwykle skupiały się na zastosowaniach jednego konkretnego estymatora.  Nie dyskutowano w nich jaki wpływ na identyfikację efektów reakcji na bodziec ma wybór metody estymacji gęstości energii. Problem ten został zbadany w pracach {\bf H2} i {\bf H3}. Wszystkie badane estymatory zostały zastosowane do tych samych zestawów danych co umożliwiło praktyczne porównanie wpływu estymatora na czytelność i jednoznaczność wyników. W pracy {\bf H2} pokazano, że algorytm MP daje estymaty o wyższej rozdzielczości niż spektrogram,  niemniej w kontekście identyfikacji obszarów przestrzeni czas-częstość, w których przejawia się reakcja związana z bodźcem, wyniki otrzymane przy pomocy obu estymatorów są podobne i spójne. W pracy {\bf H3} zagadnienie badania optymalności estymatora zostało rozszerzone w dwóch aspektach. Do porównania włączono skalogram zaś porównanie metod przeprowadzono zarówno dla danych EEG jak i ECoG. &lt;br /&gt;
Wykazane zostało, że wszystkie wymienione powyżej metody estymacji gęstości energii w dziedzinie czas-częstość dają spójne wyniki. Wykazano, że estymator oparty o dekompozycję MP umożliwia badanie mikrostruktury zmian gęstości energii dzięki najwyższej rozdzielczości czas-częstość. Jednocześnie, dzięki lokalnie adaptywnemu kompromisowi pomiędzy rozdzielczością w czasie a rozdzielczością w częstości  daje on wyniki, w których eksponowana jest struktura sygnału  nie obarczona w sposób systematyczny własnościami rozdzielczości czasowo-częstościowej metody. W przypadku pozostałych metod, przy interpretacji otrzymanych map czas-częstość należy brać pod uwagę specyficzną dla danej metody strukturę wyrazów mieszanych i zależność pomiędzy rozdzielczością w czasie a rozdzielczością w częstości  (porównaj {\bf H3}, Rys.\,3). &lt;br /&gt;
&lt;br /&gt;
==Problem istotności statystycznej efektów ERD i ERS w przestrzeni czas-częstość==&lt;br /&gt;
W badaniach naukowych bardzo ważnym elementem jest ocena istotności statystycznej obserwowanych zjawisk. Dążeniem naszym jest aby identyfikowane zmiany mocy sygnału był efektem związanym z bodźcem, a nie jedynie artefaktem fluktuacji statystycznych. Problem prawidłowej oceny istotności statystycznej zmian w rozkładach gęstości energii w dziedzinie czas-częstość został opisany w serii dwóch artykułów {\bf H2} i {\bf H3}. Zaproponowane rozwiązanie opiera się na masowym zastosowaniu testów jednowymiarowych i korygowaniu wyników uwzględniając wielokrotność testowania.&lt;br /&gt;
Zbadano dwa zagadnienia:&lt;br /&gt;
\begin{itemize}&lt;br /&gt;
\item wybór statystyki&lt;br /&gt;
\item rodzaj korekty poziomu istotności testów ze względu na wielokrotność porównań. &lt;br /&gt;
\end{itemize}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wcześniejsze prace innych autorów nie wskazywały poprawnego metodologicznie rozwiązania zagadnienia wielokrotnych porównań, które stanowi tu główny problem. Przykładowo \citet{Makeig_1993} jako rozwiązanie problemu wielokrotnych porównań proponuje przyjęcie poziomu istotności pojedynczego testu jako 0.001. &lt;br /&gt;
W pracy \citet{Lachaux_2000} istotność wzrostu mocy była szacowana dla pojedynczego pasma częstości, problem wielokrotnych porównań był wspomniany, ale nie rozwiązany w przypadku porównywania aktywności wielu pasmach jednocześnie. W pracy \citep{Graimann_2002} szacowano istotność statystyczną w poszczególnych pasmach niezależnie, a następnie prezentowano mapę stworzoną z tych pasm nie korygując poziomów istotności. &lt;br /&gt;
&lt;br /&gt;
Przyczyny takiego stanu rzeczy można upatrywać w fakcie, że powszechnie stosowaną poprawką na poziom błędu I rodzaju ze względu na wielokrotność porównań jest poprawka Bonferroniego. &lt;br /&gt;
Poprawka ta daje prawidłową korektę poziomu istotności dla testów niezależnych. W przypadku testów skorelowanych poprawka ta jest zbyt konserwatywna. W analizie czasowo-częstościowej mamy do czynienia z bardzo dużą ilością testów, które są ze sobą skorelowane w \emph{a priori} nieznanym stopniu. Zastosowanie tu poprawki Bonferroniego prowadzi do testów skrajnie konserwatywnych. Jako rozwiązanie tego problemu w pracy {\bf H2} została zaproponowana rezygnacja z kontroli błędu I rodzaju na rzecz kontroli frakcji fałszywych odkryć (false discovery rate, FDR) \citep{FDR}. W kolejnych paragrafach omówione zostaną istotne elementy rozwiązań zaproponowanych w pracach {\bf H2} i {\bf H3}. &lt;br /&gt;
 &lt;br /&gt;
===Podział przestrzeni czas-częstość.===&lt;br /&gt;
 W pracy {\bf H2} stwierdzono, że aby móc wygodnie sformułować hipotezy i poddać je testom należy podzielić przestrzeń czas-częstość na elementy rozdzielczościowe (ang. resolution element---\emph{resel}). Iloczyn rozciągłości czasowej i częstościowej jest od dołu ograniczony przez zasadę nieoznaczoności. W praktyce, co zostało zbadane w pracy {\bf H2}, rozmiar resela musi być większy ze względu na wariancję estymatorów i wariancję danych pomiędzy realizacjami.&lt;br /&gt;
\paragraph{Hipotezy.}&lt;br /&gt;
Stosując opisany powyżej podział przestrzeni czas-częstość na resele można sformułować następującą rodzinę hipotez: dla każdego resela hipoteza zerowa stwierdza, że średnia energia rozważanego resela równa jest średniej energii reseli o tej samej częstości należących do okresu referencyjnego, hipoteza alternatywna stwierdza, że średnia energia w okresie referencyjnym i w rozważanym reselu są różne. Uśrednianie przebiega po realizacjach.&lt;br /&gt;
&lt;br /&gt;
===Wybór statystyki.===&lt;br /&gt;
W pracy {\bf H2} zademonstrowano, że rozkłady energii w reselach są zależne od zastosowanego estymatora gęstości energii, ale w większości przypadków są dalekie od rozkładów normalnych. Wykazano, że zastosowanie intensywnych obliczeniowo testów nieparametrycznych prowadzi do poprawnych i nieobciążonych wyników. Spośród dwóch zbadanych testów bardziej efektywnym okazał się test oparty na estymowaniu empirycznego rozkładu statystyki pseudo-t w okresie referencyjnym. &lt;br /&gt;
&lt;br /&gt;
W pracy {\bf H3} wykazano, że w wielu praktycznych przypadkach poprawne rezultaty można uzyskać stosując odpowiednio testy parametryczne. Pierwszym koniecznym krokiem jest normalizacja danych, czyli poddanie energii reseli takiej transformacji, że rozkład otrzymanych danych jest dobrze przybliżony rozkładem normalnym. Zaproponowano w tym celu zastosowanie transformacji Boxa-Coxa \citep{boxcox}.  Kolejną cechą rozważanych testów jest niejednorodność wariancji w okresie referencyjnym i pobodźcowym. Teoretycznym rozwiązaniem tego problemu jest test $t$ ze zmodyfikowaną ilością stopni swobody zgodnie z poprawką Welcha \citep{welch}. W pracy  {\bf H3} pokazano, że dla danych testowych zarówno EEG (Rys. 1) jak i ECoG (Rys. 2) standardowy test $t$ jak i test $t$ z poprawką Welcha daje wyniki niemal identyczne z testem nieparametrycznym zaproponowanym w {\bf H2}.  Zastosowanie testów parametrycznych znacząco redukuje złożoność obliczeniową problemu oceny istotności statystycznej zmian mocy sygnału w dziedzinie czas-częstość.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
===Problem wielokrotnych porównań.===&lt;br /&gt;
Ocena istotności statystycznej dla wszystkich analizowanych reseli w dziedzinie czas-częstość prowadzi w naturalny sposób do powstania problemu wielokrotnych porównań. Jak wspomniano we wstępie do tej sekcji, we wcześniejszych pracach dotyczących analizy odpowiedzi fazowo nie związanej z bodźcem w dziedzinie czas-częstość nie zaproponowano poprawnego rozwiązania problemu wielokrotnych porównań. W pracy {\bf H2} jako efektywne i ścisłe rozwiązanie problemu wielokrotnych porównań została zaproponowana metoda kontroli frakcji fałszywych odkryć \citep{FDR} (false discovery rate, FDR). Rozważono założenia i porównano wyniki otrzymywane dla klasycznej metody kontrolowania błędu I rodzaju dla problemu wielokrotnych porównań Bonferroniego-Holmsa z metodą opartą o kontrolę FDR.  &lt;br /&gt;
Aby praktycznie zilustrować efektywność i skuteczność metody kontroli błędów w oparciu o podejście FDR zaprojektowano i przeprowadzono eksperyment, w którym celowo wydłużono czas rejestracji sygnału EEG, tak aby zawierał on znaczący udział zapisu spoczynkowego, w którym \emph{a priori} nie powinny występować efekty związane z bodźcem.  Otrzymano poprawną kontrolę ilości fałszywych detekcji zachowując jednocześnie moc testów wystarczającą do potwierdzenia istotności znanych efektów ERD/ERS. Ilustracją tego wyniku są Rys. 4 i 5 z pracy  {\bf H2}. &lt;br /&gt;
Z przedstawionych w pracy  {\bf H2} wyników  wyciągnięto wniosek, że w przypadku wielokrotnych testów wykonywanych dla reseli w dziedzinie czas-częstość procedura Bonferroniego-Holmsa jest zbyt konserwatywna, natomiast procedura FDR zachowuje wystarczającą moc aby być w praktyce przydatną. &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ciągła transformata falkowa i skalogram==&lt;br /&gt;
===Ciągłą transformata falkowa===&lt;br /&gt;
&lt;br /&gt;
====Definicja ====&lt;br /&gt;
Ciągła transformacja falkowa (ang. ''Continuous Wavelet Transform'', ''CWT'') dana jest wzorem:&lt;br /&gt;
: &amp;lt;math&amp;gt; P_x(t,a;\Psi)= \int_{-\infty}^{\infty}{x(s)\Psi^*_{t,a}(s) ds}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie&lt;br /&gt;
: &amp;lt;math&amp;gt; \Psi_{t,a}(s) = \frac{1}{\sqrt{|a|}} \Psi\left(\frac{s-t}{a}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
''a'' jest skalą. Od falki &amp;lt;math&amp;gt;\Psi&amp;lt;/math&amp;gt; wymagamy żeby miała średnią 0.&lt;br /&gt;
&lt;br /&gt;
Transformację tę można interpretować jako rzutowanie sygnału na kolejne wersje falki &amp;lt;math&amp;gt;\Psi&amp;lt;/math&amp;gt; przesunięte o ''t'' i przeskalowane o ''a''. &lt;br /&gt;
&lt;br /&gt;
Inne spojrzenie na transformację falkową uwidacznia się gdy połączymy dwa powyższe wzory:&lt;br /&gt;
: &amp;lt;math&amp;gt;P_x(t,a;\Psi)=  \frac{1}{\sqrt{|a|}}\int_{-\infty}^{\infty}{x(s) \Psi^*\left(\frac{s-t}{a}\right) ds} &amp;lt;/math&amp;gt;&lt;br /&gt;
Tu widać, że dla ustalonej skali ''a'' transformacja falkowa jest splotem sygnału z falką o skali ''a''. Ten sposób myślenia o transformacji falkowej umożliwia zastosowanie szybkiego algorytmu obliczeniowego bazującego na tym, że splot w dziedzinie czasu odpowiada mnożeniu w dziedzinie częstości.&lt;br /&gt;
&lt;br /&gt;
===Skalogram===&lt;br /&gt;
Podobnie jak dla STFT i spektrogramu, możemy dla CWT wprowadzić pojęcie skalogramu, będącego estymatą gęstości energii w przestrzeni czas-skala.&lt;br /&gt;
: &amp;lt;math&amp;gt;S_x(t,a;\Psi)=\left| P_x(t,a;\Psi)\right|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dla falek, które są dobrze skupione wokół częstości &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; dla skali &amp;lt;math&amp;gt;a_0=1&amp;lt;/math&amp;gt; można wprowadzić  utożsamienie &amp;lt;math&amp;gt;f=\frac{f_0}{a}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Utożsamienie to pozwala przekształcić reprezentację czas-skala w reprezentację czas-częstość:&lt;br /&gt;
:&amp;lt;math&amp;gt;S_x(t,f;\Psi)=\left| P_x(t,f_0/f;\Psi)\right|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
====Implementacja====&lt;br /&gt;
Przykładowa implementacja obliczania skalogramu dla falek Morleta przedstawiona jest poniżej. Korzysta ona z własności splotu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang =python&amp;gt;&lt;br /&gt;
def cwt(x, MinF,MaxF,Fs,w=7.0,df =1.0,plot = True):&lt;br /&gt;
    '''w - parametr falki Morleta,&lt;br /&gt;
      wiąże się z jej częstościa centralną i skalą w następujacy sposób:&lt;br /&gt;
      f = 2*a*w / T&lt;br /&gt;
      gdzie: a-skala,  T-długość sygnału w sek.'''&lt;br /&gt;
    T= len(x)/Fs&lt;br /&gt;
    M = len(x)&lt;br /&gt;
    t = np.arange(0,T,1./Fs)&lt;br /&gt;
    freqs = np.arange(MinF,MaxF,df)&lt;br /&gt;
    P = np.zeros((len(freqs),M))&lt;br /&gt;
    X = np.fft.fft(x) # transformacja sygnału do dziedziny czestosci&lt;br /&gt;
    for i,f in enumerate(freqs): # petla po kolejnych czestosciach&lt;br /&gt;
        a = T*f/(2*w)            # obliczenie skali dla danej czestosci&lt;br /&gt;
        psi = np.fft.fft(ss.morlet(M, w=w, s=a, complete=True)) # transformacja falki Morleta do dziedziny czestosci. W bardziej wydajnym kodzie moznaby zastosowac analityczna postac tej falki w dziedzinie czestosci. &lt;br /&gt;
        psi /= np.sqrt(np.sum(psi*psi.conj()))  # normalizacja energii falki  &lt;br /&gt;
        CWT = np.fft.fftshift(ss.ifft(X*psi))   &lt;br /&gt;
        P[i,:] = (CWT*CWT.conj()).real&lt;br /&gt;
    &lt;br /&gt;
    if plot:&lt;br /&gt;
        py.imshow(P,aspect='auto',origin='lower',extent=(0,T,MinF, MaxF))&lt;br /&gt;
        py.show()&lt;br /&gt;
    return P,f,t&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang =matlab&amp;gt;&lt;br /&gt;
function [P,f,t]=tf_cwt(x,MinF,MaxF,Fs,varargin)&lt;br /&gt;
&lt;br /&gt;
w = 7;&lt;br /&gt;
df = 1;&lt;br /&gt;
doplot = true;&lt;br /&gt;
switch nargin&lt;br /&gt;
    case 0:3&lt;br /&gt;
        disp('tf_cwt - not enough input arguments');&lt;br /&gt;
        return&lt;br /&gt;
    case 4&lt;br /&gt;
&lt;br /&gt;
    case 5&lt;br /&gt;
        w=varargin{1};&lt;br /&gt;
    case 2&lt;br /&gt;
        w=varargin{1};&lt;br /&gt;
        df=varargin{2};&lt;br /&gt;
    otherwise&lt;br /&gt;
        w=varargin{1};&lt;br /&gt;
        df=varargin{2};&lt;br /&gt;
        doplot=varargin{3};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
T = length(x)/Fs;&lt;br /&gt;
M = length(x);&lt;br /&gt;
t = 0:1/Fs:T; t(end) = [];&lt;br /&gt;
freqs = MinF:df:MaxF; freqs(end) = [];&lt;br /&gt;
P = zeros(length(freqs),M);&lt;br /&gt;
X = fft(x);&lt;br /&gt;
&lt;br /&gt;
for i=1:length(freqs)&lt;br /&gt;
    f = freqs(i);&lt;br /&gt;
    s = T*f/(2*w);&lt;br /&gt;
    psi = fft(tf_morlet(M,w,s,true));&lt;br /&gt;
    psi = psi./sqrt(sum(abs(psi).^2));&lt;br /&gt;
    tmp = fftshift(ifft(X.*psi));&lt;br /&gt;
    P(i,:) = abs(tmp).^2;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if doplot&lt;br /&gt;
    pcolor(linspace(0,T,size(P,2)),linspace(MinF,MaxF,size(P,1)),P); shading interp;&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Matching pursuit===&lt;br /&gt;
&lt;br /&gt;
Dopasowanie kroczące (ang. ''matching pursuit'', MP) jest procedurą polegającą na rozłożeniu sygnału na funkcje składowe pochodzące z określonego zbioru funkcji (słownika). Słowniki wykorzystywane w metodach czas-częstość często składają się z funkcji Gabora tj. funkcji sinus modulowanej funkcją Gaussa. MP jest algorytmem iteracyjnym. W pierwszym kroku wybierana jest funkcja  dająca największy iloczyn skalarny z sygnałem. W każdym następnym kroku funkcja jest analogicznie dopasowywana do residuum sygnału, pozostałego po odjęciu wyniku poprzedniej iteracji.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[https://brain.fuw.edu.pl/~suffa/LabEEG/mp.tar.gz Moduł czas-częstość metodą MP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wersja udostępniona powyżej wykorzystuje procedurę napisaną w C przez dr Stephane Mallata i dr Zhifeng Zhanga (1993), nazwaną &amp;lt;tt&amp;gt;mpp&amp;lt;/tt&amp;gt; (matching pursuit program), która została udostępniona wraz ze źródłową publikacją. W pakiecie dostępny jest kod źródłowy algorytmu MP napisany w C oraz procedury Matlaba do wywoływania algorytmu, rekonstrukcji sygnału i rysowania map energii w przestrzeni czas-częstość. Aby uruchomić program należy:&lt;br /&gt;
*Pobrać i rozpakować pakiet (np. w swoim domowym katalogu).&lt;br /&gt;
*Przeczytać instrukcje instalacji i uruchamiania w pliku &amp;lt;tt&amp;gt;readme.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*Skompilować program &amp;lt;tt&amp;gt;gabord.c&amp;lt;/tt&amp;gt; wykonując polecenia w konsoli:&lt;br /&gt;
**&amp;lt;tt&amp;gt;cd gabord-0.1&amp;lt;/tt&amp;gt;&lt;br /&gt;
**&amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt;&lt;br /&gt;
**&amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
**plik wykonywalny powinien być zlokalizowany w katalogu &amp;lt;tt&amp;gt;src&amp;lt;/tt&amp;gt;, co sprawdzamy pisząc: &amp;lt;tt&amp;gt;ls src/gabord&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Podać lokalizację (tzn. ścieżkę dostępu) pliku wykonywalnego &amp;lt;tt&amp;gt;gabord&amp;lt;/tt&amp;gt; w procedurze &amp;lt;tt&amp;gt;runGabor.m&amp;lt;/tt&amp;gt;, w linii 21.&lt;br /&gt;
*Do definicji ścieżek w Matlabie dołączyć katalog z pakietem MP.&lt;br /&gt;
*Uruchomić skrypt &amp;lt;tt&amp;gt;example.m&amp;lt;/tt&amp;gt; w celu przetestowania działania programu MP.&lt;br /&gt;
&lt;br /&gt;
Niedawno powstała inna implementacja MP, dostępna bezpośrednio w środowisku Matlab, jako plugin do EEGLAB. Program można pobrać ze strony [git.nimitz.pl/mp-eeglab-plugin.git/snapshot/18ad395338572078632297cd071ba5e925b7b22e.tar.gz], jednak wygodniejsze wydaje się bezpośrednie skopiowanie repozytorium. W tym celu należy:&lt;br /&gt;
*otworzyć terminal,&lt;br /&gt;
*przejść do folderu, gdzie zainstalowany został EEGLAB,&lt;br /&gt;
*odnaleźć katalog plugins i przejść do niego,&lt;br /&gt;
*wpisać komendę: git clone git://git.nimitz.pl/mp-eeglab-plugin.git.&lt;br /&gt;
&lt;br /&gt;
Po ponownym uruchomieniu EEGLABa, MP będzie dostępne w zakładce &amp;lt;i&amp;gt;tools&amp;lt;/i&amp;gt;. Wynik działania skryptu zapisywany jest do struktury BOOK. Przed wykonaniem kolejnych obliczeń, należy zapisać wyniki poprzednich. W przeciwnym razie zostaną one nadpisane. Do programu dołączone zostały stosowne narzędzia wizualizujące wyniki.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenia===&lt;br /&gt;
==== Zadanie 1 ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Ściągnąć pakiet plików Matlaba do analizy czas-częstość:&lt;br /&gt;
  https://brain.fuw.edu.pl/~suffa/LabEEG/TF.zip&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Zapoznać się z opisem metod czas-częstość, wykonując polecenia opisane przy każdej z metod.&lt;br /&gt;
* Zbadać własności metod czas-częstość, m.in.:&lt;br /&gt;
** Proszę przyjrzeć się definicjom transformaty falkowej i STFT i opowiedzieć o analogiach i różnicach.&lt;br /&gt;
** Proszę zbadać własności przesunięć w czasie i w częstości dla skalogramu w sposób analogiczny jak było to pokazane dla spektrogramu.&lt;br /&gt;
** Proszę zbadać strukturę wyrazów mieszanych w sposób analogiczny jak było to pokazane dla spektrogramu.&lt;br /&gt;
&lt;br /&gt;
==== Zadanie 2 ====&lt;br /&gt;
Zbadaj działanie algorytmu MP na samodzielnie wytworzonych sygnałach symulowanych:&lt;br /&gt;
* Trzech funkcjach Gabora o różnych częstościach, amplitudach i położeniach w czasie i o podobnej rozciągłości w czasie tak, aby zasadniczo nie nachodziły na siebie (patrz rysunek). Wykonaj dopasowanie dla trzech atomów, narysuj sygnał oryginalny i nałożony na niego sygnał zrekonstruowany z wyliczonych atomów, różnicę tych sygnałów (residuum) oraz mapę czas-częstość.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Plik:eeglab_gabory3.png|300px|left]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
* Dwóch jednakowych funkcji Gabora położonych w pewnej odległości od siebie w czasie. Zbadaj jakość dopasowania dokonując rekonstrukcji dwoma i trzema atomami na rysunkach podobnych jak w poprzedniej części zadania. Sprawdź co się dzieje przy zwiększaniu odległości w czasie pomiędzy tymi funkcjami Gabora.&lt;br /&gt;
[[Plik:eeglab_gabory2.png|300px|left]][[Plik:eeglab_gabory2_dalej.png|300px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Zadanie 3 ====&lt;br /&gt;
Sporządź mapy czas-częstość&amp;lt;br&amp;gt;&lt;br /&gt;
* kilku sygnałów zawierających artefakty;&lt;br /&gt;
* danych zawierających czynność alfa;&lt;br /&gt;
* sygnałów zawierających wzrokowe sygnały wywołane;&lt;br /&gt;
* sygnałów SSVEP.&lt;br /&gt;
Porównaj mapy uzyskane różnymi metodami: dekompozycją Wignera-Ville'a, spektrogramem, transformacją falkową i metodą MP. Wyróżnij struktury charakterystyczne dla poszczególnych rodzajów sygnałów.&lt;br /&gt;
&lt;br /&gt;
==== Zadanie 4 ====&lt;br /&gt;
Pobrać plik z danymi:&lt;br /&gt;
https://www.fuw.edu.pl/~suffa/LabEEG/Characterize_ch4_F50_G4.mat&lt;br /&gt;
&lt;br /&gt;
Opis danych:&lt;br /&gt;
dane zawierają zapisy z lokalnych potencjałów polowych (LFP) z kory czuciowej małpy podczas podawania bodźca wibracyjnego do palca.&lt;br /&gt;
Macierz zawiera 50 powtórzeń po 3 sekundy. Częstość próbkowania wynosi 5000 Hz. Bodziec podawany był pomiędzy 1 a 2 sekundą.&lt;br /&gt;
&lt;br /&gt;
[[Plik:MP_LFP_13_02.jpg|500px|thumb|right|&amp;lt;figure id=&amp;quot;fig:1&amp;quot;/&amp;gt; Analiza zapisów LFP z kory czuciowej małpy podczas podawania bodźca wibracyjnego do palca, o częstości 50 Hz. Mapa czas-częstość przedstawia względną gęstość energii (w skali dB) względem okresu referencyjnego 200-50 ms przed początkiem stymulacji. Dane opisane są w pracy: Supratim Ray, Steven S. Hsiao, Nathan E. Crone, Piotr J. Franaszczuk, and Ernst Niebur. Effect of Stimulus Intensity on the Spike&amp;amp;mdash;Local Field Potential Relationship in the Secondary Somatosensory Cortex. The Journal of Neuroscience, 2008, 28(29):7334-7343.]]&lt;br /&gt;
&lt;br /&gt;
Zadania do wykonania:&lt;br /&gt;
* Otrzymać mapy czas-częstość dla pojedynczych realizacji a następnie uśrednić je po realizacjach.&lt;br /&gt;
* Na średniej mapie poszukać występowania odpowiedzi w częstościach high-gamma (100-200 Hz).&lt;br /&gt;
* W przypadku braku widocznej odpowiedzi, rozważyć następujące operacje:&lt;br /&gt;
** usunąć częstości sieci (60 Hz i wyższe harmoniczne);&lt;br /&gt;
** zastosować logarytmiczną skalę energii;&lt;br /&gt;
** policzyć zmiany gęstości energii względem jej wartości w okresie referencyjnym.&lt;br /&gt;
&lt;br /&gt;
Mapa czas-częstość średniej gęstości energii otrzymaną metodą Matching Pursuit jest przedstawiona na &amp;lt;xr id=&amp;quot;fig:1&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Zadanie 5 ====&lt;br /&gt;
Wykonać analizę metodą MP dla danych z zadania 3.&lt;br /&gt;
&lt;br /&gt;
==Literatura==&lt;br /&gt;
S. Mallat and Z. Zhang (1993) Matching pursuit with time-frequency dictionaries. IEEE Transactions on Signal Processing, 41:3397-3415. &lt;br /&gt;
&lt;br /&gt;
Pinsky, Mark (2002), Introduction to Fourier Analysis and Wavelets, Brooks/Cole, ISBN 0-534-37660-6&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS_2&amp;diff=10816</id>
		<title>Pracownia EEG 2/ERDS 2</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/ERDS_2&amp;diff=10816"/>
		<updated>2024-09-24T07:51:55Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Utworzono nową stronę &amp;quot;Pracownia EEG / Czas-częstość  =Estymacja  i analiza względnych zmian gęstości energii sygnału EEG w przestrzeni czas-częstość=   {{hidden be...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG|Pracownia EEG]] / Czas-częstość&lt;br /&gt;
&lt;br /&gt;
=Estymacja  i analiza względnych zmian gęstości energii sygnału EEG w przestrzeni czas-częstość=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{hidden begin|title=Moduł tf używany w przykładach można pobrać w wersji Pythona stąd:}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
def czas(T = 1.0, Fs = 128.0):&lt;br /&gt;
    dt = 1.0/Fs&lt;br /&gt;
    t = np.arange(0,T,dt)&lt;br /&gt;
    return t&lt;br /&gt;
&lt;br /&gt;
def gauss(t0 = 0.3, sigma = 0.02, T = 1.0, Fs = 128.0):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = np.exp(-((t-t0)/(sigma))**2/2)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def g2(t0 = 0.3, sigma = 0.02, T = 1.0, Fs = 128.0):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = (-(t-t0)/(sigma))*np.exp(-((t-t0)/(sigma))**2/2)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def g3(t0 = 0.3, sigma = 0.02, T = 1.0, Fs = 128.0):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = np.exp(-((t-t0)/(sigma))**2/2)&lt;br /&gt;
    s[t&amp;lt;t0] = 0&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def gabor(t0 = 0.5, sigma = 0.1, T = 1.0, f=10, phi = 0, Fs = 128.0):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = np.exp(-((t-t0)/(sigma))**2/2) * np.cos(2*np.pi*f*(t-t0) + phi)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def sin(f = 10.0, T = 1.0, Fs = 128.0, phi =0 ):&lt;br /&gt;
    '''sin o zadanej cz?sto?ci (w Hz), d?ugo?ci, fazie i cz?sto?ci próbkowania&lt;br /&gt;
	Domy?lnie wytwarzany jest sygna? reprezentuj?cy &lt;br /&gt;
	1 sekund? sinusa o cz?sto?ci 1Hz i zerowej fazie próbkowanego 128 Hz&lt;br /&gt;
	'''&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    s = np.sin(2*np.pi*f*t + phi)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def chirp(f0,fk,T,Fs):&lt;br /&gt;
    t = czas(T,Fs)&lt;br /&gt;
    f  = f0 + (fk-f0)/2.0/(T)*t&lt;br /&gt;
    s  = np.cos(2*np.pi*t*f)&lt;br /&gt;
    return s&lt;br /&gt;
&lt;br /&gt;
def cwt(x, MinF,MaxF,Fs,w=7.0,df=1.0,plot = True):&lt;br /&gt;
    '''w - parametr falki Morleta,&lt;br /&gt;
      wiaze sie z jej czestoscia centralna i skala w nastepujacy sposob:&lt;br /&gt;
      f = 2*s*w / T&lt;br /&gt;
      gdzie: s-skala,  T-dlugosc sygnalu w sek.'''&lt;br /&gt;
    T= len(x)/Fs&lt;br /&gt;
    M = len(x)&lt;br /&gt;
    t = np.arange(0,T,1./Fs)&lt;br /&gt;
    freqs = np.arange(MinF,MaxF,df)&lt;br /&gt;
    P = np.zeros((len(freqs),M))&lt;br /&gt;
    X = ss.fft(x)&lt;br /&gt;
    for i,f in enumerate(freqs):&lt;br /&gt;
        s = T*f/(2*w)&lt;br /&gt;
        psi = ss.fft(ss.morlet(M, w=w, s=s, complete=True))&lt;br /&gt;
        psi /= np.sqrt(np.sum(psi*psi.conj()))    &lt;br /&gt;
        tmp = np.fft.fftshift(ss.ifft(X*psi))&lt;br /&gt;
        P[i,:] = (tmp*tmp.conj()).real&lt;br /&gt;
    &lt;br /&gt;
    if plot:&lt;br /&gt;
        py.imshow(P,aspect='auto',origin='lower',extent=(0,T,MinF, MaxF))&lt;br /&gt;
        py.show()&lt;br /&gt;
    return P,f,t&lt;br /&gt;
&lt;br /&gt;
def wvd(x, Fs, plot=True):&lt;br /&gt;
    samples = len(x)&lt;br /&gt;
    N = samples / 2&lt;br /&gt;
    z = np.zeros(samples)&lt;br /&gt;
    xh = ss.hilbert(x)&lt;br /&gt;
    x_period_h = np.concatenate((z,xh,z));&lt;br /&gt;
 &lt;br /&gt;
    t = range(0, samples, 1)  # czas w samplach&lt;br /&gt;
    tfr = np.zeros((samples , samples), dtype=complex)&lt;br /&gt;
    for ti in t:&lt;br /&gt;
        for tau in range(-samples/2,samples/2):&lt;br /&gt;
	    tfr[samples/2 + tau, ti] =  x_period_h[samples+ti +  tau] * x_period_h[samples+ti - tau].conj() &lt;br /&gt;
    tfr = np.fft.fftshift(tfr,axes = 0)&lt;br /&gt;
    Tfr = np.fft.fft(tfr, samples, axis=0)/samples&lt;br /&gt;
    ts = np.array(t, dtype=float) / (float(Fs))&lt;br /&gt;
    f = np.linspace(0, Fs / 2, N)&lt;br /&gt;
    if plot:&lt;br /&gt;
        py.imshow( Tfr.real, interpolation='nearest', extent=[0, ts[-1], 0, f[-1]], origin='lower', aspect='auto')&lt;br /&gt;
        py.show()&lt;br /&gt;
    return Tfr, ts, f&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == '__main__':&lt;br /&gt;
    t = czas()&lt;br /&gt;
    Fs = 512.0&lt;br /&gt;
    T = 1.0&lt;br /&gt;
    #py.plot(t,sin(),t,gauss(),t,g2(),t,g3(),t,gabor())&lt;br /&gt;
    ch = chirp(5,Fs/2-5,T,Fs)&lt;br /&gt;
    py.plot(ch)&lt;br /&gt;
    py.show()&lt;br /&gt;
    #cwt(gabor(),0.1,64,128)&lt;br /&gt;
    #cwt(ch,0.1,Fs/2,Fs)&lt;br /&gt;
    #ch = gabor(t0=0,f=Fs/2)&lt;br /&gt;
    wvd(ch,Fs)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{{hidden end}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[https://brain.fuw.edu.pl/~suffa/LabEEG/TF.zip Moduł czas-częstość w Matlabie]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zasada nieoznaczoności dla przestrzeni czas-częstość==&lt;br /&gt;
Poniższy rysunek obrazuje koncepcję zasady nieoznaczoności w przypadku analizy czas-częstość: im dokładniej znamy lokalizację interesującego nas fragmentu sygnału (struktury) w czasie tym mniej dokładnie możemy poznać jego częstość.&lt;br /&gt;
&lt;br /&gt;
[[Plik:Zasada_nieoznaczonosci_tf.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Zasadę tą można wyrazić formalnie w następujący sposób. &lt;br /&gt;
Potraktujmy moc sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt; (o skończonej energii) jak rozkład zmiennej losowej. Aby rozkład był unormowany trzeba podzielić go przez energię sygnału: &amp;lt;math&amp;gt;E_x = \int_{-\infty}^{\infty} |x(t)|^2 dt &amp;lt; \infty&amp;lt;/math&amp;gt;. Zatem rozkład ten jest postaci: &amp;lt;math&amp;gt;p(t) = \frac{1}{E_x}|x(t)|^2 &amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Jako lokalizację występowania sygnału w czasie przyjmujemy średnie położenie jego energii:&lt;br /&gt;
: &amp;lt;math&amp;gt;t_0 = \frac{1}{E_x} \int_{-\infty}^{\infty}t |x(t)|^2 dt&amp;lt;/math&amp;gt;&lt;br /&gt;
zaś jako miarę skupienia energii wokół tego położenia przyjmujemy wariancję:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma_t^2 = \frac{1}{E_x}\int_{-\infty}^{\infty} (t - t_0)^2 |x(t)|^2 dt &amp;lt;/math&amp;gt;&lt;br /&gt;
Analogicznie w dziedzinie częstości:&lt;br /&gt;
: &amp;lt;math&amp;gt;f_0 = \frac{1}{E_x} \int_{-\infty}^{\infty}f |X(f)|^2 df&amp;lt;/math&amp;gt;&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma_f^2 = \frac{1}{E_x}\int_{-\infty}^{\infty} (f - f_0)^2 |X(f)|^2 df &amp;lt;/math&amp;gt;&lt;br /&gt;
Można pokazać (np. Pinsky, 2002), że iloczyn wariancji energii w czasie i w częstości jest ograniczony od dołu:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma_t^2 \sigma_f^2 \ge \frac{1}{16 \pi^2}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Estymatory gęstości widmowej dla przestrzeni czas-częstość==&lt;br /&gt;
Energię sygnału w jednej z dziedzin, czasu bądź częstości, możemy policzyć tak:&lt;br /&gt;
: &amp;lt;math&amp;gt; E_x=\int_{-\infty}^{\infty}{|x(t)|^2 dt} = \int_{-\infty}^{\infty}{|X(f)|^2 df}&amp;lt;/math&amp;gt; &lt;br /&gt;
i interpretujemy &amp;lt;math&amp;gt;|x(t)|^2&amp;lt;/math&amp;gt;  albo &amp;lt;math&amp;gt;|X(f)|^2&amp;lt;/math&amp;gt;  jako gęstości energii.&lt;br /&gt;
Stąd pomysł, żeby rozszerzyć tą koncepcję na obie dziedziny jednocześnie i wprowadzić pojęcie gęstości energii w dziedzinie czas-częstość &amp;lt;math&amp;gt;\rho_x(t,f)&amp;lt;/math&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt; E_x=\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}{\rho_x(t,f) dt df}&amp;lt;/math&amp;gt; &lt;br /&gt;
muszą też być spełnione własności brzegowe:&lt;br /&gt;
: &amp;lt;math&amp;gt; \int_{-\infty}^{\infty}{\rho_x(t,f) dt}=|X(f)|^2&amp;lt;/math&amp;gt; &lt;br /&gt;
: &amp;lt;math&amp;gt; \int_{-\infty}^{\infty}{\rho_x(t,f) df} = |x(t)|^2&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
===Dystrybucja energii===&lt;br /&gt;
Podobnie jak widmo mocy, gęstość energii fizycznego sygnału nie może być obliczona, może być jedynie estymowana. W celu estymacji gęstości energii można posłużyć się dwuwymiarowymi dystrybucjami energii. &lt;br /&gt;
Jedną z podstawowych dystrybucji jest dystrybucja  Wigner-Ville'a (WVD):&lt;br /&gt;
: &amp;lt;math&amp;gt; W_x(t,f)=\int_{-\infty}^{\infty}x(t+\tau/2)x^*(t-\tau/2)e^{-i 2 \pi f \tau} d\tau&amp;lt;/math&amp;gt; &lt;br /&gt;
lub&lt;br /&gt;
: &amp;lt;math&amp;gt; W_x(t,f) = \int_{-\infty}^{\infty} X(f+\xi/2)X^*(f-\xi/2) e^{i 2 \pi \xi t} d\xi&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Implementacja====&lt;br /&gt;
Przykładowa implementacja WVD dla sygnału rzeczywistego:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import numpy as np&lt;br /&gt;
import pylab as py&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
def wvd(x, Fs, plot=True):&lt;br /&gt;
    samples = len(x)&lt;br /&gt;
    N = samples / 2&lt;br /&gt;
    z = np.zeros(samples)&lt;br /&gt;
    xh = ss.hilbert(x)&lt;br /&gt;
    x_period_h = np.concatenate((z,xh,z));&lt;br /&gt;
 &lt;br /&gt;
    t = range(0, samples, 1)  # czas w samplach&lt;br /&gt;
    tfr = np.zeros((samples , samples), dtype=complex)&lt;br /&gt;
    for ti in t:&lt;br /&gt;
        for tau in range(-samples/2,samples/2):&lt;br /&gt;
	    tfr[samples/2 + tau, ti] =  x_period_h[samples+ti +  tau] * x_period_h[samples+ti - tau].conj() &lt;br /&gt;
    tfr = np.fft.fftshift(tfr,axes = 0)&lt;br /&gt;
    Tfr = np.fft.fft(tfr, samples, axis=0)/samples&lt;br /&gt;
    ts = np.array(t, dtype=float) / (float(Fs))&lt;br /&gt;
    f = np.linspace(0, Fs / 2, N)&lt;br /&gt;
    if plot:&lt;br /&gt;
        py.imshow( Tfr.real, interpolation='nearest', extent=[0, ts[-1], 0, f[-1]], origin='lower', aspect='auto')&lt;br /&gt;
        py.show()&lt;br /&gt;
    return Tfr, ts, f&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
function [Tfr,ts,f]=tf_wvd(x,Fs,varargin)&lt;br /&gt;
&lt;br /&gt;
doplot = true;&lt;br /&gt;
switch nargin&lt;br /&gt;
    case 0:1&lt;br /&gt;
        disp('tf_wvd - not enough input arguments');&lt;br /&gt;
        return&lt;br /&gt;
    case 2&lt;br /&gt;
&lt;br /&gt;
    otherwise&lt;br /&gt;
        doplot=varargin{1};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
x = hilbert(x);&lt;br /&gt;
samples = length(x);&lt;br /&gt;
N = floor(samples/2);&lt;br /&gt;
t = 0:samples; t(end)= [];&lt;br /&gt;
tfr = zeros(N,samples);&lt;br /&gt;
for ti=t&lt;br /&gt;
    for tau=0:min(ti,samples-ti)-1&lt;br /&gt;
        tfr(tau+1,ti+1) = x(ti+tau+1).*conj(x(ti-tau+1));&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Tfr = fft(tfr,samples,1);&lt;br /&gt;
ts = t./Fs;&lt;br /&gt;
f = linspace(0,Fs/2,N);&lt;br /&gt;
&lt;br /&gt;
if doplot&lt;br /&gt;
    pcolor(linspace(0,ts(end),size(Tfr,2)),linspace(0,f(end),size(Tfr,1)),real(Tfr)); shading interp;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Własności====&lt;br /&gt;
Własności WVD:&lt;br /&gt;
* zachowanie energii &lt;br /&gt;
* własności brzegowe&lt;br /&gt;
* zachowywanie przesunięcia w czasie i w częstości&lt;br /&gt;
: &amp;lt;math&amp;gt; y(t) = x(t-t_0) \Rightarrow W_y(t,f) = W_x(t-t_0,f)&amp;lt;/math&amp;gt; &lt;br /&gt;
: &amp;lt;math&amp;gt; y(t) = x(t)e^{i 2 \pi f_0 t} \Rightarrow W_y(t,f) = W_x(t,f-f_0)&amp;lt;/math&amp;gt; &lt;br /&gt;
* zachowywanie skalowania&lt;br /&gt;
: &amp;lt;math&amp;gt; y(t)=\sqrt{k}x(kt) \Rightarrow W_y(t,f) = W_x(kt, f/k)&amp;lt;/math&amp;gt; &lt;br /&gt;
&lt;br /&gt;
====Wyrazy mieszane====&lt;br /&gt;
WVD jest reprezentacją kwadratową więc:&lt;br /&gt;
: &amp;lt;math&amp;gt; y(t) = x_1(t)+x_2(t) \Rightarrow W_y(t, f) = W_{x_1}(t, f)+W_{x_2}(t, f)+W_{x_1,x_2}(t, f)+W_{x_2,x_1}(t, f)&amp;lt;/math&amp;gt; &lt;br /&gt;
gdzie &lt;br /&gt;
: &amp;lt;math&amp;gt; W_{x_1,x_2}(t, f) = \int_{-\infty}^{\infty} x_1(t+\tau/2)x_2^*(t-\tau/2)e^{-i 2 \pi f \tau} d\tau&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Rozdzielczość====&lt;br /&gt;
&lt;br /&gt;
* idealnie dla chirpów liniowych (sygnał o liniowo zmieniającej się częstości chwilowej):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import tf as tf&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
Fs = 512.0&lt;br /&gt;
T = 1.0&lt;br /&gt;
t = tf.czas(T,Fs)&lt;br /&gt;
ch = tf.chirp(5,Fs/2-5,T,Fs)&lt;br /&gt;
Tfr,ts,f = tf.wvd(ch,Fs,False)&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
py.plot(t,ch)&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
py.imshow(Tfr.real,interpolation= 'nearest',extent=[0,ts[-1],0,f[-1]],origin='lower',aspect='auto')&lt;br /&gt;
py.show() &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
Fs = 512.0;&lt;br /&gt;
T = 1.0;&lt;br /&gt;
t = tf_czas(T,Fs);&lt;br /&gt;
ch = tf_chirp(5,Fs/2-5,T,Fs);&lt;br /&gt;
[Tfr,ts,f] = tf_wvd(ch,Fs,false);&lt;br /&gt;
subplot(2,1,1)&lt;br /&gt;
plot(t,ch)&lt;br /&gt;
subplot(2,1,2)&lt;br /&gt;
pcolor(linspace(0,ts(end),size(Tfr,2)),linspace(0,f(end),size(Tfr,1)),real(Tfr)); shading interp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* struktura wyrazów mieszanych: zaobserwuj, że niezależnie od tego jak bardzo odseparowane są struktury w przestrzeni czas-częstość pomiędzy nimi powstają wyrazy mieszane. Zauważ, że wyrazy mieszane mają wysoką częstość przestrzennej zmienności.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import tf as tf&lt;br /&gt;
import pylab as py&lt;br /&gt;
&lt;br /&gt;
Fs = 512.0&lt;br /&gt;
T = 1.0&lt;br /&gt;
t = tf.czas(T,Fs)&lt;br /&gt;
s1 = tf.gabor(t0=0.3, sigma = 0.05, T = 1.0, f=100, phi = 0,Fs=Fs)&lt;br /&gt;
s2 = tf.gabor(t0=0.7, sigma = 0.05, T = 1.0, f=200, phi = 0,Fs=Fs)&lt;br /&gt;
s = s1 + s2&lt;br /&gt;
Tfr,ts,f = tf.wvd(s,Fs,False)&lt;br /&gt;
py.subplot(2,1,1)&lt;br /&gt;
py.plot(t,s)&lt;br /&gt;
py.subplot(2,1,2)&lt;br /&gt;
py.imshow(Tfr.real,interpolation= 'nearest',extent=[0,ts[-1],0,f[-1]],origin='lower',aspect='auto')&lt;br /&gt;
py.show()  &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
Fs = 512.0;&lt;br /&gt;
T = 1.0;&lt;br /&gt;
t = tf_czas(T,Fs);&lt;br /&gt;
s1 = tf_gabor(0.3, 0.05, 1.0, 100, 0, Fs);&lt;br /&gt;
s2 = tf_gabor(0.7, 0.05, 1.0, 200, 0, Fs);&lt;br /&gt;
s = s1 + s2;&lt;br /&gt;
[Tfr,ts,f] = tf_wvd(s,Fs,false);&lt;br /&gt;
subplot(2,1,1)&lt;br /&gt;
plot(t,s)&lt;br /&gt;
subplot(2,1,2)&lt;br /&gt;
pcolor(linspace(0,ts(end),size(Tfr,2)),linspace(0,f(end),size(Tfr,1)),real(Tfr)); shading interp;&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Klasa Cohena===&lt;br /&gt;
WVD jest najprostszym elementem klasy Cohena. Ogólnie klasę tę można zapisać jako:&lt;br /&gt;
: &amp;lt;math&amp;gt; C_x(t,f,\Pi) = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} \Pi(s-t, \xi - f) W_x(s,\xi) ds d\xi&amp;lt;/math&amp;gt; &lt;br /&gt;
gdzie&lt;br /&gt;
: &amp;lt;math&amp;gt; \Pi(t,f) =  \int_{-\infty}^{\infty}\int_{-\infty}^{\infty} f(\xi, \tau) e^{-i 2 \pi (f\tau + \xi t)} dt df&amp;lt;/math&amp;gt; &lt;br /&gt;
Najczęściej &amp;lt;math&amp;gt; \Pi&amp;lt;/math&amp;gt;  wybiera się jako pewną funkcję gładzącą &amp;amp;mdash; w zależności od tego wyboru będziemy mieli w różnym stopniu osłabiane wyrazy mieszane.&lt;br /&gt;
&lt;br /&gt;
===MP &amp;amp;mdash; dopasowanie kroczące===&lt;br /&gt;
====Definicja====&lt;br /&gt;
Algorytm dopasowania kroczącego (ang. ''matching pursuit'', ''MP'') jest algorytmem iteracyjnie rozkładającym sygnał &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; na funkcje bazowe (tzw. '''atomy czas-częstość''') &amp;lt;math&amp;gt;g_{\gamma_n}&amp;lt;/math&amp;gt;  pochodzące ze zbioru &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; (zwanego '''słownikiem'''):&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
\left \{&lt;br /&gt;
 \begin{array}{l}&lt;br /&gt;
  R^0s =  s\\&lt;br /&gt;
  R^ns = \langle R^ns,g_{\gamma_n} \rangle g_{\gamma_n}+R^{n+1}s\\&lt;br /&gt;
  g_{\gamma_n} = \arg \max_{g_{\gamma_i} \in D } |\langle R^ns, g_{\gamma_i}\rangle|&lt;br /&gt;
 \end{array}&lt;br /&gt;
\right .&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie:&lt;br /&gt;
&amp;lt;math&amp;gt;\arg \max_{g_{\gamma_i} \in D }&amp;lt;/math&amp;gt; oznacza tego &amp;lt;math&amp;gt; g_{\gamma_i}&amp;lt;/math&amp;gt;, który daje największy iloczyn skalarny z aktualnym residuum:  &amp;lt;math&amp;gt;|\langle R^ns, g_{\gamma_i}\rangle|&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Słowniki mogą być dowolne, ale najczęściej składamy je z funkcji Diraca, sinus i Gabora:&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
g_\gamma (t) = K(\gamma)e^{ -\pi\left( \frac{t-u}{\sigma} \right)^2}&lt;br /&gt;
\sin\left(2 \pi  f (t-u)+\phi\right)&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
normalizacja &amp;lt;math&amp;gt; K(\gamma)&amp;lt;/math&amp;gt;   jest taka, że &amp;lt;math&amp;gt; ||g_{\gamma}||=1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\gamma=\{ u, f, \sigma,&lt;br /&gt;
\phi \}&amp;lt;/math&amp;gt; to parametry funkcji w słowniku (&amp;lt;math&amp;gt;u&amp;lt;/math&amp;gt; &amp;amp;mdash; translacja w czasie, &amp;lt;math&amp;gt; f&amp;lt;/math&amp;gt; &amp;amp;mdash; częstość, &amp;lt;math&amp;gt; \sigma&amp;lt;/math&amp;gt; &amp;amp;mdash; szerokość w czasie, &amp;lt;math&amp;gt; \phi&amp;lt;/math&amp;gt; &amp;amp;mdash; faza).&lt;br /&gt;
&lt;br /&gt;
====Dystrybucja energii====&lt;br /&gt;
Reprezentację czas-częstość uzyskujemy z dekompozycji MP sumując dystrybucje WVD pojedynczych atomów:&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
W_{ g_{\gamma_n}}(t, f)=\int g_{\gamma_n} \bigl (t + \frac{\tau}{2} \bigr)\;&lt;br /&gt;
g_{\gamma_n}^*\left(t- \frac{\tau}{2} \right) e^{- i 2 \pi f \tau } d \tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;&lt;br /&gt;
E^{MP}  = \sum_{n=0}^M |\langle R^n s, \;g_{\gamma_n} \rangle|^2 \; W_{g_{\gamma_n}} (t, f)&lt;br /&gt;
&amp;lt;/math&amp;gt; &lt;br /&gt;
 &lt;br /&gt;
W wyrażeniu tym nie ma wyrazów mieszanych :-)&lt;br /&gt;
&lt;br /&gt;
==Krótkoczasowa transformacja Fouriera i spektrogram==&lt;br /&gt;
&lt;br /&gt;
===Definicja krótkoczasowej transformacji Fouriera===&lt;br /&gt;
Krótkoczasowa transformacja Fouriera (ang. ''short-time Fourier transform'', ''STFT'') może być rozumiana jako seria transformacji Fouriera wykonanych na sygnale podzielonym na okienka, przy czym położenie okienka w czasie jest w ramach takiej serii przesuwane monotonicznie. W wersji ciągłej możemy to zapisać tak:&lt;br /&gt;
: &amp;lt;math&amp;gt;F_x(t,f; h)= \int_{-\infty}^{\infty}{x(u) h^*(u-t)e^{- i 2 \pi u f} du} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Własności====&lt;br /&gt;
Jeśli okienko ma skończoną energię to STFT jest transformacją odwracalną i można odzyskać z niej sygnał w reprezentacji czasowej:&lt;br /&gt;
: &amp;lt;math&amp;gt; x(t) = \frac{1}{E_h}\int_{-\infty}^{\infty}\int_{-\infty}^{\infty}F_x(u,f;h)h(t-u)e^{i 2\pi t f}\,du\,df &amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;E_h=\int_{-\infty}^{\infty}|h(t)|^2\,dt &amp;lt;/math&amp;gt;&lt;br /&gt;
Tak więc sygnał może być rozłożony na liniową kombinację elementarnych falek-&amp;amp;bdquo;atomów&amp;amp;rdquo; postaci:&lt;br /&gt;
: &amp;lt;math&amp;gt;h_{t,f}(u)=h(u-t)e^{i 2 \pi f u}&amp;lt;/math&amp;gt;&lt;br /&gt;
Każdy atom uzyskiwany jest przez translację pojedynczego okna &amp;lt;math&amp;gt;h&amp;lt;/math&amp;gt; w czasie i jego modulację częstością &amp;lt;math&amp;gt;f&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
''Ciekawostka: zbiór wszystkich możliwych transformacji tego typu tworzy grupę Weyl-Heisenberga.''&lt;br /&gt;
&lt;br /&gt;
===Spektrogram===&lt;br /&gt;
====Definicja====&lt;br /&gt;
Spektrogram: kwadrat modułu STFT jest estymatą gęstości energii w przestrzeni czas-częstość:&lt;br /&gt;
: &amp;lt;math&amp;gt;S_x(t, f) =\left|\int_{-\infty}^{\infty}{x(u) h^*(u - t) e^{-i 2\pi f u} du}\right|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Implementacja====&lt;br /&gt;
Spektrogram zaiplementowany jest w module matplotlib.pyplot jako funkcja &amp;lt;tt&amp;gt;specgram&amp;lt;/tt&amp;gt; ([http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.specgram dokumentacja]).&lt;br /&gt;
&lt;br /&gt;
====Własności====&lt;br /&gt;
=====Przesunięcia =====&lt;br /&gt;
Spektrogram zachowuje przesunięcie:&lt;br /&gt;
&lt;br /&gt;
w czasie&lt;br /&gt;
:&amp;lt;math&amp;gt;y(t) = x(t - t_0)\Rightarrow  S_y(t, f; h) = S_x(t - t_0, f; h)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as py&lt;br /&gt;
from tf import czas, gabor&lt;br /&gt;
import numpy as np&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
# parametry&lt;br /&gt;
t0    = 1.0&lt;br /&gt;
sigma = 0.1&lt;br /&gt;
T     = 4.0&lt;br /&gt;
f     = 10&lt;br /&gt;
phi   = 0&lt;br /&gt;
Fs    = 128.0&lt;br /&gt;
NFFT  = int(Fs)&lt;br /&gt;
&lt;br /&gt;
sig1 = gabor(t0, sigma, T, f, phi, Fs) # sygnał&lt;br /&gt;
sig2 = gabor(t0 + 2, sigma, T, f, phi, Fs) # sygnał przesunięty w czasie&lt;br /&gt;
&lt;br /&gt;
py.subplot(221)&lt;br /&gt;
h = ss.hamming(NFFT)&lt;br /&gt;
sig1_padded = (np.concatenate((np.zeros(NFFT/2),sig1,np.zeros(NFFT/2))))&lt;br /&gt;
P,f,t,im1 = py.specgram(sig1_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
py.subplot(222)&lt;br /&gt;
sig2_padded = (np.concatenate((np.zeros(NFFT/2),sig2,np.zeros(NFFT/2))))&lt;br /&gt;
P,f,t,im2 = py.specgram(sig2_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
py.subplot(223)&lt;br /&gt;
time    = czas(T, Fs)&lt;br /&gt;
py.plot(time,sig1)&lt;br /&gt;
&lt;br /&gt;
py.subplot(224)&lt;br /&gt;
py.plot(time ,sig2)&lt;br /&gt;
&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
% parametry&lt;br /&gt;
t0    = 1.0;&lt;br /&gt;
sigma = 0.1;&lt;br /&gt;
T     = 4.0;&lt;br /&gt;
f     = 10;&lt;br /&gt;
phi   = 0;&lt;br /&gt;
Fs    = 128.0;&lt;br /&gt;
NFFT  = floor(Fs);&lt;br /&gt;
 &lt;br /&gt;
sig1 = tf_gabor(t0, sigma, T, f, phi, Fs); &lt;br /&gt;
        % sygnał&lt;br /&gt;
sig2 = tf_gabor(t0 + 2, sigma, T, f, phi, Fs); &lt;br /&gt;
        % sygnał przesunięty w czasie&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,1);&lt;br /&gt;
sig1_padded = [zeros(1,floor(NFFT/2)), sig1, zeros(1,floor(NFFT/2))];&lt;br /&gt;
P=spectrogram(sig1_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
&lt;br /&gt;
subplot(2,2,2)&lt;br /&gt;
sig2_padded = [zeros(1,floor(NFFT/2)), sig2, zeros(1,floor(NFFT/2))];&lt;br /&gt;
P=spectrogram(sig2_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
&lt;br /&gt;
subplot(2,2,3)&lt;br /&gt;
time    = tf_czas(T, Fs);&lt;br /&gt;
plot(time,sig1);&lt;br /&gt;
  &lt;br /&gt;
subplot(2,2,4)&lt;br /&gt;
plot(time ,sig2);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i w częstości:&lt;br /&gt;
: &amp;lt;math&amp;gt;y(t) = x(t) e ^{i 2 \pi f_0 t}\Rightarrow S_y(t, f; h) = S_x(t, f - f_0; h)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang =python&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as py&lt;br /&gt;
from tf import czas, gabor&lt;br /&gt;
import numpy as np&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
# parametry&lt;br /&gt;
t0    = 1.0&lt;br /&gt;
sigma = 0.1&lt;br /&gt;
T     = 4.0&lt;br /&gt;
f     = 10&lt;br /&gt;
phi   = 0&lt;br /&gt;
Fs    = 128.0&lt;br /&gt;
NFFT  = int(Fs)&lt;br /&gt;
time    = czas(T, Fs)&lt;br /&gt;
sig1 = gabor(t0, sigma, T, f, phi, Fs) # sygnał&lt;br /&gt;
sig2 = gabor(t0, sigma, T, f+20, phi, Fs)# sygnał przesunięty w częstości&lt;br /&gt;
&lt;br /&gt;
py.subplot(221)&lt;br /&gt;
h = ss.hamming(NFFT)&lt;br /&gt;
sig1_padded = (np.concatenate((np.zeros(NFFT/2),sig1,np.zeros(NFFT/2))))&lt;br /&gt;
P,f,t,im1 = py.specgram(sig1_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
py.subplot(222)&lt;br /&gt;
sig2_padded = (np.concatenate((np.zeros(NFFT/2),sig2,np.zeros(NFFT/2))))&lt;br /&gt;
P,f,t,im2 = py.specgram(sig2_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
py.subplot(223)&lt;br /&gt;
py.plot(time,sig1)&lt;br /&gt;
&lt;br /&gt;
py.subplot(224)&lt;br /&gt;
py.plot(time ,sig2)&lt;br /&gt;
&lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang =matlab&amp;gt;&lt;br /&gt;
% parametry&lt;br /&gt;
t0    = 1.0;&lt;br /&gt;
sigma = 0.1;&lt;br /&gt;
T     = 4.0;&lt;br /&gt;
f     = 10;&lt;br /&gt;
phi   = 0;&lt;br /&gt;
Fs    = 128.0;&lt;br /&gt;
NFFT  = floor(Fs);&lt;br /&gt;
time    = tf_czas(T, Fs);&lt;br /&gt;
sig1 = tf_gabor(t0, sigma, T, f, phi, Fs); &lt;br /&gt;
        % sygnał&lt;br /&gt;
sig2 = tf_gabor(t0, sigma, T, f+20, phi, Fs);&lt;br /&gt;
        % sygnał przesunięty w częstości&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,1);&lt;br /&gt;
sig1_padded = [zeros(1,floor(NFFT/2)),sig1,zeros(1,floor(NFFT/2))];&lt;br /&gt;
P=spectrogram(sig1_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,2)&lt;br /&gt;
sig2_padded = [zeros(1,floor(NFFT/2)),sig2,zeros(1,floor(NFFT/2))];&lt;br /&gt;
P=spectrogram(sig2_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,3)&lt;br /&gt;
plot(time,sig1);&lt;br /&gt;
 &lt;br /&gt;
subplot(2,2,4)&lt;br /&gt;
plot(time ,sig2);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====Wyrazy mieszane=====&lt;br /&gt;
Spektrogram jest reprezentacją kwadratową. Spektrogram sumy sygnałów nie jest sumą spektrogramów sygnałów składowych, jest tam jeszcze coś: &lt;br /&gt;
: &amp;lt;math&amp;gt;y(t) = x_1(t)+x_2(t) \Rightarrow S_y(t, f) = S_{x_1}(t, f)+S_{x_2}(t, f)+S_{x_1,x_2}(t, f)+S_{x_2,x_1}(t, f)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &lt;br /&gt;
: &amp;lt;math&amp;gt;S_{x_1,x_2}(t, f) = F_{x_1}(t, f)F^*_{x_2}(t, f)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jak mogą wyglądać wyrazy mieszane ilustruje poniższy kod. Kolejne subploty pokazują spektrogramy uzyskane dla sygnału będącego sumą dwóch funkcji Gabora o częstościach różniących się o 2 Hz i położeniach różniących się o kolejne wielokrotności 0,1 s.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import matplotlib.pyplot as py&lt;br /&gt;
from tf import czas, gabor&lt;br /&gt;
import numpy as np&lt;br /&gt;
import scipy.signal as ss&lt;br /&gt;
&lt;br /&gt;
# parametry&lt;br /&gt;
t0    = 1.0&lt;br /&gt;
sigma = 0.05&lt;br /&gt;
T     = 2.0&lt;br /&gt;
f0     = 20&lt;br /&gt;
phi   = 0&lt;br /&gt;
Fs    = 128.0&lt;br /&gt;
NFFT  = int(Fs)&lt;br /&gt;
time  = czas(T, Fs)&lt;br /&gt;
h = ss.hamming(NFFT)&lt;br /&gt;
&lt;br /&gt;
for i in range(9):&lt;br /&gt;
    py.subplot(3,3,i+1)&lt;br /&gt;
    sig1  = gabor(t0, sigma, T, f0, phi, Fs) # sygnal&lt;br /&gt;
    sig2  = gabor(t0+i*0.1, sigma, T, f0+2, phi, Fs)# sygnał przesunięty w częstości o 2 Hz i w czasie o i*0.1 s&lt;br /&gt;
    sig1_padded = (np.concatenate((np.zeros(NFFT/2),sig1,np.zeros(NFFT/2))))&lt;br /&gt;
    sig2_padded = (np.concatenate((np.zeros(NFFT/2),sig2,np.zeros(NFFT/2))))&lt;br /&gt;
    P,f,t,im1 = py.specgram(sig1_padded+sig2_padded,NFFT = len(h),Fs = Fs,window = h, noverlap = NFFT-1, sides = 'onesided') &lt;br /&gt;
    py.imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
    &lt;br /&gt;
py.show()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
% parametry&lt;br /&gt;
t0    = 1.0;&lt;br /&gt;
sigma = 0.05;&lt;br /&gt;
T     = 2.0;&lt;br /&gt;
f0    = 20;&lt;br /&gt;
phi   = 0;&lt;br /&gt;
Fs    = 128.0;&lt;br /&gt;
NFFT  = floor(Fs);&lt;br /&gt;
time  = tf_czas(T, Fs);&lt;br /&gt;
 &lt;br /&gt;
for i=0:8&lt;br /&gt;
    subplot(3,3,i+1)&lt;br /&gt;
    sig1  = tf_gabor(t0, sigma, T, f0, phi, Fs); % sygnal&lt;br /&gt;
    sig2  = tf_gabor(t0+i*0.1, sigma, T, f0+2, phi, Fs);&lt;br /&gt;
        % sygnał przesunięty w częstości o 2 Hz i w czasie o i*0.1 s&lt;br /&gt;
    sig1_padded = [zeros(1,floor(NFFT/2)),sig1,zeros(1,floor(NFFT/2))];&lt;br /&gt;
    sig2_padded = [zeros(1,floor(NFFT/2)),sig2,zeros(1,floor(NFFT/2))];&lt;br /&gt;
    P=spectrogram(sig1_padded+sig2_padded,NFFT,NFFT-1,NFFT,Fs);&lt;br /&gt;
    pcolor(linspace(0,T,size(P,2)),linspace(0,Fs/2,size(P,1)),abs(P)); shading interp;&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wyrazy mieszane występują także w przypadku pojedynczej struktury dla sygnału rzeczywistego. &amp;amp;bdquo;Mieszające się&amp;amp;rdquo; obiekty to energia zlokalizowana w dodatniej i ujemnej części widma częstości. Efekt jest stosunkowo słaby i uwidacznia się dopiero na mapach czas-częstość logarytmu gęstości energii. Problem ten można obejść stosując transformację Hilberta, gdyż po tej transformacji cała energia skupiona jest w dodatniej części widma. Własność tę ilustruje poniższy program:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
from matplotlib.pyplot import specgram, plot, subplot, show, imshow&lt;br /&gt;
from tf import czas, gabor&lt;br /&gt;
from numpy import pi, log&lt;br /&gt;
from scipy.signal import hamming, hilbert&lt;br /&gt;
&lt;br /&gt;
# parametry&lt;br /&gt;
t0    = 0.5&lt;br /&gt;
sigma = 0.1&lt;br /&gt;
T     = 1.0&lt;br /&gt;
f     = 30&lt;br /&gt;
phi   = 0&lt;br /&gt;
Fs    = 256.0&lt;br /&gt;
&lt;br /&gt;
s = gabor(t0, sigma, T, f, phi, Fs) &lt;br /&gt;
t = czas(T, Fs)&lt;br /&gt;
&lt;br /&gt;
subplot(411)&lt;br /&gt;
plot(t,s)&lt;br /&gt;
&lt;br /&gt;
subplot(412)&lt;br /&gt;
h = hamming(32)&lt;br /&gt;
NFFT =len(h)&lt;br /&gt;
P,f,t,im1 = specgram(s,NFFT = len(h),Fs = Fs,window = h, noverlap = 31,sides = 'twosided') &lt;br /&gt;
imshow(P,aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
subplot(413)&lt;br /&gt;
imshow(log(P),aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
subplot(414)&lt;br /&gt;
s_ana = hilbert(s) # sygnał analityczny&lt;br /&gt;
P,f,t,im2 = specgram(s_ana,NFFT = len(h),Fs = Fs,window = h, noverlap = 31, sides = 'twosided') &lt;br /&gt;
imshow(log(P),aspect='auto',origin='lower',extent=(t[0]-(NFFT/2)/Fs,t[-1]-(NFFT/2)/Fs,f[0],f[-1]),interpolation='nearest')&lt;br /&gt;
&lt;br /&gt;
show()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang = matlab&amp;gt;&lt;br /&gt;
% parametry&lt;br /&gt;
t0    = 0.5;&lt;br /&gt;
sigma = 0.1;&lt;br /&gt;
T     = 1.0;&lt;br /&gt;
f     = 30;&lt;br /&gt;
phi   = 0;&lt;br /&gt;
Fs    = 256.0;&lt;br /&gt;
NFFT  = 32;&lt;br /&gt;
Fs2   = floor(Fs/2);&lt;br /&gt;
 &lt;br /&gt;
s = tf_gabor(t0, sigma, T, f, phi, Fs);&lt;br /&gt;
t = tf_czas(T, Fs);&lt;br /&gt;
f = linspace(-Fs2,Fs2,NFFT+1); f(end) = [];&lt;br /&gt;
 &lt;br /&gt;
subplot(4,1,1)&lt;br /&gt;
plot(t,s);&lt;br /&gt;
 &lt;br /&gt;
subplot(4,1,2)&lt;br /&gt;
P=spectrogram(s,NFFT,NFFT-1,f,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(f(1),f(end),size(P,1)),abs(P)); shading interp;&lt;br /&gt;
 &lt;br /&gt;
subplot(4,1,3)&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(f(1),f(end),size(P,1)),log(abs(P))); shading interp;&lt;br /&gt;
 &lt;br /&gt;
subplot(4,1,4)&lt;br /&gt;
s_ana = hilbert(s); % sygnał analityczny&lt;br /&gt;
P=spectrogram(s_ana,NFFT,NFFT-1,f,Fs);&lt;br /&gt;
pcolor(linspace(0,T,size(P,2)),linspace(f(1),f(end),size(P,1)),log(abs(P))); shading interp;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ćwiczenie:====&lt;br /&gt;
&lt;br /&gt;
* Proszę zbadać rozdzielczość czasową spektrogramu posługując się funkcją delta oraz rozdzielczość częstotliwościową posługując się funkcją sinus (Trzeba &amp;amp;bdquo;przeskanować&amp;amp;rdquo; czas funkcją delta, a częstości sinusem). Proszę wykonać to dla kilku długości okienek ''h''.&lt;br /&gt;
* Proszę zbadać rozdzielczość spektrogramu przy pomocy dwóch funkcji Gabora, dla różnych ich odległości w czasie i w częstości. Zaobserwować strukturę wyrazów mieszanych. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==Problem wyboru optymalnego estymatora gęstości energii w przestrzeni czas-częstość dla sygnałów EEG==&lt;br /&gt;
 &lt;br /&gt;
Dwa aspekty, które trzeba wziąć pod uwagę w praktyce analizy sygnałów EEG to:&lt;br /&gt;
* rozdzielczość czas-częstość oferowaną przez daną metodę;&lt;br /&gt;
* łatwość interpretacji wyników dla sygnałów złożonych z wielu, ''a priori'' nieznanych struktur &amp;amp;mdash; takim niezwykle złożonym sygnałem jest EEG.&lt;br /&gt;
&lt;br /&gt;
Jeśli chodzi o rozdzielczość czasowo-częstościową estymatorów gęstości energii sygnałów to wiadomo, że jest ona ograniczona przez zasadę nieoznaczoności Heisenberga w analizie sygnałów. &lt;br /&gt;
&lt;br /&gt;
Minimum iloczynu wariancji w dziedzinie czasu i wariancji w dziedzinie częstości, osiągane jest przez dystrybucję Wigner-Villa  dla sygnału będącego funkcją Gabora. &lt;br /&gt;
Dystrybucja Wigner-Villa jest formą kwadratową. W przypadku bardziej złożonych sygnałów własność ta prowadzi do powstawania wyrazów mieszanych, które utrudniają prawidłową interpretację wyników.  Dystrybucje wywodzące się z dystrybucji Wigner-Villa tworzą klasę dystrybucji Cohena. W klasie tych dystrybucji do tłumienia wyrazów mieszanych  stosowane jest jądro, będące efektywnie czasowo-częstościowym filtrem dolnoprzepustowym. Często stosowanym w czasowo-częstościowej analizie sygnałów reprezentantem klasy dystrybucji Cohena jest dystrybucja Choi-Williamsa, gdzie jądrem filtru jest dwuwymiarowa funkcja Gaussa. Odpowiedni dobór własności jądra umożliwia stłumienie niektórych wyrazów mieszanych --- metoda ta może być szczególnie efektywna jeśli znane są \emph{a priori} czasowo-częstościowe własności struktur obecnych w sygnale. Należy także pamiętać, że filtrowanie prowadzi do zmniejszenia rozdzielczości czas-częstość. &lt;br /&gt;
Alternatywą dla dystrybucji czas-częstość są metody oparte o liniowe reprezentacje czas-częstość takie jak krótkoczasowa transformata Fouriera (spektrogram) czy transformata falkowa (skalogram). W metodach tych sygnał analizowany jest przy pomocy funkcji zlokalizowanych w czasie i częstości. Zastosowanie funkcji zlokalizowanych częściowo zmniejsza problem wyrazów mieszanych, jednak ich rozdzielczość czas-częstość jest związana z rozciągłością czasowo-częstościową stosowanych funkcji. Metody te nie zapewniają dopasowania do struktur obecnych w sygnale.&lt;br /&gt;
&lt;br /&gt;
W pracy {\bf H1} zademonstrowano, że najbardziej optymalne dla analizy sygnałów EEG własności posiada metoda oparta o dekompozycję sygnału algorytmem Matching Pursuit (MP). Ten estymator gęstości energii konstruowany jest jako suma dystrybucji Wigner-Villa poszczególnych składowych wyodrębnionych z sygnału w trakcie dekompozycji. W sposób wynikający bezpośrednio z konstrukcji, estymator ten nie posiada wyrazów mieszanych oferując jednocześnie najwyższą możliwą rozdzielczość czasowo-częstościową. Kompromis pomiędzy rozdzielczością w czasie a rozdzielczością w częstości jest w każdej iteracji algorytmu MP optymalizowany ze względu na struktury występujące w sygnale.  W tym sensie metoda ta jest lokalnie adaptywną reprezentacją czas-częstość, w odróżnieniu od krótkoczasowej transformaty Fouriera czy transformat falkowych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Klasyczna technika pomiaru efektów ERD/ERS opisana w sekcji \ref{sect:ERDS_klasycznie} bazuje na uśrednianiu energii sygnałów przefiltrowanych w wybranym paśmie częstości. Wymaga ona wyboru \emph{reaktywnych} (dających największe zmiany mocy) pasm częstości. Pasm takich zwykle poszukiwano metodą prób i błędów. &lt;br /&gt;
Ze względu na dużą zmienność osobniczą pasm reaktywnych, znacznie lepszym podejściem, które umożliwia całościowe spojrzenie na efekty modyfikacji widma mocy sygnału EEG, jest analiza czasowo-częstościowa. Polega ona na estymowaniu gęstości energii w przestrzeni czas-częstość dla każdego powtórzenia osobno. Następnie dla każdej częstości, obliczana jest miara ERD/ERS, przy pomocy równania \eqref{eq:ERD_klasyczny}. W efekcie uzyskiwana jest mapa prezentująca zjawiska ERD/ERS w przestrzeni czas-częstość.&lt;br /&gt;
&lt;br /&gt;
Najczęściej stosowanymi do szacowania ERD/ERS estymatorami gęstości energii są: spektrogram \citep{Makeig_1993}, skalogram \citep{Tallon_1996}, dystrybucje klasy Cohena \citep{Lachaux_2000} lub filtrowanie pasmowe w zachodzących na siebie pasmach częstości \citep{Graimann_2002}. W sytuacjach gdy istotna jest wysoka rozdzielczość czasowo-częstościowa zaproponowana została metoda Matching Pursuit \citep{Durka_2001}. &lt;br /&gt;
Raportowane wyniki zależą w pewnym stopniu od własności sygnału, ale również w pewnym stopniu od zastosowanego estymatora i jego parametrów. &lt;br /&gt;
&lt;br /&gt;
Prace innych autorów zwykle skupiały się na zastosowaniach jednego konkretnego estymatora.  Nie dyskutowano w nich jaki wpływ na identyfikację efektów reakcji na bodziec ma wybór metody estymacji gęstości energii. Problem ten został zbadany w pracach {\bf H2} i {\bf H3}. Wszystkie badane estymatory zostały zastosowane do tych samych zestawów danych co umożliwiło praktyczne porównanie wpływu estymatora na czytelność i jednoznaczność wyników. W pracy {\bf H2} pokazano, że algorytm MP daje estymaty o wyższej rozdzielczości niż spektrogram,  niemniej w kontekście identyfikacji obszarów przestrzeni czas-częstość, w których przejawia się reakcja związana z bodźcem, wyniki otrzymane przy pomocy obu estymatorów są podobne i spójne. W pracy {\bf H3} zagadnienie badania optymalności estymatora zostało rozszerzone w dwóch aspektach. Do porównania włączono skalogram zaś porównanie metod przeprowadzono zarówno dla danych EEG jak i ECoG. &lt;br /&gt;
Wykazane zostało, że wszystkie wymienione powyżej metody estymacji gęstości energii w dziedzinie czas-częstość dają spójne wyniki. Wykazano, że estymator oparty o dekompozycję MP umożliwia badanie mikrostruktury zmian gęstości energii dzięki najwyższej rozdzielczości czas-częstość. Jednocześnie, dzięki lokalnie adaptywnemu kompromisowi pomiędzy rozdzielczością w czasie a rozdzielczością w częstości  daje on wyniki, w których eksponowana jest struktura sygnału  nie obarczona w sposób systematyczny własnościami rozdzielczości czasowo-częstościowej metody. W przypadku pozostałych metod, przy interpretacji otrzymanych map czas-częstość należy brać pod uwagę specyficzną dla danej metody strukturę wyrazów mieszanych i zależność pomiędzy rozdzielczością w czasie a rozdzielczością w częstości  (porównaj {\bf H3}, Rys.\,3). &lt;br /&gt;
&lt;br /&gt;
==Problem istotności statystycznej efektów ERD i ERS w przestrzeni czas-częstość==&lt;br /&gt;
W badaniach naukowych bardzo ważnym elementem jest ocena istotności statystycznej obserwowanych zjawisk. Dążeniem naszym jest aby identyfikowane zmiany mocy sygnału był efektem związanym z bodźcem, a nie jedynie artefaktem fluktuacji statystycznych. Problem prawidłowej oceny istotności statystycznej zmian w rozkładach gęstości energii w dziedzinie czas-częstość został opisany w serii dwóch artykułów {\bf H2} i {\bf H3}. Zaproponowane rozwiązanie opiera się na masowym zastosowaniu testów jednowymiarowych i korygowaniu wyników uwzględniając wielokrotność testowania.&lt;br /&gt;
Zbadano dwa zagadnienia:&lt;br /&gt;
\begin{itemize}&lt;br /&gt;
\item wybór statystyki&lt;br /&gt;
\item rodzaj korekty poziomu istotności testów ze względu na wielokrotność porównań. &lt;br /&gt;
\end{itemize}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wcześniejsze prace innych autorów nie wskazywały poprawnego metodologicznie rozwiązania zagadnienia wielokrotnych porównań, które stanowi tu główny problem. Przykładowo \citet{Makeig_1993} jako rozwiązanie problemu wielokrotnych porównań proponuje przyjęcie poziomu istotności pojedynczego testu jako 0.001. &lt;br /&gt;
W pracy \citet{Lachaux_2000} istotność wzrostu mocy była szacowana dla pojedynczego pasma częstości, problem wielokrotnych porównań był wspomniany, ale nie rozwiązany w przypadku porównywania aktywności wielu pasmach jednocześnie. W pracy \citep{Graimann_2002} szacowano istotność statystyczną w poszczególnych pasmach niezależnie, a następnie prezentowano mapę stworzoną z tych pasm nie korygując poziomów istotności. &lt;br /&gt;
&lt;br /&gt;
Przyczyny takiego stanu rzeczy można upatrywać w fakcie, że powszechnie stosowaną poprawką na poziom błędu I rodzaju ze względu na wielokrotność porównań jest poprawka Bonferroniego. &lt;br /&gt;
Poprawka ta daje prawidłową korektę poziomu istotności dla testów niezależnych. W przypadku testów skorelowanych poprawka ta jest zbyt konserwatywna. W analizie czasowo-częstościowej mamy do czynienia z bardzo dużą ilością testów, które są ze sobą skorelowane w \emph{a priori} nieznanym stopniu. Zastosowanie tu poprawki Bonferroniego prowadzi do testów skrajnie konserwatywnych. Jako rozwiązanie tego problemu w pracy {\bf H2} została zaproponowana rezygnacja z kontroli błędu I rodzaju na rzecz kontroli frakcji fałszywych odkryć (false discovery rate, FDR) \citep{FDR}. W kolejnych paragrafach omówione zostaną istotne elementy rozwiązań zaproponowanych w pracach {\bf H2} i {\bf H3}. &lt;br /&gt;
 &lt;br /&gt;
===Podział przestrzeni czas-częstość.===&lt;br /&gt;
 W pracy {\bf H2} stwierdzono, że aby móc wygodnie sformułować hipotezy i poddać je testom należy podzielić przestrzeń czas-częstość na elementy rozdzielczościowe (ang. resolution element---\emph{resel}). Iloczyn rozciągłości czasowej i częstościowej jest od dołu ograniczony przez zasadę nieoznaczoności. W praktyce, co zostało zbadane w pracy {\bf H2}, rozmiar resela musi być większy ze względu na wariancję estymatorów i wariancję danych pomiędzy realizacjami.&lt;br /&gt;
\paragraph{Hipotezy.}&lt;br /&gt;
Stosując opisany powyżej podział przestrzeni czas-częstość na resele można sformułować następującą rodzinę hipotez: dla każdego resela hipoteza zerowa stwierdza, że średnia energia rozważanego resela równa jest średniej energii reseli o tej samej częstości należących do okresu referencyjnego, hipoteza alternatywna stwierdza, że średnia energia w okresie referencyjnym i w rozważanym reselu są różne. Uśrednianie przebiega po realizacjach.&lt;br /&gt;
&lt;br /&gt;
===Wybór statystyki.===&lt;br /&gt;
W pracy {\bf H2} zademonstrowano, że rozkłady energii w reselach są zależne od zastosowanego estymatora gęstości energii, ale w większości przypadków są dalekie od rozkładów normalnych. Wykazano, że zastosowanie intensywnych obliczeniowo testów nieparametrycznych prowadzi do poprawnych i nieobciążonych wyników. Spośród dwóch zbadanych testów bardziej efektywnym okazał się test oparty na estymowaniu empirycznego rozkładu statystyki pseudo-t w okresie referencyjnym. &lt;br /&gt;
&lt;br /&gt;
W pracy {\bf H3} wykazano, że w wielu praktycznych przypadkach poprawne rezultaty można uzyskać stosując odpowiednio testy parametryczne. Pierwszym koniecznym krokiem jest normalizacja danych, czyli poddanie energii reseli takiej transformacji, że rozkład otrzymanych danych jest dobrze przybliżony rozkładem normalnym. Zaproponowano w tym celu zastosowanie transformacji Boxa-Coxa \citep{boxcox}.  Kolejną cechą rozważanych testów jest niejednorodność wariancji w okresie referencyjnym i pobodźcowym. Teoretycznym rozwiązaniem tego problemu jest test $t$ ze zmodyfikowaną ilością stopni swobody zgodnie z poprawką Welcha \citep{welch}. W pracy  {\bf H3} pokazano, że dla danych testowych zarówno EEG (Rys. 1) jak i ECoG (Rys. 2) standardowy test $t$ jak i test $t$ z poprawką Welcha daje wyniki niemal identyczne z testem nieparametrycznym zaproponowanym w {\bf H2}.  Zastosowanie testów parametrycznych znacząco redukuje złożoność obliczeniową problemu oceny istotności statystycznej zmian mocy sygnału w dziedzinie czas-częstość.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
===Problem wielokrotnych porównań.===&lt;br /&gt;
Ocena istotności statystycznej dla wszystkich analizowanych reseli w dziedzinie czas-częstość prowadzi w naturalny sposób do powstania problemu wielokrotnych porównań. Jak wspomniano we wstępie do tej sekcji, we wcześniejszych pracach dotyczących analizy odpowiedzi fazowo nie związanej z bodźcem w dziedzinie czas-częstość nie zaproponowano poprawnego rozwiązania problemu wielokrotnych porównań. W pracy {\bf H2} jako efektywne i ścisłe rozwiązanie problemu wielokrotnych porównań została zaproponowana metoda kontroli frakcji fałszywych odkryć \citep{FDR} (false discovery rate, FDR). Rozważono założenia i porównano wyniki otrzymywane dla klasycznej metody kontrolowania błędu I rodzaju dla problemu wielokrotnych porównań Bonferroniego-Holmsa z metodą opartą o kontrolę FDR.  &lt;br /&gt;
Aby praktycznie zilustrować efektywność i skuteczność metody kontroli błędów w oparciu o podejście FDR zaprojektowano i przeprowadzono eksperyment, w którym celowo wydłużono czas rejestracji sygnału EEG, tak aby zawierał on znaczący udział zapisu spoczynkowego, w którym \emph{a priori} nie powinny występować efekty związane z bodźcem.  Otrzymano poprawną kontrolę ilości fałszywych detekcji zachowując jednocześnie moc testów wystarczającą do potwierdzenia istotności znanych efektów ERD/ERS. Ilustracją tego wyniku są Rys. 4 i 5 z pracy  {\bf H2}. &lt;br /&gt;
Z przedstawionych w pracy  {\bf H2} wyników  wyciągnięto wniosek, że w przypadku wielokrotnych testów wykonywanych dla reseli w dziedzinie czas-częstość procedura Bonferroniego-Holmsa jest zbyt konserwatywna, natomiast procedura FDR zachowuje wystarczającą moc aby być w praktyce przydatną. &lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ciągła transformata falkowa i skalogram==&lt;br /&gt;
===Ciągłą transformata falkowa===&lt;br /&gt;
&lt;br /&gt;
====Definicja ====&lt;br /&gt;
Ciągła transformacja falkowa (ang. ''Continuous Wavelet Transform'', ''CWT'') dana jest wzorem:&lt;br /&gt;
: &amp;lt;math&amp;gt; P_x(t,a;\Psi)= \int_{-\infty}^{\infty}{x(s)\Psi^*_{t,a}(s) ds}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie&lt;br /&gt;
: &amp;lt;math&amp;gt; \Psi_{t,a}(s) = \frac{1}{\sqrt{|a|}} \Psi\left(\frac{s-t}{a}\right)&amp;lt;/math&amp;gt;&lt;br /&gt;
''a'' jest skalą. Od falki &amp;lt;math&amp;gt;\Psi&amp;lt;/math&amp;gt; wymagamy żeby miała średnią 0.&lt;br /&gt;
&lt;br /&gt;
Transformację tę można interpretować jako rzutowanie sygnału na kolejne wersje falki &amp;lt;math&amp;gt;\Psi&amp;lt;/math&amp;gt; przesunięte o ''t'' i przeskalowane o ''a''. &lt;br /&gt;
&lt;br /&gt;
Inne spojrzenie na transformację falkową uwidacznia się gdy połączymy dwa powyższe wzory:&lt;br /&gt;
: &amp;lt;math&amp;gt;P_x(t,a;\Psi)=  \frac{1}{\sqrt{|a|}}\int_{-\infty}^{\infty}{x(s) \Psi^*\left(\frac{s-t}{a}\right) ds} &amp;lt;/math&amp;gt;&lt;br /&gt;
Tu widać, że dla ustalonej skali ''a'' transformacja falkowa jest splotem sygnału z falką o skali ''a''. Ten sposób myślenia o transformacji falkowej umożliwia zastosowanie szybkiego algorytmu obliczeniowego bazującego na tym, że splot w dziedzinie czasu odpowiada mnożeniu w dziedzinie częstości.&lt;br /&gt;
&lt;br /&gt;
===Skalogram===&lt;br /&gt;
Podobnie jak dla STFT i spektrogramu, możemy dla CWT wprowadzić pojęcie skalogramu, będącego estymatą gęstości energii w przestrzeni czas-skala.&lt;br /&gt;
: &amp;lt;math&amp;gt;S_x(t,a;\Psi)=\left| P_x(t,a;\Psi)\right|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dla falek, które są dobrze skupione wokół częstości &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; dla skali &amp;lt;math&amp;gt;a_0=1&amp;lt;/math&amp;gt; można wprowadzić  utożsamienie &amp;lt;math&amp;gt;f=\frac{f_0}{a}&amp;lt;/math&amp;gt;.&lt;br /&gt;
Utożsamienie to pozwala przekształcić reprezentację czas-skala w reprezentację czas-częstość:&lt;br /&gt;
:&amp;lt;math&amp;gt;S_x(t,f;\Psi)=\left| P_x(t,f_0/f;\Psi)\right|^2&amp;lt;/math&amp;gt;&lt;br /&gt;
====Implementacja====&lt;br /&gt;
Przykładowa implementacja obliczania skalogramu dla falek Morleta przedstawiona jest poniżej. Korzysta ona z własności splotu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang =python&amp;gt;&lt;br /&gt;
def cwt(x, MinF,MaxF,Fs,w=7.0,df =1.0,plot = True):&lt;br /&gt;
    '''w - parametr falki Morleta,&lt;br /&gt;
      wiąże się z jej częstościa centralną i skalą w następujacy sposób:&lt;br /&gt;
      f = 2*a*w / T&lt;br /&gt;
      gdzie: a-skala,  T-długość sygnału w sek.'''&lt;br /&gt;
    T= len(x)/Fs&lt;br /&gt;
    M = len(x)&lt;br /&gt;
    t = np.arange(0,T,1./Fs)&lt;br /&gt;
    freqs = np.arange(MinF,MaxF,df)&lt;br /&gt;
    P = np.zeros((len(freqs),M))&lt;br /&gt;
    X = np.fft.fft(x) # transformacja sygnału do dziedziny czestosci&lt;br /&gt;
    for i,f in enumerate(freqs): # petla po kolejnych czestosciach&lt;br /&gt;
        a = T*f/(2*w)            # obliczenie skali dla danej czestosci&lt;br /&gt;
        psi = np.fft.fft(ss.morlet(M, w=w, s=a, complete=True)) # transformacja falki Morleta do dziedziny czestosci. W bardziej wydajnym kodzie moznaby zastosowac analityczna postac tej falki w dziedzinie czestosci. &lt;br /&gt;
        psi /= np.sqrt(np.sum(psi*psi.conj()))  # normalizacja energii falki  &lt;br /&gt;
        CWT = np.fft.fftshift(ss.ifft(X*psi))   &lt;br /&gt;
        P[i,:] = (CWT*CWT.conj()).real&lt;br /&gt;
    &lt;br /&gt;
    if plot:&lt;br /&gt;
        py.imshow(P,aspect='auto',origin='lower',extent=(0,T,MinF, MaxF))&lt;br /&gt;
        py.show()&lt;br /&gt;
    return P,f,t&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
'''Wersja w Matlabie'''&lt;br /&gt;
&amp;lt;source lang =matlab&amp;gt;&lt;br /&gt;
function [P,f,t]=tf_cwt(x,MinF,MaxF,Fs,varargin)&lt;br /&gt;
&lt;br /&gt;
w = 7;&lt;br /&gt;
df = 1;&lt;br /&gt;
doplot = true;&lt;br /&gt;
switch nargin&lt;br /&gt;
    case 0:3&lt;br /&gt;
        disp('tf_cwt - not enough input arguments');&lt;br /&gt;
        return&lt;br /&gt;
    case 4&lt;br /&gt;
&lt;br /&gt;
    case 5&lt;br /&gt;
        w=varargin{1};&lt;br /&gt;
    case 2&lt;br /&gt;
        w=varargin{1};&lt;br /&gt;
        df=varargin{2};&lt;br /&gt;
    otherwise&lt;br /&gt;
        w=varargin{1};&lt;br /&gt;
        df=varargin{2};&lt;br /&gt;
        doplot=varargin{3};&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
T = length(x)/Fs;&lt;br /&gt;
M = length(x);&lt;br /&gt;
t = 0:1/Fs:T; t(end) = [];&lt;br /&gt;
freqs = MinF:df:MaxF; freqs(end) = [];&lt;br /&gt;
P = zeros(length(freqs),M);&lt;br /&gt;
X = fft(x);&lt;br /&gt;
&lt;br /&gt;
for i=1:length(freqs)&lt;br /&gt;
    f = freqs(i);&lt;br /&gt;
    s = T*f/(2*w);&lt;br /&gt;
    psi = fft(tf_morlet(M,w,s,true));&lt;br /&gt;
    psi = psi./sqrt(sum(abs(psi).^2));&lt;br /&gt;
    tmp = fftshift(ifft(X.*psi));&lt;br /&gt;
    P(i,:) = abs(tmp).^2;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
if doplot&lt;br /&gt;
    pcolor(linspace(0,T,size(P,2)),linspace(MinF,MaxF,size(P,1)),P); shading interp;&lt;br /&gt;
end&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Matching pursuit===&lt;br /&gt;
&lt;br /&gt;
Dopasowanie kroczące (ang. ''matching pursuit'', MP) jest procedurą polegającą na rozłożeniu sygnału na funkcje składowe pochodzące z określonego zbioru funkcji (słownika). Słowniki wykorzystywane w metodach czas-częstość często składają się z funkcji Gabora tj. funkcji sinus modulowanej funkcją Gaussa. MP jest algorytmem iteracyjnym. W pierwszym kroku wybierana jest funkcja  dająca największy iloczyn skalarny z sygnałem. W każdym następnym kroku funkcja jest analogicznie dopasowywana do residuum sygnału, pozostałego po odjęciu wyniku poprzedniej iteracji.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[https://brain.fuw.edu.pl/~suffa/LabEEG/mp.tar.gz Moduł czas-częstość metodą MP]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wersja udostępniona powyżej wykorzystuje procedurę napisaną w C przez dr Stephane Mallata i dr Zhifeng Zhanga (1993), nazwaną &amp;lt;tt&amp;gt;mpp&amp;lt;/tt&amp;gt; (matching pursuit program), która została udostępniona wraz ze źródłową publikacją. W pakiecie dostępny jest kod źródłowy algorytmu MP napisany w C oraz procedury Matlaba do wywoływania algorytmu, rekonstrukcji sygnału i rysowania map energii w przestrzeni czas-częstość. Aby uruchomić program należy:&lt;br /&gt;
*Pobrać i rozpakować pakiet (np. w swoim domowym katalogu).&lt;br /&gt;
*Przeczytać instrukcje instalacji i uruchamiania w pliku &amp;lt;tt&amp;gt;readme.txt&amp;lt;/tt&amp;gt;.&lt;br /&gt;
*Skompilować program &amp;lt;tt&amp;gt;gabord.c&amp;lt;/tt&amp;gt; wykonując polecenia w konsoli:&lt;br /&gt;
**&amp;lt;tt&amp;gt;cd gabord-0.1&amp;lt;/tt&amp;gt;&lt;br /&gt;
**&amp;lt;tt&amp;gt;./configure&amp;lt;/tt&amp;gt;&lt;br /&gt;
**&amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
**plik wykonywalny powinien być zlokalizowany w katalogu &amp;lt;tt&amp;gt;src&amp;lt;/tt&amp;gt;, co sprawdzamy pisząc: &amp;lt;tt&amp;gt;ls src/gabord&amp;lt;/tt&amp;gt;&lt;br /&gt;
*Podać lokalizację (tzn. ścieżkę dostępu) pliku wykonywalnego &amp;lt;tt&amp;gt;gabord&amp;lt;/tt&amp;gt; w procedurze &amp;lt;tt&amp;gt;runGabor.m&amp;lt;/tt&amp;gt;, w linii 21.&lt;br /&gt;
*Do definicji ścieżek w Matlabie dołączyć katalog z pakietem MP.&lt;br /&gt;
*Uruchomić skrypt &amp;lt;tt&amp;gt;example.m&amp;lt;/tt&amp;gt; w celu przetestowania działania programu MP.&lt;br /&gt;
&lt;br /&gt;
Niedawno powstała inna implementacja MP, dostępna bezpośrednio w środowisku Matlab, jako plugin do EEGLAB. Program można pobrać ze strony [git.nimitz.pl/mp-eeglab-plugin.git/snapshot/18ad395338572078632297cd071ba5e925b7b22e.tar.gz], jednak wygodniejsze wydaje się bezpośrednie skopiowanie repozytorium. W tym celu należy:&lt;br /&gt;
*otworzyć terminal,&lt;br /&gt;
*przejść do folderu, gdzie zainstalowany został EEGLAB,&lt;br /&gt;
*odnaleźć katalog plugins i przejść do niego,&lt;br /&gt;
*wpisać komendę: git clone git://git.nimitz.pl/mp-eeglab-plugin.git.&lt;br /&gt;
&lt;br /&gt;
Po ponownym uruchomieniu EEGLABa, MP będzie dostępne w zakładce &amp;lt;i&amp;gt;tools&amp;lt;/i&amp;gt;. Wynik działania skryptu zapisywany jest do struktury BOOK. Przed wykonaniem kolejnych obliczeń, należy zapisać wyniki poprzednich. W przeciwnym razie zostaną one nadpisane. Do programu dołączone zostały stosowne narzędzia wizualizujące wyniki.&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenia===&lt;br /&gt;
==== Zadanie 1 ====&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* Ściągnąć pakiet plików Matlaba do analizy czas-częstość:&lt;br /&gt;
  https://brain.fuw.edu.pl/~suffa/LabEEG/TF.zip&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Zapoznać się z opisem metod czas-częstość, wykonując polecenia opisane przy każdej z metod.&lt;br /&gt;
* Zbadać własności metod czas-częstość, m.in.:&lt;br /&gt;
** Proszę przyjrzeć się definicjom transformaty falkowej i STFT i opowiedzieć o analogiach i różnicach.&lt;br /&gt;
** Proszę zbadać własności przesunięć w czasie i w częstości dla skalogramu w sposób analogiczny jak było to pokazane dla spektrogramu.&lt;br /&gt;
** Proszę zbadać strukturę wyrazów mieszanych w sposób analogiczny jak było to pokazane dla spektrogramu.&lt;br /&gt;
&lt;br /&gt;
==== Zadanie 2 ====&lt;br /&gt;
Zbadaj działanie algorytmu MP na samodzielnie wytworzonych sygnałach symulowanych:&lt;br /&gt;
* Trzech funkcjach Gabora o różnych częstościach, amplitudach i położeniach w czasie i o podobnej rozciągłości w czasie tak, aby zasadniczo nie nachodziły na siebie (patrz rysunek). Wykonaj dopasowanie dla trzech atomów, narysuj sygnał oryginalny i nałożony na niego sygnał zrekonstruowany z wyliczonych atomów, różnicę tych sygnałów (residuum) oraz mapę czas-częstość.&amp;lt;br&amp;gt;&lt;br /&gt;
[[Plik:eeglab_gabory3.png|300px|left]]&lt;br /&gt;
{{clear}}&lt;br /&gt;
* Dwóch jednakowych funkcji Gabora położonych w pewnej odległości od siebie w czasie. Zbadaj jakość dopasowania dokonując rekonstrukcji dwoma i trzema atomami na rysunkach podobnych jak w poprzedniej części zadania. Sprawdź co się dzieje przy zwiększaniu odległości w czasie pomiędzy tymi funkcjami Gabora.&lt;br /&gt;
[[Plik:eeglab_gabory2.png|300px|left]][[Plik:eeglab_gabory2_dalej.png|300px]]&amp;lt;br&amp;gt;&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Zadanie 3 ====&lt;br /&gt;
Sporządź mapy czas-częstość&amp;lt;br&amp;gt;&lt;br /&gt;
* kilku sygnałów zawierających artefakty;&lt;br /&gt;
* danych zawierających czynność alfa;&lt;br /&gt;
* sygnałów zawierających wzrokowe sygnały wywołane;&lt;br /&gt;
* sygnałów SSVEP.&lt;br /&gt;
Porównaj mapy uzyskane różnymi metodami: dekompozycją Wignera-Ville'a, spektrogramem, transformacją falkową i metodą MP. Wyróżnij struktury charakterystyczne dla poszczególnych rodzajów sygnałów.&lt;br /&gt;
&lt;br /&gt;
==== Zadanie 4 ====&lt;br /&gt;
Pobrać plik z danymi:&lt;br /&gt;
https://www.fuw.edu.pl/~suffa/LabEEG/Characterize_ch4_F50_G4.mat&lt;br /&gt;
&lt;br /&gt;
Opis danych:&lt;br /&gt;
dane zawierają zapisy z lokalnych potencjałów polowych (LFP) z kory czuciowej małpy podczas podawania bodźca wibracyjnego do palca.&lt;br /&gt;
Macierz zawiera 50 powtórzeń po 3 sekundy. Częstość próbkowania wynosi 5000 Hz. Bodziec podawany był pomiędzy 1 a 2 sekundą.&lt;br /&gt;
&lt;br /&gt;
[[Plik:MP_LFP_13_02.jpg|500px|thumb|right|&amp;lt;figure id=&amp;quot;fig:1&amp;quot;/&amp;gt; Analiza zapisów LFP z kory czuciowej małpy podczas podawania bodźca wibracyjnego do palca, o częstości 50 Hz. Mapa czas-częstość przedstawia względną gęstość energii (w skali dB) względem okresu referencyjnego 200-50 ms przed początkiem stymulacji. Dane opisane są w pracy: Supratim Ray, Steven S. Hsiao, Nathan E. Crone, Piotr J. Franaszczuk, and Ernst Niebur. Effect of Stimulus Intensity on the Spike&amp;amp;mdash;Local Field Potential Relationship in the Secondary Somatosensory Cortex. The Journal of Neuroscience, 2008, 28(29):7334-7343.]]&lt;br /&gt;
&lt;br /&gt;
Zadania do wykonania:&lt;br /&gt;
* Otrzymać mapy czas-częstość dla pojedynczych realizacji a następnie uśrednić je po realizacjach.&lt;br /&gt;
* Na średniej mapie poszukać występowania odpowiedzi w częstościach high-gamma (100-200 Hz).&lt;br /&gt;
* W przypadku braku widocznej odpowiedzi, rozważyć następujące operacje:&lt;br /&gt;
** usunąć częstości sieci (60 Hz i wyższe harmoniczne);&lt;br /&gt;
** zastosować logarytmiczną skalę energii;&lt;br /&gt;
** policzyć zmiany gęstości energii względem jej wartości w okresie referencyjnym.&lt;br /&gt;
&lt;br /&gt;
Mapa czas-częstość średniej gęstości energii otrzymaną metodą Matching Pursuit jest przedstawiona na &amp;lt;xr id=&amp;quot;fig:1&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Zadanie 5 ====&lt;br /&gt;
Wykonać analizę metodą MP dla danych z zadania 3.&lt;br /&gt;
&lt;br /&gt;
==Literatura==&lt;br /&gt;
S. Mallat and Z. Zhang (1993) Matching pursuit with time-frequency dictionaries. IEEE Transactions on Signal Processing, 41:3397-3415. &lt;br /&gt;
&lt;br /&gt;
Pinsky, Mark (2002), Introduction to Fourier Analysis and Wavelets, Brooks/Cole, ISBN 0-534-37660-6&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/AR_1&amp;diff=10815</id>
		<title>Pracownia EEG 2/AR 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/AR_1&amp;diff=10815"/>
		<updated>2024-09-24T07:51:14Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Utworzono nową stronę &amp;quot;Pracownia EEG 2 / Widmowa analiza parametryczna  ==Model autoregresyjny stochastycznego szeregu czasowego== ===Wstęp=== Do tej pory, aby zbadać wł...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Widmowa analiza parametryczna&lt;br /&gt;
&lt;br /&gt;
==Model autoregresyjny stochastycznego szeregu czasowego==&lt;br /&gt;
===Wstęp===&lt;br /&gt;
Do tej pory, aby zbadać własności widmowe sygnałów, używaliśmy transformacji Fouriera. Sygnał ''X''(''t'') z dziedziny czasu transformowaliśmy do dziedziny częstości ''X''(''f''):&lt;br /&gt;
&amp;lt;equation id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;X(f)=\mathcal{F}[X(t)]&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Następnie z  transformaty estymowaliśmy funkcję gęstości widmowej mocy danego sygnału zgodnie ze wzorem:&lt;br /&gt;
&amp;lt;equation id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math id=2&amp;gt;S(f)=X(f)X^*(f)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Możliwe jest jednak trochę inne podejście: załóżmy, że nasz sygnał jest ''realizacją procesu stochastycznego'' opisanego pewną, znaną nam zależnością. Typowym założeniem w dziedzinie analizy sygnałów EEG jest opisanie ich jako procesów ''autoregresyjnych'' (AR):&lt;br /&gt;
&amp;lt;equation id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;X(t)=\sum_{j=1}^{p}A(j)X(t-j)+E(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ze względu na charakter widma takiego procesu dobrze nadaje się on do opisu sygnałów składających się z kilku rytmów o częstościach zawierających się w pewnych zakresach oraz tła o charakterze szumu. EEG i wiele innych sygnałów biologicznych ma właśnie taką strukturę.&lt;br /&gt;
&lt;br /&gt;
Co to znaczy opisać sygnał modelem AR? Musimy dopasować tak współczynniki ''A'' ze wzoru (&amp;lt;xr id=&amp;quot;3&amp;quot;/&amp;gt;), czyli tzw. współczynniki modelu, aby realizowany za jego pomocą proces AR miał funkcję autokowariancji jak najbliższą do badanego sygnału. Jeśli się nam to uda, to wszystkie wnioski dotyczące badanego sygnału możemy wyciągać na podstawie analizy parametrów modelu, a nie wartości sygnału.&lt;br /&gt;
&lt;br /&gt;
===Parametryczna analiza widmowa===&lt;br /&gt;
Równanie opisujące proces AR transformujemy do przestrzeni częstości za pomocą transformacji Z — jest to uogólnienie transformacji Fouriera stosowane dla dyskretnych ciągów wartości. Skorzystamy tu z faktu, że transformacja Z ma (podobnie do transformacji Fouriera) własność transformowania splotu sygnałów w iloczyn ich transformat. Zauważmy, że jeśli przepiszemy równanie (&amp;lt;xr id=&amp;quot;3&amp;quot;/&amp;gt;) tak, aby włączyć ''X''(''t'') do sumowania (możemy to zrobić przyjmując ''A''(0) = 1 oraz zmieniając znak pozostałych współczynników), to po lewej stronie równania otrzymujemy splot ciągu współczynników ''A'' z ciągiem wartości ''X''. Tak więc po przetransformowaniu tego równania otrzymujemy iloczyn odpowiednich transformat:&lt;br /&gt;
&amp;lt;equation id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{lcl}&lt;br /&gt;
\displaystyle{\sum_{j=0}^{p}A(t)X(t-j) = E(t)}&amp;amp;&amp;amp;\\&lt;br /&gt;
\;\;\Downarrow\;\scriptstyle{\mathrm{transformacja\ Z}}\;\Downarrow&amp;amp;&amp;amp;\\&lt;br /&gt;
\\&lt;br /&gt;
A(z)X(z)=E(z) &amp;amp; \Rightarrow  &amp;amp;   X(z)=A^{-1}(z)E(z)=H(z)E(z)&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z dziedziny zmiennej ''z'' możemy przejść do dziedziny częstości podstawiając ''z'' = ''e''&amp;lt;sup&amp;gt;2&amp;amp;pi;''if''&amp;amp;Delta;''t''&amp;lt;/sup&amp;gt; (''f'' &amp;amp;mdash; częstość, &amp;amp;Delta;''t'' &amp;amp;mdash; odstęp czasu między kolejnymi próbkami sygnału):&lt;br /&gt;
&amp;lt;equation id=&amp;quot;5&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
X(f)=H(f)E(f)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funkcję ''H''(''f'') nazywamy macierzą przejścia modelu.&lt;br /&gt;
&lt;br /&gt;
Gęstość widmową mocy uzyskamy ze znanej już zależności (&amp;lt;xr id=&amp;quot;2&amp;quot;/&amp;gt;):&lt;br /&gt;
&amp;lt;equation id=&amp;quot;6&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
S(f)=X(f)X^*(f)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Opis własności sygnałów w języku modeli stochastycznych ma kilka zalet. Jedną z nich jest możliwość zastosowania w przypadku krótkich odcinków sygnału. Ale dla nas najważniejsza będzie łatwość modelowania sygnałów wielokanałowych przez jeden wielokanałowy model AR.&lt;br /&gt;
&lt;br /&gt;
===Wybór rzędu modelu===&lt;br /&gt;
Przyglądając się równaniu (&amp;lt;xr id=&amp;quot;3&amp;quot;/&amp;gt;) widzimy, że musimy również wiedzieć ''ile'' wcześniejszych próbek sygnału należy uwzględnić w naszych obliczeniach, czyli ustalić liczbę ''p''. Liczbę tę nazywamy ''rzędem modelu''. Wydawać by się mogło, że im więcej uwzględnimy poprzednich próbek, tym lepsze dopasowanie uzyskamy. Tak jednak nie jest. Ponieważ teoretyczne widmo procesu AR posiada maksima zależne od liczby użytych współczynników, modele o zbyt wysokich rzędach mają tendencję do generowania fałszywych maksimów w estymowanym widmie. Jeśli nie wiemy ilu składowych oczekujemy w naszym widmie, do oszacowania optymalnego rzędu modelu możemy zastosować jedno z kryteriów statystycznych, dostępnych w literaturze. Kryteria takie przeważnie mają dwie składowe: człon &amp;amp;bdquo;nagradzający&amp;amp;rdquo;  za coraz &amp;amp;bdquo;ściślejsze&amp;amp;rdquo; dopasowanie wraz z rosnącym rzędem modelu oraz człon &amp;amp;bdquo;karzący&amp;amp;rdquo; za nadmierny wzrost rzędu. Szukamy wtedy minimum funkcji kryterium policzonej dla pewnego zakresu rzędów i tak wybraną wartość stosujemy potem w obliczeniach.&lt;br /&gt;
&lt;br /&gt;
Jednym z popularnych kryteriów jest kryterium Akaikego (Hirotugu Akaike &amp;amp;mdash; matematyk japoński). Jest to funkcja:&lt;br /&gt;
&amp;lt;equation id=&amp;quot;7&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
\mathrm{AIC}(p)=\mathrm{ln}(\det({V}))+2\frac{pk^2}{N}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
gdzie:&amp;lt;br&amp;gt;&lt;br /&gt;
''N'' &amp;amp;mdash; liczba próbek w analizowanym sygnale, ''k'' &amp;amp;mdash; liczba kanałów.&lt;br /&gt;
&lt;br /&gt;
Logarytm wyznacznika macierzy wariancji szumów jest coraz bardziej ujemny, bo dopasowanie się polepsza i elementy macierzy ''V'' maleją. Funkcją kary jest tu 2''pk''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;/''N'' &amp;amp;mdash; funkcja liniowa rosnąca (od ''p''). Szukamy pierwszego istotnego minimum krzywej opisywanej tą funkcją. W praktyce analizy EEG najczęściej stosuje się rzędy w zakresie od 4 do 9. Poniższe rysunki ilustrują możliwe sytuacje:&lt;br /&gt;
&lt;br /&gt;
[[Plik:AIC_rys_1.png|thumb|center|800px|U góry: symulacja modelu autorgresyjnego:&lt;br /&gt;
''x''(''t'') = 0,5&amp;amp;middot;''x''(''t''&amp;amp;minus;1)  &amp;amp;minus; 0,75&amp;amp;middot;''x''(''t''&amp;amp;minus;2) + ''e''(''t'')&lt;br /&gt;
przy częstości próbkowania 100 Hz. Maksimum powinno być w 20 Hz.&lt;br /&gt;
&lt;br /&gt;
AIC daje prawidłowo minimum dla rzędu 2 i widmo jest zgodne z oczekiwanym.]]&lt;br /&gt;
&lt;br /&gt;
[[Plik:AIC_rys_2.png|thumb|center|800px|U góry: symulacja sygnału:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = cos(2&amp;amp;pi;&amp;amp;middot;20''t'')  + ''e''(''t'')&lt;br /&gt;
AIC nie daje jednoznacznego wyniku.&lt;br /&gt;
Wydaje się, że minimum istnieje dla rzędu 9.&lt;br /&gt;
Wybranie takiego rzędu powoduje wytworzenie maksimum nie tylko w 20 Hz ale i w 43 Hz. ]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sygnały wielokanałowe===&lt;br /&gt;
Sygnały wielokanałowe to zbiory danych, w których podczas jednej sesji zapisu zbieramy wartości wielu sygnałów w tych samych chwilach czasu. Zapisy EEG z wielu elektrod są oczywiście zapisami wielokanałowymi. Ważna jest tu ''jednoczesność'' rejestracji wielkości powiązanych ze sobą.&lt;br /&gt;
&lt;br /&gt;
Przykładem danych wielokanałowych jest zapis EEG z wielu elektrod.&lt;br /&gt;
&lt;br /&gt;
[[Plik:Czlowiek_badanie.gif|800px|thumb|center|Rejestracja EEG jako zapis wielokanałowy.]]&lt;br /&gt;
&lt;br /&gt;
W przypadku wielokanałowego modelu w wyżej wypisanych wzorach opisujących model AR musimy dokonać pewnych modyfikacji. Jeśli zbieramy jednocześnie ''k'' sygnałów (kanałów), to ''X''(''t'') jest w rzeczywistości wektorem ''k''-wierszowym [''X''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;(''t''), ''X''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(''t''),..., ''X&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(''t'')]&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;, współczynniki modelu są (każdy z nich) macierzami rozmiaru ''k''&amp;amp;times;''k''; wartości szumu są inne w każdym sygnale więc ''E''(''t'') jest również wektorem [''E''&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;(''t''), ''E''&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;(''t''),..., ''E&amp;lt;sub&amp;gt;k&amp;lt;/sub&amp;gt;''(''t'')]&amp;lt;sup&amp;gt;T&amp;lt;/sup&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Po zaaplikowaniu transformacji Z i przejściu do dziedziny częstości, każda z uzyskanych transformat jest również albo wektorem ''k''-wierszowym (''X''(''f''), ''E''(''f'')) albo macierzą ''k''&amp;amp;times;''k'' (''A''(''f''), ''H''(''f'')).&lt;br /&gt;
&lt;br /&gt;
Gęstość widmowa mocy jest w tym przypadku dana jako (znak &amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt; oznacza tu transpozycję macierzy połączoną ze sprzężeniem zespolonym jej elementów):&lt;br /&gt;
&amp;lt;equation id=&amp;quot;8&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
S(f)=X(f)X^+(f)=H(f)E(f)[H(f)E(f)]^+=H(f)E(f)E^+(f)H^+(f)=H(f)VH^+(f)&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skorzystaliśmy tu z wiadomości, że widmo procesu czysto losowego ''E''(''f'') jest funkcją stałą, a po wymnożeniu ''E''(''f'')''E''&amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;(''f'') dostajemy macierz wariancji szumów ''V'' (rozmiaru ''k''&amp;amp;times;''k''), niezależną od częstości.&lt;br /&gt;
&lt;br /&gt;
Z powyższego wzoru widać, że funkcja gęstości widmowej mocy jest macierzą rozmiaru ''k''&amp;amp;times;''k''. Jej diagonalne elementy zawierają tzw. widma własne (auto-widma) każdego z sygnałów składowych, a elementy pozadiagonalne widma wzajemne (kross-widma).&lt;br /&gt;
&lt;br /&gt;
Widzimy więc, że w przypadku analizy danych wielokanałowych mamy nie tylko wielkości opisujące każdy kanał osobno, ale również wielkości mówiące o informacji zawartej w zależnościach istniejących pomiędzy kanałami.&lt;br /&gt;
&lt;br /&gt;
Widmo wzajemne opisuje istnienie spójnej zależności między dwoma sygnałami dla danej częstości. Jego moduł mówi nam o tym jak silna jest ta zależność, a faza mówi o wzajemnym przesunięciu fazowym składowych o danej częstości w każdym z dwóch sygnałów. Jeśli oba sygnały zawierają daną częstość, ale faza wzajemna tych składowych zmienia się, to widmo wzajemne będzie mieć wartość niską.&lt;br /&gt;
Aby mieć wygodniejsze narzędzie porównawcze wprowadza się znormalizowaną wersję widma wzajemnego zwane koherencją (zwyczajną):&lt;br /&gt;
&amp;lt;equation id=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
K_{ij}(f)=\frac{S_{ij}(f)}{\sqrt{S_{ii}(f)S_{jj}(f)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moduł koherencji zawiera się w przedziale [0,1], co znacznie ułatwia porównywanie wyników.&lt;br /&gt;
&lt;br /&gt;
===Miary cząstkowe===&lt;br /&gt;
&lt;br /&gt;
W przypadku, gdy nasz zbiór danych składa się z dwóch kanałów, interpretacja koherencji jest w zasadzie jednoznaczna. Wydawać by się mogło, że jeśli będziemy ich używać do badania układów trzy- i więcej-kanałowych, to poza większą ilością obliczeń sytuacja ideowo nie będzie się różnić. Niestety, wraz ze wzrostem liczby kanałów sytuacja ulega zmianie.&lt;br /&gt;
&lt;br /&gt;
Już w sytuacji trzech kanałów możemy napotkać tzw. wspólne źródło: kanał będący źródłem sygnału, który pojawia się w pozostałych kanałach (jak ta sama audycja u dwóch słuchaczy radia w innych miastach). Wtedy wartości koherencji nawet pomiędzy kanałami-odbiorcami sygnału będą wskazywać na istnienie związku między nimi, chociaż kanały te mogą nie być w żaden inny sposób ze sobą związane.&lt;br /&gt;
&lt;br /&gt;
Aby móc łatwiej odróżnić taką sytuację dobrze byłoby umieć jakoś &amp;amp;bdquo;odjąć&amp;amp;rdquo; wpływ kanału-źródła na pozostałe. Czynność taka nazywa się w literaturze ''parcjalizacją'' względem danego kanału.&lt;br /&gt;
&lt;br /&gt;
W ogólności mamy do dyspozycji funkcję koherencji cząstkowej, która zachowuje się podobnie do koherencji zwyczajnej, ale pokazuje związek między kanałami po odjęciu wszystkich kombinacji liniowych pozostałych kanałów. Zdefiniowana jest ona następująco:&lt;br /&gt;
&amp;lt;equation id=&amp;quot;10&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
C_{ij}(f)=\frac{\mathrm{M}_{ij}(f)}{\sqrt{\mathrm{M}_{ii}(f)\mathrm{M}_{jj}(f)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We wzorze tym M&amp;lt;sub&amp;gt;''ij''&amp;lt;/sub&amp;gt; jest minorem macierzy widmowej ''S'', czyli wyznacznikiem macierzy ''S'' w której usunięto ''i''-ty wiersz i ''j''-tą kolumnę. Można tę definicję przekształcić do łatwiejszej do zastosowania postaci z użyciem elementów macierzy odwrotnej ''S''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;. Jeśli ''d&amp;lt;sub&amp;gt;ij&amp;lt;/sub&amp;gt;''(''f'') = [''S''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;]&amp;lt;sub&amp;gt;''ij''&amp;lt;/sub&amp;gt;(''f''), mamy:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;equation id=&amp;quot;11&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
C_{ij}(f)=(-1)^{i+j}\frac{d_{ji}(f)}{\sqrt{d_{ii}(f)d_{jj}(f)}}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tak więc miary cząstkowe muszą operować na więcej niż dwóch kanałach jednocześnie. Dzięki zastosowaniu wielokanałowego modelu AR założenie to jest spełnione i możemy w prosty sposób policzyć zarówno koherencje zwyczajne jak i cząstkowe dla dowolnej liczby kanałów w zestawie.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia==&lt;br /&gt;
&lt;br /&gt;
W tekście ćwiczeń używać będziemy następujących założeń: posiadamy ''k'' kanałów danych, używamy modelu AR rzędu ''p'', częstość próbkowania danych wynosi ''f&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;''. W każdym kanale zebrano ''N'' próbek danych.&lt;br /&gt;
&lt;br /&gt;
Aby ułatwić zapoznanie się z parametrycznymi metodami analizy widmowej, a nie rozpraszać uwagi na dopasowywanie współczynników modelu, przygotowana została biblioteka procedur (w języku Python) estymacji współczynników wielokanałowego modelu AR dla posiadanych danych. Aby jej użyć musimy napisać:&lt;br /&gt;
&amp;lt;tt&amp;gt;import mtmvar&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W zaimportowanym module mamy do dyspozycji funkcję &amp;lt;tt&amp;gt;mult_AR&amp;lt;/tt&amp;gt;, która oczekuje parametrów:&lt;br /&gt;
# macierzy danych o wymiarach (''k'', ''N'');&lt;br /&gt;
# wybranego rzędu modelu;&lt;br /&gt;
# numeru metody liczenia współczynników (aktualnie należy wybrać zawsze liczbę 1).&lt;br /&gt;
 &lt;br /&gt;
Funkcja zwraca krotkę zawierającą dwa obiekty:&lt;br /&gt;
# macierz policzonych współczynników, rozmiaru (''p'', ''k'', ''k'') &amp;amp;mdash; czyli ''p'' współczynników macierzowych rozmiaru ''k''&amp;amp;times;''k'';&lt;br /&gt;
# macierz wariancji szumów ''V'', rozmiaru (''k'', ''k'') &amp;amp;mdash; patrz równanie (&amp;lt;xr id=&amp;quot;8&amp;quot;/&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; macierz danych wejściowych musi mieć zawsze rozmiar (''k'',''N''), nawet jeśli ''k''=1 (możemy ją wtedy uzyskać z pojedynczego wektora &amp;lt;tt&amp;gt;dane&amp;lt;/tt&amp;gt; funkcją &amp;lt;tt&amp;gt;numpy.reshape(dane,(1,-1))&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
===Kilka słów o transformacji Z===&lt;br /&gt;
&lt;br /&gt;
Dla skończonego ciągu współczynników ''A''(0), ''A''(1), ..., ''A''(''p'') ich transformata Z może być obliczona następująco:&lt;br /&gt;
&amp;lt;equation id=&amp;quot;12&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
A(z)=A(0)+A(1)z^{-1}+A(2)z^{-2}+...+A(p)z^{-p}=\sum_{j=0}^{p}A(j)z^{-j}&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aby obliczyć wartość transformaty dla konkretnej częstości ''f'' musimy w powyższym wzorze dokonać podstawienia&lt;br /&gt;
&amp;lt;equation id=&amp;quot;13&amp;quot;&amp;gt;&amp;lt;math&amp;gt;&lt;br /&gt;
z=\exp(2\pi if \Delta t),&lt;br /&gt;
&amp;lt;/math&amp;gt;&amp;lt;/equation&amp;gt;&lt;br /&gt;
gdzie &amp;amp;Delta;''t'' = 1 / ''f&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Uwaga:&amp;lt;/b&amp;gt; procedura &amp;lt;tt&amp;gt;mult_AR&amp;lt;/tt&amp;gt; zwraca współczynniki od ''A''(1) do ''A''(''p'') jak dla równania (&amp;lt;xr id=&amp;quot;3&amp;quot;/&amp;gt;). Aby mieć zgodność z równaniem (&amp;lt;xr id=&amp;quot;4&amp;quot;/&amp;gt;) musimy założyć ''A''(0) = 1 oraz zmienić znak pozostałych współczynników na przeciwny.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
&lt;br /&gt;
Z danych EEG zebranych na zajęciach dotyczących EEG spoczynkowego wyodrębnij jeden kanał. Wytnij z niego sygnał o długości 1000 próbek. Przefiltruj wycięty sygnał filtrem górnoprzepustowym (np. Butterwortha) o częstości odcięcia 1 Hz.&lt;br /&gt;
&lt;br /&gt;
Oblicz współczynniki modelu AR dla wyciętego sygnału dla rzędów od 1 do 5. &lt;br /&gt;
&lt;br /&gt;
Napisz funkcję liczącą kryterium Akaikego dla posiadanych danych dla zakresu rzędów 1-20. Funkcja powinna działać dla dowolnej liczby kanałów. Następnie napisz procedurę rysującą policzone kryterium tak, aby można było ocenić wizualnie jego przebieg i wybrać optymalny rząd modelu AR.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
Napisz funkcję obliczającą macierze ''A''(''f'') i ''H''(''f'') z równań (&amp;lt;xr id=&amp;quot;4&amp;quot;/&amp;gt;) i (&amp;lt;xr id=&amp;quot;5&amp;quot;/&amp;gt;) dla wybranego zestawu częstości z zakresu ''f''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;-''f''&amp;lt;sub&amp;gt;max&amp;lt;/sub&amp;gt;. Wykorzystaj tutaj równanie (&amp;lt;xr id=&amp;quot;12&amp;quot;/&amp;gt;). Funkcja ma działać dla danych wielokanałowych (no i oczywiście jednokanałowych jako przypadek szczególny), tzn. jej argumentami powinny być: macierz zawierająca sygnał i rząd modelu.&lt;br /&gt;
&lt;br /&gt;
Stosując napisaną funkcję oraz równanie (&amp;lt;xr id=&amp;quot;8&amp;quot;/&amp;gt;) oblicz macierz gęstości widmowej mocy w zakresie częstości od 0 Hz do częstości Nyquista dla danych z poprzedniego ćwiczenia (z użyciem optymalnego rzędu modelu AR). Narysuj wykresy widm własnych i wzajemnych.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
&lt;br /&gt;
* Wygeneruj dwa sygnały sinusoidalne o długości 1000 próbek każdy, o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. &lt;br /&gt;
* Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4.&lt;br /&gt;
* Do drugiego z sygnałów dodaj małą (o amplitudzie ok 0,2 amplitudy sinusoidy) składową losową (czyli dodatkowy niezależny szum biały).&lt;br /&gt;
* Z tak otrzymanych sygnałów utwórz jeden sygnał dwukanałowy (macierz o rozmiarze &amp;lt;tt&amp;gt;(2,1000)&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Podobnie jak poprzednio, ustal optymalny rząd modelu AR (tym razem dwukanałowego) i oblicz macierz gęstości widmowej mocy. Oblicz koherencje między tymi sygnałami. Narysuj moduł i fazę koherencji ''C''&amp;lt;sub&amp;gt;12&amp;lt;/sub&amp;gt; i ''C''&amp;lt;sub&amp;gt;21&amp;lt;/sub&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zmień fazę początkową drugiego sygnału. Jak zmienia się funkcja koherencji?&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
&lt;br /&gt;
Wygeneruj układ trzech sygnałów w następujący sposób:&lt;br /&gt;
* jako pierwszego kanału użyj sygnału z [[Pracownia_EEG/AR_1#Ćwiczenie 3|ćwiczenia 3]];&lt;br /&gt;
* sygnał_w_drugim_kanale(''t'') = 0,4 * sygnał_z_pierwszego_kanału(''t''&amp;amp;minus;1) + szum1;&lt;br /&gt;
* sygnał_w_trzecim_kanale(''t'') = 0,3 * sygnał_z_pierwszego_kanału(''t''&amp;amp;minus;2) + szum2.&lt;br /&gt;
&lt;br /&gt;
Oblicz macierz koherencji zwyczajnych dla tego układu i na ich podstawie wyznacz zależności między kanałami. Powtórz to samo dla koherencji cząstkowych.&lt;br /&gt;
&lt;br /&gt;
Wygeneruj zestaw danych jak poprzednio używając w kanale 1 sygnału z ćwiczenia 1. Powtórz obliczenia i porównaj wyniki.&lt;br /&gt;
&lt;br /&gt;
Wyniki wszystkich obliczeń przedstaw na rysunkach.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 5===&lt;br /&gt;
&lt;br /&gt;
Z danych zawierających spoczynkowe EEG wytnij dwa fragmenty: zawierający i nie zawierający czynności alfa. Fragmenty powinny mieć cztery wybrane kanały danych (dwa z tyłu i dwa z przodu głowy, na przykład O1, O2, F3, F4) oraz długość ok. 500 próbek.&lt;br /&gt;
&lt;br /&gt;
Dopasuj czterokanałowe modele AR do wyciętych fragmentów danych. Oblicz macierze gęstości widmowej mocy, koherencji zwyczajnych i koherencji cząstkowych dla obu fragmentów. Narysuj wykresy otrzymanych funkcji.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10814</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10814"/>
		<updated>2024-09-24T07:50:55Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
=Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
&amp;lt;!--* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.--&amp;gt;&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10813</id>
		<title>Pracownia EEG 2/SSVEP 1</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/SSVEP_1&amp;diff=10813"/>
		<updated>2024-09-24T07:50:14Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: Utworzono nową stronę &amp;quot;Pracownia EEG / SSVEP  =Wstęp= ===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')=== Plik:ep_ssep.png|768...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG|Pracownia EEG]] / SSVEP&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
===Potencjały wywołane stanu ustalonego (ang. ''Steady State Evoked Potentials'', ''SSEP'')===&lt;br /&gt;
[[Plik:ep_ssep.png|768px|thumb|right|&amp;lt;figure id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Porównanie przebiegu bodźców stosowanych do rejestracji Potencjałów Wywołanych oraz Potencjałów Wywołanych Stanu ustalonego.]]&lt;br /&gt;
&lt;br /&gt;
Potencjały wywołane EEG, które mierzyliśmy na poprzednich zajęciach, są śladami reakcji mózgu na pewne specyficzne bodźce. Jak pamiętamy, były to podawane w pewnych odstępach czasu (zwykle około 1 s), krótkotrwałe (~20 ms) błyski światła. W trakcie bieżących zajęć będziemy kontynuowali pomiar czynności elektrycznej mózgu w trakcie oddziaływania na badanego pewnymi bodźcami, jednakże przebieg stymulacji zostanie zmieniony. W tym eksperymencie bodźcem będzie seria powtarzających się w sposób ściśle periodyczny błysków światła (&amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Bodźce o takim przebiegu mogą mieć również postać krótkotrwałych dźwięków (np. trzasków), czy też impulsów mechanicznych (np. rytmiczny nacisk na skórę). Ślad elektrycznej odpowiedzi mózgu na szybko powtarzające się bodźce nazywamy '''potencjałami wywołanymi stanu ustalonego''' (ang. ''Steady State Evoked Potentials'', ''SSEP''). W zależności od modalności bodźca (czyli zmysłu, który jest poddawany stymulacji) wyróżniamy:&lt;br /&gt;
* wzrokowe potencjały wywołane stanu ustalonego (ang. ''Steady State Visual Evoked Potentials'', ''SSVEP''), w przypadku gdy stymulacja odbywa się za pomocą fali świetlnej (Silberstein, 1995; Vialatte, 2010).&lt;br /&gt;
* słuchowe potencjały stanu ustalonego (ang. ''Auditory Steady State Evoked Response'', ''ASSR''), w przypadku gdy stymulacja odbywa się za pomocą fali dźwiękowej.&lt;br /&gt;
* czuciowe potencjały wywołane stanu ustalonego (ang. ''Steady-State Somatosensory Evoked Potentials'', ''SSSEP''), wywoływane przy pomocy bodźców mechanicznych.&lt;br /&gt;
W języku polskim brakuje zwrotów, za pomocą których można prawidłowo scharakteryzować niektóre parametry bodźców wywołujących odpowiedź SSEP. W związku z tym, na potrzeby niniejszych ćwiczeń zostanie wprowadzona następująca nomenklatura:&lt;br /&gt;
* składowa bodźca &amp;amp;mdash; przebieg bodźca w jednym okresie stymulacji, np. pojedynczy, krótkotrwały błysk światła, dźwięk lub impuls mechaniczny (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;),&lt;br /&gt;
* bodziec/stymulacja/pobudzenie &amp;amp;mdash; jest to ciąg o czasie trwania ''T'', złożony z kolejnych występujących po sobie składowych, powtarzających się co okres &amp;amp;tau; (patrz &amp;lt;xr id=&amp;quot;fig:ep_ssep&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;).&lt;br /&gt;
Charakterystyczną cechą zjawiska SSEP jest wzrost mocy sygnału EEG w częstości, z którą powtarzane są składowe bodźca. Np. jeśli błysk światła występuje co &amp;amp;tau;=100 ms, możemy oczekiwać wzrostu mocy elektrycznej aktywności mózgu dla częstości 10 Hz oraz niejednokrotnie dla jej harmonicznych. Moc sygnału ulega dodatkowemu zwiększeniu, jeśli badana osoba koncentruje silnie swoją uwagę na bodźcu. Cecha ta wykorzystywana jest m. in. do budowania tzw. interfejsów mózg komputer, czyli systemów, umożliwiających człowiekowi komunikację z komputerem bez pośrednictwa mięśni.&lt;br /&gt;
&lt;br /&gt;
===Modulacja===&lt;br /&gt;
Analizując od strony fizycznej przebieg bodźców wywołujących zjawisko SSEP możemy zauważyć, iż mamy do czynienia z [[wikipl:Modulacja|procesem modulacji sygnału]], czyli chwilową zmianą jego parametrów. Niezależnie od tego, który z tych parametrów ulega zmianie, w procesie modulacji wyróżniamy dwa podstawowe sygnały &amp;amp;mdash; sygnał nośny oraz sygnał modulujący [[http://en.wikipedia.org/wiki/Modulation]]. W technice radiowej czy telewizyjnej sygnałem nośnym są fale elektromagnetyczne. W przypadku wywoływania zjawiska SSVEP sygnałem nośnym też jest fala elektromagnetyczna, ale o długości z zakresu światła widzialnego. Z kolei zjawisko ASSR powstaje na skutek stymulacji, w której falą nośną jest fala dźwiękowa o częstości od kilkuset do kilku tysięcy Hz. Sygnał, który zmienia parametry fali nośnej nazywamy sygnałem modulującym. Przebieg sygnału modulującego może mieć różny charakter, jednakże najczęściej stosowane są sygnały o kształcie sinusoidalnym lub prostokątnym. W przypadku modulacji za pomocą sygnału sinusoidalnego zmianie może ulec amplituda, częstość lub faza sygnału nośnego. Mówimy wtedy odpowiednio o modulacji amplitudowej (ang. ''Amplitude Modulation'', ''AM''), częstościowej (ang. ''Frequency Modulation'', ''FM'') lub fazowej (ang. ''Phase Modulation'', ''PM''). Modulacja FM i PM nie jest stosowana do wywoływania zjawiska SSEP, natomiast modulację AM wykorzystuje się do pomiaru ASSR, w związku z czym zostanie opisana szerzej.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa sygnałem sinusoidalnym===&lt;br /&gt;
&lt;br /&gt;
Niech:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem nośnym o częstości &amp;amp;Omega; i amplitudzie ''A'', zaś &lt;br /&gt;
&amp;lt;math&amp;gt;y(t) = B \sin(\omega t+ \varphi)&amp;lt;/math&amp;gt;&lt;br /&gt;
będzie sygnałem modulującym o częstości &amp;amp;omega;, amplitudzie ''B'' i fazie początkowej &amp;amp;phi;. Sygnałem zmodulowanym amplitudowo nazywamy następujący sygnał:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \sin(\omega t + \varphi)\cdot \sin(\Omega t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Korzystając ze wzorów trygonometrycznych, powyższy wzór można zapisać w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;z(t) = A \sin(\Omega t) + B \frac{\cos((\Omega - \omega) t+\varphi)}{2} - B \frac{\cos((\Omega + \omega) t+\varphi)}{2}&amp;lt;/math&amp;gt;&lt;br /&gt;
Jak można zauważyć, energia sygnału zmodulowanego amplitudowo skupiona jest wokół trzech częstości:&lt;br /&gt;
* częstości nośnej &amp;lt;math&amp;gt;f_0=\Omega&amp;lt;/math&amp;gt;,&lt;br /&gt;
* częstości &amp;lt;math&amp;gt;f_1=\Omega - \omega&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2=\Omega + \omega&amp;lt;/math&amp;gt;.&lt;br /&gt;
Część widma sygnału zmodulowanego skupioną w częstościach &amp;lt;math&amp;gt;f_1&amp;lt;/math&amp;gt; i &amp;lt;math&amp;gt;f_2&amp;lt;/math&amp;gt;&lt;br /&gt;
nazywamy wstęgami bocznymi.&lt;br /&gt;
[[Plik:glebokosc_modulacji.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Maksymalna i minimalna amplituda sygnału zmodulowanego w systemie AM.]]&lt;br /&gt;
[[Plik:AM_signals.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Przebieg sygnału zmodulowanego w systemie AM w zależności od głębokości modulacji.]]&lt;br /&gt;
Modulację amplitudową można scharakteryzować za pomocą tzw. współczynnika głębokości modulacji, zdefiniowanego w następujący sposób (patrz &amp;lt;xr id=&amp;quot;fig:glebokosc_modulacji&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;):&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}}&amp;lt;/math&amp;gt;&lt;br /&gt;
Powyższy wzór można w prosty sposób przekształcić do następującej postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;m=\frac{A_{max}-A_{min}}{A_{max}+A_{min}} = \frac{B}{A}&amp;lt;/math&amp;gt;&lt;br /&gt;
Głębokość modulacji może osiągać dowolne wartości dodatnie, jednakże w praktyce współczynnik ten powinien zawierać się w granicy pomiędzy 0 a 1 (bądź od 0 do 100 %). W przypadku gdy głębokość modulacji osiąga wartość wyższą niż 1, sygnał zostaje zniekształcony (patrz &amp;lt;xr id=&amp;quot;fig:AM_signals&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;) i nie ma praktycznego wykorzystania.&lt;br /&gt;
&lt;br /&gt;
===Modulacja amplitudowa falą prostokątną===&lt;br /&gt;
[[Plik:modulacja_fala_prostokatna.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
A. Przykład sygnału zmodulowanego amplitudowo fala sinusoidalną. B. Przebieg sygnału zmodulowanego falą prostokątną. Kolor niebieski &amp;amp;mdash; fala nośna, kolor czerwony &amp;amp;mdash; fala modulująca.]]&lt;br /&gt;
[[Plik:wypelnienie.png|600px|thumb|right|&amp;lt;figure id=&amp;quot;fig:wypelnienie&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Współczynnik wypełnienia fali prostokątnej jest stosunkiem czasu trwania impulsu &amp;amp;tau; do okresu jego powtarzania ''T''.]]&lt;br /&gt;
W przypadku wywoływania zjawiska SSEP stosuje się bodźce, w których fala nośna (światło) zostaje zmodulowany sygnałem prostokątnym. Porównanie modulacji amplitudowej sygnałem o przebiegu sinusoidalnym i sygnałem o przebiegu prostokątnym zaprezentowano na rysunku &lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;.&lt;br /&gt;
W przypadku modulacji falą prostokątną rozważamy następujące parametry:&lt;br /&gt;
* częstość modulacji, która równa jest odwrotności okresu powtarzania się impulsu prostokątnego (na &amp;lt;xr id=&amp;quot;fig:modulacja_fala_prostokatna&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; okres ten jest równy ''T''),&lt;br /&gt;
* amplitudę modulacji,&lt;br /&gt;
* wypełnienie fali, które zdefiniowane jest w następujący sposób:&lt;br /&gt;
&amp;lt;math&amp;gt; d = \frac{\tau}{T}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Fizjologia zjawisk SSEP i SSVEP=&lt;br /&gt;
&lt;br /&gt;
==SSEP==&lt;br /&gt;
Potencjały Wywołane Stanu Ustalonego to typ odpowiedzi mózgu na bodziec powtarzany ze stałą częstotliwością. Efektem takiej stymulacji jest pojawienie się w określonych obszarach kory mózgowej częstotliwości korespondującej z częstotliwością podawanego bodźca.&lt;br /&gt;
&lt;br /&gt;
Stawianych jest kilka hipotez, z których trzy starają się tłumaczyć najbardziej podstawowy mechanizm pojawiania się tego zjawiska w mózgu: &lt;br /&gt;
* Pierwsza z nich mówi, iż powtarzany z określoną częstością bodziec wywołuje każdorazowo odpowiedź, a ich ciąg znajduje odbicie w rejestrowanym sygnale EEG (Lachowska, 2009; Rance, 2008). Zakłada się tutaj, iż do powstania odpowiedzi konieczne są niższe piętra przetwarzania informacji oraz brak specyficznego obszaru kory lub sieci neuronalnej odpowiedzialnej za obróbkę tego typu bodźców. Argumentów potwierdzających dostarczają tutaj badania na zwierzętach, gdzie rejestrowano SSEP z poszczególnych pięter układu nerwowego (Yoris, 1992; za: Rance, 2008). Słabe strony tej hipotezy ujawniają badania neuroobrazownia, w których rejestruje się aktywność w rejonach niezwiązanych z przetwarzaniem pojedynczego impulsu danej modalności (Pastor, 2003; Reyes, 2004). Sugeruje to, iż istnieje obszar lub sieć neuronów odpowiedzialna za przetwarzanie tego typu bodźca i jest ona aktywowana wraz z rejonami kory, których zadaniem jest odbiór i interpretacja danych dostarczanych przez poszczególne zmysły. &lt;br /&gt;
* Druga z tych hipotez mówi, iż w trakcie stymulacji dochodzi do synchronizacji odpalania potencjałów czynnościowych przez neurony, co przejawia się zwiększeniem siły odpowiedzi w danej częstotliwości na tle aktywności spontanicznej mózgu (Moratti, 2007). &lt;br /&gt;
* Trzecia hipoteza zakłada, że obserwowany w sygnale potencjał jest związany ze wzrostem amplitudy odpowiedzi aktywowanych neuronów (Nikulin, 2007; za: Vialatte, 2010).&lt;br /&gt;
&lt;br /&gt;
Żadne ze wspomnianych badań nie zostało przeprowadzone z myślą o pokazaniu&lt;br /&gt;
genezy indukowania potencjału SSEP, lecz dotyczyły wybranych bodźców i zagadnień&lt;br /&gt;
związanych z ich charakterystyką odpowiedzi. Na podstawie zebranych dotychczas danych trudno orzec o słuszności którejś z wyżej wymienionych hipotez.&lt;br /&gt;
&lt;br /&gt;
==SSVEP==&lt;br /&gt;
&lt;br /&gt;
Wzrokowe Potencjały Wywołane Stanu Ustalonego (SSVEP) powstają pod wpływem stymulacji bodźcem świetlnym powtarzanym ze stałą częstością. W trakcie stymulacji w sygnale EEG obserwowany jest wzrost mocy w częstościach związanych z częstością pulsującego światła. Charakterystyczne dla potencjałów SSVEP jest występowanie zarówno częstości podstawowej &amp;amp;mdash; analogicznej jak częstość stymulatora &amp;amp;mdash; jak i pierwszej i drugiej harmonicznej oraz subharmonicznych (Hermann, 2001; Pastor, 2003; Vialatte, 2008). W pracy (Regan, 1989; za: Silberstein, 1995) wyróżniono szereg komponentów, które są charakterystyczne dla SSVEP. W zależności od częstości stymulacji zaobserwowana została zmienność w kształcie oraz latencji charakterystycznych załamków SSVEP. Dla częstości wysokich od 25 do 60 Hz &amp;amp;mdash; charakterystyczna składowa fali pojawia się do 30 do 60 ms po bodźcu i odznacza się małą zmiennością międzyosobniczą. Wcześniejsze załamki (ok. 10 ms) są obserwowane, ich latencja wydaje się być zależna od wieku osoby. Przedział częstości niskich od 15 do 25 Hz &amp;amp;mdash; odznacza się obecnością swoistego komponentu od około 85 do 120 ms po bodźcu. W tym przypadku wariancja wewnątrz grupy jest większa w porównaniu do częstości wysokich. Najtrudniej trafnie wyodrębnić charakterystyczne składowe dla odpowiedzi na niskie częstotliwości stymulatora. Latencja w tym przypadku waha się od 135 do 350 ms. &lt;br /&gt;
&lt;br /&gt;
===Przestrzenna lokalizacja generatorów SSVEP.=== &lt;br /&gt;
Pomimo, iż powstanie SSVEP jest nierozerwalnie związane z okolicami wzrokowymi kory mózgowej (Bianciardi, 2009; Pastor, 2003; Silberstein, 1995), jego występowanie mapuje się również w innych rejonach mózgu. Wytyczenie obszarów odpowiedzialnych za generowanie potencjału zostało podjęte przy pomocy różnych metod mierzących aktywność mózgu. Oprócz EEG wykorzystano PET (Pastor, 2003), MEG (Fewcett, 2004; za: Vialatte, 2010) i fMRI (Bayram, 2011; Bianciardi, 2009; Parkes, 2003). Wyniki tych badań nie dają jednoznacznej odpowiedzi na stawiane pytanie, ale można na ich podstawie wskazać na kilka struktur, których aktywność wydaje się być znacząca i każdorazowo rejestrowana. Głównym obszarem generującym oscylujący potencjał jest pierwszorzędowa kora wzrokowa V1. Jej aktywacja zaznacza się w momencie stymulacji bodźcami świetlnymi bez względu na przedział częstotliwości i ich parametry. Różne badania donoszą natomiast o dodatkowych obszarach mających swój udział w generowaniu odpowiedzi mózgowej na pulsujący bodziec (V5, (Fawcett, 2004; za: Vialatte, 2010) kora czołowa i skroniowa, V2 (Sriniviasan, 2006, 2007; za: Vialatte, 2010). Badanie wykonane za pomocą PET (Pastor, 2003) przybliżyło szczegóły rozkładu aktywacji ośrodków korowych podczas generowania SSVEP. Oprócz zlokalizowania jego występowania w obszarach płatów potylicznych, skroniowych oraz ciemieniowych, dzięki użyciu różnych znaczników nakreślone zostały granice aktywności kory w zależności od częstotliwości stymulatora. Dla niskich częstotliwości (w badaniu reprezentowanych przez 5Hz) obserwuje się aktywność w polach Brodmanna (BA) 17 i 18 oraz w lewej półkuli móżdżku, dla częstości średnich pobudzony był obszar pierwszorzędowej kory wzrokowej oraz kory asocjacyjnej (BA 17 i 18). Nieco odmienne rezultaty otrzymano dla częstości 40 Hz, która pobudzała tylną część V1 oraz korę asocjacyjną prawej półkuli. Taki rozkład aktywacji przy wyżej&lt;br /&gt;
wymienionych częstościach może być związany z funkcjonalny podziałem V1 &amp;amp;mdash; obszar przedni pobudzany przez niskie i średnie częstości (&amp;lt;30 Hz) jest odpowiedzialny za widzenie peryferyjne, wtedy pobudzona była dość duża powierzchnia kory. 40 Hz aktywuje natomiast rejony odpowiedzialne za widzenie centralne, stąd mały, ograniczony do wybranych kolumn, obszar pobudzenia. Rejony, którym przypisane zostało generowanie SSVEP, nie ograniczały się do okolic wzrokowych. Oprócz okolicy V1 wymieniany jest również obszar V5, odpowiedzialny za detekcje ruchu, mający bezpośrednie połączenia z V1, inne okolice wzrokowe oraz kora czołowa. Niskoczęstotliwościowe SSVEP zauważano również na poziomie struktur śródmózgowia &amp;amp;mdash; w ciele kolankowatym bocznym, co zaowocowało hipotezą o podkorowej proweniencji takich potencjałów.&lt;br /&gt;
&lt;br /&gt;
Tak zróżnicowany obraz aktywności wywoływanych przez różne częstości SSVEP może wynikać z różnych funkcjonalnych i anatomicznych właściwości poszczególnych regionów. W układzie wzrokowym człowieka rozpoznane zostały 3 odmienne drogi przetwarzania informacji odpowiadającej tej modalności (Chatterjee, 2003; za: Vialatte, 2010; Gazzaniga, 2004; za: Vialatte, 2010). Każda z nich związana jest z innym typem czopków: odpowiadającymi na krótkie, średnie o długie fale. Droga ''Parvocellular'' (PC) mająca swój początek w ''midget retinal ganglion cells'' (RGCs) przetwarza informację o kolorze, kształcie oraz przestrzennym kontraście. Jest wyczulona szczególnie na przenoszenie informacji o kolorze czerwonym i zielonym, która jest przekazywana z czopków L i M (''long-'' i ''mediumwave''). Z kolei droga ''Magnocellular'' (MC), będąca dużo szybszym kanałem, bierze swój początek w ''parasol retinal ganglion cells''. Odpowiada ona za dostarczenie informacji o ruchu i głębi. Również korzysta z informacji z czopków M i L. Ostatnio odkryto trzeci z kanałów &amp;amp;mdash; drogę ''Koniocellular'' (KC) zaczynającą się w ''bistratisfied retina ganglion cells'', odpowiadający za percepcję kolorów błękitnego oraz żółtego. Niektórzy badacze wysuwają hipotezę, że wyłącznie tan kanał dostarcza informacji o kolorach, podczas gdy kanał PC odpowiada za dobrą rozdzielczość percepowanej informacji (Foxe, 2008; za: Vialatte, 2010; Chatterjee, 2003; za: Vialatte, 2010). Droga MC tworzy tzw. kanał brzuszny obróbki informacji a szlak KC i PC &amp;amp;mdash; kanały grzbietowe. Na pytanie o zależność pomiędzy rodzajem kanału a SSVEP żaden z badaczy nie udzielił wyczerpującej odpowiedzi. Podejrzewa się, iż w zależności od miejsca generowania SSVEP siła odpowiedzi będzie zależna od wyglądu bodźca. Możliwe, iż obszary kanału grzbietowego będą odznaczały się predylekcją do bodźców jednobarwnych, niejaskrawych, o dość dużych rozmiarach oraz migających z wysoką częstotliwością. Drogi KC i PC natomiast będą generować mocne SSVEP, jeżeli będą pobudzane przez kolorowe kontrastowe bodźce o małych rozmiarach w niskiej częstości. Odmienną hipotezę zaproponował McKeefry (McKeefry, 1996, za: Vialatte, 2010), który skojarzył drogi obróbki informacji z rodzajem komórek. W ten sposób upatruje on powstawanie pierwszej harmonicznej dzięki aktywności komórek tonicznych i drogi PC, a drugiej harmonicznej &amp;amp;mdash; dzięki komórkom fazowym i szlakowi MC. W świetle tych hipotez należałoby się spodziewać, iż siła odpowiedzi będzie zależeć od wyglądu stosowanego bodźca, lokalizacji rejestracji sygnału na głowie oraz częstości.&lt;br /&gt;
&lt;br /&gt;
=Ćwiczenia eksperymentalne=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Do rejestracji zjawiska SSVEP wykorzystamy ten sam zestaw eksperymentalny co w przypadku badania Potencjałów Wywołanych. Poniżej przypominamy schemat komunikacji w języku Python pomiędzy komputerem a mikrokontrolerem sterującym wyświetlaniem bodźców. Czcionką pogrubioną wyszczególniono fragment kodu, który jest niezbędny do wytworzenia szybko powtarzających się bodźców świetlnych.&lt;br /&gt;
* Po podłączeniu przejściówki USB/RS232 do komputera mikrokontrolera sprawdź jaki plik w katalogu &amp;lt;tt&amp;gt;/dev&amp;lt;/tt&amp;gt; został utworzony i przydzielony do urządzenia (typowo może to być &amp;lt;tt&amp;gt;ttyUSB0&amp;lt;/tt&amp;gt;). &lt;br /&gt;
* poproś osobę prowadzącą aby dodała cię do grupy plugdev&lt;br /&gt;
 sudo usermod -a -G dialout userName&lt;br /&gt;
* Zaimportuj bibliotekę do komunikacji z mikrokontrolerem (kod poniżej, trzeba go zapisać w bieżącym katalogu): &lt;br /&gt;
: &amp;lt;tt&amp;gt;import SerialPort as SP&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Otwórz plik powiązany z urządzeniem zewnętrznym:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp = SP.SerialPort(nazwa_pliku) &amp;lt;/tt&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.open()&amp;lt;/tt&amp;gt;&lt;br /&gt;
gdzie przykładowa nazwa pliku wynosi &amp;lt;tt&amp;gt;/dev/ttyUSB0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* Po włączeniu zasilania mikrokontrolera, diody podłączone do niego i wykorzystywane w eksperymencie z potencjałami wywołanymi będą zapalone. Następujące polecenie zgasi obydwie diody:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([0, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
* Wydanie poniższego polecenia spowoduje, iż mikrokontroler będzie generował sygnał prostokątny zapalający i gaszący podłączoną do niego diodę numer 1, z częstością ''f'' Hz i współczynnikiem  wypełnieniem równym  &amp;lt;math&amp;gt;\frac{x}{x+y}&amp;lt;/math&amp;gt;, zaś dioda numer 2 pozostanie zgaszona:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([f, 0],x,y)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
Jednocześnie, moment pojawienia się każdej składowej bodźca (każdego impulsu świetlnego) zostanie przesłany na na 5-stykowe wejście AUX mikrokontrolera. Przykładowo jeśli chcemy aby dioda migała z częstością 10 Hz i współczynnikiem wypełnienia 0,5 wydajemy następujące polecenie:&lt;br /&gt;
: &amp;lt;tt&amp;gt;'''sp.blinkSSVEP([10, 0],1,1)'''&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Jeśli chcemy zakończyć komunikację z mikrokontrolerem piszemy:&lt;br /&gt;
: &amp;lt;tt&amp;gt;sp.close()&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kod biblioteki do komunikacji z mikrokontrolerem:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return a.to_bytes(2,byteorder=sys.byteorder)&lt;br /&gt;
 &lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException as e:&lt;br /&gt;
            print(&amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;)&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
 &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
 &lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
 &lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
 &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
 &lt;br /&gt;
        str = (3).to_bytes(1,byteorder=sys.byteorder) # 'SSVEP_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = int(clock/d[i])&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
 &lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = (4).to_bytes(1,byteorder=sys.byteorder) # 'P300_RUN'&lt;br /&gt;
 &lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
 &lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# -*- coding: cp1250 -*-&lt;br /&gt;
import serial&lt;br /&gt;
import logging&lt;br /&gt;
import sys&lt;br /&gt;
import os&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def to_hex_word(a):&lt;br /&gt;
    '''encodes a decimal number hexadecimally on two bytes'''&lt;br /&gt;
    return chr(a%256) + chr(a/256)&lt;br /&gt;
&lt;br /&gt;
class SerialPort(object):&lt;br /&gt;
    def __init__(self, port_name):&lt;br /&gt;
        import serial&lt;br /&gt;
        try:&lt;br /&gt;
            self.port = serial.Serial(&lt;br /&gt;
                port=port_name,&lt;br /&gt;
                baudrate=9600,&lt;br /&gt;
                bytesize=serial.EIGHTBITS,&lt;br /&gt;
                parity=serial.PARITY_NONE,&lt;br /&gt;
                stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
                xonxoff=False&lt;br /&gt;
                )&lt;br /&gt;
        except serial.SerialException, e:&lt;br /&gt;
            print &amp;quot;Nieprawidłowa nazwa portu lub port zajęty.&amp;quot;&lt;br /&gt;
            raise e&lt;br /&gt;
        self.close()&lt;br /&gt;
        &lt;br /&gt;
    def open(self):&lt;br /&gt;
        self.port.open()&lt;br /&gt;
&lt;br /&gt;
    def close(self):&lt;br /&gt;
        self.port.close()&lt;br /&gt;
&lt;br /&gt;
    def send(self, value):&lt;br /&gt;
        self.port.write(value)&lt;br /&gt;
                           &lt;br /&gt;
    def blinkSSVEP(self,d, p1, p2):&lt;br /&gt;
        '''&lt;br /&gt;
        d = list of frequencies;&lt;br /&gt;
        p1:p2 = ratio LED_on_time/LED_off_time&lt;br /&gt;
        if you want i-th LED to be OFF all the time send  d[i] = 0&lt;br /&gt;
        if you want i-th LED to be ON all the time send  d[i] = -1&lt;br /&gt;
        in these two cases p1 and p2 do not matter&lt;br /&gt;
        '''&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        factor = float(p1) / float(p1 + p2)&lt;br /&gt;
    &lt;br /&gt;
        str = chr(3) # 'SSVEP_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            # i-th LED OFF&lt;br /&gt;
            if d[i] == 0:                       &lt;br /&gt;
                str += to_hex_word(0) + to_hex_word(255) &lt;br /&gt;
            # i-th LED ON&lt;br /&gt;
            elif d[i] == -1:&lt;br /&gt;
                str += to_hex_word(255) + to_hex_word(0)&lt;br /&gt;
                #str = 'S'&lt;br /&gt;
                # i-th LED blinks d[i] times per second&lt;br /&gt;
                # p1:p2 = on_time:off_time in one blink&lt;br /&gt;
            else:&lt;br /&gt;
                period = clock/d[i]&lt;br /&gt;
                bright = int((clock/d[i]) * factor)&lt;br /&gt;
                dark = period - bright&lt;br /&gt;
                str += to_hex_word(bright) + to_hex_word(dark)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
&lt;br /&gt;
    def blinkP300(self,d):&lt;br /&gt;
        clock  = 62500&lt;br /&gt;
        str = chr(4) # 'P300_RUN'&lt;br /&gt;
&lt;br /&gt;
        for i in range(len(d)):&lt;br /&gt;
            period = int(clock*d[i]/1000.0)&lt;br /&gt;
            str += to_hex_word(period)&lt;br /&gt;
            print(period)&lt;br /&gt;
&lt;br /&gt;
        self.send(str)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenie I: Wykreślenie krzywej odpowiedzi dla badanej osoby.==&lt;br /&gt;
W ogólności siła odpowiedź SSVEP maleje wraz ze wzrostem częstości, jednak każda osoba ma indywidualne preferencje co do częstości, z którymi powinien migać bodziec. Celem eksperymentu jest znalezienie zbioru częstości, dla których badana osoba reaguje najsilniej. Aby przeprowadzić eksperyment, wykonaj następujące kroki:&lt;br /&gt;
===Przygotowanie programu do sterowania eksperymentem===&lt;br /&gt;
Napisz program komputerowy, który będzie:&lt;br /&gt;
# wybierał losowo z jednakowym prawdopodobieństwem częstość ze zbioru częstości {4, 7, 10, 13, 16, 20, 25, 30, 35, 40} Hz&lt;br /&gt;
# uruchamiał miganie jednej diody podłączonej do zestawu eksperymentalnego z częstościami wybraną częstością  na czas 5 sek (wypełnienie 50%). Po 5-sekundowym okresie migania, powinna się pojawić przerwa o losowym czasie trwania od 3 do 7 sekund. Momenty pojawiania się poszczególnych częstości rejestruj w pliku. Będzie to potrzebne w dalszej części ćwiczenia do powiązania triggera z częstością stymulacji. &lt;br /&gt;
# Powtórz punkty 1-2, tak aby uzyskać 15 realizacji migania z każdą z częstości.&lt;br /&gt;
&lt;br /&gt;
Zarejestrowana liczba realizacji jednej częstości powinna wynosić minimum 30.  Zrealizowanie tego w jednej sesji zajęłoby około 50 minut. Jest to uciążliwe dla osoby badanej, dlatego dzielimy eksperyment na dwie sesje po 20 minut &amp;amp;mdash; powtarzamy punkt 3 dwukrotnie.&lt;br /&gt;
&lt;br /&gt;
===Wykonanie pomiarów===&lt;br /&gt;
# Nałóż czepek na głowę badanej osoby i umieść w nim następujące elektrody: Fp1, Fp2, Fpz, Cz, P3, Pz, P4, O1, O2 oraz jeśli twój czepek to umożliwia również elektrody P7 i P8. Jako elektrody referencyjne załóż elektrody A1, A2 lub M1 i M2. Częstość próbkowania: 1024 Hz.&lt;br /&gt;
# Wykonaj eksperyment zgodnie ze schematem podanym w poprzednim paragrafie.&lt;br /&gt;
&lt;br /&gt;
===Analiza danych===&lt;br /&gt;
# Przefiltruj sygnały EEG w paśmie 1-45 Hz za pomocą procedury &amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;. &lt;br /&gt;
# Na podstawie sygnału trigger oraz danych zapisanych w pliku wyodrębnij sygnały EEG zarejestrowane w trakcie stymulacji z odpowiednimi częstościami.&lt;br /&gt;
# Przeanalizuj dane na trzy sposoby:&lt;br /&gt;
#* Sposób I:&lt;br /&gt;
#**Dla każdej realizacji wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe sygnału EEG. &lt;br /&gt;
#**Widma odpowiadające tej samej częstości stymulacji uśrednij ze sobą. &lt;br /&gt;
#**Zaprezentuj widma otrzymane przy stymulacjach różnymi częstościami.&lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP (amplitudę widma odpowiadającą częstości stymulacji) wraz z 95% przedziałem ufności dla średniej. Można to zrobić np. metodą bootstrap. Dla każdej częstości stymulacji wyznacz także poziom tła na podstawie widm pochodzących ze stymulacji innymi częstościami. Np. dla stymulacji częstością 10 Hz poziom tła można wyznaczyć jako 95 centyl ze zbioru wartości widma w częstości 10 Hz dla stymulacji częstościami {4, 7, 13, 16, 20, 25, 30, 35, 40} Hz. &lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości z zaznaczeniem przedziałów ufności i poziomu tła. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób II:&lt;br /&gt;
#**Uśrednij sygnały odpowiadające stymulacji tą samą częstością. &lt;br /&gt;
#**Obejrzyj uśrednione sygnały. (Zaprezentuj je).&lt;br /&gt;
#**Wyestymuj przy pomocy transformaty Fouriera widmo amplitudowe średniego sygnału EEG. &lt;br /&gt;
#**Dla każdej częstości stymulacji wyznacz miarę odpowiedzi SSVEP  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#* Sposób III:&lt;br /&gt;
#**Dla każdego powtórzenia o danej częstości oblicz transformatę Fouriera&lt;br /&gt;
#**Uśrednij zespolone transformaty&lt;br /&gt;
#**Wyestymuj widmo amplitudowe z uśrednionej transformaty Fouriera (oblicz jej moduł),  wraz z 95% przedziałem ufności dla średniej. Dla każdej częstości stymulacji wyznacz także poziom tła.&lt;br /&gt;
#**Sporządź wykres odpowiedzi SSVEP  od częstości. Znajdź częstości, dla których odpowiedź ta była najsilniejsza.&lt;br /&gt;
#*Porównaj opisane powyżej trzy metody. Przy porównaniu uwzględnij:&lt;br /&gt;
#**Średnie widma przy stymulacji określoną częstością.&lt;br /&gt;
#**Uzyskane krzywe odpowiedzi SSVEP i wyestymowane przedziały ufności.&lt;br /&gt;
#**Odstęp między poziomem odpowiedzi a poziomem tła.&lt;br /&gt;
#*Czy można wyciągnąć jakieś wnioski na temat związku między fazą bodźca a fazą odpowiedzi?&lt;br /&gt;
&lt;br /&gt;
= Ćwiczenie dla chętnych=&lt;br /&gt;
Proszę zaimplementować funkcję generujacą znaczniki (tagi) dla programu SVAROG. Tagi te powinny wskazywać momenty rozpoczęcia błyskania diody z określoną częstością. Następnie proszę uśrednić sygnały, korzystając z narzędzia do uśredniania potencjałów w SVAROGU (zakładka Tools-&amp;gt;Average evoked potentials), względem tak wskazanych momentów czasu. &lt;br /&gt;
&lt;br /&gt;
Aby wytworzyć tagi dla SVAROGA z poziomu pythona, można wzorować się na następującym kodzie:&lt;br /&gt;
&amp;lt;source lang=python&amp;gt;&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
# Author:&lt;br /&gt;
#     Mateusz Kruszyński &amp;lt;mateusz.kruszynski@titanis.pl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer as tags_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tag_utils&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    writer = tags_writer.TagsFileWriter('./nic.obci.tag')&lt;br /&gt;
    for i in range(5):&lt;br /&gt;
        tag = tag_utils.pack_tag_to_dict(float(i), float(i)+0.1, 'tekst', {})&lt;br /&gt;
        writer.tag_received(tag)&lt;br /&gt;
    writer.finish_saving(0.0)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gdzie:&lt;br /&gt;
*writer - obiekt, który będzie zapisywał tagi do pliku zdefiniowanego w nim (w tym przykładzie &amp;quot;nic.obci.tag&amp;quot;), &lt;br /&gt;
*tag_utils.pack_tag_to_dict - to tworzy tag, pierwsza liczba to poczatek druga koniec tagu, pozniej jest tekst do taga i dodatkowe opcje, które można sprawdzić w helpie,&lt;br /&gt;
*writer.tag_received(tag) - to przekazuje taga do writera, &lt;br /&gt;
*writer.finish_saving - kończy operacje zapisywania jako argument podany jest czas pierwszej próbki&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Koncepcja drgania uogólnionego. Transformata Hilberta=&lt;br /&gt;
==Wstęp==&lt;br /&gt;
Sygnałem najczęściej występującym w przyrodzie oraz najczęściej stosowanym w technice jest sygnał harmoniczny o postaci:&lt;br /&gt;
&lt;br /&gt;
''x''(''t'') = ''A''sin(&amp;amp;omega;''t''+&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;),&amp;lt;br&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A'' &amp;amp;mdash; amplituda sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;omega; &amp;amp;mdash; częstość sygnału,&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;phi;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; &amp;amp;mdash; faza początkowa sygnału.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Okazuje się, że istnieje szeroka klasa sygnałów rzeczywistych, które można przedstawić w postaci tzw. &lt;br /&gt;
drgania uogólnionego:&lt;br /&gt;
''x''(''t'') = ''A''(''t'')sin(&amp;amp;Omega;(''t'') &amp;amp;middot; ''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
''t'' &amp;amp;mdash; chwila czasu &amp;lt;br&amp;gt;&lt;br /&gt;
''A''(''t'') &amp;amp;mdash; amplituda chwilowa sygnału ''x''(''t'') (jego obwiednia),&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;amp;Omega;(''t'') &amp;amp;mdash; częstość chwilowa sygnału ''x''(''t''),&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do klasy sygnałów, które mogą być reprezentowane w postaci drgania uogólnionego, należą m.in. wszystkie sygnały o ograniczonej energii i ograniczonej mocy średniej przedziałami ciągłe i bez składowej stałej (tzw. sygnały przestrzeni ''L''&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;).&lt;br /&gt;
W celu przedstawienia sygnału ''x''(''t'') jako drgania uogólnionego należy wpierw wyznaczyć jego ''sygnał analityczny'' ''z''(''t''), który zdefiniowany jest w następujący sposób:&lt;br /&gt;
&lt;br /&gt;
''z''(''t'') = ''x''(''t'') + ''ix''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'')&lt;br /&gt;
&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;i=\sqrt{-1}&amp;lt;/math&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') &amp;amp;mdash; transformata Hilberta sygnału ''x''(''t'').&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Transformatę Hilberta ''x''&amp;lt;sub&amp;gt;H&amp;lt;/sub&amp;gt;(''t'') sygnału ''x''(''t'') i transformatę do niej odwrotną definiujemy jak poniżej:&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x_H(t) = \frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
x(t) = -\frac{1}{\pi}\int_{-\infty}^{\infty} \frac{x_H(\tau)}{t - \tau}d\tau&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 '''Uwaga praktyczna:''' &lt;br /&gt;
 do wyznaczania sygnału analitycznego korzysta się z jego następującej własności:&lt;br /&gt;
 Widmo sygnału analitycznego odpowiadającego sygnałowi rzeczywistemu jest zerowe &lt;br /&gt;
 dla ujemnych częstości, zaś dla dodatnich częstości ma podwojoną amplitudę:&lt;br /&gt;
 ''x''&amp;lt;sub&amp;gt;''a''&amp;lt;/sub&amp;gt; = ''F''&amp;lt;sup&amp;gt;&amp;amp;minus;1&amp;lt;/sup&amp;gt;(''F''(''x'')&amp;amp;middot;2''U'')&lt;br /&gt;
 gdzie ''F'' &amp;amp;mdash; transformacja Fouriera, a ''U'' funkcja schodkowa.&lt;br /&gt;
 Metoda ta zaimplementowana jest w funkcji &amp;lt;tt&amp;gt;scipy.signal.hilbert&amp;lt;/tt&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Jak można zauważyć, sygnał analityczny jest funkcją zespoloną, w związku z czym można go przedstawić w postaci:&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
z(t) = \left|z(t)\right|e^{i\varphi(t)}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie (patrz równanie (3)):&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
\left|z(t)\right| = \sqrt{x^2(t) + x^2_H(t)} \\&lt;br /&gt;
\\&lt;br /&gt;
\varphi(t) = \mathrm{arc\,tg}(\frac{x_H(t)}{x(t)})&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wielkości te służą do wyznaczania chwilowej fazy &amp;amp;phi; (wzór powyżej), chwilowej amplitudy ''A'' (obwiedni) oraz chwilowej częstości &amp;amp;Omega; sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;&lt;br /&gt;
\begin{array}{l}&lt;br /&gt;
A(t)=\left|z(t)\right| \\&lt;br /&gt;
\\&lt;br /&gt;
\Omega(t) = \frac{d\varphi(t)}{dt}&lt;br /&gt;
\end{array}&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
co umożliwia przedstawienie sygnału ''x''(''t'') w postaci drgania uogólnionego:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A(t) \sin(\Omega(t)\cdot t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Porównując powyższy wzór ze wzorem na funkcję harmoniczną:&lt;br /&gt;
&amp;lt;math&amp;gt;x(t) = A \sin(\omega_0 t + \varphi_0)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
widzimy, że sygnały nieharmoniczne charakteryzują się zmienną w czasie amplitudą i częstością oraz nie mają określonej fazy początkowej. Ten ostatni parametr jednak również może być wyznaczony, pod warunkiem iż określimy go względem pewnej stałej w czasie częstości &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;(''t''):&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie: &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi_0(t)&amp;lt;/math&amp;gt; &amp;amp;mdash; faza chwilowa sygnału &amp;lt;math&amp;gt;x(t)&amp;lt;/math&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Faza chwilowa jest zatem zdefiniowana jednoznacznie, ale tylko względem określonej częstości &amp;lt;math&amp;gt;\omega_0&amp;lt;/math&amp;gt;. W przypadku gdy analizujemy sygnały szerokopasmowe, wyznaczenie fazy chwilowej jest możliwe po przefiltrowaniu sygnału filtrem pasmowo-przepustowym.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia symulacyjne==&lt;br /&gt;
Proszę zaimplementować funkcje generujące następujące przebiegi czasowe (oznaczenia: ''F&amp;lt;sub&amp;gt;s&amp;lt;/sub&amp;gt;'' &amp;amp;mdash; częstość próbkowania, ''T'' &amp;amp;mdash; czas trwania w sekundach, [[%C4%86wiczenia_1#Sygna.C5.82y_testowe|analogicznie do tego]]):&lt;br /&gt;
* sinusoida o zadanej częstości ''f'' i fazie &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;: &amp;lt;tt&amp;gt;y = sin(f, phi, Fs, T)&amp;lt;/tt&amp;gt;,&lt;br /&gt;
* funkcja Gabora o zadanym położeniu szerokości i częstości &amp;lt;tt&amp;gt;y = gabor(t0, sigma, omega, Fs, T)&amp;lt;/tt&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;g_1(t) = \exp\left(-\frac{(t-t_0)^2}{2 \sigma^2}\right)\cdot \cos\left(\omega(t-t_0) \right)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
* Wygeneruj 2-sekundowy odcinek sygnału Gabora o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 16 Hz, skali 0,1 s i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału Gabora.&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 2===&lt;br /&gt;
&amp;lt;!--* Wygeneruj 2-sekundowy odcinek sygnału  o pozycji w czasie ''t''&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; = 1 s, częstości 20 Hz, skali 0,1 s.--&amp;gt;&lt;br /&gt;
* Wyznacz i narysuj amplitudę chwilową sygnału sinusoidalnego, o częstości 16 Hz i częstości próbkowania 128 Hz.&lt;br /&gt;
* Wyznacz i narysuj fazę chwilową sygnału sinusoidalnego, korzystając ze związku:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\varphi(t)=\omega_0\cdot t + \varphi_0(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 3===&lt;br /&gt;
Wygeneruj dwa sygnały sinusoidalne o tej samej częstości 32 Hz i częstości próbkowania 128 Hz, ale różnych fazach początkowych. Pierwszy sygnał powinien mieć fazę początkową równą 0, drugi sygnał sinusoidalny powinien mieć fazę początkową równą &amp;amp;pi;/4. Za pomocą transformaty Hilberta wyznacz różnicę faz symulowanych sygnałów.&lt;br /&gt;
===Ćwiczenie 4===&lt;br /&gt;
To ćwiczenie jest ku przestrodze. &lt;br /&gt;
Wytwórz sygnał będący sumą dwóch sinusoid: jednej o częstości 30 i drugiej o częstości  32 Hz. Wykreśl przebieg sygnału i jego amplitudy chwilowej.&lt;br /&gt;
&lt;br /&gt;
==Ćwiczenia na danych pomiarowych==&lt;br /&gt;
&lt;br /&gt;
===Ćwiczenie 1===&lt;br /&gt;
W zebranych sygnałach SSVEP wybierz zapisy dla trzech różnych częstości stymulacji (po jednym dla każdej częstości). Do analizy wybierz trzy kanały EEG, dla których sygnał SSVEP jest a) bardzo wyraźny; b) widoczny, ale słabszy; c) w zasadzie niewidoczny. Do analizy wybierz fragmenty od 2 sekund przed rozpoczęciem stymulacji do 2 sekund po jej zakończeniu.&lt;br /&gt;
&lt;br /&gt;
Dla każdej wybranej częstości stymulacji wybrane kanały EEG przefiltruj filtrem wąskopasmowym przepuszczającym częstości skupione wokół tej częstości stymulacji. Do przefiltrowanych sygnałów zastosuj transformację Hilberta, wyznacz amplitudę i częstość chwilową. Wyznacz fazę chwilową dla &amp;amp;omega;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; równej częstości stymulacji. Wypróbuj dwa sposoby filtrowania: &amp;amp;bdquo;w jedną stronę&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt;) i &amp;amp;bdquo;w obie strony&amp;amp;rdquo; (&amp;lt;tt&amp;gt;filtfilt&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Wyrysuj przefiltrowane sygnały wraz z wyliczoną amplitudą chwilową. Do rysunku dodaj wykres sygnału triggera aby widać było początek i koniec stymulacji. Narysuj też wykres zależności częstości chwilowej i fazy chwilowej od czasu.&lt;br /&gt;
&lt;br /&gt;
=Bibliografia=&lt;br /&gt;
# Silberstein, R. (1995). Steady-state visually evoked potentials, brain resonances, and cognitive processes. W: Nunez, P. (red.), Neocortical Dynamics and Human EEG Rhythms (272-303). Oxford University Press, Oxford.&lt;br /&gt;
# Vialatte, F., Maurice, M., Dauwels, J. i Cichocki, A. (2010). Steady- state visually evoked  potentials: Focus on essential paradigms and future perspectives. Progress in Neurobiology, 90, 418-438.&lt;br /&gt;
# Lachowska, M., Morawski, K., Delgado, R. i Niemczyk, K. (2009). Postępy w audiologii. Słuchowe potencjały wywołane stanu ustalonego. Otorynolaryngologia, 8(1), 1-7.&lt;br /&gt;
# Rance, G. (red.) (2008). The Auditory Steady-State Response: Generation, Recording and Clinical Application. Plural Publishing, San Diego.&lt;br /&gt;
# Scherer, R., Muller-Putz, G. i Pfurtscheller, G. (2009). Flexibility and practicality: Graz Brain-Computer Interface approach. Internationl Review of Neurobiology, 86.&lt;br /&gt;
# Pastor, M., Artieda, J., Arbizu,J., Valencia, M. i Masdeu, J. (2003). Human cerebral activation during steady-state visual-evoked responses. Journal of Neuroscience, 23(37), 621-627.&lt;br /&gt;
# Moratti, S., Clementz, B., Gao, Y., Ortiz, T. i Keil, A. (2007). Neural mechanisms of evoked oscillations: stability and interaction with transient events. Human Brain Mapping, 28(12), 1318-1333.&lt;br /&gt;
# [http://durka.name/papers/OpenBCI_and_BCI_Appliance.pdf Artykuł o BCI Appliance z prostą funkcją detekcji SSVEP] P. J. Durka, R. Kuś, J. Ż̇ygierewicz, M. Michalska, P. Milanowski, M. Łabę̨cki, T. Spustek, D. Laszuk, A. Duszyk, M. Kruszyński. User-centered design of brain-computer interfaces: OpenBCI.pl and BCI Appliance. Bulletin of the Polish Academy of Sciences, vol. 60, No 3, september 2012, pp. 427-433&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
	<entry>
		<id>http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10812</id>
		<title>Pracownia EEG 2/Potencjały wywołane</title>
		<link rel="alternate" type="text/html" href="http://brain.fuw.edu.pl/edu/index.php?title=Pracownia_EEG_2/Potencja%C5%82y_wywo%C5%82ane&amp;diff=10812"/>
		<updated>2024-09-24T07:49:43Z</updated>

		<summary type="html">&lt;p&gt;AnnADuszyk: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Pracownia EEG 2|Pracownia EEG 2]] / Potencjały wywołane&lt;br /&gt;
&lt;br /&gt;
=Wstęp=&lt;br /&gt;
==Potencjały wywołane==&lt;br /&gt;
=== Wstęp ===&lt;br /&gt;
Potencjały wywołane EEG (ang. ''evoked potentials'', EP) są śladami odpowiedzi mózgu na bodźce. W przypadku MEG poprawnie mówi się o polach wywołanych (ang. ''evoked fields'', EF).&lt;br /&gt;
Zwykle reakcja ta jest mała (wyjątek stanowią [[Elektroencefalografia/Metody_analizy_sygnałów_EEG_-_analiza_w_dziedzinie_czasu |kompleksy K]]) i w zapisie pojedynczej realizacji reakcji na bodziec najczęściej niewidoczna wśród czynności pochodzącej od wielu innych procesów zachodzących w tym samym czasie w mózgu. &lt;br /&gt;
Ich wyodrębnienie z tak zwanego tła EEG/MEG, czyli manifestacji elektrycznej innych, trwających w tym samym czasie w mózgu procesów (aktywny prąd niezależny), wymaga w dniu dzisiejszym zapisu odpowiedzi na szereg powtórzeń tego samego bodźca (&amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt;). Pierwsze potencjały wywołane pokazał pod koniec lat 40-tych Dawson (Dawson, 1947) wykonując superpozycję pojedynczych realizacji na kliszy fotograficznej.&lt;br /&gt;
Z czasem skomplikowane urządzenia analogowe zastąpione zostały przez cyfrowe uśrednianie kolejnych fragmentów EEG, zsynchronizowanych według momentu wystąpienia bodźca, łatwo realizowane za pomocą komputera.&lt;br /&gt;
&lt;br /&gt;
[[Grafika:EP.png|thumb|640px|center|&amp;lt;figure id=&amp;quot;fig:EP&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Uśrednianie potencjałów wywołanych. a) ciągły zapis EEG z wyróżnionymi momentami wystąpienia bodźca (w tym przypadku słuchowego) b) kilkadziesiąt kolejnych odcinków, wyciętych jako sekunda EEG od momentu wystąpienia kolejnych bodźców, ustawione jeden pod drugim c) uśredniony potencjał wywołany &amp;amp;mdash; widać m. in. załamek P300 ok. 300 milisekund po bodźcu]]&lt;br /&gt;
&lt;br /&gt;
Techniki te opierają się na założeniu, że zawarta w EEG odpowiedź mózgu na każdy z kolejnych bodźców jest niezmienna, a EEG odzwierciedlające pozostałe procesy traktowane jest jak nieskorelowany z nią proces stochastyczny. Zależnie od rodzaju potencjałów wywołanych, założenia te są mniej lub bardziej nieuzasadnione; podważa je choćby powszechnie znany efekt habituacji, polegający na osłabieniu późnych potencjałów wywołanych kolejnymi powtórzeniami bodźca.&lt;br /&gt;
&lt;br /&gt;
Istota potencjałów wywołanych jest przedmiotem otwartej dyskusji i dziesiątków prac, dotykających od lat podstawowych w tej dziedzinie pytań: czym jest potencjał wywołany, który widzimy w uśrednionym przebiegu? Czy naprawdę wynika z deterministycznie powtarzanej, jednakowej odpowiedzi pojawiającej się po każdym powtórzeniu bodźca niezależnie od &amp;amp;bdquo;tła&amp;amp;rdquo;, czy może wynika z reorganizacji faz tego właśnie &amp;amp;bdquo;tła&amp;amp;rdquo; EEG, czy może kombinacji tych dwóch efektów? Jest to wspaniałe pole dla zastosowań zaawansowanych metod modelowania i analizy sygnałów. W ostatnich latach powstają dziesiątki prac na ten temat, a od czasu do czasu również krytyczne artykuły wykazujące, że dotychczasowe odkrycia są raczej artefaktami stosowanych metod a nie wynikają z własności analizowanych danych (Yeung et al., 2004). Jak widać jest tu wciąż bardzo wiele do zrobienia, gdyż zrozumienie tego mechanizmu stoi na drodze do &amp;amp;bdquo;świętego Graala&amp;amp;rdquo;, którym w tej dziedzinie jest wyodrębnienie pojedynczych potencjałów wywołanych.&lt;br /&gt;
&lt;br /&gt;
Niezależnie od tego, w neurofizjologii klinicznej nazwą potencjał wywołany określa się krzywą widoczną po uśrednieniu odpowiedzi na kilkanaście do kilku tysięcy bodźców (Szelenberger 2000). Gromadzona od dziesięcioleci wiedza o behawioralnych i klinicznych korelatach potencjałów wywołanych opiera się na rozpoznawaniu w przebiegach uśrednionych tak zwanych załamków, czyli przejściowych wzrostów lub spadków potencjału (na przykład na &amp;lt;xr id=&amp;quot;fig:EP&amp;quot;&amp;gt;rys. %i&amp;lt;/xr&amp;gt; widać załamek P300). Nazwy załamków składają się zwykle z litery &amp;amp;bdquo;P&amp;amp;rdquo; (od ang. ''positive''), jeśli wychylenie jest dodatnie, lub &amp;amp;bdquo;N&amp;amp;rdquo; (od ang. ''negative''), jeśli wychylenie jest ujemne, oraz liczby. Uwaga: &lt;br /&gt;
* Nie ma niestety jednej ustalonej konwencji prezentacji potencjałów koniecznie trzeba więc zwracać uwagę na orientację wykresu, a wykonując wykres samemu - zamieszczać informację o orientacji kierunku dodatniego,gdyż kierunek dodatni może być wykresie skierowany do góry lub do dołu. &lt;br /&gt;
* Liczba następująca po N lub P określa przybliżoną liczbę milisekund od wystąpienia bodźca, czyli tak zwaną latencję. Nie można jednak ścisłego związku między tą liczbą a liczbą milisekund np. potencjał P300 w zależności od szczegółów paradygmatu doświadczalnego może wystąpić znacznie później. np. w eksperymentach językowych zdarza się że P300 występuje później niż N400 :-).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xr id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;Rys. %i&amp;lt;/xr&amp;gt; przedstawia schematycznie najważniejsze załamki rozpoznawane w potencjałach słuchowych, czyli wywoływanych bodźcem dźwiękowym. Dla potencjałów wzrokowych i somatosensorycznych istnieją podobne klasyfikacje.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grafika:Zalamki.png|thumb|320px|right|&amp;lt;figure id=&amp;quot;fig:zalamki&amp;quot;&amp;gt;&amp;lt;/figure&amp;gt;&lt;br /&gt;
Orientacyjny schemat załamków rozpoznawanych w słuchowych potencjach wywołanych, na podstawie (Szelenberger 2000). Skala czasu logarytmiczna. Najszybsze (do 12 ms) składowe egzogenne to potencjały pniowe (BAEP), oznaczane jako fale I-VII. Litery &amp;amp;bdquo;P&amp;amp;rdquo; i &amp;amp;bdquo;N&amp;amp;rdquo; oznaczają dodatnie i ujemne wychylenia związane z dalszymi załamkami]]&lt;br /&gt;
&lt;br /&gt;
Najszybsze (czyli o najmniejszej latencji) składowe to potencjały egzogenne, odzwierciedlające wstępne fazy przetwarzania informacji. W potencjałach słuchowych są to potencjały pnia (ang. ''brainstem auditory evoked potentials'', BAEP), składające się z siedmiu fal występujących pomiędzy 1 a 12 ms od bodźca. Są one generowane np. w nerwie słuchowym czy pniu mózgu, i wykorzystywane w klinicznej diagnostyce integralności dróg słuchowych. Podobnie jak inne wczesne potencjały o latencjach poniżej 100 ms, są praktycznie niezależne od stanu uwagi.&lt;br /&gt;
&lt;br /&gt;
Po potencjałach o średniej latencji (między 12 a 50 ms) zaczynają się późne potencjały słuchowe (od 100 ms od podania bodźca), odzwierciedlające bardziej złożone reakcje na bodziec. Potencjały ok. 100 ms obserwowane w okolicach sensorycznych odzwierciedlają odpowiedź tejże kory na bodziec. Ich amplituda zależy od parametrów fizycznych bodźca oraz od uwagi, np. amplituda załamka N100 wzrasta w stanie skupienia uwagi czy pobudzenia emocjonalnego. Pierwszy i najpopularniejszy całkowicie endogenny załamek to P300, pojawiający się po rozpoznaniu bodźca oczekiwanego, na którym skupiamy uwagę: na przykład, jeśli w serii pojawiających się losowo liter mamy zliczać wystąpienia jednej z nich, to na średniej odpowiedzi na pojawienie się tej litery pojawi się załamek P300. Załamek ten występuje również w odpowiedzi na bodźce wyczekiwane, niespodziewane i ważne dla osoby (np. własne imię). &lt;br /&gt;
&lt;br /&gt;
=== Uśrednianie w dziedzinie czasu ===&lt;br /&gt;
Jak już było wspomniane powyżej podstawową techniką stosowaną do analizy potencjałów wywołanych jest uśrednianie wielu realizacji odpowiedzi na bodziec wyrównanych względem jakiegoś charakterystycznego zdarzenia, np. momentu podania bodźca albo momentu behawioralnej reakcji na bodziec (np. wciśnięcie przycisku). Podejście to bazuje na trzech założeniach:&lt;br /&gt;
* Reakcja jest czasowo związana z bodźcem. Tzn. w kolejnych realizacjach występuje ona zawsze z tym samym opóźnieniem.&lt;br /&gt;
* Reakcja na bodziec skutkuje zawsze pojawieniem się w sygnale składowej o stałym kształcie (mówimy o stałej morfologii).&lt;br /&gt;
* Spontaniczna czynność EEG &amp;amp;mdash; ta która nie dotyczy przetwarzania interesującego nas bodźca &amp;amp;mdash; jest niezależnym, stacjonarnym szumem o średniej zero.&lt;br /&gt;
&lt;br /&gt;
Zgodnie z powyższymi założeniami mierzony w ''i''-tej realizacji sygnał można wyrazić jako:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Uśrednianie po ''N'' realizacjach daje:&lt;br /&gt;
: &amp;lt;math&amp;gt;\bar x (t) = \frac{1}{N} \sum_{i=1}^N x_i(t) = \frac{1}{N} \left(N s(t) + \sum_{i=1}^N n_i(t) \right) &amp;lt;/math&amp;gt;&lt;br /&gt;
Wartość oczekiwana średniego sygnału wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[ \bar x(t) \right] = s(t) &amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż dla szumu o średniej zero mamy:&lt;br /&gt;
: &amp;lt;math&amp;gt;\mathrm{E}\left[\frac{1}{N} \sum_{i=1}^N n_i(t)\right] = 0&amp;lt;/math&amp;gt;.&lt;br /&gt;
Wariancja &amp;lt;math&amp;gt;\bar x(t)&amp;lt;/math&amp;gt; wynosi:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \mathrm{E} \left[  \left( \frac{1}{N} \sum_{i=1}^N n_i(t)\right)^2 \right] \approx \frac{1}{N} \sigma^2_{n(t)}&amp;lt;/math&amp;gt;&lt;br /&gt;
gdyż &amp;lt;math&amp;gt;s(t)&amp;lt;/math&amp;gt; jest deterministyczne. &lt;br /&gt;
&lt;br /&gt;
Dla potencjałów pojawiających się w pierwszych kilkudziesięciu milisekundach po bodźcu model ten można uznać za poprawny, gdyż wykazują one zależność głównie od parametrów fizycznych bodźca. Dla późniejszych składowych staje się on coraz bardziej wątpliwy ze względu na występujące korelacje ze stanem (np. uwagi) badanego.&lt;br /&gt;
&lt;br /&gt;
Dla późniejszych składowych można by postulować bardziej ogólną wersję modelu potencjału wywołanego:&lt;br /&gt;
: &amp;lt;math&amp;gt;x_i(t) = s_i(t) + n_i(t)&amp;lt;/math&amp;gt;&lt;br /&gt;
Ten model uwidacznia, że do opisu potencjału wywołanego potrzebna jest nie tylko średnia, ale i wyższe momenty rozkładu (np. drugi moment centralny czyli wariancja).&lt;br /&gt;
&lt;br /&gt;
====Wariancja w przypadku szumu skorelowanego ====&lt;br /&gt;
W poprzednim paragrafie pokazaliśmy, że w przypadku niezależnego szumu wariancja uśrednionego sygnału (w danej chwili czasu) maleje jak  &amp;lt;math&amp;gt;\frac{1}{N}&amp;lt;/math&amp;gt;. Jednak w przypadku gdy kolejne próbki szumu są skorelowane (np. występuje silna aktywność rytmiczna alfa) sytuacja się komplikuje. Intuicyjnie łatwo możemy to sobie wyobrazić w granicznym przypadku. Załóżmy, że tło dla  potencjałów o stałej morfologii stanowi sinusoida. Jeśli będziemy podawać bodźce w odstępach będących wielokrotnością okresu tej sinusoidy to w uśrednianych fragmentach sygnału owa sinusoida jest tak samo powtarzalna jak badany potencjał i uśrednianie nie prowadzi do poprawy stosunku amplitudy sygnału do amplitudy tła. &lt;br /&gt;
&lt;br /&gt;
Stopień zależności pomiędzy próbkami można zmierzyć przy pomocy funkcji autokorelacji. &lt;br /&gt;
Jeśli funkcję autokorelacji przybliżymy przez:&lt;br /&gt;
: &amp;lt;math&amp;gt;R_{xx}(\tau) = \sigma^2 \exp(-\beta |\tau|) \cos(2 \pi f_0 \tau)&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;\sigma^2&amp;lt;/math&amp;gt; jest wariancją szumu, &amp;lt;math&amp;gt;f_0&amp;lt;/math&amp;gt; jest średnią częstością aktywności rytmicznej, &amp;lt;math&amp;gt;\beta/ \pi&amp;lt;/math&amp;gt; jest szerokością pasma tej czynności, zaś &amp;lt;math&amp;gt;\tau&amp;lt;/math&amp;gt; opóźnieniem, to wariancję potencjału wywołanego można wyrazić jako&amp;lt;!-- \cite{Spekreijse_1976}--&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt;\sigma^2_{\bar x(t)} = \frac{\sigma^2}{N} \left[ \frac{1-\exp(-2 \beta T)}{1 - 2 \exp(- \beta T) \cos(2 \pi f_0 T) +\exp(-2 \beta T)} \right]&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
gdzie &amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; jest odstępem między bodźcami. &lt;br /&gt;
Widać stąd, że obecność czynności rytmicznej w tle wpływa na stosunek sygnału do szumu. Z powyższego równania widać, że stosunek wariancji dąży do &amp;lt;math&amp;gt;\frac{\sigma^2}{N}&amp;lt;/math&amp;gt; gdy &amp;lt;math&amp;gt;\beta T&amp;lt;/math&amp;gt; staje się duże.  &lt;br /&gt;
&lt;br /&gt;
Periodyczna stymulacja może ponadto prowadzić do wzbudzenia czynności rytmicznej o częstości równej częstości pobudzania bądź jej harmonicznej.&lt;br /&gt;
&lt;br /&gt;
===Wariancja latencji===&lt;br /&gt;
&lt;br /&gt;
Jedną z form zmienności potencjału wywołanego w pojedynczych realizacjach jest wariancja latencji. &lt;br /&gt;
[[Grafika:Wariancja_latencji.png|thumb|500px|right|&lt;br /&gt;
Czerwona linia: Uśrednianie 100 potencjałów wywołanych o latncjach z rozkładu normalnego N(300,30 ), Niebieskie linie: przykładowe pojedyncze realizacje wzięte do średniej]]# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
Zmienność latencji prowadzi do:&lt;br /&gt;
* zmniejszenia amplitudy &amp;lt;math&amp;gt;\bar x&amp;lt;/math&amp;gt;&lt;br /&gt;
* wzrostu rozciągłości czasowej załamka&lt;br /&gt;
&lt;br /&gt;
O tych konsekwencjach zmienności latencji należy w szczególności pamiętać porównując średnie potencjały uzyskane w różnych warunkach eksperymentalnych. Gdy zauważymy, że średnie potencjały różnią się amplitudą należy rozważyć możliwość, że w istocie warunki eksperymentalne wpływają na różnice w wariancji latencji. &lt;br /&gt;
&lt;br /&gt;
Naturalne jest, że zmienność latencji jest bardziej widoczna w przypadku załamków trwających krótko niż w przypadku załamków trwających długo. Wariancja latencji rożnie wraz z jej wartością, stąd wśród późnych składowych potencjałów wywołanych nie obserwuje się komponentów krótkotrwałych.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Habituacja ===&lt;br /&gt;
Zmienność w odpowiedziach na kolejno występujące po sobie bodźce można podzielić na komponent stochastyczny i deterministyczny. Komponent deterministyczny odzwierciedla zmianę czułości  układu nerwowego  na kolejne bodźce. Nowy bodziec często wywołuje reakcje pobudzenia widoczną w wielu parametrach takich jak przewodnictwo skóry, rytm serca i reaktywność kory mózgowej. Powszechnie obserwowanym zjawiskiem jest spadek reaktywności na powtarzające się bodźce zwany habituacją. Niekiedy obserwuje się także zjawisko przeciwne &amp;amp;mdash; wzrost reaktywności na bodziec &amp;amp;mdash; zwane sensytyzacją. &lt;br /&gt;
&lt;br /&gt;
Klasycznym sposobem na badanie tych zjawisk w potencjałach wywołanych jest uśrednianie w podzbiorach lub  uśrednianie blokowe. Wymaga ono  zmiany paradygmatu rejestracji danych. Załóżmy, że interesującym nas bodźcem jest błysk światła. Chcemy zaobserwować ewentualne zmiany amplitudy i latencji w ciągu 100 potencjałów będących reakcją na błysk powtarzający się co 500 ms.&lt;br /&gt;
====Uśrednianie w podzbiorach ====&lt;br /&gt;
W metodzie tej musimy założyć, że proces habituacji jest powolny, tzn. zmiany pomiędzy kolejnymi reakcjami są bardzo małe. W takim przypadku możemy podzielić długą serię bodźców na ciąg pod-serii i uśrednienie przeprowadzić dla każdej pod-serii osobno.&lt;br /&gt;
[[Plik:Usrednianie_podzbiory.svg‎|640px|thumb|center|Ilustracja uśredniania w podzbiorach]]&lt;br /&gt;
&lt;br /&gt;
====Uśrednianie blokowe====&lt;br /&gt;
W tym celu eksperyment wykonujemy w wielu seriach. Jedna seria składa się ze 100 błysków powtarzanych co 500 ms.  Po serii następuje przerwa trwająca np. 5 s (długość przerwy wyraża nasze oszacowanie czasu potrzebnego na zanik habituacji). Po przerwie seria jest powtarzana. Powtórzeń serii wykonujemy ''N''.&lt;br /&gt;
Następnie uśredniamy fragmenty sygnałów odpowiadające sobie w kolejnych seriach. &lt;br /&gt;
&lt;br /&gt;
W tym paradygmacie zakładamy, że każda seria rejestrowana jest w tych samych warunkach. Zaniedbujemy efekty związane ze zmęczeniem i zmianami w np. stopniu koncentracji badanego.&lt;br /&gt;
[[Plik:Usrednianie blokowe.svg|Usrednianie blokowe.svg|640px|thumb|center|Ilustracja uśredniania w blokach]]&lt;br /&gt;
&lt;br /&gt;
===Załamki w krzywej potencjału wywołanego vs ukryte komponenty===&lt;br /&gt;
Komponenta potencjału wywołanego to bardzo ważne ale jednocześnie źle określone pojęcie. Krzywa otrzymana w wyniku uśredniania potencjałów wywołanych przedstawia serię załamków dodatnich i ujemnych, ale trzeba być świadomym, że ten przebieg napięcia rejestrowany przez elektrody przedstawia tak naprawdę sumę potencjałów pochodzących od wielu dość niezależnie działających źródeł w mózgu. Przyczynek pochodzący od jednego funkcjonalnego źródła będziemy określać jako komponentę. &lt;br /&gt;
&lt;br /&gt;
Komentarza wymaga też pojęcie źródła funkcjonalnego. Czynność elektryczną synchronicznie działających neuronów piramidalnych w określonym fragmencie kory mózgowej z pewnej odległości można przybliżyć potencjałem dipola prądowego. Taki aktywny fragment kory stanowi źródło dające przyczynek do mierzonego na powierzchni głowy potencjału. W najprostszej sytuacji taki przyczynek może być obserwowany jako komponenta. Mózg jest jednak obiektem niezwykle złożonym i gęsto połączonym. Wiele obszarów korowych może być funkcjonalnie połączonych i aktywowanych synchronicznie w celu realizacji określonego zadania &amp;amp;mdash; o takim funkcjonalnym zespole też możemy myśleć jako o pojedynczym źródle, choć może ono mieć złożoną strukturę przestrzenną. Często zatem myślimy o komponentach ukrytych potencjału wywołanego jako o aktywności takich funkcjonalnych zespołów. &lt;br /&gt;
&lt;br /&gt;
Po tym wstępie widać już chyba, że do zrozumienia co dzieje się w czasie reakcji na bodziec, którą obserwujemy w potencjale wywołanym, bardziej pożądane byłoby badanie komponent ukrytych niż poszczególnych załamków krzywej potencjału wywołanego, która stanowi ważoną sumę owych komponentów. Zanim przejdziemy do omówienia technik służących &amp;amp;bdquo;wyłuskiwaniu&amp;amp;rdquo; komponent prześledźmy kilka symulacji i wnioski z nich płynące.&lt;br /&gt;
&lt;br /&gt;
==== Załamki i komponenty nie są tym samym.====&lt;br /&gt;
Tę samą krzywą można otrzymać na nieskończenie wiele sposobów  przez sumowanie rożnych kombinacji domniemanych komponentów. Przykładowy rysunek pokazuje, jak tę samą krzywą można złożyć z dwóch rożnych zestawów komponentów (kod wytwarzający przykładową symulację pokazany jest poniżej).&lt;br /&gt;
[[Plik:Sumowanie_komponentow1.png|center|thumb|600px| Panel a) przedstawia hipotetyczną krzywą ERP, panel b) jedna z możliwych dekompozycji sygnału w panelu a), panel c) inna możliwa dekompozycja sygnału z panelu a) ]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Zadanie 1: Rejestracja i analiza potencjałów wzrokowych=&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 1. Obserwacja bodźca wzrokowego  ===&lt;br /&gt;
 &lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
* Paradygmat: z odległości około 40 cm badany obserwuje wyświetalny na ekranie biały kwadrat. Bodźce trwają 300 ms i  powtarzają się co 0,5 sekundy. Bodziec poprzedza punkt fiksacji pokazywany przez 300 ms. Natężenie bodźca ma przyjąć jedną z 4 wartości (manipulujemy jego przeźroczystością: 1, 0,7, 0,3 i 0,1, gdzie 1 oznacza brak przeźroczystości). Każda z intensywności bodźca ma pojawić się 100 razy podczas badania, bodźce podawane mają być w sposób losowy. Zadanie poprzedza krótka instrukcja, a kończy podziękowanie. &lt;br /&gt;
&lt;br /&gt;
* Pomiar&lt;br /&gt;
**Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 10 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%. [[Plik:Glowka10-20 ERPy.svg|thumb|600px|right]]&lt;br /&gt;
** Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
** Montujemy także elektrody M1 i M2 i FCz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# W sygnale wyszukujemy wzrokowo odcinki z artefaktami i oznaczamy je tagami w SVAROGu.&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +800 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# W przypadku, gdy dane są zanieczyszczone wieloma mrugnięciami (zwłaszcza tylnych okolicach), należy skorzystać z metody ICA w SVAROGU, informacje tutaj: [https://brain.fuw.edu.pl/edu/index.php/Pracownia_EEG/EEG_spoczynkowe#ICA_.28.C4.87wiczenie_dodatkowe.29])&lt;br /&gt;
# Porównujemy zestawy danych otrzymane po wzrokowym i automatycznym (metodą opisaną powyżej) usunięciu artefaktów.&lt;br /&gt;
# Uśredniamy wycięte sygnały.&lt;br /&gt;
# Rysujemy średni potencjał we wszystkich kanałach.&lt;br /&gt;
# Pierwszy sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 jako różnicę między ekstremalną wartością załamka N2 a ekstremalną wartością załamka N2. &lt;br /&gt;
# Drugi sposób analizy: Identyfikujemy załamki P1 i N2. Mierzymy amplitudę P1 w stosunku do zera. &lt;br /&gt;
# Porównujemy uzyskane amplitudy w 4 warunkach za pomocą odpowiedniego testu statystycznego (porównanie warunków ze skrajnymi wartościami amplitudy) &amp;amp;mdash; zastosuj test permutacyjny (opisany poniżej) lub test t-Studenta/nieparametryczny odpowiednik). &lt;br /&gt;
&lt;br /&gt;
**Opis testu permutacyjnego &lt;br /&gt;
Pytanie: Czy intensywność bodźca wpływa na amplitudę potencjału P1?&lt;br /&gt;
Jak stwierdzić czy amplitudy załamków P1 istotnie różnią się pomiędzy seriami?&lt;br /&gt;
&lt;br /&gt;
Musimy przeprowadzić test statystyczny. Możemy skonstruować go np. tak:&lt;br /&gt;
Mamy dwa warunki I i II. Jako statystykę przyjmiemy różnicę pomiędzy amplitudą załamka zmierzoną w serii z dwoma diodami (P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt;) a amplitudą zmierzoną w serii z jedną diodą (P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;):&lt;br /&gt;
: ''S'' = P2&amp;lt;sub&amp;gt;II&amp;lt;/sub&amp;gt; &amp;amp;minus; P2&amp;lt;sub&amp;gt;I&amp;lt;/sub&amp;gt;&lt;br /&gt;
Postawmy hipotezę zerową, że nie ma różnicy w amplitudzie pomiędzy warunkiem II a I oraz hipotezę alternatywną, że różnica taka występuje.&lt;br /&gt;
: H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;: ''S'' = 0&lt;br /&gt;
: H&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;: ''S'' &amp;amp;ne; 0&lt;br /&gt;
Zgodnie z H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt; dla wartości ''S'' nie ma różnicy czy realizacja została zarejestrowana w warunkach I czy II, zatem można losowo poprzypisywać numery warunków do realizacji i w ten sposób uzyskać rozkład statystyki ''S'' pod warunkiem prawdziwości H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, czyli obliczyć średnie potencjały dla &amp;amp;bdquo;pomieszanych&amp;amp;rdquo; tagów, wyliczyć średnie potencjały dla sztucznie wygenerowaych grup, i wyliczyć różnicę amplitud dla tych średnich, czyli wartość statystyki dla hipotezy H&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Zaimplementuj test permutacyjny zgodny z powyższą koncepcją.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ===Wersja 2: obserwacja habituacji / uśrednianie w blokach ===&lt;br /&gt;
==== Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje błyski diody. &lt;br /&gt;
#* Błyski powtarzają się co 0,5 sekundy. &lt;br /&gt;
#* Rejestrujemy 60 serii po 15 błysków.  &lt;br /&gt;
#* Pomiędzy seriami badany odpoczywa około 10 sekund.&lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrodę FCz (na linii centralnej pomiędzy Fz a Cz), będziemy jej używać w montażu i w czasie analizy jako referencji.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 0,1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +600 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy wycięte sygnały o tym samym numerze wewnątrz serii.&lt;br /&gt;
# Rysujemy serie 15 uśrednionych potencjałów dla tego kanału, który wykazywał najsilniejszy potencjał w pierwszej wersji eksperymentu. --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Eksperyment 2: rejestracja i analiza potencjału P3 ===&lt;br /&gt;
====Rejestracja ====&lt;br /&gt;
# Paradygmat: &lt;br /&gt;
#* z odległości około 40 cm badany obserwuje kwadrat, który występuje w dwóch kolorach. &lt;br /&gt;
#* Bodźce trwają 300 ms, poprzedzane punktem fiksacji wyświetlanym na 300 ms, przerwa między próbami jest losowana i wynosi od 0.8-1.2 s.  &lt;br /&gt;
#* Proporcja wystapień bodźców koloru pierwszego i drugiego wynosi 1:5.   &lt;br /&gt;
#* Zadaniem badanego jest liczenie kwadratów w rzadkim kolorze. &lt;br /&gt;
#* Wykonujemy tyle realizacji aby zarejestrować 100 powtórzeń bodźców rzadkich. &lt;br /&gt;
# Zakładamy czepek i elektrody w systemie 10-20, dbamy o to by opory pomiędzy elektrodami były poniżej 5 k&amp;amp;Omega; i różnice pomiędzy oporami różnych elektrod nie przekraczały 20%.&lt;br /&gt;
#* Elektrodę GND mocujemy w otworze czepka odpowiadającym pozycji AFz (na linii centralnej 10% w stronę nosa od elektrody Fz) &lt;br /&gt;
#* Montujemy także elektrody M1 i M2, będziemy ich używać w montażu i w czasie analizy jako referencji typu połączone uszy.&lt;br /&gt;
#* Częstość próbkowania 512 Hz.&lt;br /&gt;
&lt;br /&gt;
==== Analiza ====&lt;br /&gt;
# Filtrujemy sygnał w paśmie 1-20 Hz.&lt;br /&gt;
# Z ciągłego zapisu wycinamy fragmenty od &amp;amp;minus;300 ms do +900 ms (zero oznacza moment wystąpienia bodźca). W czasie wycinania badamy wycinane fragmenty pod względem zakresu amplitudy (wszystkie kanały powinny mieć amplitudę w granicach &amp;amp;plusmn;75 &amp;amp;mu;V) i zawartości artefaktów od mrugania (w tym celu trzeba oglądając sygnał w SVAROG-u ustalić próg na amplitudę sygnału w kanałach Fp1 i Fp2).&lt;br /&gt;
# Uśredniamy osobno realizacje dla każdego koloru kwadratu. &lt;br /&gt;
# Nakładamy na siebie na rysunkach oba typy średnich.&lt;br /&gt;
# Wyznaczamy amplitudę P3 i liczymy test statystyczny pomiędzy warunkami.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- ==Ćwiczenie dodatkowe: P300 BCI==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wykorzystujemy elektrody z systemu 10-10 umieszczone nad korą wzrokową: P07, O1, O2, PO8, PO3, PO4, Pz, Cz.&lt;br /&gt;
&lt;br /&gt;
Uruchamiamy &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
obci_gui --presets eeg_workshop&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
i z guzika &amp;amp;bdquo;select amplifier&amp;amp;rdquo; wybieramy właściwy wzmacniacz.&lt;br /&gt;
&lt;br /&gt;
Do kontroli jakości sygnału możemy uruchomić Svaroga.&lt;br /&gt;
&lt;br /&gt;
Dane z kalibracji zapisują się w pliku test1 w katalogu domowym użytkownika, z labiryntu w pliku test2.&lt;br /&gt;
&lt;br /&gt;
Po zakończeniu kalibracji pojawia się napis &amp;amp;bdquo;Trwają obliczenia&amp;amp;rdquo; lub podobny. Odczekujemy kilka minut, aż skończy się peer &amp;amp;bdquo;Calibration&amp;amp;rdquo; (widoczny w obci_gui) i zamykamy okienko klawiszami Alt-F4 lub zatrzymując scenariusz guzikiem &amp;amp;bdquo;Stop&amp;amp;rdquo;. W katalogu domowym pojawi się plik z wynikami kalibracji, co pozwala na uruchomienie scenariusza &amp;amp;bdquo;labirynt&amp;amp;rdquo;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Po zebraniu danych, przed wczytaniem ich do Svaroga należy w tym samym katalogu uruchomić skrypt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang = python&amp;gt;&lt;br /&gt;
#!/usr/bin/env python&lt;br /&gt;
# -*- coding: utf-8 -*-&lt;br /&gt;
&lt;br /&gt;
from obci.analysis.obci_signal_processing.tags import tags_file_writer&lt;br /&gt;
from obci.analysis.obci_signal_processing.read_manager import ReadManager&lt;br /&gt;
&lt;br /&gt;
def main(): &lt;br /&gt;
	file_name = 'test1'&lt;br /&gt;
	&lt;br /&gt;
	mgr = ReadManager(&lt;br /&gt;
		file_name + '.obci.xml',&lt;br /&gt;
		file_name + '.obci.raw',&lt;br /&gt;
		file_name + '.obci.tag')&lt;br /&gt;
	&lt;br /&gt;
	tags = mgr.get_tags()&lt;br /&gt;
	for i in xrange(0, len(tags)):&lt;br /&gt;
		if tags[i]['desc']['index'] == tags[i]['desc']['target']:&lt;br /&gt;
			tags[i]['name'] = 'blink_target'&lt;br /&gt;
		else:&lt;br /&gt;
			tags[i]['name'] = 'blink'&lt;br /&gt;
			&lt;br /&gt;
	tags_writer = tags_file_writer.TagsFileWriter(file_name + '.obci.tag')&lt;br /&gt;
	for tag in tags:&lt;br /&gt;
		tags_writer.tag_received(tag)		&lt;br /&gt;
	tags_writer.finish_saving(0)	&lt;br /&gt;
 &lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zadanie 3. Analiza Heartbeat-Evoked Potential (HEP)== &lt;br /&gt;
&lt;br /&gt;
Celem tego zadania jest zaobserwowanie występowania ERP związanego z działaniem serca (szczegóły można doczytać tutaj: [https://www.sciencedirect.com/science/article/pii/S1053811919303738?via%3Dihub]. W zadaniu tym wykorzystany dane spoczynkowe zebrane podczas pierwszej rejestracji. &lt;br /&gt;
* w pierwszym kroku sygnał montujemy i filtrujemy;&lt;br /&gt;
* następnie zaznaczamy fragmenty sygnału, w których widzimy artefakty;&lt;br /&gt;
* w drugim robimy detekcję załamków R z EKG &amp;amp;mdash; po ich podstawie będziemy cieli sygnał (&amp;amp;minus;200-600 ms po R);&lt;br /&gt;
* następnie uśredniamy otrzymane odcinki.&lt;/div&gt;</summary>
		<author><name>AnnADuszyk</name></author>
		
	</entry>
</feed>