Transformadas e Decomposição de Sub-banda Joaquim Macedo Departamento de Informática da Universidade do Minho & Faculdade de Engenharia da Universidade Católica de Angola Sumário Tranformada Unitária 1-D Transformada Discreta de Fourier 1-D Transformada Discreta do Coseno 1-D Filtragem Digital e Análise de sub-banda Filtros Digitais Análise de sub-banda Transformadas e Filtragem Digital Transforma Discreta Wavelet 1-D Tranformada Unitária 2-D Transformada Discreta de Fourier 2-D Transformada Discreta do Coseno 2-D Transforma Discreta Wavelet 2-D Transformada Unitária 1-D Seja f (n),0 n N 1, uma sequência unidimensional A transformada unitária(ortonorma l) define- se como N 1 F U f , F (k ) U (k , n) f(n) 0 k N 1 n 0 F F (k ) é a matrizde coeficientes da transformada e u (0,0) ... ... u ( N 1,0) u (0, N 1) ... ... ... é a matrizda transformada unitária ... ... ... ... ... u ( N 1, N 1) ... ... Transformada Unitária 1-D A transformada unitári a inversadefine - se como N 1 f U *T F , f (n) F (k )u * (k , n) 0 n N 1 n 0 * e T significam conjungação complexae a matriztransposta A equação acima pode ser considerada a representação por séries da sequência f(n) u (k , n),0 n N 1, colunasde U * base de U *T saõ consideradas os vectores Transformada Unitária 1-D A matrizé unitáriase se cumpriremas seguintescondições N 1 * u ( k , n ) u ( k 0 , n) ( k k 0 ) n 0 N 1 * u ( k , n ) u (k , n0 ) (n n0 ) k 0 Onde (k ) é a função discreta de impulso unitário 1 se k 0 (k ) 0 se k 0 Transformada Discreta de Fourier 1-D f n - sequência 1 F k N 1 f n N kn N W discreta periódica com N amostras por período. N 1 kn f n W N 0 k N 1 DFT n 0 N 1 kn F n W N 0 n N 1 k 0 e j 2kn N F k - k-ésimo coeficiente DFT IDFT Transformada Discreta de Fourier 1-D Matrizda transformada de Fourier dada por j 2 k 1 1 kn N U {u (k , n)} WN e N N Matrizda transformada inversade Fourier dada por U 1 U *T j 2 k 1 1 * * kn N {u (k , n)} {u (n, k )} WN e N N Transformada Discreta de Fourier 1-D Exemplo 5.1 Considere uma sequência de 4 pontos f={2,5,7,6}. Calcule os correspondentes coeficientes DFT. Reconstrua a sequência de entrada a partir dos coeficientes DFT e das funções de base DFT Transformada Discreta de Fourier 1-D Transformada Discreta de Fourier 1-D Par alternativo Definição do DFT alternativa Usada por muitas concretizações (MATLAB) N 1 F k f n WNkn 0 k N 1 n 0 1 N 1 f n F n WNkn 0 n N 1 N k 0 Diferença apenas de escala Ortogonal mas mas não ortonormal ou unitária Propriedades da DFT Convulsão f (n) g (n) F (k )G( K ) Convulsãono domíniodo tempo f (n) g (n) F (k ) G( K ) Convulsãono domínioda frequência Rapidez da concretização Conservação da Energia e Compactação N 1 f (n) n 0 2 N 1 F (k ) k 0 2 Convolução f (n) g ( n) F ( k )G( k ) Convolução Circular f (n)g ( n) F (k ) G(k ) Fast Fourier Transform Os coeficientes da DFT de N pontos podem ser calculados multiplicando a matriz de transformação 2D N N pela matriz 1D N 1 O cálculo directo da DFT 1D para uma sequência de N-pontos requer N 2N*N operações onde 1 operação = 1 multiplicação complexa + 1 adição complexa. Há disponíveis algoritmos especiais com uma complexidade muito menor para calcular a DFT. Esses algoritmos são conhecidos como Fast Fourier Transform (FFT). Diferentes algoritmos FFT Foram propostos na literatura vários algoritmos FFT. Alguns dos mais populares são os seguintes: Radix-2 Radix-4 Split-Radix Winograd Prime Factor Algoritmo Radix-2 Radix-2 é um algoritmo popular para FFT. Para transformada de N pontos a complexidade computaciona é ( N / 2) log2 N borboletas onde 1 borboleta = multiplicação complexa + 2 adições complexas O algoritmo FFT usa um arranjo dos dados que parece uma borboleta. Complexidade FT versus FFT N N2 (FT Directo) N log2 N (FFT) Ganhos Computacionais N2/N log2 N 32 1024 160 6.4 256 65536 2048 32 1024 1048576 10240 102 8192 67108864 106496 630 Conservação da Energia A Transformada de Fourier preserva a energia do sinal. A energia do sinal no domínio do tempo ou pixel é idêntica à energia no domínio da frequência. N 1 n 0 N 1 f (n) F (k ) 2 2 k 0 Embora a energia total não mude no domínio de Fourier, a energia é redistribuída entre os coeficientes de Fourier. Exemplo 5.2 Construa um sinal unidimensional dos valores de pixel da linha #100 da figura da Lena a preto e branco. Para evitar o componente DC torne o sinal com média 0 (substraia o valor da média de cada pixel). Calcula a DFT e a energia total nos 20 primeiros coeficientes de Fourier. Compare com a energia total do sinal. Compactação de energia com a DFT Linha horizontal (line# 100) da imagem da lena Espectro de Amplitude Transformada Discreta do Coseno 1-D A Transformada Discreta do Coseno (DCT) unidimensional para a sequência de entrada f(n) é definida pelo seguinte par: (2n 1)k F (k ) (k ) f (n) cos para 0 k N 1 2N n 0 N 1 (2n 1)k f (n) (k ) cos F (k ) para 0 n N 1 2N k 0 N 1 1/ N para k 0 (k ) 2 / N para 0 k N 1 Matriz da Transformada DCT 4 pontos 1/ 2 v(0) 1/ 2 1/ 2 1 / 2 u (0) v(1) u ( 1 ) 1 cos( / 8 ) cos( 3 / 8 ) cos( 5 / 8 ) cos( 7 / 8 ) v(2) 2 cos(2 / 8) cos(6 / 8) cos(10 / 8) cos(14 / 8) u (2) v ( 3 ) u ( 3 ) cos(3 / 8) cos(9 / 8) cos(15 / 8) cos(21 / 8) Matriz da Transformada Inversa 1 / 2 cos( / 8) cos(2 / 8) cos(3 / 8) v(0) u (0) u (1) v ( 1 ) 1 1 / 2 cos(3 / 8) cos(6 / 8) cos(9 / 8) u (2) 2 1 / 2 cos(5 / 8) cos(10 / 8) cos(15 / 8) v(2) u ( 3 ) v ( 3 ) 1 / 2 cos(7 / 8) cos(14 / 8) cos(21 / 8) V.B.-0 V.B.-1 V.B.-2 V.B.: Vectores de Base V.B.-3 Exemplo 5.3 Considere uma sequência de 4 pontos f={2,5,7,6}. Calcule os correspondentes coeficientes DCT. Reconstrua a sequência de entrada a partir dos coeficientes DCT. Exemplo 5.3 Fig 5.3,pag. 92 Propriedades do DCT Energia da Compactação A DCT tem um excelente desempenho de compatação de energia. Isto é demonstrado com um exemplo. Exemplo 5.4 Considere a linha de varrimento da imagem do Exemplo 5.2. Calcule o DCT e a energia total nos primeiros 20 coeficientes de Fourier. Compare-a com a Energia total do sinal. Compare o desempenho de compactação da energia da DCT e DFT. Compactação da Energia com a DCT A DCT tem um excelente desempenho na compactação da energia 512 pixels: energia total = 11.3 105 Primeiros 20 coeficientes DFT capturam 76% daa energia Primeiros 20 coficientes DCT capturam s 83% da energia Relações com a DFT Embora as funções de base da DCT sejam funções discretas de coseno a DCT não é a parte real da DFT. Contudo está relacionada com a DFT. A DCT da sequência Nx1 { f (0), f (1),.....f ( N 1)} está relacionada com a seguinte sequência DFT { f ( N 1), f ( N 2),....f (1), f (0), f (0),.....f ( N 1)} Existe uma transformada DCT rápida com uma complexidade computacional de ordem O( N log2 N ) Segundo, devido à simetria par da sequência equivalente DFT, o sinal recosntruído dos coeficientes DCT quantificados terão uma melhor representação das variações bruscas. Filtragem Digital e Análise de sub-banda As transformadas unitárias São muitos úteis para análise do contéudo de frequência dum sinal Métodos alternativos para análise de frequência de sinais multimédia Filtragem Digital Análise de sub-banda Filtragem Digital Filtro Um filtro é um componente que atenua ou amplifica frequências particulares Fácil de visualizar no domínio da frequência, onde a filtragem é uma multiplicação: H ( ) F ( ) G( ) Onde F é o espectro da função, G é o espectro do filtro e H é a função filtrada. A multiplicação é ponto a ponto. Parâmetros de Filtros Banda de passagem Atenuação na stopband Ondulação (Ripple) Banda de transição Banda de paragem Frequência Parâmetros do Filtro Banda de Passagem: Os componentes da banda de frequência aos quais é permitido a passagem. Banda de Paragem: Os componentes da banda de frequência que são suprimidos. Banda de Transição: a banda de frequência entre a banda passagem e a de paragem onde o sinal varia de alto para baixo ou vice-versa Ondulação: a máxima variação do ganho nominal permitida na banda de passagem ou de paragem. Atenuação da Banda de Paragem: atenuação mínima dos componentes na banda de paragem. Tipos de Filtros Lowpass (Passa-Baixo) c c c Bandpass (Passa-Banda) c 2 c1 c1 Highpass (Passa-Alto) c 2 Filtros ideais: 4 tipos básicos c Bandstop (Para-Banda) c 2 c1 c1 c 2 Tipo de Filtros Função: F Filtro: G Resultado: H = Passa-Baixo = Passa-Alto = Passa-Banda Lowpass Filter Transition Passband Band Stopband Filter Gain Filter Gain Tipos de Filtros Highpass Filter Frequency Frequency Filter Gain Filter Gain Frequency Bandpass Filter Bandstop Filter Frequency Tipos de Filtros Digitais f (n) e y (n), entradae saída dum filtrodigital N M k 0 k 0 y ( n) b( k ) f ( n k ) a ( k ) y ( n k ) b(k ) - coeficientes que expressama dependência da saída da amostraactualcom as N entradasprévias a (k ) coeficientes que expressama dependência da saída da amostraactualcom as M saídas prévias FIR(FiniteImpulseResponse) a(k) 0,k e N categoriasde filtros IIR(Infinite ImpulseResponse) k : a(k) 0 ou N Tipos de Filtros Digitais Filtros FIR (Finite Impulse Response) Os filtros FIR são constituídos por funções de resposta com número finito de pulsos que são fáceis de concretizar devido ao seu comprimento finito. Filtros IIR(Infinite Impulse response) Os filtros IIR requerem uma resposta com um número infinito de pulsos que tornam a forma em convulsão difícil. Contudo, estes filtros são realizáveis. Filtros FIR e IIR Filtros Finite Impulse Response (FIR) Filters um númro finito de impulsos na sua resposta de impulso. Relação típica entre entrada e saída: N y( n ) b( k ) f ( n k ) k 0 output input Os filtros Infinite Impulse Response (IIR) têm um número infinito de impulsos na sua resposta de impulso. Relação pica entre entrada e saída: N M k 0 k 1 y( n) b( k ) f ( n k ) a( k ) y( n k ) Os filtros IIR têm geralmente um elemento de feedback Tipos de Filtros Digitais Frequência: pulso Tempo: sinc Fig. 5.6, pag. 95 Tipos de Filtros Digitais Resposta de Impulso do Filtro Passa baixo Truncagem A resposta de impulso do FPB ideal tem um número infinito de impulsos Janelas Rectangular & Hamming • Janela Rectangular 1, wn 0, • Janela Hamming wn 0.54 0.46cos2 n N 0 n M 1 Para outros valores de n n 0,1,...,M 1 Janela "Hamming" M=35 Janela Rectangular M=35 1.5 1.2 1 1 0.8 0.6 0.5 0.4 0.2 0 0 0 50 100 150 200 250 0 5 10 15 20 25 30 35 Ganho de Resposta dos filtros P.B. Ganho da resposta em dB Concretização de Filtros com o MatLab Passa Alto e Passa Baixo Concretize um filtro P.F e P.A. com uma frequência de cortye de 3200 Hz para um sinal de áudio amostrado ao ritmo de 8000 amostras/seg. Frequência de corte = 3200/8000 or 0.4. filter_lowpass = fir1(8,0.4) ; % 8ª ordem, i.e. 9 implusos filter_highpass = fir1(8,0.4,’high’) ; Concretização de Filtros com o MATLAB Passa Banda e Pára Banda Concretize um filtro passa banda e outro para banda com frequências de corte normalizadas de 0.4 e 0.8. filter_bandpass = fir1(8,[0.4 0.8]) filter_bandstop = fir1(8,[0.4 0.8],’stop’) Exemplo de Filtros Exemplos de filtros digitais FIR com 9 impulsos A frequência de corte dos filtros passa alto e baixo é 0.4 As frequências de corte dos filtros para e passa banda são [0.4,0.8] Filtro Coeficientes Passa-baixo [-0.0061 –0.0136 0.0512 0.2657 0.4057 0.2657 0.0512 –0.0136 –0.0061] Passa-alto [-0.0060 0.0133 -0.0501 -0.2598 0.5951 -0.2598 0.0501 0.0133 0.0060] Passa-banda [0.0032 0.0478 -0.1802 -0.1363 0.5450 - 0.1363 0.1802 0.0478 0.0032] Para-banda [-0.0023 -0.0354 0.1336 0.1011 0.6061 0.1011 0.1336 -0.0354 -0.0023] Características de Ganho na Frequência Fitros de 9 Impulsos Os filtros não têm ganhos com características escarpadas Características de Ganho na Frequência Filtros de 101-impulsos Os filtros têm características de ganho escarpadas Análise de sub-banda Análise e síntese de sub-banda Sub-bandas Banco de Filtros de Análise Sinal de Entrada 1 2 N Sub-bandas Processamento/ Codificação/ Extracção de características 1 2 N Banco de Filtros de Síntese Sinal de Saída Banco de Filtros de 2 bandas FPB ~ Processamento x0 (n) h( n) 2 v0 (n) ^ 2 x0 ( n ) FPB h(n) ^ X 0 ( n) ^ X (n) + ~ 2 g (n) x1 (n) v1 (n) FPA 2 2 g (n) ^ ^ x1 ( n ) FPA X 1 ( n) X (n) Características do Ganho de Frequência do QMF QMF: Quadrature Mirror Filter Highpass band Filter gain Lowpass band 0 FS / 4 FS / 2 Categorias de Bancos de Filtros Reconstrução do Sinal Reversível (Irreversíveis) a sequência de entrada (não)pode ser perfeitamente reconstruída com os coeficientes não quantificados e o banco de filtros de síntese Para-unitários A matriz de transformação num sentido é a inversa da matriz de transformação no sentido contrário Similar a uma transformada ortonormal Condições de Para-Unitários Um banco de filtros de 2 bandas é chamado para-unitário se forem satisfeitas as 4 condições seguintes: N 1 h(n)h(n 2k ) (k ) ……..(5.24) h(n) (1) n1 g~(n) ……..(5.25) n 0 n 1 ~ ~ g (n) (1) h ( N 1 n) ……..(5.26) ~ g (n) (1) h (n) ……..(5.27) n ~ ~( n ) , h ( n ) , Se se encontrar h(n )que satisfaça Eq. (5.24), g g (n ) podem ser calculadas com as equações seguintes. Bancos de Filtros Condições para para-unitários N 1 h( n) h( n 2k ) ( K ) n 0 h(n) (1) ~ g (n) (1) n 1 n 1 ~ ~ g ( n) ~ h( N 1 n) g (n) (1) h(n) n Exemplo 5.5 Considere o filtro passa-baixo : h(n) [0.4830, 0.8365, 0.2241, 0.1294] Os outros filtros obtêm-se da forma seguinte: h(0) g~(0) h(1) g~(1) h(2) g~( 2) h(3) g~(3) Filtro passa-alto de análise g~(n) [0.4830, 0.8365, - 0.2241, 0.1294] Exemplo 5.5 (..cont.) Filtro passa baixo de análise g~(n) [0.4830, 0.8365, - 0.2241, 0.1294] ~ ~ ~ g~(0) h ( N 1) h (3) g~(1) h (2) ~ ~ g (2) h (1) Então ~ h (n) [0.1294, 0.2241, 0.8365, 0.4830] Filtro passa alto de síntese ~ ~ g (0) h (0) g (1) h (1) Então ~ ~ g (3) h (0) ~ g (2) h (2) ~ g (3) h (3) g (n) [0.1294, 0.2241, 0.8365, - 0.4830] Exemplo 5.6 Considere o filtro passa baixo: h(n) 1 / 2 1 / 2 [0.7071, 0.7071] Os outros filtros podem ser obtidos da seguinte forma: Filtro Passa alto de análise : g~(n) [0.7071, - 0.7071] Filtro Passa baixo de análise ~ h (n) [0.7071, 0.7071] Filtro passa alto de síntese g (n) [0.7071, 0.7071] Cálculo da saída de banco de filtros Exemplo 5.7 Considere o banco de filtros do Exemplo 5.6. Calcule a saída dos vários estágios do banco de filtros para a entrada: x(n) [1, 2, 5, 7, 8, 1, 4, 5] Após o primeiro nível de filtros : ~ x0 (n) x(n) h (n) [2.1213 4.9497 8.4853 10.6066 6.3640 3.5355 6.3640 4.2426] x 0 (0) 1 0.7071 2 0.7071 2.1213 x 0 (7) 5 0.7071 1 0.7071 4.2426 ~(n) x1 (n) x(n) g [-0.7071 - 2.1213 - 1.4142 - 0.7071 4.9497 - 2.1213 - 0.7071 2.8284] Exemplo 5.7 (..cont) Depois da dizimação: v0 (n) x0 (n) 2 [2.1213 8.4853 6.3640 6.3640] v1(n) x1(n) 2 [-0.7071 - 1.4142 4.9497 - 0.7071] Depois da sobre-amostragem xˆ0 (n) [2.1213 0.0 8.4853 0.0 6.3640 0.0 6.3640 0.0] xˆ1(n) [-0.7071 0.0 - 1.4142 0.0 4.9497 0.0 - 0.7071 0.0] Exemplo 5.7 (..cont) Após filtro de síntese x0 (n) xˆ0 (n) h(n) [1.500 1.500 6.000 6.000 4.500 4.500 4.500 4.500] x1(n) xˆ1(n) g (n) [-0.50 0.50 - 1.00 1.00 3.500 - 3.500 - 0.500 0.500] Saída reconstruída ˆx(n) x 0 (n) x1 (n) [1, 2, 5, 7, 8, 1, 4, 5] Transformadas e Filtragem Digital As transformadas unitárias fornecem coeficientes para diferentes frequências Os coeficientes de sub-banda também disponibilizam coeficientes para as diferentes bandas idealmente não sobrepostas no domínio da frequência Pode ser mostrado que as transformadas de bloco são um caso especial de banco de filtros Transformadas e Filtragem Digital Uma transformada de N-pontos pode ser calculada usando um banco de filtros de N bandas Cada filtro corresponde ao conjugado complexo de uma função de base A saída de cada filtro é dizimada por N Por cada conjunto de N amostras de entrada há uma saída para cada um dos N filtros Essas saídas são basicamente os coeficientes da transformada. Exemplo 5.8 Relação entre transformada e filtragem digital Considere a sequência de 12 pontos [{2,5,7,6},{1,3,9,4},{6,8,5,7}] Calcule os coeficientes DCT de segunda ordem para cada bloco de 4 coeficientes Pode-se concretizar o DCT como banco de filtros? Exemplo 5.8 (cont.) Usando Eq. (5.18), os coeficientes de 2da ordem de cada bloco podem ser calculados como de cada bloco podem ser calculados como {-3.1543, -3.5834, -0.6069, 0.1585}. Sim, os coeficientes DCT podem também ser concretizados usando um banco de filtros Os coeficientes de segunda ordem podem ser calculados passando a sequência de entrada através dum filtros digital com a resposta de impulso h = [cos(pi/8), cos(3*pi/8), cos(5*pi/8), cos(7*pi/8)] que é a função de base de segunda ordem Observe que quando o filtro digital está em operação cada bloco de 4 amostras de entrada produzirá uma amostra à saída do filtros de segunda ordem. Transformadas wavelet Limitações da Transformada de Fourier e derivadas Têm funções de base com muitos impulsos Fraco desempenho para análise de sinais não estacionários Dificuldade de estimação das caraterísticas no tempo ou do espaço a partir da amplitude do espectro Más características de flltragem Boa decomposição de sub-banda É ineficiente para muitas aplicações Só para dados discretos Características unitárias não disponíveis à partida Porquê que funções de base longas podem ser indesejáveis? As funções de base para FT contínuas são infinitamente longas. As funções de base para a transformada discreta de Fourier não são infinitas mas são longas. -- Por exemplo, para a DFT de 256 pontos há 256 funções de base cada uma como 256 impulsos. Em muitas aplicações tal como compressão do sinal, essas funções base longas não são desejáveis. -- Para representar um pequeno pulso rectangular são necessários uma série de componentes na frequência, o que pode degradar a taxa de compressão FT longas e curtas Funções de base de Fourier (suporte infinito) Funções de base de Fourier de tempo curto (suporte finito) Resolução Tempo-Frequência frequência frequência (a) STFT time (b) Wavelets time Funções de base de STFT e Wavelets Transformada Discreta Wavelet 1-D Transformada Wavelet Ferramenta potente e recente Diversas aplicações em ciências e engenharia Melhores técnicas de transformada e decomposição em sub-banda Pode ser considerada uma transformada ou técnica de decomposição em sub-banda Não tem conjunto único de funções de base Funções de base concebidas de acordo com a aplicação Transformada Discreta Wavelet Directa Uma dada transformada wavelet dyadic é definida de forma única por um filtro FIR passa-baixo h[.] e um FIR passa-alto g[.] . Considere uma sequência discreta de N pontos c 0,k 0 k N 1 Os coeficientes DWT são calculados recursivamente usando as equações seguintes Passa-baixo c j 1,k c j ,mh[m 2k ] m Passa-Alto d j 1,k c j ,m g[m 2k ] m Escala Localização 0 k N / 2 j 1 1 Decomposição Wavelet Há uma série de observações a fazer: A sequência de entrada pode ser considerada como os coeficientes DWT de escala 0 c1,k pode ser obtido pela convulsão de c0,m com h[n]e dizimando a saída da convulsão por 2 (devido ao factor 2k) d1,k pode ser obtido pela convulsão de c0,m com g[ne] dizimando a saída da convulsão por 2 A decomposição continua recursivamente. Apenas os coeficientes passa baixo são decompostos. Algoritmo em árvore Cálculo dos coeficientes da DWT h[n] h[n] 2 cj 2 c j 2 2 d j 2 c j 1 g[n] g[n] 2 d j 1 Decomposição de sinal com filtros de análise Decomposição DWT usando matriz A decomposição pode ser feita através duma multiplicação de matrizes A DWT duma sequência de 8 pontos pode ser calculada com filtros passa-baixo e passa-alto de 4 implusos com a seguinte multiplicação de matrizes : c j1,0 h[0] d j1,0 h[3] c j1,1 d j1,1 c j1,2 d j1,2 c h[2] j1,3 d j1,3 h[1] h[1] h[2] h[3] - h[2] h[1] - h[0] h[0] h[1] h[2] h[3] h[3] - h[0] h[1] - h[0] h[0] h[1] h[2] h[3] - h[2] h[1] h[3] h[0] - h[0] h[3] c j,0 c j,1 c j,2 c j,3 h[3] c j,4 - h[0] c j,5 h[1] c j,6 - h[2] c j,7 Transformada Inversa DWT Síntese Utilizando uma abordagem similar à decomposição em wavelet Os coeficientes duma dada escala podem ser reconstruídos com coeficientes de escala superior c j ,m c j 1,k h[m 2k ] d j 1,l g[m 2l ] k l Transformada Wavelet Inversa Os coeficientes wavelet duma duma escala podem ser reconstruídos usando os coeficientes de escalas mais altas. Os coeficientes reconstruídos podem ser expressos como se segue: c j ,m c j 1,k h[m 2k ] d j 1,l g[m 2l ] k l Os coeficientes wavelet duma da escala são sobreamostrados de 2 (i.e inserir um zero entre coeficientes consecutivos) Os coeficientes sobreamostrados são passados por um conjunto de filtros passa-baixo e passa-alto e a seguir adicionados para obter os coeficientes wavelet da escala de resolução superior seguinte. Algoritmo em árvore Cálculo dos coeficientes da DWT c j 1 2 h[n] d j 1 2 cj 2 h[n] g[n] dj 2 g[n] Reconstrução de sinal com filtros de síntese c j 1 Matriz de Transformada Inversa A DWT inversa de uma sequência de 8 pontos pode ser calculada com filtros passa-baixo e passa-alto de 4 impulsos usando a seguinte multiplicação de matrizes: c j , 0 h[0] h[3] c j ,1 h[1] h[2] c j , 2 h[2] h[1] c j ,3 h[3] h[0] c j , 4 c j ,5 c j , 6 c j ,7 h[0] h[3] h[1] h[2] h[2] h[1] h[0] h[3] h[0] h[1] h[2] h[3] h[2] h[1] c j 1, 0 d h[3] h[0] j 1,0 c j 1,1 d j 1,1 h[3] c j 1, 2 d j 1, 2 h[2] h[1] h[0] h[3] c j 1,3 h[0] h[1] h[2] d j 1,3 Wavelet 1-D: Decomposição e Síntese Processamento LPF FPB ~ h (n) x0 ( n ) 2 v0 ( n ) xˆ 0 ( n ) FPB LPF 2 h(n) x (n ) FPA FPA g~( n ) 2 x1 ( n ) g (n ) 2 v1 ( n ) xˆ1 ( n ) ? x0 ( n ) ? ? x1 ( n ) xˆ ( n ) Wavelets Daubechies de fase mínima # Imps n h[n] N=2 L=1 0 1 0.70710678 0.70710678 N=4 L=2 0 1 2 3 0.482962913144 0.836516303737 0.224143868042 -0.129409522551 N=8 L=4 0 1 2 3 4 5 6 7 0.230377813308 0.714846570552 0.630880767939 -0.027983769416 -0.18703481171 0.030841381835 0.032883011666 -0.010597401785 # Imps n h[n] N=12 L=6 0 1 2 3 4 5 6 7 8 9 10 11 0.111540743350000 0.494623890398000 0.751133908021000 0.315250351709000 -0.226264693965000 -0.129766867567000 0.097501605587000 0.027522865530000 -0.031582039318000 0.000553842201000 0.004777257511000 -0.001077301085000 DWT: Exemplo 5.9 Considere uma sequência de 4 pontos f=[2,5,7,6]. Decomponha a sequência com auxílio da wavelet de dois impulsos dada na tabela 5.3 (Wavelet Haar). Reconstrua a sequência de entrada a partir dos coeficientes de Haar. Exemplo 5.9 (cont.) O coeficientes de Haar do 1º estágio (i.e., escala 1) podem ser calculdos com: 0 0 c0,0 0.707 0.707 0 0 2 4.95 c1,0 h[0] h[1] d c 0.707 0.707 5 2.12 h [ 1 ] h [ 0 ] 0 0 0 0 1 , 0 0 , 1 c1,1 0 0 h[0] h[1] c0, 2 0 0 0.707 0.707 7 9.19 d c 0 0 h [ 1 ] h [ 0 ] 0 0 0 . 707 0 . 707 6 0 . 71 0,3 1,1 Na segunda iteração da recursividade são usados apenas os coeficientes passa baixo c2,0 h[0] h[1] c1,0 0.707 0.707 4.95 10 d c 2,0 h[1] h[0] 1,1 0.707 0.707 9.19 3 Exemplo (..cont) Após rearranjos os coeficientes de Haar ficam [c2,0 , d 2,0 , d1,0 , d1,1 ] = [10 -3 -2.12 0.71] Reconstrução do sinal c1,0 h[0] h[1] c2,0 0.707 0.707 10 4.95 c d h [ 1 ] h [ 0 ] 0 . 707 0 . 707 3 9 . 19 2 ,0 1,1 0 0 c1,0 0.707 0.707 0 0 4.95 2 c0,0 h[0] h[1] c d 0.707 0.707 2.12 5 h [ 1 ] h [ 0 ] 0 0 0 0 0 , 1 1 , 0 c0, 2 0 0 h[0] h[1] c1,1 0 0 0.707 0.707 9.19 7 c d 0 0 h [ 1 ] h [ 0 ] 0 0 0 . 707 0 . 707 0 . 71 1,1 6 0,3 Funções de base para a Wavelet Haar Fig. 5.13, pag 108 Transformadas 2D Transformada Unitária 2-D Transformada 1-D Útil para análise de sinal 1-D Transformada 2-D Necessária para análise de sinais 2-D Exemplo: imagens Baseada na extensão dos conceitos 1-D Transformada Unitária 2-D A transformada directa e inversa 2-D são definida com N 1 N 1 (k , l ) (k , l; m, n)i(m, n) m 0 n 0 N 1 N 1 i( m, n) ( m, n; k , l ) ( k , l ) k 0 l 0 onde Exemplo: Fourier Cosine I i(m, n) = Imagem NxN Wavelet = Núcleo da t.directa Hadamard (.) Haar = Núcleo da t.inversa (.) Transformada Unitária 2-D Propriedades Conservação da Energia N 1 N 1 N 1 N 1 i(m, n) (k , l ) I 2 m 0 n 0 2 2 2 m 0 n 0 Soma dos erros quadráticos N 1 N 1 N 1 N 1 2 ^ ^ i(m, n) i(m, n) (k , l ) (k , l ) m 0 n 0 m 0 n 0 Imagens de Base separáveis I * T I * T 2 Propriedades da Transforma 2-D Conservação da energia Pode ser mostrado que os coeficientes da transformada 2D unitária satisfazem a relação de Parseval’s, i.e. A energia total no domínio da frequência é igual à energia total no domínio do tempo N 1 N 1 i(m, n) m 0 n 0 2 N 1 N 1 ( k , l ) 2 k 0 l 0 A transformada unitária preserva a energia do sinal ou de forma equivalente o comprimento no espaço vectorial N-dimensional. Pode ser considerada simplesmente como uma rotação do vector no espaço vectorial N-dimensional. Por outras palavras, a transformada unitária roda as coordenadas de base e os componentes (coeficientes da transformada) são as projeções no novo sistemas de coordenadas. Soma dos quadrados de erros Assuma que valor de algun(s) dos coeficientes da tarsnformada muda durante o processamento. Esta mudança pode ocorrer na transmissão ou compressão de dados. Se recosntruímos a imagem claculando a transformada inversa usando os coeficientes mudados, a imagem reconstruída é diferente da original. Pode-se mostrar a seguinte igualdade é sempre verdadeira para transformadas unitárias N 1 N 1 N 1 N 1 i(m, n) iˆ(m, n) (k , l ) ˆ(k , l ) m 0 n 0 Pixéis originais 2 2 k 0 l 0 Píxeis Reconstruídoss Coeficientes originais Coeficientes mudados Imagens de base separáveis Alguns núcleos 2-D podem ser expressos como o produto de 2 funções ortogonais de base 1-D. Se o operador de transformada 1-D for designado por as transformadas directas e inversas podem ser expressas como * I T I T * Uma transformada separável pode ser concretizada em 2 passos: -- Calcular a transformada unitária de cada fila da matriz da imagem . -- Calcular a transformada unitária de cada coluna dos coeficientes transformados intermédios . Definição da DFT 2D O par DFT unitário2D é definido por 1 (k , l ) N 1 i (m, n) N N 1 N 1 i(m, n) W m 0 n 0 km N ln N W 0 k, l N 1 N 1 N 1 (k , l ) k 0 k 0 onde j 2 W N exp N - km N W -ln N W 0 m, n N 1 Exemplo DFT 2D Calcular a DFT e desenhar o espectro de amplitude da seguinte image 32x32. 1 i(m, n) 0 15 16 17 & 8 n 24 otherwise Observe que a imagem é basicamente um paralelepípedo rectangular. A transformada de Fourier duma função rectangular 1-D é a função sinc. Portanto, a transformada de Fourier duma função rectangular 2-D é a função sinc 2-D. Exemplo DFT 2D (cont.) Ve r t. F re que ncy ncy e que r F . Ho r Por clareza, o espectro (sinc 2D) foi centralizado (a frequência DC no meio). Observe que o rectângulo tem uma largura maior na horizontal quena vertical. Isto reflecte-se no espectro. O espectro tem melhor resolução de frequência na horizontal. . Propriedades da DFT 2D A maior parte das propriedades da DFT 1D podem ser extendidas para a DFT 2D Convolução Correlação Conservação da Energia Soma mínima do erro quadrático Propriedades da DFT 2D Separabilidade Pode ser mostrado que a DFT 2D é separável O cálculo da DFT para uma imagem pode ser feito em dois passos simples Calcular a DFT 1D de cada fila da imagem A fila é substituída pelos respectivos coeficientes DFT Calcular a DFT 1D de cada coluna da imagem A coluna é substituída pelos respectivos coeficientes DFT Propriedades da DFT 2D Separabilidade N-1 (0,0) n u(m,n) N-1 N-1 (0,0) l v´(m,l) N-1 m Transformada das filas l v(k,l) N-1 m N-1 (0,0) k Transformada das colunas Exemplo Usando a abordagem de separação, calcular a DFT 2D para a imagem seguinte: Transformada da Fila 2 1 2 2 3 4 5 2 4 9 7 1 7 8 3 4 Imagem original 8 6 j 4 12 6 j 4 1 16 1 j 3 10 1 j 3 2 18 7 j 4 7 j 14 1 j 3 8 1 j 3 Transformada de fila dos Coeficientes Transformada de coluna 8 6 j 4 12 6 j 4 1 16 1 j 3 10 1 j 3 2 18 7 j 4 7 j 8 1 j3 14 1 j 3 56 10 2 j 1 F (k , l ) 4 4 10 2 j 1 3 j 26 19 7 j 16 2 j 1 3 j 10 7 3 j 16 2 j 1 3 j 7 3 j 1 3 j 19 7 j Transformada de Fila dos coeficientes Coeficientes DFT 2D depois da transformada de coluna Conjugado simétrico dos dados Reais Se a imagem é real, os coeficientes DFT satisfazem as propriedades de simetria seguintes (k , l ) * ( N k , N l ) 2 1 2 2 3 5 4 7 56 4 7 2 8 10 2 j 9 3 4 1 4 10 2 j 1 3 j 26 1 3 j 19 7 j 16 2 j 7 3 j 1 3 j 10 1 3 j 7 3 j 16 2 j 19 7 j Compactação da Energia A DFT disponibiliza uma compactação de energia significativa para a maioria das imagens. Espectro DFT Coeficientes de Baixa Frequência Observa-se que a maior parte da energia está concentrada nos quatro cantos da imagem que representam as baixas frequências. Definição da DCT 2D O par DCT NxN 2D é definido por N 1 N 1 (2m 1)k ( k , l ) ( k ) ( l ) i ( m , n ) cos 2N m 0 n 0 N 1 N 1 (2m 1)k i ( m , n ) ( k ) ( l ) cos 2N k 0 l 0 cos cos (2n 1)l 2N (2n 1)l ( k ,l ) 2N 0 k, l N 1 0 m , n N 1 Imagens de base para DCT 2D Figura 5.17, pag. 116 Propriedades da DCT 2D As propriedades da DCT 1D podem ser prontamente expandidas para a 2D Compactação da energia na região de baixas frequências A DCT 2D é separável Os coeficientes podem ser calculados usando as transformadas de fila e de coluna DCT 2D: Exemplo 5.12 Usando a abordagem da separabilidade calcular a DCT 2D da imagem 2 1 2 2 3 4 5 2 4 9 7 1 7 8 3 4 Separabilidade 2 1 2 2 3 4 5 2 4 9 7 1 7 8 3 4 4 1.37 5 5.92 Row Transform 8 3 . 76 1 3 . 85 9 2 4 2.99 7 0 . 32 1 4 . 4 Column Transform 2-D DCT Coefficients 3.41 0.5 5.62 14 2.23 1.58 5.27 2.81 3 2 . 35 3 . 5 4 . 76 0 . 16 0 . 69 1 . 64 4 . 08 Energy Compaction As in the 1-D case, the 2-D DCT can compact energy of typical images very efficiently. DCT Coeff. of Lena image Most of the energy is concentrated in the low frequency region (upper left corner). It has been shown that DCT provides near optimal energy compaction performance for most natural images. As a result, it has been accepted as the transform kernel for most Propriedades da DCT 2D Compactação da energia Figura 5.18 DCT e DFT duma Imagem DFT DCT Definição da DWT 2D Tal como na 1D não há um único núcleo de transformação Há DWT 2D unitárias e outras que não Há DWT 2D separáveis e outras que não Wavelets bi-ortogonais (não unitárias) populares na compressão de imagens A maioria das DWT 2D são dyadic e separáveis Na DWT 1D, cada nível de decomposição corresponde a 2 bandas de dados(alta e baixa resolução) Na DWT 2D cada nível produz 4 bandas Baixa, bandas altas verticais, horizontais e diagonais Wavelets 2D Separáveis Vertical Edges f(x,y) b (1,1) L Row Transform F(x,v) H Transform a Horizontal Edges HH 2-D Image 2-D DWT (1 Stage) LL Column a a b (1,1) HL LH LL HL HH b (1,1) LH F(u,v) Diagonal Edges Wavelets 2-D L H Row LL HL LH HH Column Transform Transform HH 2-D Image 2-D DWT (1 Stage) HL LH LL Decomposição Wavelet da Imagem da Lena Informacão Espacial e de Frequência Todas as sub-bandas disponibilizam informação espacial e de frequência A estrutura espacial da imagem é visível em todas as sub-bandas. Pode ser observada uma imagem na banda de mais baixa resolução. As bandas de alta frequência disponibilizam as informação detalhada (arestas) nas várias escalas. Representação Multi-Resolução A decomposição wavelet disponibiliza uma representação multiresolução da imagem. Uma imagem grosseira é disponibilizada na banda de baixa frequência. Pode-se obter uma imagem de resolução mais alta calculando a tarnsformada inversa das 4 sub-bandas de menor resolução. A imagem com resolução total obtém-se calculando a transformada inversa das 7 sub-bandas Compactação de energia As Wavelets têm um excelente desempenho na compactação da energia. Os coeficientes de sub-bandas altas têm pequena magnitude. Assim pode ser conseguida uma maior compactação das imagens quantificando os coeficientes wavelet. 530.4 26.4 8.4 11.3 15.7 5.4 3.4 DWT 2D: Exemplo 5.13 Considere a imagem da Lena do Ex. 5.2. Calcule A transformada wavelet de dois estágios usando a wavelet de Daub com 4 impulsos Coeficientes da transformada Para os pixels das diferentes bandas calcule a raiz da energia quadrática média