Pracownia Sygnałów Biologicznych/Zajecia 5 6: Różnice pomiędzy wersjami

Z Brain-wiki
Linia 63: Linia 63:
 
4. Narysuje histogram różnicy czasu <math>\Delta T = t_p - t_{emg}</math>, gdzie <math>t_p</math> &mdash; czas wykonania ruchu kciukiem wyznaczony przy pomocy sygnału z kanału ''trigger'', <math>t_{emg}</math> &mdash; czas wykonania ruchu kciukiem wyznaczony na podstawie sygnału EMG.<br/>
 
4. Narysuje histogram różnicy czasu <math>\Delta T = t_p - t_{emg}</math>, gdzie <math>t_p</math> &mdash; czas wykonania ruchu kciukiem wyznaczony przy pomocy sygnału z kanału ''trigger'', <math>t_{emg}</math> &mdash; czas wykonania ruchu kciukiem wyznaczony na podstawie sygnału EMG.<br/>
  
=== Ćwiczenie III ===
+
=== Ćwiczenie III: Wykorzystanie pomiaru EMG do sterowania on-line ===
 +
<!--
 
Ćwiczenie polega pomiarze czasu reakcji badanej osoby. W tym celu:
 
Ćwiczenie polega pomiarze czasu reakcji badanej osoby. W tym celu:
 
# Na zajęciach z Zaawansowanego Programowania w Pythonie napisz program, który będzie wyświetlał na ekranie szachownicę o rozmiarze 3&times;3 pola. W określonych chwilach czasu, np. co 2 sekundy, losowo wybrane pola szachownicy zostaną podświetlone. Zadaniem badanej osoby będzie jak najszybsze naciśniecie przycisku w reakcji na bodziec, którym będzie krzyż utworzony przez podświetlone na ekranie pola szachownicy. Czas reakcji będzie to czas jaki upłynie od momentu pojawienia się bodźca na ekranie komputera, a naciśnięciem przycisku przez badaną osobę. Poprawny pomiar czasu reakcji wymaga zsynchronizowania programu rejestrującego sygnał EEG z programem generującym bodźce. Zazwyczaj taką synchronizację osiąga się poprzez wysyłanie przez program generujący bodźce sygnału na wejście ''trigger'' wzmacniacza, w chwili gdy bodziec pojawi się na ekranie. W naszym eksperymencie do synchronizacji tych dwóch programów wykorzystamy zegar czasu systemowego. Program do rejestracji danych oraz do generacji bodźców będą odmierzały czas od pewnej ustalonej daty, to jest od godziny 24, 1 stycznia 1970 r. Za pomocą wywołań odpowiednich funkcji w języku Python można uzyskać liczbę sekund która upłynęła od tego momentu.
 
# Na zajęciach z Zaawansowanego Programowania w Pythonie napisz program, który będzie wyświetlał na ekranie szachownicę o rozmiarze 3&times;3 pola. W określonych chwilach czasu, np. co 2 sekundy, losowo wybrane pola szachownicy zostaną podświetlone. Zadaniem badanej osoby będzie jak najszybsze naciśniecie przycisku w reakcji na bodziec, którym będzie krzyż utworzony przez podświetlone na ekranie pola szachownicy. Czas reakcji będzie to czas jaki upłynie od momentu pojawienia się bodźca na ekranie komputera, a naciśnięciem przycisku przez badaną osobę. Poprawny pomiar czasu reakcji wymaga zsynchronizowania programu rejestrującego sygnał EEG z programem generującym bodźce. Zazwyczaj taką synchronizację osiąga się poprzez wysyłanie przez program generujący bodźce sygnału na wejście ''trigger'' wzmacniacza, w chwili gdy bodziec pojawi się na ekranie. W naszym eksperymencie do synchronizacji tych dwóch programów wykorzystamy zegar czasu systemowego. Program do rejestracji danych oraz do generacji bodźców będą odmierzały czas od pewnej ustalonej daty, to jest od godziny 24, 1 stycznia 1970 r. Za pomocą wywołań odpowiednich funkcji w języku Python można uzyskać liczbę sekund która upłynęła od tego momentu.
 
# Wykorzystując program opisany w poprzednim punkcie, wykonaj eksperyment, w którym ruch palca związany z reakcją badanej osoby na bodziec będziesz wykrywał na podstawie sygnału EMG. Przeanalizuj zarejestrowany sygnał, utwórz histogram czasów reakcji oraz oblicz średni czas reakcji i jego rozrzut.
 
# Wykorzystując program opisany w poprzednim punkcie, wykonaj eksperyment, w którym ruch palca związany z reakcją badanej osoby na bodziec będziesz wykrywał na podstawie sygnału EMG. Przeanalizuj zarejestrowany sygnał, utwórz histogram czasów reakcji oraz oblicz średni czas reakcji i jego rozrzut.
  
 
+
-->
 
{{hidden begin|title=Moduł keystroke:}}
 
{{hidden begin|title=Moduł keystroke:}}
 
<source lang = python>
 
<source lang = python>

Wersja z 10:21, 4 mar 2019

