ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 1 / 13 Zpracování biologických signál Semestrální projekt č. 3 Vypracovala: Bc. Iveta Bryjová, Biomedicínské in enýrství, VŠB TU, FEI Verze 2.0 Zadání Zobrazte výsledky spektrální analýzy metodou brain mappingu pro data z jednoho sloupce.
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 2 / 13 Poznámky Tento úkol byl vypracován pomocí systému Mathematica verze 8.0.1.0. V ni ších verzích není funkčnost zaručena. Pro (re)evaluaci všech bun k najednou pou ijte menu Evaluation > Evaluate Notebook. Pro vymazání všech výstup najednou pou ijte menu Cell > Delete All Output.
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 3 / 13 ešení V tomto úkolu je zpracována metoda amplitudového brain mappingu (jednoho okam iku EEG záznamu pro ob testovací osoby). Nejprve definujeme pole s názvy elektrod a datová pole pro ob testovací osoby (po adí hodnot odpovídá standardnímu po adí elektrod uvedenému v zadání): In[1]:= Out[5]= Clear "Global " ; vymaz vsech symbolu electrodename "FP1", "FP2", "F7", "F3", "FZ", "F4", "F8", "T3", "C3", "CZ", "C4", "T4", "T5", "P3", "PZ", "P4", "T6", "01", "02" ; ampbrmapbarancova 93., 49., 68., 47., 29., 9., 2., 65., 2., 19., 39., 21., 8., 43., 10., 66., 58., 60., 65. ; ampbrmapblazkova 86., 86., 83., 96., 99., 98., 58., 43., 14., 19., 13., 6., 1., 8., 2., 6., 17., 1., 5. ; Length electrodename, ampbrmapbarancova, ampbrmapblazkova kontrola: vsechny musi vratit 19 19, 19, 19 Rozmíst ní elektrod na hlav u 19 kanálového EEG je v systému 10/20. Rozestup elektrod pro grafické znázorn ní volíme tak, aby se vešly do jednotkové kru nice. Zjevn platí 2 +4 2 = 5 2 < 1, tj. 0.447. Volíme proto rozestup a definujeme pozice elektrod ve standardním po adí podle zadání takto: In[6]:= Out[8]= 0.39; electrodeposition Transpose Flatten r1 Range,, 2, r2 Range 2, 2,, r2, r2, r1, Flatten ConstantArray 2, 2,, 5, 0, 5,, 5, 2, 2 ; len Length electrodeposition pocet elektrod, musi vratit 19 19
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 4 / 13 Grafické znázorn ní (které ulo íme do prom nné system1020eeg pro pozd jší pou ití) vypadá následovn : In[9]:= system1020eeg Graphics Gray, Circle, jednotkova kruznice Red, PointSize.01, Point electrodeposition, pozice elektrod Black, Table Style Text electrodename i, electrodeposition i, Top, 12, i, 1, len jmena el. 01 02 T5 P3 PZ P4 T6 Out[9]= T3 C3 CZ C4 T4 F7 F3 FZ F4 F8 FP1 FP2
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 5 / 13 V ka dém z t chto 19 bod je definována amplituda EEG v ΜV (v daném časovém okam iku) podle pole ampbrmapbarancova nebo ampbrmapblazkova. Pro názorné zobrazení máme dv mo nosti: 1. prostorový 3D plot zobrazující (a vyhlazující) pole diskrétních hodnot, typicky ListPlot3D, 2. plošný graf vyu ívající barevného kódování hodnoty a odpovídajícího vyhlazení pole diskrétních hodnot, typicky ListDensityPlot nebo ListContourPlot. Topografické mapování pou ívá druhou mo nost. P ipojíme k sou adnicím poloh elektrod v poli electrodeposition jejich amplitudy, čím vytvo íme pole 3D poloh, které budeme následn zobrazovat (a interpolovat): In[10]:= Out[10]= brmapbarancova3d Partition Flatten Riffle electrodeposition, ampbrmapbarancova, 3 brmapblazkova3d Partition Flatten Riffle electrodeposition, ampbrmapblazkova, 3 0.39, 0.78, 93., 0.39, 0.78, 49., 0.78, 0.39, 68., 0.39, 0.39, 47., 0., 0.39, 29., 0.39, 0.39, 9., 0.78, 0.39, 2., 0.78, 0, 65., 0.39, 0, 2., 0., 0, 19., 0.39, 0, 39., 0.78, 0, 21., 0.78, 0.39, 8., 0.39, 0.39, 43., 0., 0.39, 10., 0.39, 0.39, 66., 0.78, 0.39, 58., 0.39, 0.78, 60., 0.39, 0.78, 65. Out[11]= 0.39, 0.78, 86., 0.39, 0.78, 86., 0.78, 0.39, 83., 0.39, 0.39, 96., 0., 0.39, 99., 0.39, 0.39, 98., 0.78, 0.39, 58., 0.78, 0, 43., 0.39, 0, 14., 0., 0, 19., 0.39, 0, 13., 0.78, 0, 6., 0.78, 0.39, 1., 0.39, 0.39, 8., 0., 0.39, 2., 0.39, 0.39, 6., 0.78, 0.39, 17., 0.39, 0.78, 1., 0.39, 0.78, 5.
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 6 / 13 Nyní definujeme funkci zalo enou na vestav ných funkcích ListDensityPlot a ListCountourPlot. Jejími argumenty jsou: (1) jeden z práv zmín ných dvou typ denzitních graf, (2) výše definované, k zobrazení určené 3D pole, dále (3) ád interpolace určující vyhlazení (typicky 0 bez interpolace, 1 pro lineární interpolaci, 2 pro kvadratickou interpolaci a 3 pro interpolaci kubickými splajny), a konečn (4) barevné schéma (nejvhodn ji pomocí duhových barev Rainbow nebo DarkRainbow, resp. TemperatureMap ): In[12]:= brainmap plottype_, lis_list, ipolorder_integer, colorcoding_ : plottype lis, PlotRange All, PlotRangePadding 1 2, DataRange Automatic, Frame None, Mesh None, InterpolationOrder ipolorder, ColorFunction colorcoding, PlotRangeClipping True Vyzkoušíme (a ulo íme do prom nné bm pro další pou ití): In[13]:= bm brainmap ListDensityPlot, brmapbarancova3d, 3, "Rainbow" Out[13]=
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 7 / 13 Nyní spojíme získanou mapu s výše uvedeným rozmíst ním elektrod: In[14]:= Show bm, system1020eeg, ImageSize 480 01 02 T5 P3 PZ P4 T6 Out[14]= T3 C3 CZ C4 T4 F7 F3 FZ F4 F8 FP1 FP2
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 8 / 13 Nakonec naprogramujeme interaktivní panel pro testování vzork EEG, ádu interpolace a barevného kódování: In[15]:= Manipulate Show brainmap p, l, i, c, system1020eeg, ImageSize 600, Row Control p, ListDensityPlot, "typ", ListDensityPlot "denzitní", ListContourPlot "vrstevnicový", ControlType PopupMenu, Control l, brmapbarancova3d, "pac.", brmapbarancova3d "Barancová", brmapblazkova3d "Bla ková", ControlType PopupMenu, Control i, 3, "interp..", 0, 1, 2, 3, ControlType PopupMenu, Control c, "Rainbow", "barvy", "Rainbow", "DarkRainbow", "TemperatureMap", "BrightBands", "Pastel", "Aquamarine", "GrayTones", ControlType PopupMenu, Spacer 10, ControlPlacement Top, AppearanceElements "ResetButton", LabelStyle Bold, FrameMargins Automatic, ContinuousAction True, Deployed False, SaveDefinitions True typ denzitní pac. Barancová interp.. 3 barvy Rainbow 01 02 T5 P3 PZ P4 T6 Out[15]= T3 C3 CZ C4 T4
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 9 / 13 F7 F3 FZ F4 F8 FP1 FP2
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 1 0 / 13 Bonus Výše uvedené ešení ukazuje topografickou mapu v jednom okam iku. Nyní vytvo íme animaci ukazující časový pr b h EEG záznamu ze souboru alban.trc. Načtení provedeme analogickým zp sobem jako v korespondenční úloze 1 a 2, p ičem ponecháme jen 19 z 20 kanál (značkovací kanál MKR vypustíme). Data p estavíme tak, abychom v poli eeg3d dostali vzorkovanou časovou posloupnost všech kanál (elektrod) včetn sou adnic ve správném po adí popsaném výše. Kv li rychlosti vezmeme pouze prvních nfirstsamples vzork ; pokud bychom vzali všech nsamples = 64000, výpočet by trval dlouho. Hodnotu nfirstsamples lze m nit na začátku na začátku následující bu ky: In[16]:= nfirstsamples 1000; stream OpenRead FileNameJoin NotebookDirectory, "alban.trc", BinaryFormat True ; SetStreamPosition stream, 8 ; srate BinaryRead stream, "UnsignedInteger16" ; samplovaci frekvence SetStreamPosition stream, 182 ; start BinaryRead stream, "UnsignedInteger16" ; zacatek dat SetStreamPosition stream, 184 ; nchan BinaryRead stream, "UnsignedInteger16" ; pocet kanalu SetStreamPosition stream, start ; signal BinaryReadList stream, "UnsignedInteger8" ; cti signal Close stream ; uz jej nepotrebujeme nsamples Length signal nchan; pocet vzorku v kazdem kanalu eeg 1. Transpose Most RotateLeft Transpose Partition signal, nchan, 1 ; konverze do floats eeg3d Table Null, nsamples ; inicializace, doplneni a prestavba eeg do eeg3d Table eeg3d s Partition Flatten Riffle electrodeposition, eeg s, 3, s, nfirstsamples ; eegextr Min eeg, Max eeg ;
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 1 1 / 13 Dále modifikujeme funkci brainmap uvedenou výše v tom smyslu, e p idáme jeden argument nesoucí informaci o globálním minimu a maximu hodnot EEG signálu (kv li korektnímu nastavení PlotRange), a vy adíme volbu PlotRangePadding, proto e z d vodu rychlosti animace nebudeme znázor ovat kru nici hlavy: In[26]:= animatedbrainmap plottype_, lis_list, ipolorder_integer, colorcoding_, extrema_list : plottype lis, PlotRange extrema, DataRange Automatic, Frame None, Mesh None, InterpolationOrder ipolorder, ColorFunction colorcoding, PlotRangeClipping True Pomocí této funkce spočítáme a vykreslíme prvních nfirstsamples topografických map, a ulo íme do prom nné eeganim: In[27]:= eeganim Table animatedbrainmap ListDensityPlot, eeg3d s, 3, "Rainbow", eegextr, s, nfirstsamples ; Proto e vzorkovací frekvence srate signálu je p íliš vysoká, In[28]:= srate Out[28]= 128 sní íme ji faktorem 1/retard. Retardační faktor retard lze m nit, redukovaná vzorkovací frekvence (počet snímk za sekundu, FPS) pak je In[29]:= Out[30]= retard 4; fps srate retard 32
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 1 2 / 13 Nyní u m eme vytvo it vlastní animaci a sledovat časovou evoluci topografické mapy EEG (zpomalenou faktorem retard). Animace se spustí tlačítkem se šipkou, dalšími dv ma tlačítky lze animaci zrychlovat, zpomalovat a m nit její sm r: In[31]:= ListAnimate eeganim, fps, AnimationRunning False, AnimationRepetitions 1 Out[31]=
ZBS_BRY0006_SP3.nb Wednesday, December 21, 2011 1 3 / 13 Literatura S. Mangano: Mathematica Cookbook. Building Blocks for Science, Engineering, Finance, Music, and More. 1st edition, O Reilly, Sebastopol, 2010. ISBN 978 0 596 52099 1. URL http://www.oreilly.com/