Pracownia EEG/EEG wlasnosci EEG spoczynkowego: Różnice pomiędzy wersjami

Z Brain-wiki
Linia 313: Linia 313:
 
Oblicz gęstość widmową mocy sygnału zarejestrowanego w trakcie czuwania z zamkniętymi oczami, korzystając z twierdzenia Chinczyna oraz [[Nieparametryczne_widmo_mocy#Metoda_Welcha | metodą Welcha]].
 
Oblicz gęstość widmową mocy sygnału zarejestrowanego w trakcie czuwania z zamkniętymi oczami, korzystając z twierdzenia Chinczyna oraz [[Nieparametryczne_widmo_mocy#Metoda_Welcha | metodą Welcha]].
 
Znajdź częstość rytmu <math>\alpha</math> dla osoby, która była badana.
 
Znajdź częstość rytmu <math>\alpha</math> dla osoby, która była badana.
 
==Wzajemna gęstość widmowa sygnałów i koherencja==
 
 
====Zadanie 4: Wzajemna gęstość widmowa sygnałów i koherencja====
 
=====Wstęp=====
 
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:
 
 
<equation id="uid122">
 
<math>
 
S_{xy}(f) = \int _{-\infty }^{\infty }\gamma_{xy}(\tau )e^{-2\pi i f \tau}d\tau </math>
 
</equation>
 
 
W celu dalszego omówienia własności funkcji wzajemnej mocy widmowej sygnałów funkcję tę zapiszemy w postaci:
 
 
<equation id="uid123">
 
<math>
 
\begin{array}{l}
 
S_{xy}(f) = |S_{xy}(f)|e^{i\phi _{xy}(f)}\\
 
\\
 
\phi _{xy} = \arg(S_{xy})
 
\end{array} </math>
 
</equation>
 
<!-- \mathrm{arc\,tg}\left[\frac{\mathrm{Im}(S_{xy}(f))}{\mathrm{Re}(S_{xy}(f))}\right]-->
 
 
Wartość bezwzględna funkcji wzajemnej gęstości mocy widmowej osiąga największą wartość dla '''częstości''', w których sygnały <math>x(t)</math> i <math>y(t)</math> 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 &mdash; <math>\phi _{xy}(f)</math>. 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:
 
 
<equation id="uid124">
 
<math>
 
\tau = \frac{\phi _{xy}(f)}{2\pi f}
 
</math>
 
</equation>
 
 
Podobnie jak w przypadku funkcji autokorelacji i korelacji wzajemnej, funkcję wzajemnej gęstości mocy widmowej można znormalizować:
 
 
<equation id="uid125">
 
<math>
 
C_{xy}(f) = \frac{S_{xy}(f)}{\sqrt{S_x(f)S_y(f)}}
 
</math>
 
</equation>
 
 
Znormalizowaną postać funkcji wzajemnej gęstości mocy widmowej nazywamy funkcją ''koherencji''.
 
Koherencja jest wielkością zespoloną. Faza koherencji odzwierciedla różnicę faz pomiędzy dwoma sygnałami. Moduł koherencji reprezentuje stopień synchronizacji sygnałów i zawiera się w przedziale od 0.0 do 1.0. Moduł tej funkcji zawiera się w przedziale od 0 do 1. Wartości 0 odpowiada brak synchronizacji pomiędzy sygnałami, zaś wartości 1 pełna synchronizacja dwóch przebiegów czasowych. Należy również zwrócić uwagę na nazewnictwo - często sam moduł koherencji określany jest jako koherencja, w literaturze anglojęzycznej moduł koherencji posiada jednak odrębną nazwę: Magnitude Square Coherence (MSC). Istotny jest również sposób estymacji modułu koherencji, który wyprowadzono w następnym rozdziale, zaś sam estymator reprezentuje wzór (36).
 
 
=====Kilka słów o koherencji=====
 
Wzór (<xr id="uid125"/>), definiujący ilościową miarę koherencji, nie uwzględnia stochastycznego charakteru sygnałów. Łatwo zauważyć, że bezpośrednie zastosowanie tego wzoru do obliczenia koherencji dwóch sygnałów o tej samej częstości i różniących się jedynie amplitudą oraz fazą, zawsze da wynik równy 1. Prześledźmy to na następującym przykładzie. <br>
 
Dane są dwa sygnały harmoniczne <math>x(t) = A\cos(\Omega t + \phi_x)</math> oraz <math>y(t) = B\cos(\Omega t + \phi_y)</math>.
 
Widmo tych sygnałów, wyrażone za pomocą transformaty Fouriera, będzie miało następującą postać: <br>
 
<br>
 
<math>X(f)=Ae^{-j\phi_x}</math> <br>
 
<br>
 
<math>Y(f)=Be^{-j\phi_y}</math>, <br>
 
<br>
 
zaś ich widmo wzajemne: <br>
 
<br>
 
<math>X(f)\cdot Y^*(f) = A\cdot Be^{-j(\phi_x - \phi_y)}</math>, <br>
 
<br>
 
gdzie: <math>j=\sqrt{-1}</math>, a * oznacza sprzężenie liczby zespolonej. <br>
 
Podstawienie wyrażeń na widmo sygnałów <math>x(t)</math>, <math>y(t)</math> oraz ich widmo wzajemne do wzoru <xr id="id9"/> da koherencję <math>K_{xy}(f) = 1</math> niezależnie od amplitudy sygnałów <math>A</math> i <math>B</math> oraz ich faz <math>\phi_x</math> i <math>\phi_y</math>.
 
<br>
 
<br>
 
W praktyce rzadko jednak mamy do czynienia z sygnałami harmonicznymi. Zwykle mierzone przez nas wielkości mają stochastyczny charakter bądź też ich pomiar jest zaburzany przez różne czynniki.
 
Rozważmy teraz najprostszy model pomiaru sygnału, w którym uwzględniono wpływ zakłóceń w postaci białego szumu. Na wejście układu LTI o funkcji impulsowej opisanej wyrażeniem <math>h(t)</math> podamy sygnał <math>x(t)</math> i widmie danym funkcją <math>X(f)</math>. Układ LTI przetworzy sygnał wejściowy na przebieg <math>y(t)</math> o widmie <math>Y(f)</math>. Z uwagi na zaburzenia <math>n(t)</math> o widmie <math>N(f)</math> towarzyszące pomiarowi aparatura nie zarejestruje sygnał <math>y(t)</math> lecz <math>z(t) = y(t) + n(t)</math>. Opisane zależności możemy opisać za pomocą poniższych wzorów:<br>
 
<br>
 
<math>y(t) = h(t)*x(t)</math> <br>
 
<br>
 
<math>z(t) = y(t) + n(t)</math> <br>
 
<br>
 
gdzie: <math>*</math> - operacja splotu. <br>
 
Dokonując transformacji powyższych wzorów do dziedziny częstości dostajemy:
 
<br>
 
<math>Y(f) = H(f)X(f)</math> <br>
 
<br>
 
<math>Z(f) = Y(f) + N(f)</math> <br>
 
<br>
 
gdzie: <math>H(f) = \textrm{FFT}\left\{h(t)\right\}</math>. <br>
 
<br>
 
Wzory te można zapisać w postaci jednej zależności:<br>
 
<equation id="LTI_1">
 
<math>Z(f) = H(f)X(f) + N(f)</math>
 
</equation>
 
Załóżmy teraz, że w celu redukcji składowej losowej <math>n(t)</math> wielokrotnie powtarzamy w tych samych warunkach pomiar sygnału <math>z(t)</math>. Za każdym razem na wejściu układu LTI występuje ten sam sygnał <math>x(t)</math>. Układ LTI również przetwarza sygnał wejściowy w ten sam sposób, jednak z uwagi na stochastyczny charakter zakłóceń, otrzymujemy kolejne różniące się do siebie przebiegi <math>z_i(t)</math>. Niech liczbę powtórzeń pomiaru wynosi <math>K</math>. Możemy napisać <math>K</math> równań opisujących relację pomiędzy sygnałem wejściowym, wyjściowym i mierzonym:
 
<equation id="LTI_2">
 
<math>
 
\begin{array}{l}
 
Z_1(f) = H(f)X(f) + N_1(f) \\
 
\\
 
Z_2(f) = H(f)X(f) + N_2(f) \\
 
\\
 
\vdots \\
 
\\
 
Z_K(f) = H(f)X(f) + N_K(f) \\
 
\end{array}
 
</math>
 
</equation>
 
Przemnóżmy teraz równania (<xr id="LTI_2"/>) obustronnie przez sprzężone widmo sygnału rejestrowanego <math>Z(f)</math>. Dla uproszczenia zapisu operacji dokonamy na jednym, dowolnie wybranym <math>i</math>-tym równaniu:
 
<equation id="LTI_3">
 
<math>Z_i(f)Z_i^*(f) = \left\{H(f)X(f) + N_i(f)\right\}\cdot Z_i^*(f)</math>
 
</equation>
 
Na równaniu (<xr id="LTI_3"/>) dokonamy kolejno następujących przekształceń:
 
<equation id="equ_1">
 
<math>|Z_i(f)|^2 = \left\{H(f)X(f) + N_i(f)\right\}\cdot\left\{H^*(f)X^*(f) + N_i^*(f)\right\}</math>
 
</equation>
 
<br>
 
<equation id="LTI_4">
 
<math>|Z_i(f)|^2 = |H(f)|^2|X(f)|^2 + |N_i(f)|^2 + H(f)X(f)N_i^*(f) + N_i(f)H^*(f)X^*(f)</math>
 
</equation>
 
Dokonajmy teraz uśredniania (<xr id="LTI_4"/>) po kolejnych powtórzeniach pomiaru.
 
<equation id="LTI_5">
 
<math>\left\langle|Z_i(f)|^2\right\rangle= \left\langle|H(f)|^2|X(f)|^2\right\rangle + \left\langle|N_i(f)|^2\right\rangle + \left\langle H(f)X(f)N_i^*(f)\right\rangle + \left\langle N_i(f)H^*(f)X^*(f)\right\rangle</math>
 
</equation>
 
Zakładamy, że szum <math>N(f)</math> jest nieskorelowany z sygnałem wejściowym, w związku z czym w wyniku uśredniania dwa ostatnie składniki równania (<xr id="LTI_5"/>) zostaną zredukowane: <math>\left\langle H(f)X(f)N_i^*(f)\right\rangle \approx 0 </math>, <math>\left\langle N_i(f)H^*(f)X^*(f)\right\rangle \approx 0 </math>. Założyliśmy również za każdym razem na wejściu układu liniowego pojawia się ten sam sygnał <math>x(t)</math>, sam układ zaś nie zmienia swoich właściwości, w zwiazku z czym: <math>\left\langle|H(f)|^2|X(f)|^2\right\rangle = |H(f)|^2|X(f)|^2 </math>. Ostatecznie uzyskaliśmy następującą zależność:
 
<equation id="LTI_6">
 
<math>\left\langle|Z_i(f)|^2\right\rangle= |H(f)|^2|X(f)|^2 + \left\langle|N_i(f)|^2\right\rangle</math>
 
</equation>
 
Dokonajmy kolejnego przekształcenia równania (<xr id="LTI_2"/>). tym razem przemnożymy obustronnie każde równanie przez sprzężone widmo sygnału wejściowego. W celu uproszczenia zapisu, operację tę wykonamy tylko na jednym dowolnie wybranym <math>i</math>-tym równaniu:
 
<equation id="LTI_7">
 
<math>Z_i(f)X^*(f) = \left\{H(f)X(f) + N_i(f)\right\}\cdot X^*(f)</math>
 
</equation>,
 
gdzie: <math>Z_i(f)X^*(f)</math> - to widmo wzajemne sygnałów <math>x(t)</math> i <math>y(t)</math>.
 
Proste przekształcenie równania (<xr id="LTI_7"/>) prowadzi do następującego wyrażenia:
 
<equation id="LTI_8">
 
<math>Z_i(f)X^*(f) = H(f)|X(f)|^2 + N_i(f)X^*(f)</math>
 
</equation>
 
Uśrednimy teraz równanie (<xr id="LTI_8"/>) po kolejnych realizacjach pomiaru oraz obliczmy moduł uzyskanego wyniku:
 
<equation id="LTI_9">
 
<math>|\left\langle Z_i(f)X^*(f)\right\rangle| = |H(f)||X(f)|^2 + |\left\langle N_i(f)X^*(f)\right\rangle|</math>
 
</equation>
 
Brak korelacji pomiędzy szumem <math>n(t)</math> a sygnałem wejściowym <math>x(t)</math> powoduje, że w wyniku uśredniania zostaje zredukowany drugi składnik równania (<xr id="LTI_9"/>): <math>\left\langle N_i(f)X^*(f)\right\rangle \approx 0</math>. Ostatecznie uzyskujemy następującą zależność:
 
<equation id="LTI_10">
 
<math>|\left\langle Z_i(f)X^*(f)\right\rangle| = |H(f)||X(f)|^2</math>
 
</equation>
 
która wraz z równaniem  (<xr id="LTI_6"/>) tworzy układ równań opisujących relacje pomiędzy widmami i widmami mocy sygnałów występujących w naszym modelu:
 
<equation id="LTI_11">
 
<math>
 
\left\langle Z_i(f)X^*(f)\right\rangle = |H(f)| |X(f)|^2
 
</math>
 
</equation>
 
::<math>
 
\left\langle|Z_i(f)|^2\right\rangle= |H(f)|^2 |X(f)|^2 + \left\langle|N_i(f)|^2\right\rangle
 
</math>
 
Z pierwszej zależności równania (<xr id="LTI_11"/>) wyznaczmy funkcję przejścia <math>|H(f)|</math>:
 
<br>
 
<br>
 
<math>|H(f)| = \frac{|\left\langle Z_i(f)X^*(f)\right\rangle|}{|X(f)|^2}</math>
 
<br>
 
<br>
 
i podstawy do drugiego równania układu (<xr id="LTI_11"/>). Otrzymujemy:
 
<equation id="LTI_12">
 
<math>
 
\left\langle|Z_i(f)|^2\right\rangle = \left[\frac{|\left\langle Z_i(f)X^*(f)\right\rangle|}{|X(f)|^2}\right]^2 |X(f)|^2 + \left\langle|N_i(f)|^2\right\rangle
 
</math>
 
</equation>
 
Równanie (<xr id="LTI_12"/>) możemy przekształcić do postaci:
 
<equation id="LTI_13">
 
<math>
 
\left\langle|N_i(f)|^2\right\rangle = \left\langle|Z_i(f)|^2\right\rangle - \frac{|\left\langle Z_i(f)X^*(f)\right\rangle|^2}{|X(f)|^2}
 
</math>
 
</equation>
 
a następnie do zależności:
 
<equation id="LTI_14">
 
<math>
 
\left\langle|N_i(f)|^2\right\rangle = \left\langle|Z_i(f)|^2\right\rangle\left[1 - \frac{|\left\langle Z_i(f)X^*(f)\right\rangle|^2}{|X(f)|^2\left\langle|Z_i(f)|^2\right\rangle}\right]
 
</math>
 
</equation>
 
Wyrażenie: <br>
 
<equation id="LTI_15">
 
<math>
 
\mathrm{MSC}_{xz}(f) = \frac{|\left\langle Z_i(f)X^*(f)\right\rangle|^2}{|X(f)|^2\left\langle|Z_i(f)|^2\right\rangle}
 
</math>
 
</equation>
 
nazywana jest '''M'''agnitude '''S'''quare '''C'''oherence pomiędzy sygnałami <math>x(t)</math> i <math>z(t)</math>. W przypadku, gdy wielkość ta jest równa 1 sygnały <math>x(t)</math> i <math>z(t)</math> są w pełni  zsynchronizowane. Wielkość tę uzyskaliśmy dla sygnału na wejściu układu LTI oraz sygnału mierzonego na wyjściu. Funkcję MSC można jednak stosować do dowolnych dwóch sygnałów stochastycznych <math>x(t)</math> i <math>y(t)</math> przy założeniu, że istnieją pomiędzy nimi liniowe zależności:
 
<equation id="LTI_16">
 
<math>
 
\mathrm{MSC}_{xy}(f) = \frac{|\left\langle X_i(f)Y_i^*(f)\right\rangle|^2}{\left\langle|X_i(f)|^2\right\rangle\left\langle|Y_i(f)|^2\right\rangle}
 
</math>
 
</equation>
 
gdzie:
 
<math>< ></math> - oznacza wartość średnia,
 
<math>X_i(f), Y_i(f) </math> to zespolone widma (policzone np. za pomocą Transformaty Fouriera), wyznaczone odpowiednio dla sygnałów X oraz Y w "i-tej" realizacji eksperymentu lub w "i-tym" oknie czasowym, na który te sygnały zostały podzielone. Wzór (36) reprezentuje estymator wartości bezwzględnej koherencji. Opierając się na podobnym co wyżej rozumowaniu, można wyprowadzić estymator funkcji koherencji, o następującej postaci:
 
<equation id="LTI_17">
 
<math>
 
\mathrm{C}_{xy}(f) = \frac{\left\langle X_i(f)Y_i^*(f)\right\rangle}{(\left\langle|X_i(f)|^2\right\rangle\left\langle|Y_i(f)|^2\right\rangle)^\frac{1}{2}}
 
</math>
 
</equation>
 
Faza koherencji umożliwia nam estymację przesunięcia fazowego pomiędzy sygnałami X i Y, zaś moduł podniesiony do kwadratu funkcji C to MSC.
 
 
=====Polecenie 2=====
 
Zaimplementuj funkcję obliczającą koherencję dla pary kanałów.
 
<!--Niech argumentami tej funkcji będą dwa wektory zawierające sygnały, zakres częstości, częstość próbkowania. -->
 
Oblicz i narysuj funkcję koherencji dla kolejnych par kanałów (tych samych co w zadaniu 3). Wyniki zaprezentuj w postaci kwadratowej macierzy rysunków. Ponieważ koherencja jest funkcją zespoloną, dobrze jest zaprezentować osobno jej wartość i fazę. Uzyskane wartości bezwzględne koherencje narysuj nad przekątną tej macierzy, a fazę pod przekątną. W celu obliczenia modułu koherencji i jej fazy wykorzystaj wzór 36 (wygenerowane sygnały należy podzielić na pewną liczbę odcinków)
 

Wersja z 13:13, 23 wrz 2015

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 [math]x(t)[/math] i [math]x(t+\tau )[/math] otrzymamy tę samą wartość, jak dla przypadku obliczania funkcji autokorelacji pomiędzy momentami [math]x(t + T)[/math] i [math]x(t + T+\tau )[/math], gdzie [math]T[/math] to dowolny przedział czasu. Innymi słowy, funkcja autokorelacji procesu stacjonarnego zależy tylko od odstępu czasu pomiędzy próbkami [math]\tau[/math], 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 [math]t[/math] w którym jest obliczana. Estymator funkcji autokowariancji uzyskuje się poprzez obliczanie iloczynów wartości sygnału [math]x[/math] w chwilach czasu [math]t[/math] czyli [math]x(t)[/math] i wartości sygnału [math]x[/math] w chwili czasu t+τ czyli [math]x(t+\tau)[/math] i uśredniając wartości iloczynów po czasie [math]T[/math]:

[math] \gamma (\tau) = \mathrm{cov}(x(t),x(t-\tau ))=\mathrm{E}[(x(t)-\mu )(x(t-\tau )-\mu )] [/math]

gdzie:

[math] \mu = \mathrm{E}[x(t)] [/math]

W przypadku sygnałów ciągłych estymację tę można zapisać w poniższy sposób:

[math] \gamma (\tau ) = \frac{1}{T}\int _0^{T}(x(t)-\mu )(x(t-\tau )-\mu )dt [/math]

natomiast dla sygnałów dyskretnych jako:

[math] \gamma (k) = \frac{1}{N-1}\sum _{i=0}^{N-k}(x(i+k)-x_s)(x(i)-x_s) [/math]

gdzie:

[math] x_s = \frac{\sum _{i=0}^{N}x(i)}{N} [/math]

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:

[math] \rho (k) = \frac{\gamma (\tau )}{\sigma^2} [/math]

gdzie:

[math] \sigma ^2 = \mathrm{E}[(x(t)-\mu )^2] [/math]

Wariancję sygnału ([math]\gamma (0)=\sigma ^2[/math]) można wyrazić przez funkcję autokowariancji dla przesunięcia [math]\tau =0[/math]. Wynika z tego, że funkcja korelacji przyjmuje wartości z zakresu [math][-1, \, 1][/math]. Ostatecznie estymator funkcji autokorelacji można zapisać jak poniżej:

[math] \rho(k) = \frac{\gamma (k)}{\gamma (0)} [/math]

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 [math]\tau =0[/math].


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 [math]\tau [/math]. Oś [math]\tau [/math] 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:

[math] S(f) = \int _{-\infty }^{\infty }\gamma (\tau )e^{-2\pi i f \tau}d\tau [/math]

gdzie:

  • [math]f[/math] — częstość
  • [math]S(f)[/math] — gęstość widmowa mocy


Polecenie 1

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):

Wywołanie przykładowe:

t= np.arange(0,1,0.1)
x = np.sin(2*np.pi*2*t)
f = np.arange(-5,5,1)
X,f = fourier(x,f,10.0)
print X

Powinno dać:

[  3.15975012e-16 +5.19678720e-16j   1.05325004e-16 +3.51083347e-16j
 -4.56408351e-16 -2.10650008e-16j   4.91516686e-16 +1.58113883e+00j
 -1.40433339e-16 -7.02166694e-17j   0.00000000e+00 +0.00000000e+00j
 -1.40433339e-16 +7.02166694e-17j   4.91516686e-16 -1.58113883e+00j
 -4.56408351e-16 +2.10650008e-16j   1.05325004e-16 -3.51083347e-16j]

Natomiast wywołanie:

t= np.arange(0,1,0.1)
x = np.sin(2*np.pi*2*t)
f = np.arange(-5,5,0.01)
X = fourier(x,f,10.0)
py.plot(f,np.abs(X))
py.show()

Powinno wytworzyć rysunek:

Fourier test.png


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 [math]\alpha[/math] dla osoby, która była badana.