Zapisz jako PDF

Transkrypt

Zapisz jako PDF
Pracownia EEG / Własności EEG spoczynkowego: funkcja autokorelacji i widmo
Spis treści
1 Estymacja funkcji autokowariancji, autokorelacji i koherencji sygnału.
1.1 Wstęp
1.2 Polecenie:
1.3 Zadanie 1: Funkcje autokowariancji i autokorelacji
2 Związek autokorelacji z widmem sygnału
2.1 Wstęp
2.2 Polecenie
2.3 Zadanie 2: Związek autokorelacji z widmem sygnału
2.4 Funkcja kowariancji (wzajemnej)
2.4.1 Polecenie
2.4.2 Zadanie 3
2.5 Wzajemna gęstość widmowa sygnałów
2.5.1 Zadanie 4
Estymacja funkcji autokowariancji,
autokorelacji i koherencji sygnału.
Wstęp
Z funkcjami tymi spotkaliśmy się już na zajęciach z analizy sygnałów.
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. W przypadku
stacjonarnych procesów stochastycznych, przebieg tej funkcji nie zależy od czasu. Oznacza to, że
obliczając funkcję autokorelacji sygnału pomiędzy chwilą czasu
i
otrzymamy tę samą
wartość, jak dla przypadku obliczania funkcji autokorelacji pomiędzy momentami
i
, gdzie to dowolny przedział czasu. Innymi słowy, funkcja autokorelacji procesu
stacjonarnego zależy tylko od odstępu czasu pomiędzy próbkami , 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 w którym jest obliczana.
Estymator funkcji autokowariancji uzyskuje się poprzez obliczanie iloczynów wartości sygnału w
chwilach czasu czyli
i wartości sygnału
wartości iloczynów po czasie :
w chwili czasu t+τ czyli
(1)
gdzie:
i uśredniając
(2)
W przypadku sygnałów ciągłych estymację tę można zapisać w poniższy sposób:
(3)
natomiast dla sygnałów dyskretnych jako:
(4)
gdzie:
(5)
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 funkcję autokorelacji. Normalizacja ta wygląda następująco:
(6)
gdzie:
(7)
Wariancję sygnału (
) można wyrazić przez funkcję autokowariancji dla przesunięcia
Wynika z tego, że funkcja korelacji przyjmuje wartości z zakresu
funkcji autokorelacji można zapisać jak poniżej:
. Ostatecznie estymator
(8)
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
.
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.
.
Polecenie:
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:
a = np.array([1,2,3])
print koreluj(a,a,2)
powinno dać wynik:
[-0.5
0.
1.
0.
-0.5]
Zadanie 1: Funkcje autokowariancji i autokorelacji
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:
1. Wczytaj dane z wybranego kanału.
2. 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 . Oś wyskaluj w sekundach.
3. Powtórz krok 2, tym razem za sygnału zebranego w warunkach czuwania z zamkniętymi
oczami.
4. Porównaj autokorelogramy.
Związek autokorelacji z widmem sygnału
Wstęp
Zgodnie z twierdzeniem Chinczyna, z którym zapoznaliśmy się na wykładzie z Analizy Sygnałów,
widmową gęstość mocy sygnału można policzyć jako transformatę Fouriera funkcji autokowariancji:
(9)
gdzie:
— częstość
— gęstość widmowa mocy
Polecenie
Zaimplementuj funkcję obliczającą transformatę Fouriera dyskretyzując wzór (9) dla zadanego
wektora częstości f i zadanej częstości próbkowania sygnału (tutaj 10.0):
Zadanie 2: Związek autokorelacji z widmem sygnału
Oblicz gęstość widmową mocy sygnału zarejestrowanego w trakcie czuwania z zamkniętymi oczami,
korzystając z twierdzenia Chinczyna oraz metodą Welcha. Znajdź częstość rytmu dla osoby, która
była badana.
Funkcja kowariancji (wzajemnej)
W celu scharakteryzowania zależności wzajemnej dwóch sygnałów losowych, stosuje się funkcję
kowariancji, zdefiniowaną w następujący sposób:
gdzie:
W przypadku sygnałów ciągłych estymację tę można zapisać w poniższy sposób:
natomiast dla sygnałów dyskretnych jako:
W odróżnieniu od funkcji autokowariancji, funkcja kowariancji nie musi mieć maksimum dla
przesunięcia
. Ponadto posiada ona następującą cechę:
Funkcję kowariancji można znormalizować:
Otrzymaną funkcję nazywamy funkcją korelacji. 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
równego czasowi, jaki potrzebował sygnał na pokonanie danego układu. Niestety, taka metoda
wyznaczania opóźnienia obarczona jest pewną wadą — 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.
Polecenie
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). Przykładowe wywołanie:
a = np.array([1,2,3])
b = np.array([-1,-2,-3])
print koreluj(a,b,2)
powinno dać w wyniku:
[ 0.5 0.
-1.
0.
0.5]
Zadanie 3
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.
1. 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. %i 1)). Na przekątnej macierzy narysuj
funkcję autokorelacji odpowiednich kanałów, poza przekątną — 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?
2. 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. (przypomnienie konstrukcji filtrów)
3. 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 . Tak jest jednak w przypadku sygnałów nieskończonych; w analizie sygnałów
takowych nie spotkamy. 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:
A. Losowa zamiana kolejności próbek w analizowanych sygnałach. Jeżeli pomiędzy dwoma
B.
C.
D.
E.
F.
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.
Obliczenie funkcji korelacji wzajemnej dla sygnałów policzonych w punkcie A.
Powtórzenie kroków A i B wiele (np. 1000) razy.
Oszacowanie 95 % przedziału ufności dla wartości średniej funkcji korelacji wzajemnej
dla danego przesunięcia korzystając z otrzymanego w kroku C empirycznego rozkładu
wartości tych funkcji dla sygnałów niezależnych.
Powtórzenie kroków A-D dla kolejnych przesunięć .
Sprawdzenie, dla których przesunięć 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.
Procedura opisana powyżej ma jednak zasadniczą wadę. Staramy się w niej oszacować
poziom przypadkowych korelacji pomiędzy dwoma sygnałami dla kolejnych przesunięć , 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. Występuje tu zatem problem wielokrotnych porównań.
Przypominamy, iż może to doprowadzić do przypadkowego uznania wyników jako „istotnych”
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 będzie mniejszy od 5% co jest przesłanką za odrzuceniem
hipotezy zerowej.
W przypadku wykonywania serii testów należałoby więc zastosować odpowiednie poprawki,
np. korektę Bonferroniego czy 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:
A. 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.
B. Obliczenie funkcji korelacji dla sygnałów otrzymanych w punkcie A.
C. 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).
D. 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.
E. Wyznaczenie 95 centyla rozkładu wartości maksymalnych.
F. 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ęć wartości funkcji korelacji przekraczają
estymowane progi istotności statystycznej.
Przykład wyniku analizy korelacji wzajemnych dla sygnału niefiltrowanego z naniesionymi
granicami możliwych fluktuacji.
Wzajemna gęstość widmowa sygnałów
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:
W celu dalszego omówienia własności funkcji wzajemnej mocy widmowej sygnałów funkcję tę
zapiszemy w postaci:
Wartość bezwzględna funkcji wzajemnej gęstości mocy widmowej osiąga największą wartość dla
częstości, w których sygnały
i
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 —
. 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:
Zadanie 4
Zaimplementuj funkcję obliczającą wzajemną gęstość widmową dla pary kanałów. 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ą.

Podobne dokumenty