Elektroencefalografia/Zapis i wizualizacja biomedycznych szeregów czasowych
Praktyczna rejestracja danych. Próbkowanie
Jak wiemy, dane eksperymentalne zbierane są dzisiaj przy użyciu przetworników analogowo-cyfrowych. Urządzenia te mierzą badaną przez nas wielkość fizyczną w pewnych chwilach czasu i przekazują wynik pomiaru w postaci liczby binarnej, zapisywanej przez komputer sterujący całym procesem. Operację wybierania wartości mierzonych w kolejnych chwilach czasu nazywamy próbkowaniem. Dane nie mają więc postaci funkcji ciągłych lecz są szeregami osobnych wartości. Postać taką nazywamy w odróżnieniu od ciągłej — dyskretną. Fakt, że dane eksperymentalne mają postać szeregów liczb (tzw. szeregów czasowych) ma istotne konsekwencje w doborze metod ich analizy.
Podczas próbkowania zapisujemy tylko niektóre wartości mierzonej wielkości fizycznej. Wartości spomiędzy chwil zapisu są „stracone”. Czy jesteśmy w stanie powiedzieć ile informacji tracimy w procesie próbkowania? Ponieważ analiza danych w dziedzinie częstości ma duże znaczenie dla analizy EEG, zastanowimy się nad konsekwencjami próbkowania w tym przypadku.
Jeżeli dane są próbkowane w stałych odstępach czasu Δt (a tylko takimi przypadkami będziemy się zajmować), to możemy powiedzieć, że częstość próbkowania wynosi 1/Δt. Jeśli więc np. dane są próbkowane co 10 ms, to innymi słowy są próbkowane 100 razy na sekundę czyli częstość ich próbkowania wynosi fs = 1/(10·10−3 s) = 100 1/s = 100 Hz.
Z intuicyjnego punktu widzenia możemy wyobrazić sobie składowe o różnych częstościach, czyli sinusoidy od bardzo „rozwlekłych” do coraz „gęstszych”. Podczas próbkowania otrzymujemy co prawda tylko niektóre wartości tych funkcji, ale ich kształt pomiędzy punktami obserwacji ciągle jest możliwy do odtworzenia. Granicznym przypadkiem będzie częstość taka, że podczas próbkowania będziemy na przemian mierzyć maksymalną i minimalną wartość funkcji. Składowe o wyższych częstościach będą zmieniać się już na tyle szybko, że w czasie między pobraniem jednej próbki a próbki następnej nie będziemy w stanie stwierdzić jaką naprawdę funkcję mierzymy — czy taką, której pół okresu już minęło, czy taką, której do połowy okresu jeszcze chwilę brakuje (rys. Figure 1).
Z powyższych rozważań wnioski są następujące. Jeżeli dane są próbkowane z częstością fs, to jesteśmy w stanie zarejestrować częstości z zakresu [0, fs/2]. Istnieje ścisły dowód tego faktu zwany twierdzeniem o próbkowaniu lub twierdzeniem Nyquista (czasem spotyka się tu też inne nazwiska). Częstością Nyquista dla konkretnych danych nazywamy połowę częstości z jaką te dane były próbkowane. A co z częstościami większymi niż częstość Nyquista? Jak widzieliśmy na przykładzie nie możemy ich odróżnić od częstości mniejszych niż fs/2. Zjawisko takie nazywamy utożsamianiem (ang. aliasing). Jeśli w mierzonym sygnale są obecne częstości większe niż połowa częstości z jaką ten sygnał próbkujemy, to będą one sygnale spróbkowanym „udawać” inne, niższe częstości. Prosty eksperyment myślowy przekonuje, że np. sygnał o częstości dokładnie równej częstości próbkowania będzie nieodróżnialny od wartości stałej. Jest to zjawisko silnie niepożądane. Aby uniknąć tego rodzaju problemów musimy przed rozpoczęciem zbierania danych upewnić się, że w sygnale nie będzie częstości wyższych niż częstość Nyquista. Używa się w tym celu filtrów sprzętowych — układów elektronicznych usuwających z sygnału częstości z niepożądanego zakresu.
Warto wspomnieć, że zjawisko utożsamiania w przypadku próbkowania obrazów nosi nazwę zjawiska stroboskopowego. Ponieważ obraz telewizyjny lub filmowy jest próbkowany i widzimy poszczególne „próbki czasowe” wyświetlane kolejno po sobie, zjawiska periodyczne, aby były wyświetlane prawidłowo, muszą mieć częstość poniżej częstości Nyquista. Obrót koła samochodu jest przykładem takiego zjawiska periodycznego — przy wzroście prędkości obrotowej nagle obserwujemy na ekranie jakby koło obracało się w przeciwną stronę lub wręcz stanęło. Oświetlenie jarzeniowe starego typu dawało światło migoczące regularnie (z częstością sieci energetycznej). Zastosowanie takiego oświetlenia w hali maszyn mogłoby spowodować, że ze względu na zjawisko stroboskopowe np. szybko wirujący wał tokarki mógłby być postrzegany jako obracający się powoli lub wręcz nieruchomy. Mogłoby to prowadzić do wypadków przy pracy i dlatego maszyny takie oświetla się oświetleniem żarowym.
Formaty danych
Każdy producent aparatury do pomiaru EEG tworzy zwykle własny format, w którym dane zapisywane są w postaci cyfrowej na dysku. Jeśli opis formatu jest otwarty, to można dane wczytywać do innych programów, ale trzeba w tym celu napisać odpowiedni fragment kodu.
Paradoks polega na tym, że różnice między formatami są zwykle minimalne i ograniczają się zwykle do kilkunastu - kilkudziesięciu bajtów nagłówka, podczas gdy większość danych to po prostu liczby całkowite -- bo takie wychodzą z przetwornika ADC (kiedyś 12-bitowe, ostatnio coraz częściej 24-bitowe). Fizyczny sposób pomiaru wymusza również organizację danych -- kanały odpowiadające zapisom potencjałów z odprowadzeń zapisywane są w formie multipleksowanej, czyli: pierwsza próbka z pierwszego kanału, pierwsza próbka z drugiego kanału ... pierwsza próbka z ostatniego kanału, druga próbka z pierwszego kanału ...
. Ale żeby te liczby poprawnie odczytać i zinterpretować, musimy wiedzieć co najmniej:
- ile kanałów jest zapisanych w danym pliku
- jaka była częstość próbkowania, co określa odległość w czasie między kolejnymi próbkami
- jak przeliczyć zapisane wartości liczbowe na napięcie w mikrowoltach
- itp.
Takie właśnie dane zapisywane są w nagłówkach (header, na początku pliku) czy ew. w stopkach (footer, na końcu pliku), do ich odczytania konieczna jest znajomość danego formatu - na przykład żeby wiedzieć, że informację o tym, ile w danym pliku zapisano kanałów, odczytamy jako liczbę całkowitą na ósmym bajcie (offset) od początku pliku.
Propozycją rozwiązania tego problemu jest zapis tych informacji w języku SignalML opartym o XML, por. http://signalml.org.