České vysoké učení technické v Praze Algoritmy pro měření zpoždění mezi kanály EEG Ondřej Drbal 5. ročník, stud. sk. 9 31. března 23
Obsah 1 Zadání 1 2 Uvedení do problematiky měření zpoždění signálů 1 3 Měřené signály 1 4 Algoritmy pro měření zpoždění 3 4.1 Korelační funkce...................................... 3 4.1.1 Popis metody.................................... 3 4.1.2 Dosažené výsledky................................. 3 4.1.3 Šumová imunita algoritmu............................. 4 4.2 Fázová FFT......................................... 5 4.2.1 Popis metody.................................... 5 4.2.2 Dosažené výsledky................................. 6 4.2.3 Šumová imunita algoritmu............................. 6 5 Závěr 7 Seznam obrázků 1 Model EEG signálu..................................... 2 2 Skutečný EEG signál.................................... 2 3 Korelace signálů z elektrod F7 a F8........................... 3 4 Směs modelu EEG a šumu................................. 5 5 Fázová FFT signálů z elektrod F7 a F8......................... 6 6 Graf závislosti chyby zpoždění na délce signálu..................... 8 7 Graf závislosti chyby zpoždění na SNR.......................... 9 Seznam tabulek 1 Zpoždění pomocí korelace v závislosti na délce signálů................. 4 2 Zpoždění pomocí korelace v závislosti na velikosti aditivního šumu.......... 4 3 Zpoždění pomocí fázové FFT v závislosti na délce signálů............... 7 4 Zpoždění pomocí fázové FFT v závislosti na velikosti aditivního šumu........ 7 i
1 Zadání 1. Seznamte se s problematikou zpoždění signálu (literatura) 2. Navrhněte algoritmus na měření zpoždění mezi kanály EEG (korelační funkce, fázová FFT) 3. Diskutujte šumovou imunitu algoritmu 2 Uvedení do problematiky měření zpoždění signálů Měření zpoždění signálů EEG mezi kanály provádíme kvůli detekci centra epileptického záchvatu. V případě normální funkce mozku a tedy i standardních průběhů EEG nemá smysl měřit zpoždění, protože signály nejsou stejné ani podobné. V případě, že dojde k epileptickému záchvatu, dojde k rozkmitání a k synchronizaci jednotlivých hemisfér. Potom se již dá mluvit o tom, že signály z párových sond jsou podobné co do tvaru, pouze jsou nepatrně zpožděné. 3 Měřené signály Pro měření zpoždění mezi kanály signálu EEG mám k dispozici 45 minutový záznam EEG ze všech sond. V tomto EEG je zachyceno několik epileptických záchvatů. S těmito signály jsem sice dosáhl nějakých výsledků, problém je ale v tom, že nevím, jaká je skutečná hodnota zpoždění. Proto jsem se rozhodl, pro ověření správné funkce, že si vymodeluji vyhlazený signál EEG při epileptickém záchvatu (špička-vlna). U takto namodelovaného signálu mám již přesně definované zpoždění a jsem tedy schopný zjistit, jak přesná je použitá metoda. Signál jsem si definoval takto: A n 5 A n =... 1 s = A A n 1 n = 11... 2 an 2 + bn + c n = 21... 95 A je pro každou špičku-vlnu náhodně generovaná konstanta. Konstanty a, b a c jsou pokaždé voleny tak, aby vlna (parabola) navazovala jak na předcházející, tak na následující špičku. Délka špičky a vlny 96 vzorků odpovídá při vzorkovací frekvenci 25Hz přibližně 39ms. Ukázka takto vygenerovaného signálu a jeho frekvenčního spektra je na obrázku 1 na straně 2. Aby bylo vidět, že tento model je dostatečný pro testování jednotlivých metod, je na obrázku 2 na straně 2 skutečný signál EEG za přítomnosti záchvatu. Z obou signálů není dostatečná podobnost patrná, ovšem, když porovnáme jejich spektra, zjistíme, že jsou si velmi podobná. Proto lze vymodelovaný signál použít pro testování jednotlivých algoritmů, aniž bychom se museli bát jako v případě např. jen dvou posunutých sinusovek toho, že v případě sinusovek získám příznivé výsledky a při reálném EEG signálu již ne. V případě reálného signálu si lze všimnout, že signál je zarušen síťovým kmitočtem 5Hz. Tuto frekvenci bychom mohli filtrovat buď v reálném čase nebo ve spektru. Tato skutečnost nám ale nevadí, protože nás zajímají jen frekvence EEG signálu do max 3Hz. Problém by mohl nastat při aliasingu, ale vzhledem k vzorkovací frekvenci f s = 25Hz nepřipadá ani toto v úvahu. Pro účely testování algoritmů jsem si vygeneroval signály o délkách 1s, 5s, 2s, 1,15s,,75s a,36s, přičemž všechny signály mají vzájemné zpoždění 2ms. Na těchto signálech lze otestovat, jak dlouhý je potřeba segment signálu pro určitý algoritmus, aby dával ještě přijatelné výsledky. Pro testování šumové imunity algoritmu stačí s vhodným SNR přičíst k signálu bílý šum. 1
4 signal 2 A 2 4 6.5 1 1.5 2 2.5 3 3.5 4 t[s] 7 x 15 spektrum S(ω) 6 5 4 3 2 1 2 4 6 8 1 12 14 f[hz] Obrázek 1: Model EEG signálu 6 signal 4 2 A 2 4.5 1 1.5 2 2.5 3 3.5 4 t[s] 4 x 15 spektrum 3 S(ω) 2 1 2 4 6 8 1 12 14 f[hz] Obrázek 2: Skutečný EEG signál 2
4 Algoritmy pro měření zpoždění 4.1 Korelační funkce 4.1.1 Popis metody Tato metoda je z hlediska implementace asi nejjednodušší. Pro výpočet korelační funkce platí vztah [1] R 12 (τ) = pro signály v diskrétním čase je nutné vztah přepsat takto R 12 (τ) = k= s 1 (t + τ)s 2(t)dt, (1) s 1 (k + τ)s 2(k), τ Z. (2) V MATLABu je možné získat korelační funkci pomocí funkce xcorr, která vrací celou symetrickou korelační funkci. To může být při větších délkách signálů příliš časově náročné na výpočet. Vzhledem k tomu, že posun mezi kanály EEG lze očekávat v blízkosti nulového posunu, lze použít výpočet jen několika korelačních koeficientů. 4.1.2 Dosažené výsledky Ukázka korelační funkce je na obrázku 3 na straně 3. 12 1 8 6 4 2 2 4 1 8 6 4 2 2 4 6 8 1 zpozdeni [s] Obrázek 3: Korelace signálů z elektrod F7 a F8 V následující tabulce je porovnání zjištěných zpoždění pro různé délky signálů. Z této tabulky je vidět, že algoritmus je dost přesný, protože téměř vždy udává naprosto přesné zpoždění 2ms. Chyba pří délkách signálu 2 a,36s je 4ms, což odpovídá 1 vzorku je pravděpodobně způsobena podobnou velikostí korelačních koeficientů v blízkosti očekávaného zpoždění. 3
L [s] t [ms] 1 2 5 2 2 16 1,15 2,75 2,36 16 Tabulka 1: Zpoždění pomocí korelace v závislosti na délce signálů 4.1.3 Šumová imunita algoritmu Pro určení šumové imunity algoritmu jsem si vybral opět vygenerovaný signál podobný signálu EEG v době epileptického záchvatu o délce 1s. K tomuto signálu jsem přičítal bílý šum ve vhodném poměru se SNR v rozmezí až 1 db. Jako maximální jsem zvolil SNR=1dB, protože korelační funkce je pro vyšší SNR dostatečně imunní a vykazuje přesné výsledky. Počítáme-li výkony pro signály konečné délky, liší se energie od výkonu pouze měřítkem, viz. [2]. V okamžiku výpočtu poměru výkonu dvou signálů je změna měřítka nepodstatná 1, takže lze SNR vyčíslit jako SNR = 1 log P s P n = 1 log N 1 1 N n= 1 N s 2 N 1 [n] s 2 [n] n= = 1 log N 1 n 2 N 1 [n] n 2 [n] n= n= = 1 log E s E n. (3) Pokud tedy máme signál s[n] a šum n[n], je směs užitečného signálu a šumu dána vzorcem x[n] = s[n] + k n[n]. (4) Konstantu k lze určit vhodnou úpravou vzorce (3). Po úpravě získáváme Ps k = 1 SNR 1 (5) P n Ukázka takto vytvořené směsi EEG a šumu se SNR=1dB je na obrázku 4 na straně 5. Protože při každém generování bílého šumu je průběh tohoto šumu jiný a korelační funkce potom vykazuje naprosto různé výsledky. Proto jsem pro každé SNR vygeneroval několik průběhů bílého šumu, napočítal zpoždění a tato zpoždění jsem zprůměroval. Tímto způsobem jsem dostal výsledky, které jsou zapsány v následující tabulce. SNR [db] t [ms] 79 1 4 2 36 3 25 4 21 5 21 6 2 7 2 8 2 9 2 1 2 Tabulka 2: Zpoždění pomocí korelace v závislosti na velikosti aditivního šumu 1 Poměr energie a výkonu musí být vždy stejný 4
5 EEG signal A 5 1 1 2 3 4 5 6 7 8 9 1 noise 4 2 A 2 4 1 2 3 4 5 6 7 8 9 1 1 x EEG + noise (SNR=1dB) 14.5 A.5 1 1 2 3 4 5 6 7 8 9 1 t[s] 4.2 Fázová FFT 4.2.1 Popis metody Obrázek 4: Směs modelu EEG a šumu Nejprve je třeba vypočítat frekvenční spektra obou signálů. Pro spektrum spojitého signálu platí vztah S(ω) = a opět analogicky pro diskrétní signál platí S(Ω) = k= s(t)e jωt dt, (6) Nyní je třeba vypočítat vzájemné spektrum, které je dáno vztahem [2] s(k)e jωk. (7) C xy (e jθ ) = X (e jθ )Y (e jθ ) = X(e jθ )Y (e jθ ). (8) Tímto je získáno vzájemné spektrum, které je stále komplexní. Je třeba z tohoto spektra získat jednotlivé fáze, v MATLABu např. funkcí angle, čímž je získáno tzv. vzájemné fázové (cross-phase) spektrum. Z tohoto spektra je možné zjistit absolutní hodnotu zpoždění mezi dvěma signály. Pro určení zpoždění je zajímavá jen část max. do 3Hz a pokud v této části spektra nalezneme lineární část, lze tuto část proložit přímkou. Směrnice této přímky potom udává zpoždění signálů. t = ϕ f 2π (9) Nalezení tohoto lineárního úseku lze provést dvěma způsoby. Buď ho můžeme hledat tak, že se na průběh podíváme a určíme oblast, kterou považujeme za dostatečně lineární. Pokud ovšem 5
vyžadujeme automatizovaný proces měření zpoždění, musíme využít druhý způsob a tím je koherence. Koherence je jistá míra důvěryhodnosti vzájemného fázového spektra. Prakticky tam kde je koherence vysoká, tam je průběh vzájemné fáze dostatečně lineární. Pro koherenci platí vztah coh = C xy 2 X(ω) Y (ω). (1) V MATLABu je opět implementována funkce pro výpočet koherence a to cohere. Ovšem MATLAB provádí výpočet za použití segmentování. 4.2.2 Dosažené výsledky Ukázka fázové FFT je na obrázku 5 na straně 6. V prvním grafu je fázová FFT. V druhém grafu je koherence, která udává, do jaké míry můžeme fázové FFT věřit. V místech kde je koherence velká, můžeme hledat lineární oblast závislosti fáze na frekvenci. 4 2 φ [rad] 2 4 2 4 6 8 1 12 14 f [Hz] 1.8 koherence.6.4.2 2 4 6 8 1 12 14 f [Hz] Obrázek 5: Fázová FFT signálů z elektrod F7 a F8 V tabulce 3 na straně 7 je porovnání zjištěných zpoždění pro různé délky signálů. Z této tabulky je vidět, že pro dostatečné délky signálů ( 2s) udává tento algoritmus poměrně dobré výsledky. Pro kratší signály ale už začíná určovat zpoždění nepřesně. To je způsobeno tím, že FFT potřebuje dostatečný počet vzorků. Při vzorkovací frekvenci 25Hz a užitečném signálu do cca 3Hz již nelze pro moc krátké signály FFT použít. Rozdíl obou algoritmů vzhledem k chybě závislé na délce signálů je patrný z grafu na obrázku 6 na straně 8. Jak je vidět, při použití fázové FFT klesá přesnost určení zpoždění s klesající délkou signálů. 4.2.3 Šumová imunita algoritmu Pro zjištění šumové imunity tohoto algoritmu jsem použil stejného postupu jako při zjišťování šumové imunity korelační funkce. Výsledky jsou v tabulce 4 na straně 7. Jak je vidět, fázová rychlá Fourierova transformace je poměrně dost odolná proti aditivnímu rušení bílým šumem. Rozdíl mezi šumovou imunitou obou použitých algoritmů je patrný z grafu na obrázky 7, který je na straně 9. 6
5 Závěr L [s] t [ms] 1 18,8 5 21,1 2 23, 1,15 24,4,75 25,4,36 15,1 Tabulka 3: Zpoždění pomocí fázové FFT v závislosti na délce signálů SNR [db] t [ms] 22, 1 18,8 2 21, 3 2,6 4 19,5 5 17,5 6 16, 7 16,7 8 17, 9 18,7 1 2, Tabulka 4: Zpoždění pomocí fázové FFT v závislosti na velikosti aditivního šumu Měření zpoždění mezi kanály EEG signálu použitými metodami je poměrně přesné za určitých předpokladů. Korelační funkce vykazuje dobré vlastnosti při měření krátkých signálů, protože stále napočítává přibližně správnou hodnotu zpoždění. Ovšem při zvyšující se energii aditivního šumu začíná tento algoritmus selhávat. Oproti tomu fázová FFT je poměrně imunní proti aditivnímu šumu, protože i při SNR=dB vykazuje poměrně dost přesné výsledky. Tento algoritmus je ale velmi špatný při měření krátkého úseku EEG. Proto je pro měření zpoždění mezi kanály EEG výhodnější použít jinou metodu, např. ARmodel, který je schopen přesně určit zpoždění již při velmi krátkých úsecích signálů. 7
korelace fázová FFT 1 2 3 4 5 6 7 8 9 1 6 4 2-2 -4-6 L [s] err [ms] Obrázek 6: Graf závislosti chyby zpoždění na délce signálu 8
korelace fázová FFT 2 4 6 8 1 6 5 4 3 2 1-1 SNR [db] err [ms] Obrázek 7: Graf závislosti chyby zpoždění na SNR 9
Literatura [1] Doc. Ing. Z. Hrdina, CSc., Prof. Ing. F Vejražka, CSc.: Signály a soustavy, Vydavatelství ČVUT [2] Prof. Ing. P. Sovka, CSc., Ing. P. Pollák, CSc.: Vybrané metody číslicového zpracování signálu, Vydavatelství ČVUT Vysázeno programem L A TEX 2ε. 1