Pomiar EMG

Wstęp

Sygnały elektro-fizjologiczne pochodzące z mięśni nazywa się elektromiogramem (EMG). Elektromiografia jest jednym z podstawowych badań w rozpoznawaniu chorób mięśni i nerwów obwodowych. Ma ona również wiele zastosowań naukowych. Amplituda sygnału EMG wynosi od około kilkudziesięciu μV do 10 mV, zaś pasmo sygnału obejmuje zakres częstości od 2 do 5000 Hz, przy czym największa energia sygnału znajduje się w przedziale od 50 do 150 Hz.

Istnieją dwa sposoby pomiaru sygnałów EMG — badanie igłowe i powierzchniowe. W badaniu igłowym EMG, elektroda igłowa lub igła z dwoma elektrodami wbijana jest w mięsień lub w nerw ruchowy. Następnie obserwuje się aktywność elektryczną mięśni w spoczynku i podczas wysiłku.

Przykłady elektromiogramów. Panel górny — pacjent zdrowy. Panel środkowy — pacjent ze zmianami w nerwach obwodowych (neuropatia). Panel dolny — pacjent ze zmianami w mięśniach (miopatia).

Badanie powierzchniowe EMG wykonuje się z użyciem elektrod samoprzylepnych, umieszczonych na powierzchni skóry. Ocenie podlegają mięśnie położone powierzchownie lub grupy mięśni. Obydwie metody mają swoje wady i zalety. Metoda „igłowa” umożliwia rejestrację sygnału EMG z wybranego mięśnia, podczas gdy metoda powierzchniowa rejestruje zbiorczą aktywność wielu jednostek ruchowych. Jednakże, w przeciwieństwie do metody powierzchniowej, metoda igłowa jest badaniem inwazyjnym i czasem bolesnym, które wykonywane jest w ośrodku klinicznym.

Na zajęciach przeprowadzimy powierzchniowy pomiar EMG (w literaturze często takie badanie oznacza się skrótem sEMG, s od ang. surface — powierzchnia). W tym celu umieścimy elektrody na skórze, nad mięśniami, których aktywność chcemy zbadać.

Źródła błędu

Rejestracja sygnału EMG, podobnie jak pomiar innych sygnały bioelektrycznych podlega pewnym zakłóceniom. Są to przede wszystkim

  • artefakty ruchowe,
  • artefakty związane z obecnością zewnętrznych pól elektromagnetycznych.

Artefakty ruchowe

W wyniku aktywacji mięśnia, ulega on skróceniu, co powoduje przemieszczanie się względem siebie mięśnia, skóry i elektrody. Przemieszczenie to powoduje zmianę amplitudy mierzonego sygnału (np. elektroda oddala się od mięśnia), zmianę potencjału DC (potencjału powstającego na granicy skóra-elektrolit) oraz rozciągniecie skóry. Jak pamiętamy z pierwszych zajęć pomiędzy naskórkiem a skórą właściwą istnieje różnica potencjałów o amplitudzie dochodzącej do 30 mV. W trakcie rozciągania skóry, wartość to spada do 25 mV. Powstająca zmiana potencjału, o wartości około 5 mV jest w porównaniu z sygnałem EMG bardzo znacząca.

Artefakty sieciowe

Artefakty sieciowe stanowią poważny problem w przypadku rejestracji sygnału EMG. Zwykle bowiem nie obserwujemy tylko zakłócenia o jednej częstości, równej częstości zmian napięcia w gniazdku zasilającym (np. w Polsce jest to 50 Hz), lecz również wyższe harmoniczne tej częstości (w Polsce będzie to 100 Hz, 150 Hz, 200 Hz, itd). Jak można zauważyć, częstości 50 Hz, 100 Hz i 150 Hz znajdują się w paśmie, w którym sygnał EMG ma największą energię. Stosowanie filtrów pasmowo zaporowych w takim przypadku nie jest wskazane, bowiem filtry jak wiemy nie tłumią ściśle określonych częstości tylko pasma o pewnej szerokości (np. 45-55 Hz, 95-105 Hz, itd). W efekcie znaczna część interesującego nas pasma sygnału EMG zostałaby odrzucona. Aby zminimalizować przenikanie od rejestrowanego sygnału EMG sygnału sieciowego o częstości 50 Hz należy zadbać o niską impedancję pomiędzy elektrodą a skóra oraz powinno mierzyć się sygnały różnicowe.

Artefakty sieciowo-ruchowe

Podczas ruchu mięśnia ciało może ulec przemieszczeniu, co spowoduje ruch kabla w przestrzeni pomiędzy elektrodą a wzmacniaczem. W przestrzeni tej istnieje pole elektromagnetyczne, wywołane zasilaniem sieci elektrycznej. Ruch kabla w polu elektromagnetycznym może powodować zaburzenia sygnału o częstości 50 Hz. Ponadto układ elektrody-kable-wzmacniacz, tworzy pewne ramki, które w trakcie ruchu zmieniają kształt a także powierzchnię. Zgodnie z Prawem Indukcji Faraday'a zmiana strumienia magnetycznego powoduje powstawanie siły elektromotorycznej, która również może zakłócać pomiar.

