Utilizzo di trasformazioni wavelet discrete in versi continui in applicazioni digitali


14

Conosco gran parte del background matematico dietro le wavelet. Tuttavia, quando si implementano algoritmi su un computer con wavelet, sono meno sicuro se dovrei usare wavelet continue o discrete. In tutta la realtà tutto su un computer è ovviamente discreto, quindi sembra ovvio che le wavelet discrete siano la scelta giusta per l'elaborazione del segnale digitale. Tuttavia, secondo Wikipedia , è la trasformazione wavelet continua che viene utilizzata principalmente nella compressione di immagini (digitali), nonché in un gran numero di altre attività di elaborazione dei dati digitali. Quali sono i vantaggi e gli svantaggi da considerare quando si decide se utilizzare una trasformazione wavelet continua (approssimativa) anziché una trasformazione wavelet discreta (esatta) per l'elaborazione di immagini o segnali digitali?

PS (Verifica qui un'ipotesi) Sto supponendo che le trasformazioni wavelet continue vengano utilizzate nell'elaborazione digitale semplicemente prendendo il valore dell' wavelet continuo in punti equidistanti e usando la sequenza risultante per i calcoli wavelet. È corretto?

PPS Di solito wikipedia è piuttosto preciso sulla matematica, quindi presumo che le applicazioni nell'articolo sulle trasformazioni wavelet continue siano in realtà applicazioni della trasformazione wavelet continua. Certamente menziona alcuni che sono specificamente CWT, quindi c'è chiaramente un certo uso di CWT nelle applicazioni digitali.

Risposte:


9

Come già affermato da Mohammad, i termini Trasformazioni wavelet continue (CWT) e Trasformazioni wavelet discrete (DWT) sono un po 'fuorvianti. Si riferiscono approssimativamente come (continua) trasformata di Fourier (la matematica. Trasformata integrale) a DFT (discreta trasformata di Fourier).

Per capire i dettagli è bene vedere il contesto storico. La trasformazione wavelet è stata originariamente introdotta in geofisica da Morlet, ed era sostanzialmente una trasformazione di Gabor con una finestra che cresce e si restringe insieme alla scala / frequenza selezionata. Più tardi Daubchies (un fisico-ettaro dal Belgio) si rese conto che scegliendo speciali basi wavelet ortogonali la CWT infinitamente ridondante può essere campionata criticamente su una griglia diadica. Dal DWT risultante il CWT completo corrispondente può essere ottenuto contorcendo il DWT con il kernel riproduttivo del rispettivo wavelet. Il kernel riproduttore è il CWT della stessa wavelet.

I risultati di Daubchies hanno dato un grande impulso alla teoria wavelet nei primi anni '80. Il prossimo grande risultato è stato che il DWT può essere calcolato in modo molto efficiente (a volte questo è anche chiamato FWT [WT veloce]) utilizzando tecniche della teoria dei filtri, ovvero i filtri a quadratura a specchio (QMF) insieme ai banchi di filtri di downsampling. Costruendo QMF speciali è possibile calcolare il DWT corrispondente tramite filtro e downsampling, che è l'algoritmo all'avanguardia per calcolare i DWT oggi. Non è necessaria la funzione di ridimensionamento per calcolare il DWT, è solo un dettaglio dell'implementazione che FWT elabora.

Per quanto riguarda l'applicazione, il CWT è il candidato più ideale per l'analisi di segnali o serie temporali grazie alla sua risoluzione più fine e di solito viene scelto nella maggior parte dei compiti (ad esempio il rilevamento della singolarità). Il DWT è più interessante nel contesto di trasformazioni veloci non ridondanti. Il DWT ha un'ottima compactificazione energetica ed è quindi un buon candidato per compressioni con perdita e trasmissioni di segnale.


Spero che ciò abbia chiarito le cose.


Grazie Andre per la prospettiva storica e chiarimenti sulla denominazione. Ho lottato esattamente a causa delle confusioni causate da questi nomi!
Yanshuai Cao,

6

Una concezione errata molto comune ma sfortunata nel campo delle wavelet ha a che fare con la terminologia coniata di "Trasformazioni di wavelet continue".

La prima cosa è la prima: The Continuous Wavelet Transform, (CWT) e Discrete Wavelet Transform (DWT), sono entrambe trasformazioni punto-punto, digitali, che possono essere facilmente implementate su un computer.

La differenza tra una trasformazione "continua" e una trasformazione "discreta" nel contesto wavelet deriva da:

1) Il numero di campioni saltati quando si mette in correlazione incrociata un segnale con il wavelet.

