Znam wiele matematycznych podstaw falek. Jednak przy wdrażaniu algorytmów na komputerze z falkami nie jestem pewien, czy powinienem używać ciągłych czy dyskretnych falek. W rzeczywistości wszystko na komputerze jest oczywiście dyskretne, więc wydaje się oczywiste, że dyskretne falki są właściwym wyborem do cyfrowego przetwarzania sygnałów. Jednak według wikipedii jest to ciągła transformacja falkowa stosowana głównie w (cyfrowej) kompresji obrazu, a także w wielu innych czynnościach związanych z przetwarzaniem danych cyfrowych. Jakie zalety i wady należy wziąć pod uwagę przy podejmowaniu decyzji, czy użyć (przybliżonej) ciągłej transformaty falkowej zamiast (dokładnej) dyskretnej transformaty falkowej do cyfrowego przetwarzania obrazu lub sygnału?
PS (Sprawdzam tutaj założenie) Zakładam, że ciągłe transformaty falkowe są wykorzystywane w przetwarzaniu cyfrowym, po prostu biorąc wartość ciągłej falkowej w równomiernie rozmieszczonych punktach i wykorzystując wynikową sekwencję do obliczeń falkowych. Czy to jest poprawne?
PPS Zazwyczaj wikipedia jest dość precyzyjna w matematyce, więc zakładam, że zastosowania w artykule na temat ciągłych transformacji falkowych są w rzeczywistości aplikacjami ciągłej transformacji falkowej. Z pewnością wspomina o niektórych, które są specjalnie CWT, więc jest oczywiste, że użycie CWT jest pewne w aplikacjach cyfrowych.
źródło
Bardzo powszechne, ale niefortunne błędne rozumowanie w dziedzinie falek ma związek ze źle sformułowaną terminologią „ciągłych transformacji falkowych”.
Po pierwsze: ciągła transformata falkowa (CWT) i dyskretna transformata falkowa (DWT) są zarówno cyfrowymi transformacjami punkt po punkcie, które można łatwo zaimplementować na komputerze.
Różnica między transformacją „ciągłą” a transformacją „dyskretną” w kontekście falek wynika z:
1) Liczba próbek pomijanych podczas korelacji sygnału z falą.
2) Liczba próbek pomijanych podczas rozszerzania falki.
3) CWT używa tylko falki, podczas gdy DWT używa zarówno falki, jak i skalowania. (Nieistotne dla tej dyskusji, ale tutaj dla kompletności).
Ale nie popełnijcie błędu - CWT, podobnie jak DWT, jest zawsze dyskretną, cyfrową operacją.
Niech ten przykład to zilustruje: Rozważ falkę Haara, [1 -1]. Powiedzmy, że chcieliśmy zrobić DWT z falą Haar. Więc zwołujesz swój sygnał za pomocą falki matki Haara [1–1], ale tylko z opóźnieniem. Powiedzmy na przykład, że twój sygnał jest następującym wektorem:
Pierwszym wynikiem splotu DWT za pomocą falki Haar jest:
Następne jest:
I na koniec ostatni to:
Czy coś wydaje ci się dziwne? Powiedziałem: weź swój sygnał za pomocą falki - dlaczego więc mam tylko cztery wartości? Wynika to z tego, że pomijam próbki, gdy wykonuję zwoje w DWT. Najpierw wziąłem [1 2], zrobiłem iloczyn skalarny, a następnie wziąłem [3 4]. Co się stało z [2 3]? Ominąłem to.
Kiedy tego nie pomijasz? Kiedy robisz CWT. Gdybyś zrobił CWT, byłby to „normalny” cyfrowy splot twojego sygnału za pomocą falki Haar.
Drugą rzeczą jest sposób, w jaki rozszerzasz falkę. W najwyższym przykładzie falka Haara ma wartość [1 -1] dla rozkładu pierwszego poziomu. Na drugim poziomie falka Haar DWT staje się [1 1 -1 -1]. Jednak w CWT falka Haar drugiego poziomu to [1 0 -1]. Po raz kolejny w DWT nie rozwijam punktu do punktu - nigdy nie mam falki o trzech długościach. Jednak w CWT przechodzę od długości 2 do długości 3. W DWT poszedłem prosto od długości 2 do długości 4.
To długo i krótko, mam nadzieję, że to pomogło.
źródło