21 giugno 2010
Algoritmo di Mallat
Indice
1 Analisi multirisoluzione 2 Decomposizione come proiezione 3 Algoritmo di decomposizione 4 Algoritmo di ricostruzione 3 6 7 8
Algoritmo di Mallat
Analisi multirisoluzione
Sia L2 (R) lo spazio di Hilbert delle funzioni (nel senso delle classi) denite su R a quadrato sommabile:
L2 (R) = {f : R C : |f |2 integrabile su R}
Vj =
Esiste una funzione (x) V0 detta funzione di scala tale che alcune delle
sue repliche opportunamente scalate e traslate sono utilizzabili per creare basi ortonormali per gli spazi Vj :
(x) V0 : se j,n (x) 2 2 (2j x n), j, n Z allora j Z si ha che
j
n Z j,n (x) Vj (x) j,n nZ = Vj j,n1 (x), j,n2 (x) = 0 n1 , n2 Z, n1 = n2 j,n (x), j,n (x) = 1 n Z
(1.1)
Algoritmo di Mallat
Wj
Esiste una funzione (x) W0 detta wavelet madre tale che alcune delle
sue repliche opportunamente scalate e traslate sono utilizzabili per creare basi ortonormali degli spazi Wj :
j
(x) W0 : se j,n (x) 2 2 (2j x n), j, n Z allora j Z si ha che n Z j,n (x) Wj (x) j,n nZ = Wj j,n1 (x), j,n2 (x) = 0 n1 , n2 Z, n1 = n2 j,n (x), j,n (x) = 1 n Z
Lo spazio L2 (R) pu essere quindi scritto al livello j -esimo come (g. 1.1):
L2 (R) = Vj
i=j +
Wi
da cui segue che ogni funzione f (x) di L2 (R) pu essere cos espansa:
+
f (x) =
nZ
aj (n)j,n (x) +
i=j nZ
di (n)i,n (x)
dj (n) = dj,n
I coecienti aj (n), risultato della proiezione della funzione sullo spazio Vj , sono detti coecienti di approssimazione del livello j -esimo; i dj (n), risultato della proiezione della funzione sullo spazio Wj , sono invece detti coecienti di dettaglio del livello j -esimo. La funzione ricostruita a partire dai soli coecienti di approssimazione si denota Aj (x) e si chiama approssimazione al livello j esimo; quella ricostruita a partire dai coecienti di dettaglio si denota con Dj (x) e si chiama dettaglio del livello j -esimo. Nella pratica si avr spesso a che fare con funzioni di variabile discreta. Per tali funzioni si considera nulla la proiezione al di fuori di un certo spazio Vj (tipicamente V0 ):
f (x) =
nZ
aj (n)j,n (x)
Aj (x) =
n=
aj (n)j,n (x)
dove
+ + f (x), j,n (x) = f (x)j,n (x)dx = f (x)j (x 2j n)dx =
[f (x) j (x)]x=2j n
Quindi
Aj (x) =
(1.2)
Dalla relazione (1.2) si capisce che i coecienti dell'approssimazione sono dati dalla convoluzione tra f (x) e j (x) campionata a passi di 2j . Analoga5
Dj (x) =
n=
L'algoritmo di decomposizione wavelet si ricava proiettando l'approssimazione del livello j + 1, che un elemento di Vj+1 , sugli spazi Vj e Wj del livello di risoluzione inferiore: per far questo necessario stabilire una relazione che leghi le funzioni j+1 , elementi della base di Vj+1 , alle funzioni j e j , elementi delle basi di Vj e Wj . In virt della (1.1) si pu scrivere:
+
j,n (x) = j (x 2j n) =
k=
(2.1)
dove
j,k (x), j+1,n (x) =
+ +
(2.2)
Poich
j (x) j+1 (x) =
+ +
j (x)j+1 ( x)dx =
+
(21 )(2j+1 )d =
1 ()(2j+1 )d = [1 () ()]=2j+1
allora
j,k (x), j+1,n (x) = [j (x) j+1 (x)]x=2(j+1) (2nk) = [[1 () ()]=2j+1 x ]x=2(j+1) (2nk) = [1 () ()]=2j+1 (2(j+1) (2nk)) = [1 () ()]=2nk
(2.3) (2.4)
Se deniamo
h(x) = 1 (x) (x)
j,n (x) =
k=
da cui, ponendo
g(x) = 1 (x) (x)
(2.6)
si ottiene
+
j,n (x) =
k=
Algoritmo di decomposizione
L'approssimazione Aj (x) del livello j pu essere ricavata proiettando quella del livello j + 1 (Aj+1 (x)) sullo spazio Vj : si ha quindi
+
Aj (x) =
n=
j,n (x)
dalla quale, sostituendo j+1,k (x), j,n (x) con l'equazione (2.3) si ricava
+ +
Aj (x) =
n= k=
La relazione (3.1) evidenzia che i coecienti aj (k) dell'approssimazione Aj (x) al livello j possano essere ottenuti ltrando i coecienti aj+1 (k) dell'approssimazione Aj+1 (x) al livello j + 1 mediante il ltro dato dalla (2.4) e successivo sottocampionamento diadico (si prende un campione ogni due):
aj (k) = [aj+1 (k) h(k)]k=2n
Algoritmo di Mallat
In modo analogo, proiettando Aj+1 (x) sullo spazio Wj possibile esprimere il dettaglio Dj (x) al livello j come:
+
Dj (x) =
n=
per cui
dj (k) = [aj+1 (k) g(k)]k=2n
(3.2)
L'equazione (3.2) evidenzia che i coecienti dj (k) del dettaglio Dj (x) al livello j possano essere ottenuti ltrando i coecienti aj+1 (k) dell'approssimazione Aj+1 (x) al livello j + 1 mediante il ltro dato dalla (2.6) e successivo sottocampionamento diadico.
Algoritmo di ricostruzione
L'approssimazione Aj+1 (x) del livello j+1 pu essere ricavata a partire da quella del livello j (Aj (x)) e dal dettaglio (Dj (x)). Sostituendo in (1.2) l'equazione 8
Aj (x) =
n= + +
aj (n)j,n (x) =
n=
aj (n)
k= +
=
k= + n=
Aj (x) =
k= n=
aj (n)h (
j+1,k (x)
k=
Dj (x) =
n=
dj (n)j,n (x) = =
k=
j+1,k (x)
k=
si ottengono ribaltando (sull'asse delle ascisse) e comprimendo di un fattore 2 i ltri h(n) e g(n). Si osservi che si ottiene un risultato analogo utilizzando in loco di h (n) e g (n) i ltri h(n) e g(n) ribaltati ma non compressi e convolvendoli con le sequenze dei coecienti dilatate di un fattore 2, come in g. 4.1.
j + 1 suciente convolvere i coecienti del livello j con i ltri h (n) e g (n) che
Algoritmo di Mallat
10
Algoritmo di Mallat
Figura 4.3: Wavelet di Meyer: Wavelet di livello -1, funzione di scala di livello
0 e confronto tra il ltro passa alto ottenuto come convoluzione di queste con quello utilizzato da MATLAB.
Figura 4.4: Wavelet di Meyer: Modulo della trasformata di Fourier dei ltri passa
basso e passa alto relativi alla wavelet di Meyer
11