2) Il numero di campioni saltati quando si dilata la wavelet.

3) Il CWT usa solo un wavelet, mentre il DWT usa sia un wavelet che un scale-let. (Non importante per questa discussione, ma qui per completezza).

Ma non commettere errori: un CWT, proprio come un DWT, è sempre un'operazione digitale discreta.

Lascia che questo esempio illustri questo: considera Haar Wavelet, [1 -1]. Diciamo che volevamo fare un DWT con Haar Wavelet. Quindi contorti il ​​tuo segnale, con la madre di Haar wavelet, [1 -1], ma solo con ritardi diadici. Ad esempio, supponiamo che il tuo segnale sia il seguente vettore:

X=[1 2 3 4 5 6 7 8]

Il primo risultato della convoluzione DWT con Haar Wavelet è:

1(-1)+2(1)

Il prossimo risultato è:

3(-1)+4(1)

Il prossimo è:

5(-1)+6(1)

E infine l'ultimo è:

7(-1)+8(1)

Qualcosa ti sembra strano? Ho detto prendi la convoluzione del tuo segnale con il wavelet - quindi come mai finisco solo con quattro valori? Questo perché ignoro i campioni quando eseguo le convoluzioni nel DWT. Prima ho preso [1 2], ho fatto un prodotto punto e poi ho preso [3 4]. Che cosa è successo a [2 3]? L'ho saltato.

Quando non lo salti? Quando fai un CWT. Se facessi un CWT, sarebbe una convoluzione digitale "normale" del tuo segnale, con l'onda Haar.


La seconda cosa è il modo in cui dilatate la vostra wavelet. Nell'esempio principale, Haar Wavelet è [1 -1] per la decomposizione di primo livello. Nel secondo livello, il DWT Haar Wavelet diventa [1 1 -1 -1]. Tuttavia, nella CWT, la wavelet di Haar di secondo livello è [1 0 -1]. Ancora una volta, nel DWT, non sto espandendo punto per punto - non ho mai un wavelet di tre lunghezze. Tuttavia, nel CWT, vado dalla lunghezza 2, alla lunghezza 3. Nel DWT, sono andato direttamente dalla lunghezza 2, alla lunghezza 4.

Questo è il lungo e breve, spero che questo abbia aiutato.


1
Mentre è vero che in una realizzazione DSP di qualsiasi trasformata di Wavelet (CWT o DWT), è probabile che l'implementazione avvenga come una moltiplicazione discreta punto per punto con una funzione wavelet discreta (simile al modo in cui è formulato il DFT), il la definizione matematica di un CWT è continua. Esistono versioni del DWT sviluppate per dati discreti, quindi alcune implementazioni DWT sono esatte per definizione. Qualsiasi implementazione di un CWT è un'approssimazione ottenuta convertendo un'operazione di continuazione (integrazione) con una funzione wavelet continua, in un'operazione discreta.
user2718,

@BruceZenone Certamente, e la definizione prende certamente dal contesto. Due matematici che parlano di "CWT" significherebbero la versione continua con gli integrali, mentre due ingegneri che discutono sull'implementazione direbbero "CWT" e significherebbe la versione discreta (che non è la stessa del DWT), da cui la fonte di Confusione di OP.
Spacey,

Abbastanza vero. Mi piacerebbe vedere un'implementazione ben documentata di un CWT (diciamo Morlet) per DSP per vedere i dettagli di come le operazioni / funzioni continue vengono tradotte nel mondo dell'elaborazione discreta. Nota che le trasformazioni DFT e Fourier sono bestie abbastanza diverse dal punto di vista matematico.
user2718,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.