Strona główna Przetwarzanie Sygnałów Transformata falkowa — Haar i Daubechies

〰️ Transformata falkowa — Haar i Daubechies

Rozłóż sygnał dyskretną transformatą falkową (DWT). Filtry Haara i Daubechies-4 dzielą sygnał na współczynniki aproksymacji i detalu. Zobacz analizę wielorozdzielczą na skalogramie.

Przetwarzanie Sygnałów2DŚredni60 FPS
wavelet-transform ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

Jak to działa

Dyskretna transformata falkowa (DWT) stosuje do sygnału parę filtrów — dolnoprzepustowy filtr skalujący h oraz górnoprzepustowy filtr falkowy g — a następnie próbkuje w dół z współczynnikiem 2. Każdy poziom dzieli poprzednią aproksymację na grubszą aproksymację (cA) i pasmo detalu (cD). To szybki algorytm piramidalny Mallata.

cA[n] = Σ h[k] · x[2n+1 − k] (dolnoprzepustowy, próbkowanie w dół) cD[n] = Σ g[k] · x[2n+1 − k] (górnoprzepustowy, próbkowanie w dół) Haar: h = [1/√2, 1/√2], g = [−1/√2, 1/√2] DB4: h = [(1+√3)/4√2, (3+√3)/4√2, (3−√3)/4√2, (1−√3)/4√2] IDWT: x[i] = Σ cA[n]·h[2n+1−i] + Σ cD[n]·g[2n+1−i]

Skalogram wizualizuje amplitudę współczynników falkowych jako mapę cieplną w funkcji czasu i skali (poziomu). Symulator uruchamia następnie odpowiadający bank syntezy — powyższą odwrotną DWT, będącą sprzężeniem etapu analizy, ponieważ Haar i Daubechies są ortogonalnymi bankami filtrów z g[k] = (−1)ᵏ·h[Lf−1−k] — i rysuje rekonstrukcję (bursztynową) na tle oryginału (niebieskiego). Bez progowania obie krzywe pokrywają się, a odczyt „Błąd rekonstrukcji (wzgl. L2)” pozostaje na poziomie precyzji maszynowej, rzędu 1e-16. Podnieś suwak Próg detalu, a małe współczynniki detalu zostaną wyzerowane: błąd rośnie, bursztynowa krzywa odrywa się od niebieskiej i obserwujesz kompresję/odszumianie falkowe w działaniu.

Najczęściej zadawane pytania

Czym jest dyskretna transformata falkowa?

Dyskretna transformata falkowa (DWT) rozkłada sygnał na współczynniki aproksymacji i detalu na wielu poziomach rozdzielczości przy użyciu funkcji skalującej i falkowej.

Jak działa falka Haara?

Falka Haara wykorzystuje prostą parę filtrów: uśredniający (dolnoprzepustowy) i różnicujący (górnoprzepustowy). To najprostsza falka ortogonalna, dzieląca sygnał na zgrubne aproksymacje i drobne detale.

Czym są falki Daubechies?

Falki Daubechies (db2, db4 itd.) to ortogonalne falki o zwartym nośniku i znikających momentach. Zapewniają gładszy rozkład niż falka Haara, kosztem niewielkiego przesunięcia fazowego.

Czym jest analiza wielorozdzielcza?

Analiza wielorozdzielcza (MRA) rozkłada sygnał na zagnieżdżone podprzestrzenie o różnych skalach, umożliwiając jednoczesną lokalizację w czasie i częstotliwości — czego transformata Fouriera nie potrafi zapewnić.

Czym jest skalogram?

Skalogram to dwuwymiarowy wykres energii współczynników falkowych w funkcji czasu i skali. Jasne obszary wskazują duże współczynniki falkowe, ujawniając zlokalizowaną w czasie treść częstotliwościową.

Jaka jest różnica między DWT a STFT?

Krótkoczasowa transformata Fouriera (STFT) używa stałego okna, dając jednolitą rozdzielczość czasowo-częstotliwościową. DWT wykorzystuje falki o zmiennej szerokości: wysoka częstotliwość → wąskie okno czasowe, niska częstotliwość → szerokie okno.

Czym są znikające momenty?

Falka o N znikających momentach jest ortogonalna do wielomianów stopnia do N-1. Więcej znikających momentów oznacza gładsze falki, skuteczniej kompresujące gładkie sygnały.

Jak DWT jest wykorzystywana w JPEG 2000?

JPEG 2000 wykorzystuje dwuortogonalną falkę Cohena-Daubechies-Feauveau 9/7 (CDF 9/7) do kompresji stratnej oraz falkę 5/3 do kompresji bezstratnej, zastępując DCT stosowaną w JPEG.

Czym jest progowanie współczynników?

Progowanie zeruje małe współczynniki detalu falkowego. Progowanie twarde zeruje wszystkie współczynniki poniżej progu; progowanie miękkie dodatkowo zmniejsza duże współczynniki. Stosowane do odszumiania.

Czy DWT można dokładnie odwrócić?

Tak. Odwrotna DWT (IDWT) dokładnie odtwarza oryginalny sygnał ze współczynników aproksymacji i detalu przy użyciu sprzężonych filtrów zwierciadlanych, o ile żaden współczynnik nie został odrzucony ani skwantowany.

O tej symulacji

Ta symulacja uruchamia algorytm piramidalny Mallata na syntetycznym sygnale o 256 próbkach, wielokrotnie splatając go z parą filtrów dolno-/górnoprzepustowych i próbkując w dół z współczynnikiem 2, aby poziom po poziomie wydobyć współczynniki aproksymacji i detalu. Przełączanie między bankami filtrów Haara i Daubechies-4 lub między sygnałami sinusoidalnym, ćwierkającym, skokowym i zaszumionym bezpośrednio pokazuje, jak gładkość filtru i struktura sygnału kształtują powstały skalogram.