Artefakty ruchowe można w większości wyeliminować przez zastosowanie filtru górnoprzepustowego, którego częstość odcięcia ustawia się w granicy od 10 do 20 Hz. Aby wyeliminować artefakty związane z ruchem kabla w polu elektromagnetycznym można zastosować tzw. elektrody aktywne. W elektrodach tych (miniaturowy) wzmacniacz znajduje się na elektrodzie. Wzmacnianie sygnału na elektrodzie zwiększa względną czułość układu na sygnał mierzony na elektrodzie w stosunku do zaburzenia związanego z ruchem kabla. Innym rozwiązaniem tego problemu jest zastosowanie kabli ekranowanych. Kable TMSI, których używamy na Pracowni są kablami ekranowanymi. W kablach tych, pomiędzy dwiema warstwami izolatora, istnieje dodatkowa osłona z przewodnika podłączona do wzmacniacza. Dzięki temu, zewnętrzne pole elektromagnetyczne nie przenika do środka kabla. Dodatkowo, aby wyeliminować indukowanie się ładunków w wyniku tarcia pomiędzy izolatorami a osłoną, jest ona częściowo pokryta warstwą węgla.

Ćwiczenia

Ćwiczenie I: Badanie zależności sygnału EMG od obciążenia

  • umieść elektrodę GND na wewnętrznej części przedramienia, w połowie jego długości,
  • umieść dwie elektrody do rejestracji sygnału EMG na mięśniu dwugłowym ramienia (popularnie zwanym bicepsem). Kable tych elektrod połącz z unipolarnymi wejściami wzmacniacza numer 1 i 2.
  • ustaw częstość próbkowania sygnału na 1024Hz
  • przygotuj odpowiedni montaż, aby sygnał można było rejestrować bipolarnie,
  • dobierz odpowiednio filtry górnoprzepustowe,
  • opisz obserwowany sygnał.
  • zarejestruj około 1 min. sygnału spoczynnkowego i około 1 min sygnału przy obciążeniu mięśnia:
    • oblicz ich średnią amplitudę (odchylenie standardowe)
    • wykreśl oba sygnały
    • oraz ich widma.
  • Zbadaj zależność parametrów sygnału EMG od obciązenia mięśnia:
    • dla kilku wartości obciążenia (np. do siatki na zakupy dokładamy kolejno 0.5 litrowe butelki z wodą) wykonaj pomiar sygnału przez 30 s
    • pomiędzy pomiarami robić przerwy na odpoczynek mięśnia
    • pomiar powtórzyć w odwrotnej kolejności obciązania
    • sporządzić odpowiednie wykresy
  • Zbadaj zależność sygnału EMG od czasu obciążania przy znacznym obciążeniu. Pytanie badawcze: czy jakieś paramtery tego sygnału ulegają zmianie wraz ze zmęczeniem mięśnia?

Ćwiczenie II: Badnanie przebiegu sygnału EMG względem trigera

Wykonaj następujące doświadczenie:
1. Elektrodę GND umieść na wewnętrznej stronie przedramienia w połowie jego długości.
2. Umieść elektrody do rejestracji sygnału EMG na kciuku lub u nasady kciuka.
3. Do wejścia trigger wzmacniacza podłącz przycisk.
4. Uruchom program Svarog, skonfiguruj go do rejestracji sygnału EMG i rozpocznij nagrywanie sygnału.
5. Naciśnij 50 razy przycisk kciukiem, przy czym zachowaj około 2 sekundowy odstęp w czasie pomiędzy kolejnymi naciśnięciami.

Naciśniecie przycisku spowoduje wysłanie na wejście trigger wzmacniacza sygnału w kształcie schodka prostokątnego. W momencie kiedy podejmiesz decyzję o naciśnięciu przycisku, upłynie pewien krótki okres czasu, zanim kciuk opadnie na przycisk, który z kolei uruchomi obwód generujące sygnał wysyłany na wejście trigger. Możemy się spodziewać, że sygnał EMG związany z wykonywanym przez kciuk ruchem będzie poprzedzał sygnał elektryczny wysłany przez układ przycisku. Po wykonaniu eksperymentu Twoim zadaniem będzie oszacowanie różnicy w czasie pomiędzy pojawieniem się sygnału na kanale trigger i sygnałem EMG. W tym celu napisz program, który:
1. Wczyta zarejestrowany sygnał.
2. Przefiltruje filtrem górnoprzepustowym sygnał EMG.
3. Wyznaczy początki wykonywanych przez kciuk ruchów, w oparciu o analizę wariancji sygnału EMG.
4. Narysuje histogram różnicy czasu [math]\Delta T = t_p - t_{emg}[/math], gdzie [math]t_p[/math] — czas wykonania ruchu kciukiem wyznaczony przy pomocy sygnału z kanału trigger, [math]t_{emg}[/math] — czas wykonania ruchu kciukiem wyznaczony na podstawie sygnału EMG.

Ćwiczenie III: Wykorzystanie pomiaru EMG do sterowania on-line