Main Content

Ricostruzione wavelet a campionamento critico

Abbiamo appreso come la trasformata wavelet discreta possa essere utilizzata per analizzare, o scomporre, segnali e immagini. Questo processo è chiamato scomposizione o analisi. L'altra metà della storia è il modo in cui questi componenti possono essere assemblati di nuovo nel segnale originale senza perdita di informazioni. Questo processo è chiamato ricostruzione o sintesi. La manipolazione matematica che effettua la sintesi è chiamata trasformata wavelet discreta inversa (IDWT).

Per sintetizzare un segnale utilizzando il software Wavelet Toolbox™, lo ricostruiamo dai coefficienti wavelet.

Mentre l'analisi wavelet comporta il filtraggio e il sottocampionamento, il processo di ricostruzione wavelet consiste nel sovracampionamento e nel filtraggio. Il sovracampionamento è il processo di allungamento di un componente del segnale mediante l'inserimento di zeri tra i campioni.

La toolbox include comandi, come idwt e waverec, che eseguono rispettivamente la ricostruzione a livello singolo o a più livelli sui componenti di segnali monodimensionali. Questi comandi hanno i loro analoghi bidimensionali e tridimensionali, idwt2, waverec2, idwt3 e waverec3.

Ricostruzione di filtri

Anche la parte di filtraggio del processo di ricostruzione merita di essere discussa, in quanto la scelta dei filtri è cruciale per ottenere una perfetta ricostruzione del segnale originale.

Il sottocampionamento dei componenti del segnale effettuato durante la fase di scomposizione introduce una distorsione chiamata aliasing. Si scopre che, scegliendo con cura filtri strettamente correlati (ma non identici) per le fasi di scomposizione e ricostruzione, è possibile "annullare" gli effetti dell'aliasing.

Una discussione tecnica su come progettare questi filtri è disponibile a pagina 347 del libro Wavelets and Filter Banks di Strang e Nguyen. I filtri di scomposizione passa-basso e passa-alto (L e H), insieme ai filtri di ricostruzione associati (L' e H'), formano un sistema di cosiddetti filtri a specchio in quadratura:

Ricostruzione di approssimazioni e dettagli

Abbiamo visto che è possibile ricostruire il segnale originale dai coefficienti di approssimazione e di dettaglio.

È anche possibile ricostruire le approssimazioni e i dettagli stessi dai loro vettori di coefficienti. A titolo di esempio, si consideri come ricostruiremmo l’approssimazione di primo livello A1 dal vettore del coefficiente cA1.

Passiamo il vettore del coefficiente cA1 attraverso lo stesso processo utilizzato per ricostruire il segnale originale. Tuttavia, invece di combinarlo con il dettaglio di primo livello cD1, inseriamo un vettore di zeri al posto del vettore dei coefficienti di dettaglio:

Il processo produce un’approssimazione A1 ricostruita, che ha la stessa lunghezza del segnale originale S e che è una sua approssimazione reale.

Allo stesso modo, possiamo ricostruire il dettaglio di primo livello D1, utilizzando il processo analogo:

I dettagli e le approssimazioni ricostruiti sono veri e propri costituenti del segnale originale. Infatti, quando vengono combinati, si nota che

A1 + D1 = S.

Si noti che i vettori di coefficienti cA1 e cD1, non possono essere combinati direttamente per riprodurre il segnale poiché sono stati prodotti tramite sottocampionatura e sono lunghi solo la metà del segnale originale. È necessario ricostruire le approssimazioni e i dettagli prima di combinarli.

Estendendo questa tecnica ai componenti di un'analisi multilivello, si scopre che relazioni simili valgono per tutti i componenti del segnale ricostruito. Ossia, sono presenti diversi modi per riassemblare il segnale originale:

Wavelet da filtri a specchio coniugati

Nella sezione Ricostruzione di filtri, si è parlato dell'importanza di scegliere i filtri giusti. Infatti, la scelta dei filtri determina non solo la possibilità di una ricostruzione perfetta, ma anche la forma della wavelet da utilizzare per eseguire l'analisi.

Per costruire una wavelet di qualche utilità pratica, raramente si inizia disegnando una forma d'onda. Di solito, invece, è più sensato progettare i filtri a specchio in quadratura appropriati e poi utilizzarli per creare la forma d'onda. Utilizziamo un esempio per vedere come procedere.

Considerare il filtro di ricostruzione passa-basso (L') per la wavelet db2.

I coefficienti del filtro possono essere ottenuti dalla funzione dbaux. Invertendo l'ordine del vettore del filtro di demoltiplicazione e moltiplicando ciascun elemento pari (indicizzato da 1) per (-1), si ottiene il filtro passa-alto.

Ripetendo il sovracampionamento per due e convolvendo l'uscita con il filtro di demoltiplicazione si ottiene la wavelet di fase estremale di Daubechies.

 L = dbaux(2);
 H = wrev(L).*[1 -1 1 -1];
 HU = dyadup(H,0);
 HU = conv(HU,L);
 plot(HU); title('1st Iteration');
 H1 = conv(dyadup(HU,0),L);
 H2 = conv(dyadup(H1,0),L);
 H3 = conv(dyadup(H2,0),L);
 H4 = conv(dyadup(H3,0),L);
 figure;
 for k =1:4
 subplot(2,2,k);
 eval(['plot(H' num2str(k) ')']);
 axis tight;
 end

La curva inizia ad assomigliare progressivamente alla wavelet db2. Questo significa che la forma della wavelet è determinata interamente dai coefficienti dei filtri di ricostruzione.

Questa relazione ha profonde implicazioni. Significa infatti che non si può scegliere una forma qualsiasi, chiamarla wavelet ed eseguire un'analisi. O, quanto meno, non si può scegliere una forma d'onda wavelet arbitraria se si desidera ricostruire il segnale originale con precisione. Si è costretti a scegliere una forma determinata dai filtri di scomposizione a specchio in quadratura.

Funzione di demoltiplicazione

Abbiamo visto l'interrelazione tra wavelet e filtri a specchio in quadratura. La funzione wavelet ψ è determinata dal filtro passa-alto, che produce anche i dettagli della scomposizione wavelet.

Esiste un’ulteriore funzione associata ad alcune wavelet, ma non a tutte. Si tratta della cosiddetta funzione di demoltiplicazione, ϕ. La funzione di demoltiplicazione è molto simile alla funzione wavelet. È determinata dai filtri a specchio in quadratura passa-basso e quindi associata alle approssimazioni della scomposizione wavelet.

Così come il sovracampionamento iterativo e la convoluzione del filtro passa-alto producono una forma che si avvicina alla funzione wavelet, il sovracampionamento iterativo e la convoluzione del filtro passa-basso producono una forma che si avvicina alla funzione di demoltiplicazione.