Usando versos contínuos transformada de wavelet discreta em aplicativos digitais

14

Estou familiarizado com grande parte do conhecimento matemático por trás das wavelets. No entanto, ao implementar algoritmos em um computador com wavelets, tenho menos certeza se devo usar wavelets contínuas ou discretas. Em toda a realidade, tudo no computador é discreto, é claro, então parece óbvio que wavelets discretas são a escolha certa para o processamento de sinal digital. No entanto, de acordo com a wikipedia , é a transformação de wavelet contínua que é usada principalmente na compactação de imagem (digital), além de um grande número de outras atividades de processamento de dados digitais. Quais são os prós e os contras a serem considerados ao decidir se deve usar uma transformação de wavelet contínua (aproximada) em vez de uma transformação de wavelet discreta (exata) para processamento digital de imagem ou sinal?

PS (Verificando uma suposição aqui) Estou assumindo que transformações contínuas de wavelets são usadas no processamento digital, simplesmente pegando o valor da wavelet contínua em pontos uniformemente espaçados e usando a sequência resultante para cálculos de wavelet. Isso está correto?

PPS Normalmente, a wikipedia é bastante precisa sobre matemática, portanto, estou assumindo que os aplicativos no artigo sobre Transformações contínuas de wavelet são de fato aplicativos da Transformação contínua de wavelet. Certamente menciona alguns que são especificamente CWT, portanto há claramente algum uso de CWT em aplicativos digitais.

John Robertson
fonte

Respostas:

9

Como Mohammad já declarou, os termos Transformações Contínuas em Wavelet (CWT) e Discrete Wavelet Transforms (DWT) são um pouco enganosas. Eles se relacionam aproximadamente como Transformada de Fourier (contínua) (a transformação integral matemática) a DFT (Transformada de Fourier discreta).

Para entender os detalhes, é bom ver o contexto histórico. A transformação wavelet foi originalmente introduzida na geofísica por Morlet, e era basicamente uma transformação Gabor com uma janela que cresce e diminui junto com a escala / frequência selecionada. Posteriormente Daubchies (físico da Bélgica) percebeu que, ao escolher bases de wavelets ortogonais especiais, o CWT infinitamente redundante pode ser amostrado criticamente em uma grade diádica. A partir do DWT resultante, o CWT completo correspondente pode ser obtido por convolução do DWT com o núcleo de reprodução da respectiva wavelet. O núcleo reprodutor é o CWT da própria wavelet.

As descobertas de Daubchies deram um grande impulso à teoria da wavelet no início dos anos 80. O próximo grande resultado foi que o DWT pode ser calculado com muita eficiência (às vezes também é chamado de FWT [fast WT]) usando técnicas da teoria dos bancos de filtros, a saber, filtros de espelho de quadratura (QMF) junto com bancos de filtro de downsampling. Ao construir QMFs especiais, o DWT correspondente pode ser calculado por meio de filtragem e downsampling, que é o algoritmo de última geração para calcular os DWTs hoje. Você não precisa da função de dimensionamento para calcular o DWT, é apenas um detalhe de implementação que o FWT processa.

Com relação ao lado da aplicação, o CWT é o candidato mais ideal para análise de sinais ou séries temporais devido à sua resolução mais refinada e geralmente é escolhido na maioria das tarefas (por exemplo, detecção de singularidade). O DWT é mais interessante no contexto de transformações rápidas não redundantes. O DWT possui uma compactação de energia muito boa e, portanto, é um bom candidato para compressões com perdas e transmissões de sinal.


Espero que tenha esclarecido as coisas.

André Bergner
fonte
Obrigado André pela perspectiva histórica e esclarecimentos sobre a nomeação. Eu tenho lutado exatamente por causa das confusões causadas por esses nomes!
Yanshuai Cao 04/12/2015
6

Uma má concepção muito comum, porém infeliz, no campo das wavelets tem a ver com a terminologia mal-criada de "Transformações Contínuas de Wavelet".

A primeira coisa é a primeira: A Transformada Contínua em Wavelet (CWT) e a Discrete Wavelet Transform (DWT) são transformações digitais ponto a ponto, facilmente implementáveis ​​em um computador.

A diferença entre uma transformação "contínua" e uma transformação "discreta" no contexto da wavelet vem de:

1) O número de amostras puladas quando você correlaciona um sinal com sua wavelet.

2) O número de amostras puladas quando você dilata sua wavelet.

3) O CWT usa apenas uma wavelet, enquanto o DWT usa uma wavelet e uma escala-let. (Não é importante para esta discussão, mas aqui para ser completo).

Mas não se engane - um CWT, assim como um DWT, é sempre uma operação digital discreta.

Deixe este exemplo ilustrar isso: Considere a Haar Wavelet, [1 -1]. Digamos que queríamos fazer um DWT com a Haar Wavelet. Então você envolve seu sinal, com a wavelet da mãe Haar, [1 -1], mas apenas com atrasos diádicos. Por exemplo, digamos que seu sinal seja o seguinte vetor:

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

O primeiro resultado da convolução DWT com sua Haar Wavelet é:

1(-1)+2(1)

3(-1)+4(1)

O próximo é:

5(-1)+6(1)

E finalmente o último é:

7(-1)+8(1)

Algo lhe parece estranho? Eu disse: pegue a convolução do seu sinal com a wavelet - então como é que eu acabo com apenas quatro valores? Isso ocorre porque pulo amostras quando faço convoluções no DWT. Primeiro peguei [1 2], fiz um produto com pontos e depois peguei [3 4]. O que aconteceu com [2 3]? Eu pulei.

Quando você não pula? Quando você faz um CWT. Se você fizesse um CWT, seria uma convolução digital 'normal' do seu sinal, com a wavelet Haar.


A segunda coisa, é a maneira como você dilata sua wavelet. No exemplo do topo, a Haar Wavelet é [1 -1] para a decomposição do primeiro nível. No segundo nível, o DWT Haar Wavelet se torna [1 1 -1 -1]. No entanto, no CWT, a wavelet de segundo nível de Haar é [1 0 -1]. Mais uma vez, no DWT, não estou expandindo ponto por ponto - nunca tenho uma wavelet de três comprimentos. No entanto, no CWT, vou do comprimento 2 para o comprimento 3. No DWT, fui direto do comprimento 2 para o comprimento 4.

Este é o longo e curto, espero que isso tenha ajudado.

Spacey
fonte
1
Embora seja verdade que em uma realização DSP de qualquer transformação Wavelet (CWT ou DWT), é provável que a implementação seja feita como uma multiplicação discreta ponto a ponto por uma função wavelet discreta (semelhante à maneira como a DFT é formulada), a A definição matemática de um CWT é contínua. Existem versões do DWT que foram desenvolvidas para dados discretos, portanto, algumas implementações do DWT são exatas por definição. Qualquer implementação de um CWT é uma aproximação alcançada pela conversão de uma operação de continuação (integração) com uma função wavelet contínua, em uma operação discreta.
user2718
@BruceZenone Certamente, e a definição certamente tira do contexto. Dois matemáticos falando sobre "o CWT" significariam a versão contínua com integrais, enquanto dois engenheiros que discutissem sobre implementação diriam "o CWT" e significariam a versão discreta (que não é a mesma que a DWT), daí a fonte de Confusão do OP.
Spacey
É verdade. Gostaria de ver uma implementação bem documentada de um CWT (por exemplo, Morlet) para DSP para ver os detalhes de como as operações / funções contínuas são traduzidas para o mundo do processamento discreto. Observe que as transformações DFT e Fourier são bestas bastante diferentes matematicamente.
user2718