Analiza szeregów czasowych: 3. Filtr Wienera P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2006/07
Filtr Wienera ( filtr optymalny ) Przypuśćmy, że pewien układ (fizyczny, biologiczny, socjoekonomiczny,... ) wysyła sygnał u(t). Odbieramy go za pomoca urzadzenia o znanej funkcji odpowiedzi r(t). Dodatkowo, sygnał jest zaszumiony, przy czym szum modelujemy poprzez biały szum gaussowski (GWN, Gaussian white noise), co jest naturalne, jeśli źródłem szumu sa duże układy fizyczne w stanie bliskim równowadze termodynamicznej (np. prady termiczne w urzadzeniu elektronicznym, zakłócenia fal radiowych spowodowane rozpraszaniem w atmosferze itp). Zakładamy też, że szum nie jest skorelowany z sygnałem. Na wyjściu odbiornika widzimy ostatecznie c(t) = s(t) + η(t) = r(t τ)u(τ) dτ + η(t). (1) 3. Filtr Wienera 2
Mierzymy c(t), znamy r(t), czynimy pewne założenia odnośnie η(t) co możemy powiedzieć o u(t)? Chcemy skonstruować pewien estymator ũ(t), optymalny w sensie najmniejszych kwadratów : u(t) ũ(t) 2 dt = minimum, (2) gdzie oznacza średniowanie po realizacjach szumu. Z tożsamości Parsevala wynika, że także dla transformat Fouriera zachodzić będzie U(f) Ũ(f) 2 df = minimum. (3) Bo błędy sa gaussowskie! 3. Filtr Wienera 3
S(f) = U(f)R(f). Postulujemy następujac a postać szukanego estymatora w domenie Fourierowskiej: Ũ(f) = C(f)Φ(f) R(f). (4) Ostatecznie musimy zminimalizować ze względu na Φ wyrażenie 3. Filtr Wienera 4
= = [S(f) + N(f)]Φ(f) R(f) S(f) R(f) R(f) 2 (S(f) + N(f))Φ(f) S(f) 2 df R(f) 2 S(f) 2 Φ(f) 2 + S(f)N (f) Φ(f) 2 + S(f) N(f) Φ(f) 2 + N(f) 2 Φ(f) 2 S(f) 2 Φ(f) N(f)S (f)φ(f) S(f) 2 Φ (f) N (f)s(f)φ (f) + S(f) 2 df (5) 2 df 3. Filtr Wienera 5
Zaznaczone wyrażenia to wartości oczekiwane iloczynu sygnału i szumu znikaja na mocy założenia o niezależności szumu od sygnału. Pozostaje R(f) 2 ( S(f) 2 ( Φ(f) 2 Φ(f) Φ (f) + 1 ) + N(f) 2 Φ(f) 2) df R(f) 2 ( S(f) 2 1 Φ(f) 2 + N(f) 2 Φ(f) 2) df = minimum. (6) 3. Filtr Wienera 6
Zakładajac, że Φ jest rzeczywiste, (6) osiaga minimum dla Φ(f) = S(f) 2 S(f) 2 + N(f) 2. (7) Jest to tak zwany filtr Wienera, zwany także filtrem optymalnym. W wyrażeniu (7) średni poziom szumu znajdujemy badajac widmo mocy. Filtr staje się bliski zeru tam, gdzie prawie nie ma sygnału i bliski jedynce tam, gdzie prawie nie ma szumu. W ogólności jest to filtracja stratna. 3. Filtr Wienera 7
Uwaga! W praktyce tak S(f) 2, jak i N(f) 2 próbujemy odgadnać na podstawie widma mocy sygnału. Wówczas zamiast (7) stosujemy Φ(f) = P (f) ˆN(f) gdy P (f) > N(f), P (f) 0 w przeciwnym wypadku. (8) P (f) oznacza widmo mocy pełnego sygnału c(t), zaś ˆN(f) to przybliżone widmo mocy szumu, na ogół dopasowane do składowych wysokoczęstotliwościowych. Ważne, że Φ(f) 0. P (f) może być obliczane z wykorzystaniem jakiejś funkcji okna. 3. Filtr Wienera 8
Zaszumiony sygnał i sygnał czysty, na którym go oparto 4 3 2 1 s(t) 0-1 -2-3 sygnał zaszumiony sygnał czysty -4 0 1 2 3 4 5 6 7 8 t 3. Filtr Wienera 9
Filtr Wienera oparty na widmie z oknem prostokatnym 4 3 2 1 s(t) 0-1 -2-3 sygnał odszumiony, okno prostokatne sygnał czysty -4 0 1 2 3 4 5 6 7 8 t 3. Filtr Wienera 10
Filtr Wienera oparty na widmie z oknem Welcha 4 3 2 1 s(t) 0-1 -2-3 sygnał odszumiony, okno Welcha sygnał czysty -4 0 1 2 3 4 5 6 7 8 t 3. Filtr Wienera 11
Zauważmy, iż naiwne odszumianie P (f) < próg = C(f) = 0, daje złe rezultaty: 4 3 2 1 s(t) 0-1 -2-3 sygnał czysty naiwne odszumianie -4 0 1 2 3 4 5 6 7 8 3. Filtr Wienera 12 t
Częsta postać szumu Widmo szumu często ma postać N(f) = N 0 1 + f a. (9) f 0 N 0, f 0, a uzyskujemy z dopasowania funkcji postaci (9) do danych doświadczalnych. 10 1 10 0 N 0 = 1, f 0 = 1, a = 2 N 0 = 1, f 0 = 4, a = 2 N 0 = 1/2, f 0 = 1, a = 3/2 N(f) 10-1 10-2 10-3 10-4 10-5 Dla f 1, N(f) f a. W skali podwójnie logarytmicznej ogon jest prosta o nachyleniu a. Musi zachodzić a > 1. Jeżeli 1 < a < 2, niekiedy mówi się o szumie fraktalnym. 10-6 2-6 2-4 2-2 2 0 2 2 2 4 2 6 2 8 f 3. Filtr Wienera 13
Przykład 10-1 10-2 10-3 10-4 P(f) 10-5 10-6 10-7 10-8 2-8 2-6 2-4 2-2 2 0 2 2 2 4 f Dopasowana krzywa (9) z parametrami N 0 = 9.5 10 4, f 0 = 5/32, a = 1.9. 3. Filtr Wienera 14
W praktyce widma sa gorszej jakości... 10-1 10-2 10-3 10-4 10-5 P(f) 10-6 10-7 10-8 10-9 10-10 10-11 10-12 2-6 2-5 2-4 2-3 2-2 2-1 2 0 2 1 2 2 2 3 2 4 f Dopasowana krzywa (9) z parametrami N 0 = 9.5 10 4, f 0 = 5/32, a = 1.9. 3. Filtr Wienera 15
Sygnał przed filtracja 1.4 1.2 1.0 0.8 0.6 g(t) 0.4 0.2 0.0-0.2-0.4 1.2 1.0 0.8 0.6 0.4 0.2 64 80 96 112 128 64 128 192 256 320 384 448 512 t 3. Filtr Wienera 16
Ten sam sygnał po filtracji 1.4 1.2 1.0 0.8 0.6 g(t) 0.4 0.2 0.0-0.2-0.4 1.2 1.0 0.8 0.6 0.4 0.2 64 80 96 112 128 64 128 192 256 320 384 448 512 t 3. Filtr Wienera 17
Widmo sygnału przefiltrowanego 10-1 10-2 10-3 10-4 P(f) 10-5 10-6 10-7 10-8 2-6 2-5 2-4 2-3 2-2 2-1 2 0 2 1 2 2 2 3 2 4 f 3. Filtr Wienera 18
Filtrowanie przefiltrowanego: Kaskadowy filtr Wienera 1.4 1.2 1.0 0.8 0.6 g(t) 0.4 0.2 0.0-0.2-0.4 1.2 1.0 0.8 0.6 0.4 0.2 64 80 96 112 128 64 128 192 256 320 384 448 512 t 3. Filtr Wienera 19
Widmo sygnału po filtrze kaskadowym 10-1 10-2 10-3 10-4 P(f) 10-5 10-6 10-7 10-8 2-6 2-5 2-4 2-3 2-2 2-1 2 0 2 1 2 2 2 3 2 4 f 3. Filtr Wienera 20
Filtr Wienera i szumy niegaussowskie Filtr Wienera wyprowadzony był przy założeniu, że szum jest gaussowski tylko wówczas metoda najmniejszych kwadratów odpowiada metodzie największej wiarygodności! Jak zachowuje się filtr Wienera, gdy szum jest niegaussowski, a w szczególności, gdy drugi (albo i pierwszy) moment szumu nie istnieje, to znaczy gdy szum ma ciężkie ogony? Na następnych rysunkach analizujemy proces generowany przez g(t) = sin 2πt + 1 ζ(t), (10) 16 gdzie ζ(t) sa losowane z rozkładu Cauchy ego oraz ζ(t 1 )ζ(t 2 ) = 0 dla t 1 t 2. 3. Filtr Wienera 21
I realizacja: Sygnał przed filtracja 100 0-100 -200-300 g(t) -400-500 -600-700 -800 30 10 20-10 0-20 -30-40 -50-60 -70 4 5 6 7 8-900 0 5 10 15 20 25 30 t 3. Filtr Wienera 22
I realizacja: Widmo mocy sygnału nieprzefiltrowanego 10 1 10 0 10-1 10-2 P(f) 10-3 10-4 10-5 10-6 2-4 2-2 2 0 2 2 2 4 2 6 2 8 f 3. Filtr Wienera 23
I realizacja: Sygnał po filtracji 10 5 0-5 g(t) -10-15 -20-25 4 2 0-2 -4-6 -8-10 -12-14 4 5 6 7 8-30 0 5 10 15 20 25 30 t 3. Filtr Wienera 24
I realizacja: Sygnał po dwukrotnej filtracji 1.0 0.5 0.0-0.5 g(t) -1.0-1.5-2.0-2.5 0.6 0.2-0.2-0.6-1.0 4 5 6 7 8-3.0 0 5 10 15 20 25 30 t 3. Filtr Wienera 25
Wyglada to całkiem nieźle. Co prawda sygnał ma tylko jedna, i to znana częstotliwość, wiadomo więc czego szukać. Mimo to proszę zauważyć, że (i) amplituda sygnału spadła (filtr jest stratny), oraz (ii) średnia oczyszczonego sygnału jest różna od zera. Ale uwaga: Przyjrzyjmy się jednak innej realizacji tego samego procesu (10): 3. Filtr Wienera 26
II realizacja: Sygnał przed filtracja 4500 g(t) 4000 3500 3000 2500 2000 1500 1000 15 10 5 0-5 -10-15 4 5 6 7 8 500 0-500 -1000 0 5 10 15 20 25 30 t 3. Filtr Wienera 27
II realizacja: Widmo mocy sygnału nieprzefiltrowanego 10 1 10 0 10-1 P(f) 10-2 10-3 10-4 10-5 2-4 2-2 2 0 2 2 2 4 2 6 2 8 f 3. Filtr Wienera 28
II realizacja: Sygnał po filtracji 3500 g(t) 3000 2500 2000 1500 1000 70 60 50 40 30 10 20-10 0-20 -30-40 4 5 6 7 8 500 0-500 -1000 0 5 10 15 20 25 30 t Filtracja spowodowała pogorszenie jakości sygnału! 3. Filtr Wienera 29
Wnioski? Jeśli drugi moment szumu zaburzajacego sygnał nie istnieje (w szczególności, jeśli szum jest procesem Levy ego), może się zdarzyć, że filtr Wienera wspaniale oczyści sygnał. Może się jednak zdarzyć i tak, że filtr Wienera nie oczyści sygnału, a nawet go pogorszy! Obie te sytuacje moga wystapić dla różnych realizacji tego samego procesu! Nie ma żadnych przesłanek aby a priori oceniać, która z tych sytuacji zajdzie. Jeśli szum jest gaussowski, wiadomo, że filtr prawie na pewno (z prawdopodobieństwem 1 w granicy nieskończonego szeregu) oczyści sygnał. 3. Filtr Wienera 30
Filtracja w domenie fourierowskiej Filtracja: Domnażanie transformaty przez funkcję przejścia g n transformata G n H(f n )G n transformata odwrotna g n gdzie H(f n ) jest funkcja przejścia zadana w zdyskretyzowanych częstotliwościach f n. Zasadnicza wada tego podejścia: Trzeba znać cały szereg, a więc zgromadzić wszystkie dane, przed zastosowaniem filtru. 3. Filtr Wienera 31
Przykład H(f) 1 0.8 0.6 0.4 1 f f c H(f) = 0 f > f c H(f) = 2 exp ( (f/f c ) 4 ) 1 + exp ( (f/f c ) 4) 0.2 0 0 1 2 3 4 f 3. Filtr Wienera 32
2 1 0-1 -2 4 6 8 10 12 14 16 18 2 1 0-1 -2 4 6 8 10 12 14 16 18 2 1 0-1 -2 4 6 8 10 12 14 16 18 Sygnał przed i po filtracjach 3. Filtr Wienera 33
Skad taki dziwny wynik niebieskiej filtracji? 2 1 0-1 -2 4 6 8 10 12 14 16 18 Tym niemniej, przy filtracji w dziedzinie fourierowskiej, nie warto wygładzać filtrów 3. Filtr Wienera 34