Transformada discreta de wavelet

De GirinoWiki

A transformada discreta de wavelet é a transformada correspondente à trasformada contínua de wavelet para funções discretas. Esta transformada é utilizada para analisar sinais digitais, e também na compressão de imagens digitais. A forma mais simples dessa transformada, conhecida como transformada de Haar foi criada em 1909.

A transformada discreta de wavelet consiste em identificar os parâmetros ck e dj,k,k \in \N, j \in \N da equação: f(t) = \sum_{k=-\infty}^{\infty}{c_k \phi(t - k)} + \sum_{k=-\infty}^{\infty}{\sum_{j=0}^{\infty}{ d_{j,k} \psi(2^jt-k) }},

onde φ(t) e ψ(t) são as funções conhecidas respectivamente como wavelet pai (do inglês father wavelet) e wavelet mãe (ver wavelet para mais detalhes sobre a função wavelet mãe). A wavelet pai é na verdade uma função de escala, que depende da wavelet mãe. Das funções φ(t) e ψ(t) podemos calcular as seqüências h=\{h_n\}_{n\in\Z} e g=\{g_n\}_{n\in\Z}:

h_n=\langle\phi_{0,0},\,\phi_{1,n}\rangle e \phi(t)=\sqrt2 \sum_{n\in\Z} h_n\phi(2t-n)

e

g_n=\langle\psi_{0,0},\,\phi_{1,n}\rangle e \psi(t)=\sqrt2 \sum_{n\in\Z} g_n\phi(2t-n).

Estas duas seqüências são a base da transformada discreta de wavelet.

Tabela de conteúdo

[editar] Bancos de filtros

Imagem:Wavelets - DWT.png
Banco de filtros da transformada discreta de wavelet.

A maneira mais comum de se calcular a transformada discreta de wavelet é através da aplicação de bancos de filtros onde o filtro determinado pelos coeficientes h=\{h_n\}_{n\in\Z} corresponde a um filtro passa-altas e o filtro g=\{g_n\}_{n\in\Z} a um filtro passa-baixas (conforme imagem ao lado).

Os filtros h e gsão um operador linear, que pode ser aplicado no sinal digital de entrada x como uma convolução:

m(n) = \sum\limits_k g(k)x(n-k) = g \star x

e

d(n) = \sum\limits_k h(k)x(n-k) = h \star x.

O sinal m(n) = {m_n}_{n\in\Z} é conhecido como aproximação e o sinal d(n) = {d_n}_{n\in\Z} como diferença ou detalhe.

[editar] Sub amostragem

O operador (\downarrow 2) é o operador de sub-amostragem (do inglês downsampling). Este operador aplicado a uma função discreta (uma seqüência) reduz o seu número de elementos pela metade, recuperando apenas os elementos em posições pares:

(\downarrow 2)x(n) = {x_0, x_2, x_4,...} .\,

O uso de filtros ortogonais nos permite recuperar o sinal original (reconstrução perfeita do sinal) apesar da perda de dados devido à sub-amostragem. Filtros bi-ortogonais também são capazes de reconstruir perfeitamente o sinal mesmo após a sub-amostragem.

[editar] Encadeamento de bancos de filtros

Imagem:Wavelets - Filter Bank.png
Encadeamento de bancos de filtros com sub-amostragem.

A decomposição com o filtro acima decompõe o sinal em apenas duas faixas de freqüência. Podemos encadear uma série de bancos de filtros, usando a operação de sub-amostragem para proporcionar a divisão da freqüência de amostragem por 2 (como visto na figura ao lado) a cada novo banco de filtros encadeado.

Assim, temos um sinal de detalhe específico para cada faixa de freqüência na nossa etapa de análise do sinal.

[editar] Transformada inversa

A transformada discreta inversa de wavelet consiste em aplicar os filtros inversos no sinal decomposto, e juntar novamente as duas (ou mais) bandas de freqüência do sinal. No caso dos filtros ortogonais, os filtros inversos h' e g' podem ser obtidos como:

  • o filtro g' é o reverso do filtro g (filtro g com os coeficientes invertidos):
g' = (g'1,g'2,...,g'N) = (gN,gN − 1,...,g1).
  • o filtro h' é igual ao filtro g com os sinais dos elementos pares invertidos:
h' = (h'1,h'2,...,h'n,...,h'N) = (g1, − g2,...,( − 1)n + 1gn,...,( − 1)N + 1gN).[1]

Antes de se recompor o sinal, entretanto, é necessário aplicar o operador de super-amostragem (\uparrow 2) nas seqüências decompostas h' e d'.

[editar] Super-amostragem

O operador de super-amostragem (do inglês upsampling) que usamos na transformada inversa corresponde simplesmente a acrescentar zeros nas posições que foram eliminadas pela sub-amostragem:

(\uparrow 2) s = (s'_1, s'_2, s_3, ..., s'_{2N-1}, s'_{2N}) = (s_1, 0, s_2, ..., s_N, 0)

[editar] Referências

  1. Estas relações valem apenas para o caso de filtros ortogonais, SALOMON, David. Data Compression: The Complete Reference. 2.ed. Nova Iorque: Springer, 2000.

[editar] Bibliografia

  • SALOMON, David. Data Compression: The Complete Reference. 2.ed. Nova Iorque: Springer, 2000.

[editar] Ver também

Ferramentas pessoais
Social Blogging
  • StumbleUpon
  • Adicionar aos Favoritos BlogBlogs
  • Adicionar esta página no Linkk
  • Add to Technorati Favorites
patrocinadores
Espaço comercial