🔬 Co pokazuje

Oryginalny przebieg (niebieski) z naniesioną na niego rekonstrukcją odwrotnej DWT (bursztynową), powyżej kolorowego skalogramu, którego wiersze to amplitudy współczynników detalu na każdym poziomie rozkładu — lub, po przełączeniu widoku, ułożone w stos wykresy liniowe aproksymacji i każdego pasma detalu osobno.

🎮 Jak korzystać

Wybierz falkę Haara lub Daubechies-4 oraz typ sygnału z list rozwijanych, przeciągnij suwaki liczby poziomów rozkładu i częstotliwości sygnału, podnieś Próg detalu, aby odrzucić małe współczynniki i obserwować rosnący błąd rekonstrukcji, kliknij Przebuduj, aby przeliczyć, i naciśnij Przełącz widok (lub klawisz I), aby przełączać się między skalogramem a wyświetlaniem wierszy współczynników.

💡 Czy wiesz, że?

W odróżnieniu od transformaty Fouriera, która na każdej częstotliwości używa tego samego, stałego okna, niejawne okno transformaty falkowej automatycznie zwęża się przy wysokich częstotliwościach i poszerza przy niskich — dlatego właśnie sygnał typu ćwierk (chirp, o rosnącej w czasie częstotliwości) rozświetla różne poziomy skalogramu w różnych momentach, zamiast rozmazywać się na całej osi czasu.

Najczęściej zadawane pytania

Dlaczego przełączenie na sygnał skokowy rozświetla tak wiele poziomów detalu naraz?

Ostra nieciągłość zawiera energię w bardzo szerokim zakresie częstotliwości, więc filtr górnoprzepustowy g wydobywa istotne współczynniki detalu dokładnie wokół punktu skoku na każdym poziomie rozkładu — dlatego właśnie skalogram pokazuje jasny pionowy pas w miejscu skoku, przecinający wszystkie wiersze.

Co tak naprawdę zmienia wybór między Haar a Daubechies-4?

Dwuwspółczynnikowy filtr Haara to po prostu para uśredniająco-różnicująca, więc reaguje na gwałtowne zmiany natychmiast, ale daje „blokowe” współczynniki detalu; czterowspółczynnikowy filtr Daubechies-4 ma więcej znikających momentów, dając gładsze, bardziej rozłożone współczynniki dla tego samego sygnału — porównaj oba na sygnale sinusoidalnym, aby zobaczyć wizualną różnicę w gładkości współczynników.

Dlaczego „Energia (rekonstr.)” zgadza się z „Energią (oryg.)” w panelu statystyk?

„Energia (rekonstr.)” to energia sygnału, który faktycznie wychodzi z transformaty odwrotnej: symulator uruchamia bank syntezy (sprzężenie etapu analizy, dokładne, ponieważ Haar i Daubechies są ortogonalnymi bankami filtrów) i mierzy zrekonstruowane próbki. Przy progu detalu równym 0 ta rekonstrukcja jest dokładna, więc energie się zgadzają, a odczyt „Błąd rekonstrukcji (wzgl. L2)” pozostaje na poziomie precyzji maszynowej — rzędu 1e-16. Twierdzenie Parsevala jest powodem, dla którego współczynniki niosą tę samą energię co sygnał; odczyt jest tego dowodem, a nie założeniem.

Co suwak „Próg detalu” robi z rekonstrukcją?

Twardo progowuje współczynniki detalu: każdy współczynnik mniejszy niż dany procent największego zostaje wyzerowany przed uruchomieniem transformaty odwrotnej. Przy 0% nic nie zostaje odrzucone, a rekonstrukcja jest bezstratna (błąd ≈ 1e-16). Podnieś próg, a zaczniesz tracić informacje — wskaźnik „Wyzerowane współczynniki detalu” rośnie, błąd rekonstrukcji zwiększa się od 1e-16 do kilku procent i więcej, a bursztynowa krzywa rekonstrukcji wyraźnie odrywa się od niebieskiego oryginału. Ten kompromis — zachowanie kilku dużych współczynników i odrzucenie wielu małych — to dokładnie sposób działania kompresji i odszumiania falkowego.

Dlaczego zwiększanie liczby poziomów rozkładu przestaje mieć efekt po pewnym momencie?

Każdy poziom zmniejsza o połowę długość aproksymacji poprzez próbkowanie w dół, a pętla w kodzie zatrzymuje się, gdy pozostała aproksymacja jest zbyt krótka do filtrowania — więc powyżej mniej więcej log₂(256)=8 poziomów nie ma już nic do rozłożenia, dlatego suwak poziomów jest ograniczony znacznie poniżej tej wartości.

Dlaczego zaszumiony sygnał sinusoidalny wciąż pokazuje wyraźny wzorzec w wierszach skalogramu o niższym poziomie?

Losowy szum jest rozłożony w przybliżeniu równomiernie na wszystkich częstotliwościach i pojawia się głównie na najdrobniejszym poziomie detalu (najwyższy wiersz, najkrótsza skala), podczas gdy prawdziwa okresowa struktura fali sinusoidalnej koncentruje energię na grubszych poziomach odpowiadających jej częstotliwości — to rozdzielenie według skali jest tą samą zasadą, którą wykorzystuje odszumianie falkowe.

Podobne symulacje