PDS - Notas de Aula
Description
Processamento Digitalde Sinais Carlos Alexandre Mello Centro de Informática – UFPE 2015 Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 2 Agradecimentos à primeira turma de Processamento Digital de Sinais dos cursos de Engenharia da Computação e Ciência da Computação de 2010.1: Adriano Damascena, Bernardo Fonseca, Daker Fernandes, Daniel Brito, Fernando Rodrigues, Gabriel Carvalho, João Carlos Procópio, Lucas André Paes, Luis Felipe Pereira, Onildo Ferraz Filho, Rafael Menezes, Renan Pires, Rodolpho de Siqueira, Rodrigo Perazzo, Thiago Lima e Thiago Henrique Fernandes. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 3 Índice 1. Processamento Digital de Sinais ...................................................................... 6 1.1 Principais Tipos de Sinais ........................................................................... 7 1.2 Sistemas Discretos no Tempo..................................................................... 9 1.3 Sistemas Lineares e Invariantes no Tempo .............................................. 10 1.4 Operações entre sequências..................................................................... 14 1.5 Sistemas LTI como Filtros Seletores de Frequência ................................. 16 1.6 Representação de Sequências pela Transformada de Fourier ................. 19 1.6.1 Propriedades da Transformada de Fourier ......................................... 23 1.7 Códigos do MatLab (Sinais e Operações) ................................................. 25 1.8 Exercícios .................................................................................................. 34 1.8 Bibliografia Complementar ........................................................................ 37 2. A Transformada Z ........................................................................................... 38 2.1 Propriedades da Transformada Z.............................................................. 40 2.2 Pares de Transformadas Z ........................................................................ 43 2.3 Exemplos de Cálculo da Transformada Z ................................................. 43 2.4 Propriedades da Região de Convergência ................................................ 51 2.5 A Transformada Z Inversa ......................................................................... 52 2.6 Exercícios .................................................................................................. 61 2.7 Bibliografia Complementar ........................................................................ 63 3. Teorema da Amostragem ............................................................................... 64 3.1 Teorema de Shannon................................................................................ 69 3.2 Re-Obtenção do Sinal a partir de suas amostras ...................................... 74 4. Filtros Digitais ................................................................................................. 77 4.1 Filtros Digitais ............................................................................................ 79 4.2 Filtros FIR .................................................................................................. 83 4.3 Filtros IIR ................................................................................................. 106 4.4 Exercícios ................................................................................................ 112 4.5 Bibliografia Complementar ...................................................................... 113 5. Técnicas de projeto de filtros ........................................................................ 114 5.1 Projeto de Filtros FIR .............................................................................. 117 5.1.1 Projeto usando janelas ..................................................................... 118 5.1.2 Técnicas de Projeto por Amostragem em Frequência ...................... 144 5.1.3 Projeto Equirriple Ótimo .................................................................... 146 5.2 Projeto de Filtros IIR................................................................................ 149 5.2.1 Escala Relativa ................................................................................. 150 5.2.2 Características de Protótipos Analógicos ......................................... 153 5.3 Transformações em Frequência.............................................................. 162 5.4 Comparação entre Filtros FIR e IIR......................................................... 164 5.5 Exercícios ................................................................................................ 166 5.6 Bibliografia Complementar ...................................................................... 167 6. Transformada Discreta de Fourier ................................................................ 168 6.1 A Série Discreta de Fourier ..................................................................... 169 6.2 A Transformada Discreta de Fourier ....................................................... 174 6.3 Propriedades da Transformada Discreta de Fourier ............................... 176 Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 4 6.4 A Transformada Discreta Bi-Dimensional de Fourier .............................. 179 6.5 O Espectrograma .................................................................................... 181 6.6 Exercícios ................................................................................................ 185 6.7 Bibliografia Complementar ...................................................................... 187 7. Transformada Rápida de Fourier (FFT- Fast Fourier Transform) ................. 188 7.1 Algoritmos Rápidos ................................................................................. 188 7.2 Algoritmo de Cooley-Tukey ou Decimação no Tempo ............................ 190 7.3 Outras FFTs ............................................................................................ 201 7.4 Exercícios ................................................................................................ 203 7.5 Bibliografia Complementar ...................................................................... 204 8. Análise Wavelet ............................................................................................ 205 8.1 A Transformada Wavelet ......................................................................... 208 8.2 Análise em Multiresolução....................................................................... 212 8.3 Sobre os coeficientes das wavelets ........................................................ 215 8.4 Wavelets no MatLab................................................................................ 220 8.5 Exercícios ................................................................................................ 227 8.6 Bibliografia Complementar ...................................................................... 229 9. Processamento Digital de Imagens .............................................................. 230 9.1 Digitalização ............................................................................................ 233 9.2 Sistema Computacional de Cores ........................................................... 236 9.3 Histograma .............................................................................................. 240 9.4 Filtragem de Imagens Digitais ................................................................. 242 9.5 Compressão de Imagens ........................................................................ 250 9.6 Processamento de Imagens no MatLab .................................................. 252 9.7 Exercícios ................................................................................................ 256 9.8 Bibliografia Complementar ...................................................................... 257 10. Técnicas de Codificação de Áudio e Vídeo ................................................ 258 10.1 Teoria dos Códigos ............................................................................... 258 10.2 Algoritmos de Compressão ................................................................... 262 10.2.1 Código de Huffman ......................................................................... 263 10.2.2 Run-length ...................................................................................... 266 10.2.3 Algoritmo de Lempel-Ziv-Welch ...................................................... 266 10.3 Algoritmos de codificação multimídia .................................................... 267 10.3.1 Codificação de Vídeo ...................................................................... 268 10.3.2 Codificação de Áudio ...................................................................... 282 10.4 Implementações no MatLab .................................................................. 287 10.4.1 Processamento de Vídeo no MatLab ................................................. 287 10.4.2 Processamento de Áudio no MatLab ................................................. 293 10.5 Exercícios .............................................................................................. 303 10.6 Bibliografia Complementar .................................................................... 304 11. Processamento de Voz ............................................................................... 305 11.1 Amostragem e Quantização .................................................................. 312 11.2 Técnicas Temporais para Processamento de Voz ................................ 319 11.2.1 Energia de Curta Duração .............................................................. 321 11.2.2 Magnitude de Curta Duração .......................................................... 323 11.2.3. Taxa de Passagem pelo Zero ........................................................ 324 Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 5 11.2.4. Função de Autocorrelação ............................................................. 326 11.3 Análise Cepstral .................................................................................... 329 11.4 Exercícios .............................................................................................. 334 11.5 Bibliografia Complementar .................................................................... 335 Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 6 1. Processamento Digital de Sinais Sinais estão presentes em diversas situações do dia-a-dia do ser humano. Um sinal pode ser definido como uma função que carrega uma informação. A forma mais comum para nós é a comunicação por sinal de voz. Nesse exemplo, temos o sinal gerado pelo trato vocal e o sinal recebido pelo sistema auditivo. Apesar de ser o mesmo sinal transmitido a forma como ele é processado é inerente ao receptor. O processamento de sinais lida com a representação, transformação e manipulação dos sinais e da informação que eles contêm. Até a década de 60, a tecnologia para processamento de sinais era basicamente analógica. A evolução de computadores e microprocessadores juntamente com diversos desenvolvimentos teóricos causou um grande crescimento na tecnologia digital, surgindo o processamento digital de sinais (PDS). Um aspecto fundamental do processamento digital de sinais é que ele é baseado no processamento de sequências de amostras. Para tanto, o sinal contínuo no tempo é convertido nessa sequência de amostras, i.e., convertido em um sinal discreto no tempo. Após o processamento digital, a sequência de saída pode ser convertida de volta a um sinal contínuo no tempo. A maior parte do processamento de sinais envolve processar um sinal para obter outro sinal. Normalmente, isso é conseguido por um processo conhecido como filtragem. Sinais podem ser classificados em quatro diferentes categorias dependendo de características de tempo e dos tipos de valores que eles podem assumir. Sinais contínuos no tempo (ou analógicos) são definidos para qualquer valor de tempo e eles assumem valores no intervalo contínuo (a, b), onde a pode ser -∞ e b pode ser +∞. Podem ser representados por uma função de variáveis contínuas. Sinais discretos no tempo são definidos apenas para certos valores específicos de tempo. Podem ser representados matematicamente por uma sequência de números reais ou complexos, x. O n-ésimo número dessa sequência é denotado por x[n]. Assim, x é formalmente escrito como: No entanto. em aplicações práticas. δ[n]. Carlos Alexandre Barros de Mello Página 7 x = {x[n]}. sem incerteza. uma tabela de dados ou uma regra bem definida é chamado determinístico. i. -∞ <n < ∞ onde n é um inteiro. n ≠ 0 δ [ n] = 1. Isso indica que tais sinais têm comportamentos imprevisíveis sendo chamados de sinais aleatórios. Sinais também podem ser classificados em determinísticos ou aleatórios. definido como: 0.1 Principais Tipos de Sinais Em um estudo sobre processamento digital de sinais. Se um sinal pode assumir qualquer valor dentro de um espaço finito ou infinito. Ou seja.e. n = 0 . Dentre eles.Processamento Digital de Sinais – Prof. 1. -∞ <n < ∞ Os valores de amplitude de sinais contínuos ou discretos no tempo podem ser contínuos ou discretos. os sinais não podem ser representados precisamente por equações matemáticas ou suas descrições são muito complexas para uso. Tais sequências são geradas a partir de um processo de amostragem periódica de um sinal analógico. Qualquer sinal que podem ser unicamente descrito por uma expressão matemática.: x[n] = xa(nT). alguns sinais são de mais importância. Esse termo é usado para destacar que quaisquer valores passados. temos o impulso unitário. Assim. presentes e futuros do sinal são conhecidos precisamente. ele é discreto no tempo e só pode assumir valores dentro de um conjunto finito de possíveis valores (é discreto em valores). o valor numérico do n- ésimo número da sequência é igual ao valor do sinal analógico xa(t) no tempo nT. Sinais digitais são aqueles para os quais tanto o tempo quanto a amplitude são discretos. ele é dito um sinal contínuo em valores. Processamento Digital de Sinais – Prof. Isso pode ser expresso como: ∞ u[n] = ∑ δ [ n − k ] k =0 Por outro lado.2] – 1. o impulso relaciona-se com o degrau unitário como: δ[n] = u[n] – u[n – 1] . a sequência p[n] abaixo: pode ser representada como: p[n] = 3. Por exemplo. qualquer sequência x[n] pode ser representada como: ∞ x[ n] = ∑ x[k ]δ [n − k ] k = −∞ Outra sequência importante é o degrau unitário.δ[n – 3] De forma mais geral.δ[n+3] + 2. n < 0 O degrau relaciona-se com o impulso como: n u[n] = ∑ δ [k ] k = −∞ Uma forma alternativa de representar o degrau em termos de impulso é obtida interpretando o degrau em termos de uma soma de impulsos deslocados. u[n]: 1. n ≥ 0 u[ n] = 0. Carlos Alexandre Barros de Mello Página 8 Um dos mais importantes aspectos do impulso é que uma sequência arbitrária pode ser representada como uma soma de impulsos escalonados e deslocados.δ[n .δ[n + 1] + 4. -∞ <n < ∞ M2 1 2) Média móvel: ∑ x[n − k ] M 1 + M 2 + 1 k = − M1 A seguir.Processamento Digital de Sinais – Prof. 1. 1) Um sistema é dito sem memória (memoryless systems) se a saída y[n] a cada valor de n depende apenas da entrada x[n] no mesmo valor de n. Ex: y[n] = {x[n]}2 2) Um sistema é linear se obedece ao princípio da superposição.1. 1. Fig. A forma geral de uma sequência exponencial é dada por: x[n] = A.2 Sistemas Discretos no Tempo Um sistema discreto no tempo é definido matematicamente como uma transformação que mapeia uma sequência de entrada x[n] em uma sequência de saída y[n]. Ou seja: . Carlos Alexandre Barros de Mello Página 9 Uma sequência exponencial é importante na análise de sistemas discretos e invariantes no tempo.αn 1. Representação de um sistema discreto no tempo Alguns exemplos ilustram sistemas simples: 1) Sistema de atraso ideal: y[n] = x[n – nd]. Isso pode ser denotado por: y[n]=T{x[n]} como representado na Fig. destacamos algumas importantes propriedades dos sistemas.1. n].x2[n]} = a. então |y[n]| ≤ C < ∞. Ex: Um sistema não causal: y[n] = x[n + 1] – x[n] 5) Um sistema é dito estável se toda entrada limitada provoca uma saída limitada. se. para algum valor finito C. para todo n. x[n] = x[n – n0]. -∞ <n < ∞ 4) Um sistema é dito causal se ele não depende de valores futuros da sequência.Processamento Digital de Sinais – Prof. Ex: Um sistema de atraso ideal é um sistema invariante no tempo. o valor de y[n1] pode ser calculado apenas com valores de x[n] para n ≤ n1.T{x2[n]} n Ex: Acumulador: y[ n ] = ∑ x[ k ] k = −∞ 3) Um sistema é invariante no tempo é um sistema no qual um deslocamento no tempo (ou atraso) da sequência de entrada gera um deslocamento correspondente na sequência de saída. Ou seja. Ex: O seguinte exemplo mostra um sistema que não é invariante no tempo: y[n] = x[M. Como dito acima. Assim. Carlos Alexandre Barros de Mello Página 10 T{a. suponha um sistema que transforma uma sequência de entrada x[n] na sequência de saída y[n]. para algum valor finito B.x1[n] + b.3 Sistemas Lineares e Invariantes no Tempo Uma classe importante de sistemas consiste naqueles que são lineares e invariantes no tempo. Se a propriedade da linearidade é . 1. os sistemas lineares são aqueles que obedecem ao princípio da superposição.T{x1[n]} + b. Ou seja. |x[n]| ≤ B < ∞. então a sequência de saída torna-se y[n] = y[n – n0]. Se a sequência de entrada sofre um deslocamento de n0. 1. Carlos Alexandre Barros de Mello Página 11 combinada com a representação de uma sequência geral como uma combinação de impulsos. Com isso. Seja hk[n] a resposta do sistema a δ[n – k].2) Apesar da semelhança na notação. como: ∞ x[ n] = ∑ x[k ]δ [n − k ] k = −∞ então ∞ y[ n] = T { ∑ x[ k ]δ [ n − k ]} k =−∞ Pelo princípio da superposição. podemos escrever: ∞ ∞ y[ n] = ∑ x[k ]T {δ [n − k ]} = ∑ x[k ]h [n] k =−∞ k =−∞ k De acordo com essa equação. . A propriedade da invariância no tempo implica que.Processamento Digital de Sinais – Prof. deve-se salientar que a soma de convolução para sinais discretos não é uma aproximação da integral de convolução. um sistema linear invariante no tempo é completamente descrito por sua resposta ao impulso. então a resposta a δ[n . então um sistema linear pode ser completamente caracterizado pela sua resposta ao impulso. 1. se h[n] é a resposta a δ[n]. Assim. podemos dizer que: ∞ y[ n] = ∑ x[k ]h[n − k ] k = −∞ (Eq.1) Como consequência. a resposta do sistema a qualquer entrada pode ser expressa em termos da resposta a δ[n – k]. Essa equação é conhecida como soma de convolução (convolution sum) que pode ser representada pela notação: y[n] = x[n]*h[n] (Eq.k] é h[n – k]. podemos fazer m = n – k. 2) Distributividade: x[n]*(h1[n] + h2[n]) = x[n]*h1[n] + x[n]*h2[n] 3) Conexão em Cascata 4) Conexão em Paralelo . 1. Especificamente. Carlos Alexandre Barros de Mello Página 12 Propriedades da soma de convolução: 1) Comutatividade: x[n]*h[n] = h[n]*x[n] Isso pode ser facilmente justificável com uma mudança de variável na Eq.Processamento Digital de Sinais – Prof.1. Processamento Digital de Sinais – Prof. um sistema é dito causal se sua resposta não depende de eventos futuros. tem resposta ao impulso hi[n] definida pela relação: h[n]*hi[n] = hi[n]*h[n] = δ[n] Uma classe importante de sistemas lineares invariantes no tempo consiste daqueles para os quais x[n] e y[n] se relacionam através de uma equação de diferenças de coeficientes constantes lineares de n-ésima ordem da forma: N M ∑a k =0 k y[ n − k ] = ∑ bk x[ n − k ] k =0 (Eq. n < 0 Assim. então seu sistema inverso. para calcular a saída de y[n0]. em geral. Ou seja. 1. Carlos Alexandre Barros de Mello Página 13 5) Causalidade Como definido anteriormente. se um sistema linear invariante no tempo tem uma resposta ao impulso h[n]. precisamos apenas de x[n].3) Um exemplo de um tal sistema é um acumulador definido pela sequência cujo diagrama de blocos pode ser visto na figura abaixo: . Isso implica na condição: h[n] = 0. para testar a causalidade basta testar se h[n] = 0 para n<0. 6) Estabilidade A estabilidade é garantida se: ∞ S= ∑ | h[n] | < ∞ n = −∞ Para qualquer que seja a entrada x[n] de um sistema: x[n]* δ[n] = x[n] Assim. n ≤ n0. se existir. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 14 Tal sistema é representado pela equação de diferenças: y[n] = y[n – 1] + x[n] ou y[n] . 1.4 Operações entre sequências Vamos descrever algumas operações básicas em sequências. Se as sequências têm comprimentos diferentes. Os códigos em MatLab para as principais operações pode ser encontrado na Seção 1. a menor deve ser completada para que tenha o mesmo comprimento da maior.3. M = 0 e b0 = 1. 1. Assim. a) Adição de sequências: A adição de amostra por amostra é dada por: {x1[n]} + {x2[n]} = {x1(n) + x2(n)} Deve ser observado que o comprimento das sequências x1[n] e x2[n] deve ser o mesmo.y[n – 1] = x[n] Pela Eq. a1 = -1. acrescentando zeros à sequência (zero padding). a0 = 1.7. temos: N = 1. y[n – 1].{x2[n]} = {x1(n). é uma operação amostra por amostra e as questões de comprimento das sequências devem ser consideradas: {x1[n]}. isso é feito. Normalmente. b) Multiplicação de sequências: Novamente.x2(n)} . para cada valor de n a saída é dada pela entrada x[n] somada com o valor anterior do acumulador. Processamento Digital de Sinais – Prof. então n = m + k e a operação pode ser vista como: y[m + k] = {x(m)} e) Inversão: A sequência é posta de trás para frente. Logo. Carlos Alexandre Barros de Mello Página 15 c) Mudança de escala: Cada amostra de uma sequência é multiplicada por um escalar α: α.x(n)} d) Deslocamento: Cada amostra x(n) é deslocada k posições: y[n] = {x(n – k)} Seja m = n – k.{x[n]} = {α. Seja x[n] uma sequência de comprimento k. y[n] será: y[n] = {x(k – n)} f) Soma de amostras: Soma as amostras de uma sequência dentro de um intervalo: . +2 . = 1 + ⋯ . . mas com operação de produto em um intervalo. g) Produto de amostras: Similar ao anterior. h) Energia: A energia de uma sequência x[n] é dada por: ∗ = || . . i) Potência: A potência média de uma sequência periódica pode ser calculada como: 1 || . 1. De certa forma. Filtragem é usada em processamento digital de sinais em uma grande variedade de formas. etc. mas retém partículas de impureza.5 Sistemas LTI como Filtros Seletores de Frequência O termo filtro é normalmente usado para descrever um dispositivo que discrimina. A forma da filtragem é definida pela resposta de frequência H(ω) que depende da escolha de parâmetros do sistema (como os coeficientes do filtro). podemos projetar filtros seletores de frequência que deixam passar sinais contendo componentes de frequência em algumas bandas e atenuando sinais contendo componentes de frequência em outras bandas. como um filtro de ar que deixa o ar passar.2. As características de resposta em magnitude ideais desses tipos de filtros estão ilustradas na Fig. com uma escolha apropriada de parâmetros. um sistema LTI pode ser visto como um filtro embora não bloqueie completamente qualquer componente de frequência do sinal de entrada. como remoção de ruído. Carlos Alexandre Barros de Mello Página 16 1. equalização. os termos “sistema LTI” e “filtro” são sinônimos e são normalmente usados sem distinção. o que passa através dele. H(ω) atua como uma função de peso nos diferentes componentes de frequência do sinal de entrada. Por exemplo. Assim. um sistema LTI modifica o espectro do sinal de entrada X(ω) de acordo com a resposta em frequência H(ω) que leva a um sinal de saída com espectro Y(ω) = H(ω)X(ω). de acordo com algum atributo do objeto aplicado como entrada. Filtros são normalmente classificados de acordo com suas características no domínio da frequência como passa-baixa. Um sistema LTI também funciona como um tipo de discriminante ou filtrando entre os vários componentes de frequência na sua entrada. Esses filtros ideais têm características de ganho constante . análise espectral de sinais. Um filtro é um sistema LTI usado para desempenhar a função de filtragem seletora de frequência.Processamento Digital de Sinais – Prof. Consequentemente. Em geral. passa-alta. passa-faixa e rejeita-faixa. Assim. tomados como unitários) e ganho zero na banda de corte. 1. .Processamento Digital de Sinais – Prof. Resposta em magnitude para alguns filtros seletores de frequência discretos no tempo.2. Mais detalhes sobre filtros digitais e formas de projeto serão vistos nos Capítulos 4 e 5. Fig. Carlos Alexandre Barros de Mello Página 17 na banda de passagem (normalmente. podemos definir o atraso do sinal como uma função da frequência como: dΘ(ω ) τ g (ω ) = − dω τg(ω) é chamado de atraso de grupo (group delay) do filtro.x[n – n0] Consequentemente. O sinal na saída do filtro terá um espectro: Y (ω ) = X (ω ) H (ω ) = CX (ω )e − jωn0 Aplicando as propriedades da transformada de Fourier. filtros ideais têm uma característica de fase linear na banda de passagem que é: Θ(ω) = -ωn0 A derivada da fase em relação à frequência é medida em unidades de atraso. Entendemos τg(ω) como o atraso de tempo que os componentes de frequência ω de um sinal são . Tanto um atraso simples quanto uma diferença em escala são considerados toleráveis e não distorções do sinal. a saída do filtro é simplesmente uma versão escalonada e atrasada do sinal de entrada. Portanto. Assim. Carlos Alexandre Barros de Mello Página 18 Outra característica de um filtro ideal é uma resposta de fase linear. Considere que um sinal {x[n]} com componentes de frequência dentro da faixa de ω1< ω <ω2 passa por um filtro com resposta em frequência: Ce − jωn0 ω1 < ω < ω 2 H (ω ) = 0 senão onde C e n0 são constantes.Processamento Digital de Sinais – Prof. obtemos a saída no domínio do tempo: Y[n] = C. XI(ejω) . Note que. τg(ω) = n0 = constante. Uma das formas mais utilizadas é através da transformação do sinal para o domínio da frequência através da Transformada de Fourier. todas as componentes de frequência do sinal de entrada sofrem o mesmo atraso de tempo.6 Representação de Sequências pela Transformada de Fourier Assim como sinais do contínuo.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 19 submetidos à medida que ele passa da entrada à saída do sistema. Como na resposta à frequência. 1. algumas vezes. 1. tais filtros não são fisicamente realizáveis. Nesse caso. 1. quando Θ(ω) é linear. mas servem como idealizações matemáticas para filtros práticos.5) A Eq. 1.4) onde X(ejw) é dada por: ∞ X (e ) =jω ∑ x n = −∞ [ n ]e − jωn (Eq. pode-se expressar X(ejω) na forma: X(ejω) = XR(ejω) + j. enquanto a Eq. a Transformada de Fourier é uma função complexa em ω. todos os filtros ideais têm características de magnitude constante e fase linear dentro da banda de passagem. os sinais discretos no tempo também podem ser representados de formas diferentes. 1. Como conclusão. Em todos os casos.4 é conhecida como a Transformada Inversa de Fourier. Muitas sequências podem ser representadas por uma integral de Fourier da forma: π 1 ∫ jω jωn x[n] = X ( e ) e dω 2π −π (Eq.5 é a Transformada de Fourier. Em geral. 5 são inversas realmente.Processamento Digital de Sinais – Prof. temos: π ^ 1 ∞ x[n] = ∑ x[m] ∫π e jω ( n − m ) dω m = −∞ 2π − Calculando a integral dentro dos parênteses. 1. simplesmente. Esses casos podem ser definidos através da Transformada Z como veremos posteriormente. temos: π 1 sin(π (n − m)) 1. m = n ∫π e jω ( n − m ) dω = = 2π − π ( n − m) 0. considere: π 1 ∞ − jωm jωn ^ 2π ∫−π m∑ = −∞ x[m]e e dω = x[n] Se trocarmos a ordem da integração com o somatório. Podemos verificar facilmente que as Eqs. espectro). Há casos onde a Transformada de Fourier para uma dada sequência não converge. m ≠ n = δ [n − m] . Especificamente.4 e 1. Carlos Alexandre Barros de Mello Página 20 ou na forma polar: X(ejω) = |X(ejω)| ej∠X(e^jω) As quantidades |X(ejω)| e ∠X(ejω) são chamadas de magnitude e fase da Transformada de Fourier (também chamada de espectro de Fourier ou. | w |< wc H LPF (e ) = jw 0. para |α| < 1 n=0 1−α Exemplo 2: Vamos calcular a resposta ao impulso de um filtro passa-baixa ideal cuja resposta em frequência é: 1. Carlos Alexandre Barros de Mello Página 21 Assim: ^ ∞ x[n] = ∑ x[m]δ [n − m] = x[n] m = −∞ Exemplo 1: Seja x[n] = anu[n].Processamento Digital de Sinais – Prof.e-jw| < 1 ou |a| < 1. wc <| w |< π A resposta o impulso hLPF[n] pode ser encontrada através da Transformada Inversa de Fourier: π wc 1 1 hLPF [n] = ∫π H dw = ∫e jw jwn jwn (e ) e dw 2π 2π LPF − − wc . ∞ 1 OBS: ∑ α n → . A TF é dada por: ∞ ∞ ∞ 1 X (e ) = jw ∑ x[n]e n = −∞ − jwn = ∑a e n =0 n − jwn = ∑ ( ae − jw ) n = n=0 1 − ae − jw Que converge se |a. −∞ < n < ∞ πn Exemplo 3: Determine a resposta em frequência H(ejw) de um sistema cuja resposta ao impulso h(n) = (0.9)nu[n]. Carlos Alexandre Barros de Mello Página 22 sin( wc n) hLPF [n] = . 1 = ℎ .Processamento Digital de Sinais – Prof. Plote a magnitude e a fase. = 0.9. . 9 . = 0. subplot (2. 1. ylabel('|H|'). grid. angH/pi). subplot (2. 501))./(exp(j*w) . grid.8$%&' E a fase: 0. ylabel('Phase in pi Radians').9$%&' + 0. plot (w/pi.9&' √1. magH = abs(H). magH). 2).9*ones(1. title('Magnitude response'). .9&' ∠ = −arctan 1 − 0.81 − 1.9 Assim. a magnitude é calculada como: 1 1 " " = # = 1 − 0.0.9$%&' Plotagem no MatLab: w = [0:1:500]*pi/500. 1). = 1 − 0. xlabel('frequency in pi units'). 1. title('Phase response'). angH = angle(H). xlabel('frequency in pi units'). H = exp(j*w). plot (w/pi. x[n] + b. se x[n] é real Diferenciação em Freq n.x[n] j dX(ejw)/dw Convolução x[n]*y[n] X(e-jw).1 Propriedades da Transformada de Fourier Algumas propriedades da TF: Seja: x[n] ↔ X(ejw) e y[n] ↔ Y(ejw) Propriedade Sequência Transformada de Fourier Linearidade a.Processamento Digital de Sinais – Prof.X(ejw) + b.6.Y(e-jw) π 1 ∫ jθ j ( w −θ ) Modulação x[n]. Carlos Alexandre Barros de Mello Página 23 1.y[n] a.y[n] X ( e )Y ( e ) dθ 2π −π .Y(ejw) Deslocamento no Tempo x[n – nd] e-jwndX(ejw) Deslocamento na Freq ejwonx[n] X(ej(w – w0)) Conjugação x*[n] X*(e-jw) X(e-jw) Reverso no Tempo x[-n] X*(e-jw). 1. 11). 11).^(m'*k). 1. 3). axis([-1. X = x*(exp(-j*pi/100)).Processamento Digital de Sinais – Prof.^(n'*k). 2. n = 0:10. X = x*(exp(-j*pi/500)). alpha = 2. beta = 3. w = (pi/500)*k. 1]).^(n'*k). w = (pi/500)*k. plot(w/pi. -1. % DTFT de y % Verificação gráfica subplot (2. axis([-1. plot(w/pi. Y = y*(exp(-j*pi/500)). % DTFT de y % Verificação Y_check = (exp(-j*2). % DTFT de x y = exp(j*pi*n/4). 60]). n = 0:10.*x. x2 = rand(1. . plot(w/pi. 60]). 0. w = (pi/100)*k. k = 0:500. axis([-1. angle(X)). m = n + 2. 1). Carlos Alexandre Barros de Mello Página 24 A seguir. xlabel('frequency in pi units'). % Combinação linear de x1 e x2 X = x*(exp(-j*pi/500)). 1.^(n'*k). % DTFT da combinação de X1 e X2 error = max(abs(X . abs(Y)).^(n'*k). temos códigos do MatLab que exemplificam algumas dessas propriedades: % Exemplo de Linearidade x1 = rand(1. ylabel ('|Y|'). xlabel('frequency in pi units').^w). ylabel ('radianos/pi').X_check)) % Diferença % Exemplo de deslocamento no tempo x = rand (1. 11). X1 = x1*(exp(-j*pi/500)). k = 0:500. grid. xlabel('frequency in pi units'). title ('Angulo de X').^(n'*k). % DTFT de x X_check = alpha*X1 + beta*X2. 0. % Sinal multiplicado por exp(j*pi*n/4) Y = y*(exp(-j*pi/100)). 2. x = cos(pi*n/2).*X. % DTFT de x1 X2 = x2*(exp(-j*pi/500)). grid.^(n'*k). % DTFT de x % O sinal é deslocado de duas amostras y = x. % Multiplicação por exp(-j2w) error = max(abs(Y . % DTFT de x2 x = alpha*x1 + beta*x2. subplot (2. title ('Magnitude de X'). abs(X)). ylabel ('|X|'). 2.Y_check)) % Diferença % Exemplo de deslocamento na frequência n = 0:100. subplot (2. title ('Magnitude de Y'). k = -100:100. grid. 2). axis([-1. n] = impseq(n0. ylabel ('radianos/pi'). 1. x = [(n-n0) == 0]. xlabel('frequency in pi units'). angle(Y)). 0. plot(w/pi. 10). 1. 1]).Processamento Digital de Sinais – Prof. 2. 4). n1.7 Códigos do MatLab (Sinais e Operações) Função Impulso function [x. Exemplos: 1. Carlos Alexandre Barros de Mello Página 25 subplot (2. . stem (x). -1. grid. n2) % Impulso n = [n1:n2]. title ('Angulo de Y'). >> impseq (5. Processamento Digital de Sinais – Prof. Exemplos 1. x = [(n-n0) >= 0]. -5.impseq(4. 10). n2) % Degrau n = [n1:n2].δ[n + 2] . >> x = 2*impseq(-2. Carlos Alexandre Barros de Mello Página 26 2. x[n] = 2. . >> stem (n. xlabel('n'). -5 ≤ n ≤ 5 >> n = [-5:5]. >> stepseq (5.5) . 0. n] = stepseq(n0. stem (x). -5. x).δ[n – 4]. title ('Exemplo de Sequencia'). ylabel('x[n]'). 5). Função Degrau function [x. n1. >> x1 = n.stepseq(20.20)).5*pi*n). x[n] = n[u[n] – u[n – 10]] + 10e-0.3(n – 10)[u[n – 10] – u[n – 20]]. Exemplo: >> sinseq (0. >> x = x1 + x2. >> stem(n.20)).20) . Carlos Alexandre Barros de Mello Página 27 2.3*(n-10)).1*pi*n + pi/3) + 2*sin(0. >> x2 = 10*exp(-0.*(stepseq(0. Senóide function x = sinseq(n1. 0 ≤ n ≤ 20 >> n = 0:20. stem (x). ylabel ('x[n]').stepseq(10. 10).n2) % Senóide n = [n1:0.20) .x).0.1:n2].0.0. xlabel('n').*(stepseq(10.Processamento Digital de Sinais – Prof. . x = 3*cos(0.0. title('Sequencia de Degraus'). *y2. Multiplicação de sinais y[n] = x1[n]. Inversão y[n] = x[-n] .max(n2)). length(n)). y1 = zeros(1. y = y1.x2[n] function [y. y1(find((n>=min(n1))&(n<=max(n1))==1)) = x1.Processamento Digital de Sinais – Prof. y2 = y1. n0) n = m + n0.n2) n = min(min(n1).min(n2)):max(max(n1).n] = sigadd(x1.x2.n] = sigshift(x.max(n2)). y = y1 + y2.n1. y1(find((n>=min(n1))&(n<=max(n1))==1)) = x1.n1. y1 = zeros(1. y2(find((n>=min(n2))&(n<=max(n2))==1)) = x2.n] = sigmult(x1. Carlos Alexandre Barros de Mello Página 28 Operações em sequências Adição de sinais y[n] = x1[n] + x2[n] function [y.x2.min(n2)):max(max(n1). y2 = y1. length(n)). Deslocamento y[n] = x[n – k] function [y. y2(find((n>=min(n2))&(n<=max(n2))==1)) = x2. y = x.n2) n = min(min(n1). m. Carlos Alexandre Barros de Mello Página 29 function [y. 3. n1] = sigadd(2*x11. . n22] = sigmult(x. n11] = sigshift(x. 3. 2. Sobre as sequências. n22). Exemplo: Seja x[n] = {1. n. 1}. >> [x22. >> [x22. 2. n12] = sigshift(x. n22). >> stem (n1. 7. ylabel ('x2(n)'). n12). n22] = sigshift(x.2). >> [x11. n).-3*x12. n. n21. n2] = sigadd(x21. O valor em negrito corresponde ao centro da sequência.n] = sigfold(x. a) Plote x1[n] = 2x(n – 5) – 3x[n + 4]. n21] = sigshift(x21. xlabel (‘n’). n21. x2). x22. n = -fliplr(n). >> x = [1:7. 4. 5).x[n – 2] >> [x21. 4.3). >> [x21. >> xlabel ('n').Processamento Digital de Sinais – Prof. n. 5. >> [x12. >> stem (n2. >> [x2. 5. b) Plote x2[n] = x[3 – n] + x[n]. n21] = sigfold(x. x1).n11. 6. n. title('Sequencia'). >> [x1. 6.n) y = fliplr(x). x22. ylabel (‘x1(n)’). title(‘Sequencia’). temos que: >> n = -2:10. -4). 6:-1:1]. y= 6 31 47 6 -51 -5 41 18 -22 -3 8 2 . 4. 0. 2. 7. -3 ≤ n ≤ 3 h = [2. -5. 2].Processamento Digital de Sinais – Prof. -1. os termos em negrito indicam a origem do eixo das abscissas. As sequências podem ser vistas abaixo: x[n] h[n] Podemos usar a função conv do MatLab diretamente: >> x = [3. 3. h). 2. -1. 3. >> y = conv (x. 2]. 11. 7. 11. 0. 0. 1]. 0. Carlos Alexandre Barros de Mello Página 30 Convolução Considere as sequências: x = [3. 4. >> h = [2. -1 ≤ n ≤ 4 onde. novamente. 1]. -5. 11. >> x = [3. nye = nx(length(x)) + nh(length(h)). uma equação de diferenças é da forma: . 7.9y[n – 2] = x[n]. 120. Como vimos anteriormente. >> h = [2. y = conv(h. 0. 1]. Carlos Alexandre Barros de Mello Página 31 O problema do uso da função conv é que não sabemos. na resposta.. 0. h. h. nh) nyb = nx(1) + nh(1). >> [y.. ny] = conv_m (x. nx. ny = [nyb:nye].. ny] = conv_m (x. 2]. >> nx = [-3:3].Processamento Digital de Sinais – Prof. nx. -1. 3. 2. onde está a origem da sequência. vamos criar uma nova função: function [y. Para tanto. Equações de Diferenças e Resposta ao Impulso Exemplo: Dada a seguinte equação de diferenças: y[n] – y[n – 1] + 0. -5. 4. x). >> nh = [-1:4]. nh) y= 6 31 47 6 -51 -5 41 18 -22 -3 8 2 ny = -4 -3 -2 -1 0 1 2 3 4 5 6 7 A amplitude -51 está no ponto de origem (ny = 0). para todo n a) Calcule e plote sua resposta ao impulso h[n] para n = -20. >> h = filter(b.9] e b = [1] No MatLab. -1. x). temos: a = [1. ylabel('h[n]'). -20. title('Resposta ao impulso'). fazemos: >> x = impseq(0. a. h). 120). Carlos Alexandre Barros de Mello Página 32 N M ∑a k =0 k y[ n − k ] = ∑ bk x[ n − k ] k =0 De acordo com a equação dada. >> n = [-20:120]. >> stem(n. . xlabel('n'). 0.Processamento Digital de Sinais – Prof. . um sistema é estável se: ∞ S= ∑ | h[n] | < ∞ n = −∞ Assim. xlabel('n'). o sistema é estável. fazemos: >> x = stepseq(0.8785 Logo. No MatLab. >> stem(n. . 120). x). ylabel('s[n]'). c) O sistema é estável? Como vimos. a. basta fazermos: >> sum(abs(h)) Ans = 14.. title('Resposta ao degrau'). -20. Carlos Alexandre Barros de Mello Página 33 b) Calcule e plote sua resposta ao degrau s[n] para n = -20. no MatLab.Processamento Digital de Sinais – Prof. >> n = [-20:120]. h).. 120. >> h = filter(b. u[n + 1] 4. T(x[n]) = x[-n]) g. T(x[n]) = a. (4) invariante no tempo e (5) sem memória: a.Processamento Digital de Sinais – Prof. (3) linear.x[n] + b. (2) causal. mostre que o sistema de atraso ideal e a média móvel são ambos lineares. O sistema T abaixo é invariante no tempo. a e b números reais f. as saídas são y1[n]. 3. Quando as entradas dele são x1[n]. y2[n] e y3[n]. respectivamente. T(x[n]) = x[n] + 3. determine se ele é (1) estável. T(x[n]) = Σnk=n0 x[k] c. x2[n] e x3[n]. com g[n] dado b. Usando a definição de linearidade. T(x[n]) = exp(x[n]) e. então y[n] deve ser zero para todo n também. . Para cada sistema abaixo. 2. Mostre que se x[n] = 0 para todo n. Carlos Alexandre Barros de Mello Página 34 1. Considere um sistema linear arbitrário com entrada x[n] e saída y[n]. T(x[n]) = g[n]x[n].8 Exercícios 1. T(x[n]) = x[n – n0] d. 5. determine y[n] para todo n.Processamento Digital de Sinais – Prof. Considere o sistema com entrada x[n] e saída y[n] que satisfaz a equação de diferenças: y[n] = n. a) b) 6. use convolução discreta para encontrar a resposta à entrada x[n] do sistema linear invariante no tempo com resposta ao impulso h[n]. se x[n] = 0. Para cada par de sequências abaixo. a) Se x[n] = δ[n]. b) Se a entrada x[n] do sistema é um impulso (δ[n]). Carlos Alexandre Barros de Mello Página 35 a) Determine se o sistema pode ser linear. então y[n] = 0. para n < 0. b) O sistema é linear? c) O sistema é invariante no tempo? .y[n – 1] + x[n] O sistema é causal tal que. qual a saída y[n]? c) Determine a relação entre a entrada e a saída do sistema. para n < 0. .δ[n]...u[n + 2] – 6.. 5. A função deve ser da forma: function [y. 8.x[5 + n] + 4. se : x[n] = {.. M) Cuidado com a origem do eixo!! . n] = dnsample(x. 3.x[n + 4] + 3. -2. Usando as seguintes sequências: x1[n] = u[n + 10] – u[n – 20] x2[n] = 2. -5 ≤ n ≤ 5 8.u[n – 3] mostre que a convolução linear tem as seguintes propriedades como válidas: Comutatividade: x1[n]*x2[n] = x2[n]*x1[n] Associatividade: (x1[n]*x2[n])*x3[n] = x1[n]*(x2[n]*x3[n]) Distributividade: x1[n]*(x2[n] + x3[n]) = x1[n]*x2[n] + x1[n]*x3[n]) Identidade: x[n]* δ[n – n0] = x[n – n0] Use a função conv_m. -5 ≤ n ≤ 5 b) x[n] = 20.δ[n – 2] + 5... n. 10. Por exemplo. 8. 5..x[n] b) x[n] = 5. -2. Plote a seguintes sequências no MatLab: a) x[n] = n2. -1.(0.(u[n + 5] – u[n – 6]) + 10.. -6. 3.u[n + 10] x3[n] = 5.x[n] 9.x[n + 2] + x[n – 4] – 2... 10}.m apresentada anteriormente. Carlos Alexandre Barros de Mello Página 36 7.5)n. 8.10]). Seja x[n] = {1. 6.(u[n – 4] – u[n .} Escreva uma função no MatLab que execute essa dilatação..Processamento Digital de Sinais – Prof. 4. gere e plote no MatLab as seguintes sequências: a) x[n] = 3.} então a sequência down-sampled por um fator de 2 é dada por: y[n] = {. -5. -2. A operação de dilatação de sinal (ou decimação ou downsampling) é definida por: y[n] = x[nM] na qual a sequência de entrada é down-sampled por um fator inteiro M. 4. Thomson Learning. Digital Signal Processing.8 Bibliografia Complementar 1. 2. Carlos Alexandre Barros de Mello Página 37 1. Proakis. Ronald Schafer. 2000. Oppenheim. 2007. Vinay K. Ingle. Prentice Hall. Michael Weeks.Processamento Digital de Sinais – Prof. Alan V. 3. Discrete Time Signal Processing. 1989 . John G. Infinity Science Press. Digital Signal Processing Using MatLab and Wavelets. Para garantir a convergência é preciso que: ∞ ∑ | x[n]z n =0 −n |<∞ Assim. A Transformada Z não converge para todos os valores de Z. 2. Uma transformada Z só está completamente definida se sua ROC estiver determinada. z pode ser escrita como ejw = cos(w) + j.sen(w). se z = r. a TZ calculada no círculo unitário é igual à TF.1).Processamento Digital de Sinais – Prof. Para a TF convergir. então temos a condição da TZ = TF (Fig. sua representação gráfica corresponde ao círculo no Plano imaginário (chamado de Plano-Z).ejw. A Transformada Z A Transformada Z (TZ) é uma ferramenta matemática poderosa para análise de sinais e sistemas. Se esse círculo tem raio igual a 1. a ROC da TZ deve conter o círculo unitário. A transformada Z constitui a forma discreta da transformada de Laplace. a TZ definida como: ∞ X (z) = ∑ x[n]z n = −∞ −n Essa é chamada também de TZ bilateral. A transformada unilateral é dada por: ∞ X ( z ) = ∑ x[n] z − n n =0 Notadamente. . é possível que TZ convirja mesmo se a TF não convergir. Se z é uma variável complexa. Onde a TZ converge é chamada de região de convergência (ROC – Region of Convergence). Temos então. Assim. Seja a Transformada de Fourier (TF) de uma sequência dada por: ∞ X (e ) =jw ∑ x[ n = −∞ n ]e − jwn Seja z = ejw. Carlos Alexandre Barros de Mello Página 38 2. a TZ transforma-se na TF. Nesse caso. há uma relação entre a TZ e a TF. De forma mais geral. No círculo unitário..Processamento Digital de Sinais – Prof.: P( z ) X ( z) = Q( z ) onde P(z) e Q(z) são polinômios em z. A série definida pela TZ é chamada de série de Laurent. a sequência deve ser absolutamente somável. Isso implica que. a transformada Z reduz-se à transformada de Fourier. 2. Entre as mais úteis e importantes TZs estão aquelas para as quais X(z) é uma função racional dentro da região de convergência. i. Além disso.e. Assim. i. se a região de convergência uniforme inclui o círculo unitário. Os valores de z que fazem X(z) = 0 são chamados de zeros de X(z). Plano Z: representação gráfica da transformada Z no plano complexo. Os valores de z para os quais X(z) tende a infinito são chamados de pólos de X(z). então a TF e suas derivadas com respeito a w são funções contínuas de w. uma sequência estável.1. . Uma tal série representa uma função contínua em qualquer ponto dentro da região de convergência. Carlos Alexandre Barros de Mello Página 39 Fig.e. a TZ e todas as suas derivadas devem ser funções contínuas de z na ROC. Os pólos de X(z) são as raízes do polinômio do denominador. z − n0 =z − n0 .Processamento Digital de Sinais – Prof. Comentários: Suponha que y[n] = x[n – n0]. Carlos Alexandre Barros de Mello Página 40 2. ROC = ROCx (cuidado deve ser tomado observando o que acontece para z = 0 ou z = ∞). ROC = ROCx1∩ ROCx2 Comentários: A prova de tal propriedade vem diretamente da definição de transformada Z: ∞ X (z) = ∑ x[n]z n = −∞ −n Considere que x[n] = ax1[n] + bx2[n]. Logo: ∞ ∞ X ( z) = ∑ (ax [n] + bx [n]) z n = −∞ 1 2 −n = ∑ ax [n]z n = −∞ 1 −n + bx2 [ n]z − n = ∞ ∞ ∞ ∞ = ∑ ax [n]z n = −∞ 1 −n + ∑ bx [n]z n = −∞ 2 −n = a ∑ x1[ n] z n = −∞ −n + b ∑ x2 [ n ] z − n n = −∞ = aX1(z) + bX2(z) b) Deslocamento no tempo: x[n + n0] ↔ zn0.X(z). ∑ x[ m]z − m m = −∞ Y ( z ) = z − n0 . Logo: ∞ Y ( z) = ∑ x[n − n ]z n = −∞ 0 −n Fazendo m = n – n0: ∞ ∞ ∞ Y (z) = ∑ x[m]z m = −∞ − ( m +n 0 ) = ∑ x[m]z m = −∞ −m .1 Propriedades da Transformada Z a) Linearidade: ax1[n] + bx2[n] ↔ aX1(z) + bX2(z). X ( z ) . se X(z) tiver um pólo em z = z1. ROC contém ROCx1∩ ROCx2 Comentários: Seja: ∞ y[ n ] = ∑ x [k ]x [n − k ] k = −∞ 1 2 Tal que: ∞ Y ( z) = ∑ y[n]z n = −∞ −n ∞ ∞ = ∑ ∑ x1 [k ]x 2 [n − k ] z − n n = −∞ k = −∞ Se mudarmos a ordem dos somatórios: ∞ ∞ Y ( z) = ∑ x [k ] ∑ x [n − k ]z k = −∞ 1 n = −∞ 2 −n Fazendo no segundo somatório m = n – k. essa propriedade pode ser entendida como uma compressão ou expansão do plano Z. Carlos Alexandre Barros de Mello Página 41 c) Multiplicação por uma exponencial discreta: anx[n] ↔ X(z/a). X(a-1z) terá um pólo em z = a. todas as posições de pólos e zeros são escalonadas por um fator de a. temos: .z1. Se a for um número real. d) Convolução no tempo: x1[n]*x2[n] ↔ X1(z).X2(z) .Processamento Digital de Sinais – Prof. já que. ROC = |a|ROCX Comentários: Essa propriedade é observável substituindo anx[n] na definição de TZ: ∞ ∞ X ( z) = ∑ x[n]z n = −∞ −n = ∑a n = −∞ n x[ n] z − n Como consequência disso. temos: . Carlos Alexandre Barros de Mello Página 42 ∞ ∞ −m −k Y ( z ) = ∑ x1[k ] ∑ x 2 [m]z z k = −∞ m = −∞ Assim.Processamento Digital de Sinais – Prof. (-z) d ( z ) n = −∞ ∞ dX ( z ) −z = − z ∑ ( − n) x[ n] z − n −1 d (z) n = −∞ ∞ dX ( z ) −z = ∑ nx[ n] z − n = Z {nx[n]} d ( z ) n = −∞ f) Reverso no tempo: x[-n] ↔ X(z-1). podemos escrever: Y ( z) = X 1 ( z) X 2 ( z) e) Diferenciação no Domínio Z: n.x[n] ↔ -z. ROC = 1/ROCX Comentários: Novamente. para valores de z dentro das regiões de convergência para X1(z) e X2(z).dX(z)/dz. a definição de TZ prova esta propriedade: ∞ X ( z) = ∑ x[−n]z n = −∞ −n Fazendo m = -n. ROC = ROCx (cuidado deve ser tomado observando o que acontece para z = 0 ou z = ∞). Comentários: Essa propriedade pode ser facilmente provada diferenciando a definição da TZ: ∞ X (z) = ∑ x[n]z n = −∞ −n ∞ dX ( z ) = ∑ ( − n) x[n]z − n −1 . .Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 43 ∞ ∞ X (z) = ∑ x[m]z m = −∞ m = ∑ x[m]( z m = −∞ −1 − m ) = X ( z −1 ) 2. vamos apresentar alguns cálculos de transformada Z e como definir a ROC.2 Pares de Transformadas Z Segue um conjunto de pares de Transformadas Z mais úteis: 2.3 Exemplos de Cálculo da Transformada Z A seguir. | z |>| a | n=0 1 − az −1 z − a Para a = 1: 1 x[n] = u[n] ←→ Z X ( z) = −1 . . Logo. a TF para essa sequência não converge. a ROC não contém o círculo unitário.Processamento Digital de Sinais – Prof. | z |> 1 1− z Observamos que. para a = 1. Carlos Alexandre Barros de Mello Página 44 Exemplo 1: x[n] = anu[n] ∞ ∞ ∞ ∞ X (z) = ∑ x[n]z n = −∞ −n = ∑a n = −∞ n u[ n] z −n = ∑a z n =0 n −n = ∑ ( az −1 ) n n =0 ROC: |az-1| < 1 ⇒ |z| > |a| ∞ 1 z X ( z ) = ∑ ( az −1 ) n = = . Processamento Digital de Sinais – Prof. | z |<| a | n=0 1− a z z − a . Carlos Alexandre Barros de Mello Página 45 Exemplo 2: x[n] = -anu[-n – 1] ∞ ∞ ∞ X (z) = ∑ x[n]z n= −∞ −n = ∑ − a u[−n − 1]z n = −∞ n −n = − ∑ a nu[ −n − 1] z −n n= −∞ −1 ∞ ∞ X ( z) = − ∑ a z n −n = − ∑ a z = 1 − ∑ ( a −1 z ) n −n n n = −∞ n =1 n =0 ROC: |a-1z|<1 ⇒ |z|<|a| ∞ 1 z X ( z ) = 1 − ∑ ( a −1 z ) n = 1 − −1 = . Uma das propriedades da ROC que podemos observar aqui é que os pólos não fazem parte dela.z-1| < 1 ⇒ |z| > 1/2 ROC(ii) = |(-1/3). Carlos Alexandre Barros de Mello Página 46 Exemplo 3: x[n] = (1/2)nu[n] + (-1/3)nu[n] ∞ ∞ 1 n 1 n − n X ( z) = ∑ x[n]z −n = ∑ u[n ] + − u[ n] z n = −∞ n = −∞ 2 3 ∞ ∞n n 1 1 X ( z ) = ∑ u[n]z + ∑ − u[n]z − n −n n = −∞ 2 n = −∞ 3 ∞ n n 1 −n ∞ 1 −n X ( z ) = ∑ z +∑ − z n =0 2 n =0 3 ∞ n n 1 −1 ∞ 1 −1 X ( z ) = ∑ z +∑ − z n=0 2 n=0 3 (i) (ii) ROC(i) = |(1/2).Processamento Digital de Sinais – Prof. .z-1| < 1 ⇒ |z| > 1/3 ROC = ROC(i) ∩ ROC(ii) = |z| > 1/2 1 1 X ( z) = + 1 1 1 − z −1 1 + z −1 2 3 Para X(z). os pólos são dados por z=1/2 e z=-1/3 e os zeros são z=0 e z=1/12. Processamento Digital de Sinais – Prof.z| < 1 ⇒ |z| < 1/2 ROC = ROC(i) ∩ ROC(ii) = 1/3 < |z| < 1/2 .z-1| < 1 ⇒ |z| > 1/3 ROC(ii) = |(1/2)-1. Carlos Alexandre Barros de Mello Página 47 Exemplo 4: x[n] = (-1/3)nu[n] – (1/2)nu[-n – 1] ∞ 1 n ∞ 1 n −n X ( z) = ∑ x[n]z −n = ∑ − u[ n] − u[ − n − 1] z n = −∞ n = −∞ 3 2 ∞ ∞ n n 1 1 X ( z ) = ∑ − u[n]z − ∑ u[− n − 1]z − n −n n = −∞ 3 n = −∞ 2 ∞ n n 1 − n −1 1 − n X ( z) = ∑ − z − ∑ z n=0 3 n = −∞ 2 ∞ n −n 1 −n ∞ 1 n X ( z ) = ∑ − z −∑ z n =0 3 n =1 2 n ∞ 1 1 n ∞ −1 X ( z ) = ∑ − z −1 + 1 −∑ z n =0 3 2 n=0 (i) (ii) ROC(i) = |(-1/3). Carlos Alexandre Barros de Mello Página 48 ROC(i) ROC(ii) ROC: 1 1 1 2z X ( z) = +1− = − 1 1 + z −1 1 − 2 z 1 + 1 z −1 1 − 2 z 3 3 .Processamento Digital de Sinais – Prof. u[n]}/dz} A transformada Z de (0.cos(πn/3)u[n]} Considerando agora a diferenciação no domínio Z (n. x(n) é finita.(0. e δ[n] = 1.dX(z)/dz). temos: X(z) = Z{x[n]} = z-2. X(z) é um polinômio de base z-1 e todo o plano Z menos quando z = 0. pela tabela da Seção 2.u[n] é.cos(πn/3).5)n.5)n.{-z.x[n] ↔ -z.z 0 = 1 ROC = Todo o Plano Z Exemplo 6: x[n] = δ[n – n0] ∞ ∞ X (z) = ∑ x[n]z n = −∞ −n = ∑ δ [n − n ]z n = −∞ 0 −n = z − n0 ROC = Todo o Plano Z.[d(Z{(0. Nesse ponto. Carlos Alexandre Barros de Mello Página 49 Exemplo 5: Função delta δ[n]: δ[n] = 0.Processamento Digital de Sinais – Prof.X(z)).2: . Exemplo 7: Determine a transformada Z da sequência: x[n] = (n – 2). Nos exemplos 5 e 6. n = 0 Transformada Z: ∞ X (z) = ∑ x[n]z n = −∞ −n = 1. a transformada não é definida.5)(n-2)cos[π(n – 2)/3]u[n – 2] Considerando a propriedade do deslocamento no tempo (x[n + n0] ↔ zn0.5)n.Z{n(0.cos(πn/3). temos: X(z) = Z{x[n]} = z-2. n ≠ 0. 1250 0. ROC = |z| > 0.7) delta = 1 0 0 0 0 0 0 0 n= 0 1 2 3 4 5 6 7 >> x = filter(b. cos ) z −1 + 0.25z −3 + 0.0781 Conferindo com a sequência gerada pelo processo de filtragem. 0.2500 -0.5. -0. -1. Carlos Alexandre Barros de Mello Página 50 π 1 − (0.0625z −5 X ( z) = ROC = |z| > 0. Para tanto.25z −1 z[(0.2500 -0. n] = impseq(0.3750 -0.5.Processamento Digital de Sinais – Prof. 0.5) n cos( )u[n]] = 3 π 1 − 2(0.25 z −2 0. 0.0. >> [delta. delta) % checar a sequência x= 0 0 0 0. -0.5 z −4 + 0.*stepseq(2.1250 0.75.*cos(pi*(n-2)/3)].*(1/2). 0. >> a = [1.0625].2500 -0.25 z − 2 3 πn 1 − 0.3750 -0.25.5) cos( )u[n]] = n .0781 >> x = [(n-2). . a.25 z −2 Assim: d −1 1 − 0.25 z −1 X ( z) = − z dz 1 − 0.0625z −4 O seguinte procedimento no MatLab pode ajudar a verificar se a transformada está correta.75z −2 − 0.25. 0.5 z −1 + 0.0625].2500 -0.5.5 3 1 − 0. cos ) z −1 πn 3 z[(0.^(n-2). 0.25 z −3 − 0.5 1 − z −1 + 0.5 z −1 + 0. vamos calcular as primeiras 8 amostras da sequência x[n] correspondente a X(z): >> b = [0. 0. 7) % sequência original x= 0 0 0 0. a ROC extende-se para uma região menor que o menor pólo até zero. .4 Propriedades da Região de Convergência A região de convergência (ROC) traz algumas propriedades: 1) A ROC é um anel ou disco no Plano Z com centro na origem. 2) A TF da sequência x[n] converge absolutamente se e somente se a ROC da TZ contém o círculo unitário. possivelmente tendendo a infinito.Processamento Digital de Sinais – Prof. a ROC extende-se para além dos pólos mais externos. 5) Se x[n] é causal (right-sided). 4) Se x[n] é uma sequência de duração finita. Carlos Alexandre Barros de Mello Página 51 2. 3) A ROC não pode conter pólos. 6) Se x[n] é não causal (left-sided). a ROC é todo plano Z. tomado no sentido anti- horário. Seja a Transformada Z definida por: ∞ X (z) = ∑ x[n]z n = −∞ −n Suponha que multiplicamos ambos os lados da transformada por zk-1 e integremos os dois lados sobre um contorno fechado dentro da ROC de X(z) que inclui a origem. então a ROC é um anel.2. Aqui. ficando com: . podemos mudar a ordem da integração e do somatório no lado direito. Carlos Alexandre Barros de Mello Página 52 7) Se x[n] é uma sequência com componentes parte causal e parte não-causal. temos: ∞ ∫ X ( z) z k −1 dz = ∫ ∑ x[ n ] z k −1− n dz (1) C C n = −∞ onde C denota o contorno fechado na ROC de X(z). Assim. 8) A ROC é uma região conectada.5 A Transformada Z Inversa O cálculo da TZ inversa não é tão direto quanto o da TF. Como a série converge nesse contorno. Tal contorno pode ser visto na Figura 2. 2.Processamento Digital de Sinais – Prof. existem diversas maneiras formais e informais de calcular a TZ inversa dada uma expressão algébrica e a ROC associada. 2. o lado direito de (2) reduz-se a 2πj.e.2. Aplicando (3).Processamento Digital de Sinais – Prof. Para . Carlos Alexandre Barros de Mello Página 53 ∞ ∫ X ( z) z k −1 dz = ∑ x[n]∫ z n = −∞ k −1− n dz (2) C C Pelo teorema de integração de Cauchy: 1 1. Contorno C para a integral da transformada Z inversa. n ≠ k (3) onde C é qualquer contorno que inclui a origem. nós não precisaremos usar essa inversão já que dentro de sinais e sistemas.x[k] e assim a fórmula inversa é alcançada: 1 ∫ k −1 x[k ] = X ( z ) z dz 2πj C (4) Fig. Essa é a inversa da transformada Z para uma dada sequência. No entanto.. razão entre dois polinômios). n = k 2πj C∫ k −1− n z dz = 0. as transformadas Z são funções racionais (i. o método da inspeção não é o mais apropriado para calcular TZs inversas mais complexas. vamos assumir que X(z) pode ser expressa como uma razão de polinômios em z-1. i.Método da inspeção . dado: 1 X ( z) = 1 . sabemos que: x[n] = -(½)nu[-n – 1] Notadamente. Carlos Alexandre Barros de Mello Página 54 tais transformadas. |z|> ½ 1 − z −1 2 Por observação..Expansão em Frações Parciais . há métodos mais simples de inversão que envolvem tabelas conhecidas e métodos mais simples. Os principais métodos são: . M ∑b z k =0 k −k X ( z) = N ∑a k =0 k z −k Para calcular a transformada inversa. Por exemplo.Processamento Digital de Sinais – Prof. Para ver como obter uma expansão em frações parciais.Expansão em Séries de Potências O método da inspeção é o mais simples e consiste em apenas observar a transformada e ver se ela é da forma de alguma TZ conhecida. tentamos expressar X(z) da forma: M −N N Ak X ( z) = ∑ Br z r =0 −r +∑ k =1 1 − d k z −1 .e. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 55 Exemplo 8: Suponha: 1 + 2 z −1 + z −2 1 + 2 z −1 + z −2 X ( z) = = 3 −1 1 − 2 1 1− z + z (1 − z −1 )(1 − z −1 ) 2 2 2 Vamos considerar que: A1 A2 X ( z ) = B0 + + = 1 −1 1 − z −1 1− z 2 1 −1 1 B0 (1 − z )(1 − z −1 ) + A1 (1 − z −1 ) + A2 (1 − z −1 ) = 2 2 1 (1 − z −1 )(1 − z −1 ) 2 1 1 1 B0 (1 − z −1 − z −1 + z −2 ) + A1 (1 − z −1 ) + A2 (1 − z −1 ) = 2 2 2 1 (1 − z −1 )(1 − z −1 ) 2 Logo: 3 1 1 ( B0 + A1 + A2 ) + z −1 (− B0 − A1 − A2 ) + z −2 ( B0 ) X ( z) = 2 2 2 = 1 −1 −1 (1 − z )(1 − z ) 2 1 + 2 z −1 + z −2 = 1 (1 − z −1 )(1 − z −1 ) 2 Assim. temos: . Processamento Digital de Sinais – Prof. considere que a TZ de uma sequência x[n] é da forma: . Por exemplo. Carlos Alexandre Barros de Mello Página 56 B0 + A1 + A2 = 1 3 1 − B0 − A1 − A2 = 2 2 2 1 B0 = 1 ⇒ B0 = 2 2 Com isso. se a TZ é uma sequência finita.( ) n u[ n] + 8. temos: A1 = -9 e A2 = 8 Logo: −9 8 X ( z) = 2 + + 1 −1 1 − z −1 1− z 2 que corresponde à Transformada Z da sequência: 1 x[ n] = 2δ [ n] − 9. principalmente.u[ n] 2 A expansão em série de potências é aplicada quando a transformada Z é um polinômio da forma: ∞ X ( z) = ∑ x[n]z n = −∞ −n Isso ocorre. ficamos com: 2 + A1 + A2 = 1 A1 + A2 = −1 − 3 − A − 1 A = 2 ⇒ A + 1 A = −5 1 2 2 1 2 2 Resolvendo. Processamento Digital de Sinais – Prof.δ[n + 1] .δ[n – 1] Exemplo 9: Considere a função: z X ( z )= 3z 2 − 4 z + 1 Primeiro. a) R= 0. vamos re-arranjar X(z) tal que ela se torne uma função em potências de z-1: z −1 0 +z −1 X ( z )= = 3 − 4 z −1 + z − 2 3 − 4 z −1 + z − 2 Usando o MatLab. p.5000 p= 1.5000 -0. . C] = residuez(b. No entanto.3333 1 Para mais informação sobre a função residuez. digite help residuez no MatLab. >> [R. efetuando os produtos. >> a = [3 -4 1].0000 0.δ[n] + ½. temos1: >> b = [0 1]. Carlos Alexandre Barros de Mello Página 57 1 −1 X ( z ) = z 2 (1 − z )(1 + z −1 )(1 − z −1 ) 2 Uma expansão em frações parciais para esse caso não é apropriada. podemos reduzir a expressão a: 1 1 X ( z) = z 2 − z − 1 + z −1 2 2 que equivale à sequência: x[n] = δ[n + 2] – ½. a] = residuez(R.3333 que corresponde a: 1 0 + z −1 3 z −1 0 +z −1 X ( z )= = = 4 −1 1 − 2 3 − 4 z −1 + z − 2 3 − 4 z −1 + z − 2 1− z + z 3 3 como antes. Exemplo 10: Calcule a transformada Z inversa de: 1 X ( z) = (1 − 0.5 X (z) = −1 − 1− z 1 1 − z −1 3 De maneira similar.9 z −1 ) .0000 0.9 Podemos calcular o polinômio no denominador assim como os resíduos usando MatLab: >> b = 1. Carlos Alexandre Barros de Mello Página 58 C= [] que corresponde a: 0. .9 z −1 ) 2 (1 + 0.0000 -1. C) b= -0.5 0.Processamento Digital de Sinais – Prof. podemos voltar à forma anterior: >> [b. p. |z|>0.3333 0.3333 a= 1. 25(−0.25 0.9000 . p.0.u[n].7290 >> [R.9000 -0.u[n + 1] = a.9000 + 0.9 z −1 ) 2 1 + 0.9000 -0.5 0.9) n+1 u[n + 1] 9 Observe que: a. vamos trabalhar na segunda parcela: 5 ( n + 1)(0. C] = residuez(b.9 z −1 (1 − 0.5000 + 0.9]) % calcula os coeficientes do polinômio que tem essas raízes a= 1.9 -0. nos dá: 5 x[ n] = 0. Logo: .9 z −1 ) 2 1 + 0.0000i 0.0000i -0.25.2.(0.9) n u[ n] + ( n + 1)(0.0.Processamento Digital de Sinais – Prof.9 1 − 0.9) n +1 u[n + 1] + 0.9 z −1 0.25 0. de acordo com as propriedades da transformada Z e a tabela da Seção 2.9 z −1 que.9 z −1 0.25 X ( z) = + + .9 (1 − 0. a) R= 0.9) n u[n] 9 Vamos tentar deixar todas as parcelas em função de u[n].0000 0.5 0. |z| > 0.9 1 − 0.25 X ( z) = + z + . Para tanto.0000i C= [] Isso significa que X(z) pode ser expandido em frações parciais como: 0.0000i p= 0. |z| > 0.2500 0.9 0.9 z −1 0.8100 -0. Carlos Alexandre Barros de Mello Página 59 >> a = poly([-0.2500 .u[n -1] + a. 0. delta) x= 1.9683 1.9) n u[ n] Como antes. podemos verificar as 8 primeiras amostras da sequência x[n].Processamento Digital de Sinais – Prof.9000 1.*(0.9132 .(0.9132 >> x = 0.9).7715 2.7). a.5n.6200 1.5(0.1258 1.0.(0.(0.9) n+1 u[ n + 1] = ( n + 1)(0.9).9.9) n u[n ] 9 = 0.^n + 0.0000 0.5(n + 1)(0.4580 1.0000 0.4580 1. >> x = filter (b.9) n u[n] Logo: x[ n] = 0.25( −0.6200 1.9) n+1 + ( n + 1)(0.9) n+1 u[n ] 9 9 5 = (n + 1).5*n.9) n u[n] = 0.^n+0.9) n u[ n] + 0.25*(-0.^n x= 1.9) n+1 u[n + 1] = (n + 1)(0.7715 2.1258 1. no MatLab: >> [delta.5n(0.75*(0.9) n u[n] + 0. n] = impseq(0.9683 1.9000 1.9) n u[ n] + 0. Carlos Alexandre Barros de Mello Página 60 5 5 5 (n + 1)(0.75.9) n+1 u[n] 9 9 n= −1 9 5 5 (n + 1)(0.9). X ( z ) = . ROC = |z| < 1/2 1 −1 1+ z 2 1 −1 1− z c.X(z-1) 4. Seja x[n] uma sequência com transformada Z dada por X(z). Ache a transformada inversa de: 1 a.1] + (1/2)nu[n] 2. a. X2(z) = z.Processamento Digital de Sinais – Prof. y[n] = (-1/2)nu[n] + (1/3)nu[-n – 1] c. Calcule a transformada Z das seguintes sequências usando as suas propriedades e a tabela da Seção 2.δ[n-2] + 3u[n – 3] b.6 Exercícios 1. Calcule a transformada Z das sequências: a. X ( z ) = . ROC = |z| > 1/2 3 −1 1 − 2 1+ z + z 4 8 5. ROC = |z| > ½ 1 −1 1+ z 2 1 b. x[n] = (1/3)nu[n – 2] + (0. Determine a transformada inversa usando o método de expansão em frações parciais de: . X ( z ) = 2 .9)n-3u[n] 3. x[n] = 2. O que se pode dizer sobre as sequências que geram as seguintes transformadas: a. Carlos Alexandre Barros de Mello Página 61 2. X1(z) = [(z – 1)/z]X(z) b. y[n] =2δ[n – 3] + (-1/4)nu[-n .2 e verifique seus resultados usando MatLab. x[n] = -(1/2)nu[-n – 1] b. 81z −2 Encontre as primeiras 20 amostras de x[n]. usando o MatLab. Carlos Alexandre Barros de Mello Página 62 1 − z −1 − 4 z −2 + 4 z −3 X 1 ( z) = 11 13 1 1 − z −1 + z − 2 − z −3 4 8 4 sabendo que a sequência é causal.Processamento Digital de Sinais – Prof.9 1 − z −1 + 0. . Suponha que X(z) é: 2 + 3 z −1 X1 (z) = . |z| > 0. 6. Infinity Science Press. Thomson Learning. Carlos Alexandre Barros de Mello Página 63 2. Digital Signal Processing Using MatLab and Wavelets. 1989 . 2000. Digital Signal Processing.Processamento Digital de Sinais – Prof. Oppenheim. Ingle. Prentice Hall. 3. Proakis. John G. Discrete Time Signal Processing.7 Bibliografia Complementar 1. 2. Michael Weeks. Ronald Schafer. 2007. Vinay K. Alan V. 1 como um conversor ideal contínuo-para-discreto (C/D) no tempo. quando a sequência de amostras x[n] é obtida de um sinal contínuo no tempo xc(t) de acordo com a relação: x[n] = xc(nT). -∞ < n < ∞ (Eq. 3.1. isso é devido ao fato que o processamento de sinais contínuos no tempo é feito através do processamento discreto no tempo de sequências obtidas através de amostragem.1. Em parte. Exemplo: (esquerda) sinal original e (direita) amostragem desse sinal. medida em amostras por segundo. 3. Referimo-nos a um sistema que implementa a operação da Eq. 3.1) Na Eq. mas a mais comum é sendo uma representação de sinais contínuos no tempo. Carlos Alexandre Barros de Mello Página 64 3. 3. é a frequência de amostragem. a operação . Na prática. 3. Um sinal contínuo no tempo pode ser representado por amostras como na Fig. A forma mais comum de obter uma representação discreta no tempo de um sinal contínuo no tempo é através de uma amostragem periódica. T é chamado de período de amostragem e sua inversa.1. Fig.Processamento Digital de Sinais – Prof. fs = 1/T. Teorema da Amostragem Sinais discretos no tempo podem ser gerados de diferentes formas. linearidade.g. . 3. Ou seja. entrada/saída de computadores. por outro lado. O processo consiste de um trem de impulsos seguido de uma conversão desse trem em uma sequência. A disponibilidade de componentes pequenos. e. não possui informação explícita sobre a taxa de amostragem e é um sinal onde as regiões que não representam valores inteiros não têm valor definido. São muitas as razões para o aumento no uso de sistemas digitais: 1. Muitas informações (ou dados) estão nessa forma. Na implementação ou escolha de um conversor A/D deve-se considerar a quantização da saída. x[n]. dividindo-o em duas partes conforme a Fig. a amostragem é um processo não-inversível. Na Fig. sinais de controle digital. Carlos Alexandre Barros de Mello Página 65 de amostragem é implementada por um conversor analógico-para-digital (A/D). principalmente. Tais sistemas podem ser vistos como aproximações de conversores C/D ideais.Processamento Digital de Sinais – Prof. a necessidade de circuitos sample-and-hold e limitações na taxa de amostragem. Relativa simplicidade no projeto de circuitos e facilidade de implementação usando circuitos integrados. confiáveis e de baixo custo. a diferença fundamental entre xs(t) e x[n] é que xs(t) é um sinal contínuo com valores zero exceto nos inteiros múltiplos de T.2. Muitos sinais diferentes podem gerar a mesma sequência de amostras de saída. etc.2. É conveniente representarmos matematicamente o processo de amostragem. 3. 3. com o aumento da escala de integração dos circuitos integrados. não é possível reconstruir o sinal original xc(t). 2. dada uma sequência x[n]. Em geral. a) Visão geral do sistema. b) xc(t) (sinal original no tempo contínuo) e xs(t). Ampla utilização de computadores digitais no processamento de todo tipo de dados e sinais. c) a sequência x[n] de saída.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 66 Fig. 3. 5. . 4. Amostragem com um trem de impulsos periódicos seguida de uma conversão para uma sequência discreta no tempo. Armazenamento de sinais realizado de modo simples e econômico (simplicidade das memórias digitais) 6. Crescente uso e disponibilidade de técnicas de processamento digital de sinais (DSP).2. 8. combatendo os efeitos do ruído. 9.Processamento Digital de Sinais – Prof. 11. imagem. isto é. etc. A digitalização de sinais analógicos vem tornando-se cada vez mais importante. vídeo. interferências. Codificação do canal. Combinação em um mesmo canal de uma variedade de diferentes tráfegos (telégrafo. com o desenvolvimento das redes digitais de serviços integrados. rápida ou lenta em função do tráfego e/ou qualidade exigidas. b. Uso de parte do sinal digital para controlar o progresso do sinal através do sistema (ex: cabeçalho). Codificação da fonte. 10. garantindo a privacidade e autenticidade da comunicação. Aplicações de técnicas de criptografia. principalmente. Multiplexação feita de forma simples e econômica. Fidelidade em transmissões longas devido ao uso de estações repetidoras regenerativas. Possibilidade da codificação (teoria da informação): a. reduzindo redundância. compactando os dados. . etc). b. Flexibilidade do formato digital que permite: a. voz. Transmissão com velocidade ajustável. c. Carlos Alexandre Barros de Mello Página 67 7. dados. 3. pode-se imaginar que. há sempre perda de informação e que essa perda é tanto menor quanto maior a taxa de amostragem utilizada. 3. aqueles que não possuem componentes espectrais para frequência acima de uma dada frequência (Fig. O teorema estabelece que sob certas condições. O estudo sobre o teorema da amostragem é aplicado a sinais banda limitado. isto é. as amostras de um sinal podem conter precisamente toda a informação a ele associada. A princípio.Processamento Digital de Sinais – Prof. Entretanto. . Exemplo de um sinal banda limitado.3. o teorema de Shannon mostra que isto nem sempre é verdade.3). A análise quantitativa acerca desse problema é estudada pelo Teorema de Shannon-Nyquist. O problema crucial na amostragem está com o número de amostras/seg devem ser colhidas. Isto significa que o sinal pode ser perfeitamente recuperado a partir de amostras colhidas sem nenhuma aproximação. Carlos Alexandre Barros de Mello Página 68 Na conversão analógico-digital é necessário colher-se um número discreto de amostras de um sinal contínuo. no processo de amostragem de um sinal analógico. Um número muito pequeno de amostras pode resultar em uma representação demasiadamente pobre do sinal. Fig. pelo menos.δ Ts (t ) = ∑ f (t ).... se são tomadas.4. 3.fm amostras eqüidistantes por segundo. considera-se então um trem de impulsos δTs(t) ∞ δ Ts (t ) = ∑ δ (t − nTs ) n = −∞ A amostragem de um sinal f(t) em intervalos de T segundos será definida por: ∞ f s (t ) = f (t ). . ela é bastante útil em termos práticos. 1. Carlos Alexandre Barros de Mello Página 69 Embora essa condição não seja rigorosamente verificada. pois ∞ f s (t ) = ∑ f (nTs).δ (t − nTs) n = −∞ Toda a informação de um sinal banda limitada em fm Hz está contida nas amostras colhidas em intervalos uniformes menores que ½ fm Hz. 3. Os pares sinal e transformada envolvidos no processo podem ser vistos na Fig. .δ (t − nTs) n = −∞ Então a função amostrada contém apenas informações acerca das amostras f(nTs). 3. 2. Prova: Se as amostras são obtidas a cada Ts segundos. 2.. n = 0.Processamento Digital de Sinais – Prof.1 Teorema de Shannon Teorema de Shannon: Um sinal de banda limitada por fm Hz está unicamente determinado por amostras. (centro) Trem de impulsos e sua transformada e (embaixo) o resultado da amostragem do sinal.f2(t) ↔ (1/2π)F1(w)*F2(w) onde * é a operação de convolução. então.Processamento Digital de Sinais – Prof. o espectro de fs(t) é dado por: . que: ∞ 1 f (t )δ T (t ) ↔ F ( w) * ∑ ws δ ( w − nwS ) 2π n = −∞ Se: fs(t) ↔ Fs(w) Então. (topo) Exemplo de um sinal e sua transformada banda limitada em wm. O espectro do sinal amostrado fs(t) pode ser determinado com o auxílio do teorema da convolução na frequência: f1(t). 3.4. Carlos Alexandre Barros de Mello Página 70 Fig. sua transformada é analisada a seguir. Segue. Nesses três casos. A escolha do valor de Ts e. de ws é importante para evitar a sobreposição entre sinais no domínio da frequência. 3. isto é. 3.5 apresenta três casos onde o valor de ws é maior. o uso de um filtro passa-baixa ideal permite recuperar o sinal perfeitamente sem distorções (Fig. igual ou menor a wm (frequência limite da banda do sinal de entrada). com ws = 2π/Ts e. pode-se ver que não há sobreposição quando ws ≥ 2wm. vários valores para o espaçamento Ts entre amostras. Carlos Alexandre Barros de Mello Página 71 ∞ ∞ 1 w Fs ( w) = F ( w) * ∑ wsδ ( w − nwS ) = s ∑ F ( w)δ ( w − nw ) 2π 2π S n = −∞ n = −∞ ∞ 1 Fs ( w) = Ts ∑ F ( w)δ (w − nw n =−∞ S ) .6). consequentemente.Processamento Digital de Sinais – Prof. finalmente. ∞ 1 Fs ( w) = Ts ∑ F (w − nw n = −∞ S ) Este espectro é esboçado para vários valores de ws. Então. . A fig. A sobreposição dos sinais é chamada de aliasing e deve ser evitada. d) ws < 2wm (sobreposição de sinais – aliasing).5. . a) Sinal original banda limitado em wm.Processamento Digital de Sinais – Prof. 3. c) ws = 2wm. resultado no domínio da frequências de amostragens com: b) ws > 2wm. Carlos Alexandre Barros de Mello Página 72 a) b) c) d) Fig. 3. Ele se apresenta de forma mais forte em partes da imagem que tenham um padrão repetitivo (como essas linhas circulares).8 mostra uma distorção desse tipo em uma imagem. A Figura 3. é preciso que: ws ≥ 2wm ou seja 2π/Ts ≥ 2. como: • Ganho nas altas frequências • Perda nas altas frequências • Modulação das frequências do sinal original • Casos híbridos Esses problemas podem ser vistos na Fig. 3.2πfm ⇒ Ts ≤ 1/(2fm) seg O limite 1/Ts = 2fm é chamado de taxa de Nyquist. Valores de Ts que não atendam a essa condição podem provocar diversas distorções no sinal. Esse problema (conhecido como efeito Moirée) surgiu por causa de uma baixa resolução utilizada na digitalização da imagem. .7.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 73 Fig. Recuperação do sinal original com um filtro passa-baixa.6. Para recuperação do sinal com um FPB sem distorções. Distorções que podem ser provocadas por escolha errada na banda de passagem do fitro passa-baixa para recuperação do sinal de entrada após a amostragem. Suponha que o filtro passa-baixa tem função de transferência: H(w) = Ts. Carlos Alexandre Barros de Mello Página 74 Fig. 3. Efeito Moirée.8. Fig.Processamento Digital de Sinais – Prof. 3. ∏(w/(2wm)) = F(w) . 3. ∏(w/(2wm)) então Fs(w). então a passagem do sinal amostrado por um filtro passa-baixa ideal recupera exatamente o sinal analógico.7.2 Re-Obtenção do Sinal a partir de suas amostras De acordo com o teorema de Shannon-Nyquist. se Ts ≤ 1/(2fm).Ts. . segue-se ∞ f (t ) = 2 f m . centradas em 0. . ∏(w/(2wm)) O uso do teorema da convolução no tempo indica que f(t) = F-1(Fs(w))*F-1(Ts. tem-se ∞ n f (t ) = ∑ n = −∞ f( 2 fm ) Sa( wmt − nπ ) Como o sinal é recomposto através das amostras. .. ∏(w/(2wm))) Utilizando os pares de transformadas: fs(t) ↔ Fs(w) (wm/π) Sa(wmt) ↔ ∏(w/(2wm)) onde sa(t) é a chamada função sample e tem a forma sen(x)/x. (Fig. ±T.Processamento Digital de Sinais – Prof..Ts ∑ f (nT )Sa (w n = −∞ s m (t − nTs )) No caso particular em que Ts = 1/(2fm). vamos analisar o processo de re-obtenção do sinal no domínio do tempo: f(t) ↔ F(w) = Fs(w). tem-se f(t) = fs(t)*Ts(wm/π)Sa(wmt) logo Ts wm ∞ f (t ) = ∑ s π n= −∞ f ( nT )δ (t − nTs * Sa ( wm t ) ) ∞ Ts wm f (t ) = π ∑ f (nT )[δ (t − nT ) * Sa (w t )] n = −∞ s s m Lembrando da propriedade da amostragem da função impulso.9).Ts. ±2T. Carlos Alexandre Barros de Mello Página 75 A seguir. 3. observa-se que f(t) corresponde à superposição de várias funções sample deslocadas. Processamento Digital de Sinais – Prof. Observações a) Nos pontos de amostragem nT. Carlos Alexandre Barros de Mello Página 76 Fig. e assim por diante. Em t=T apenas a sample aí centrada não é nula. Interpolação das amostras por filtro passa-baixa. Em T = 0. todas as funções sample se anulam. b) Nos instantes diferentes de nT.9. o valor correto de f(t) é f(nT). cujo valor é f(0). as samples somam desde -∞ a +∞ e reconstituem o valor de f(t) no ponto analisado por interpolação. . 3. exceto aquele centrado em t=0. . como: ∞ x[ n] = ∑ x[k ]δ [n − k ] k = −∞ então ∞ y[ n] = T { ∑ x[ k ]δ [ n − k ]} k = −∞ Pelo princípio da superposição. Seja hk[n] a resposta do sistema a δ[n – k].1. 4. 4. Isso pode ser denotado por: y[n]=T{x[n]} como representado na Fig. Os sistemas lineares são aqueles que obedecem ao princípio da superposição. Carlos Alexandre Barros de Mello Página 77 4.1. Fig. Se a propriedade da linearidade é combinada com a representação de uma sequência geral como uma combinação de impulsos. Filtros Digitais Um sistema discreto no tempo é definido matematicamente como uma transformação que mapeia uma sequência de entrada x[n] em uma sequência de saída y[n]. podemos escrever: ∞ ∞ y[ n] = ∑ x[k ]T {δ [n − k ]} = ∑ x[k ]h [n] k = −∞ k = −∞ k De acordo com essa equação. Assim. a resposta do sistema a qualquer entrada pode ser expressa em termos da resposta a δ[n – k] (o impulso). Representação de um sistema discreto no tempo Uma classe importante de sistemas consiste naqueles que são lineares e invariantes no tempo. então um sistema linear pode ser completamente caracterizado pela sua resposta ao impulso.Processamento Digital de Sinais – Prof. 3) Um exemplo de um tal sistema é um acumulador definido pela sequência cujo diagrama de blocos pode ser visto na figura abaixo: . Com isso.Processamento Digital de Sinais – Prof. então a resposta a δ[n . se um sistema linear invariante no tempo tem uma resposta ao impulso h[n]. Para qualquer que seja a entrada x[n] de um sistema: x[n]* δ[n] = x[n] Assim. se existir. podemos dizer que: ∞ y[ n] = ∑ x[k ]h[n − k ] k = −∞ (Eq.2) Apesar da semelhança na notação. 4. Essa equação é conhecida como soma de convolução (convolution sum) que pode ser representada pela notação: y[n] = x[n]*h[n] (Eq. 4. Carlos Alexandre Barros de Mello Página 78 A propriedade da invariância no tempo implica que. se h[n] é a resposta a δ[n]. um sistema linear invariante no tempo é completamente descrito por sua resposta ao impulso.1) Como consequência.k] é h[n – k]. deve-se salientar que a soma de convolução para sinais discretos não é uma aproximação da integral de convolução. em geral. tem resposta ao impulso hi[n] definida pela relação: h[n]*hi[n] = hi[n]*h[n] = δ[n] Uma classe importante de sistemas lineares invariantes no tempo consiste daqueles para os quais x[n] e y[n] se relacionam através de uma equação de diferenças de coeficientes constantes lineares de n-ésima ordem da forma: N M ∑a k =0 k y[ n − k ] = ∑ bk x[ n − k ] k =0 (Eq. então seus sistema inverso. 4. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 79 Esse sistema é representado pela equação de diferenças: y[n] = y[n – 1] + x[n] ou y[n] - y[n – 1] = x[n] Pela Eq. 4.3, temos: N = 1, a0 = 1, a1 = -1, M = 0 e b0 = 1. 4.1 Filtros Digitais Em geral, estamos interessados em manipular o sinal. Por exemplo, podemos querer retirar algum ruído de um sinal, como no caso de um sinal de voz, onde o ruído deve ser diferenciado da voz propriamente dita. Para isso, filtros são utilizados. Filtros estão envolvidos em diversas partes de um sistema de processamento digital de sinal. Eles podem ser implementados tanto em hardware quanto em software e atuam em sinais digitais de diversas naturezas, como sons, voz, imagem ou vídeo. Em cada caso, os filtros assumem particularidades diferentes. Vamos entender um pouco como se dá o processo em sinais e, em seguida, particularizar para o caso de imagens digitais. Filtros digitais são formados por poucos componentes. Basicamente são apenas multiplicadores, somadores e elementos de retardo (delay). Desses, multiplicadores e somadores implementam essas operações aritméticas em sequências discretas. Retardos são unidades que processam elementos anteriores de uma sequência (Fig. 4.2). Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 80 Fig. 4.2. Retardo (delay) aplicado a uma sequência x[n]. A representação mostrada na Fig. 4.2 em diagrama de blocos é comum para filtros. Os elementos básicos de um filtro também são representados dessa maneira. Nesse caso, o elemento de delay é representado como z-1, devido à Transformada Z. As representações em diagrama de blocos podem ser vistas na Fig. 4.3. Fig. 4.3. Diagrama de blocos de: a) Somador de duas sequências, b) multiplicador de duas sequências, c) multiplicador de uma sequência por uma constante e d) retardo. Exemplos: 1) Podemos ver na Fig. 4.4 a representação em diagrama de blocos da equação de diferença definida por: y[n] = a1.y[n – 1] + a2.y[n – 2] + b.x[n] Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 81 cuja transformada Z (ou função de sistema) é dada por: b H (z) = 1 − a1 z −1 − a 2 z − 2 Fig. 4.4. Diagrama de blocos para uma equação de diferenças. 2) Uma equação de diferenças pode ser generalizada da forma: N M y[ n] − ∑ a k y[ n − k ] = ∑ bk x[ n − k ] k =1 k =0 com função de sistema correspondente: M ∑b z k −k Y ( z) H ( z) = k =0 N = X ( z) 1 − ∑ ak z − k k =1 A função de sistema ou função de transferência corresponde à relação entre a saída e a entrada do sistema. Podemos re-escrever a equação de diferenças na forma de uma relação de recorrência: Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 82 N M y[ n] = ∑ ak y[ n − k ] + ∑ bk x[ n − k ] k =1 k =0 que pode ser representada em diagrama de blocos como na Fig. 4.5. Fig. 4.5. Representação em diagrama de blocos de uma equação de diferenças geral. Nessa figura, temos: M v[ n] = ∑ bk x[ n − k ] k =0 N y[ n] = v[ n] + ∑ ak y[ n − k ] k =1 Como apresentado na Fig. 4.5, referimos a essa forma de diagrama de blocos como a Forma Direta I. Uma implementação com uma menor quantidade de retardos também pode ser utilizada e é chamada de Forma Direta II (Fig. 4.6, considerando, sem perda de generalizada, M = N). Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 83 Fig. 4.6. Representação com menos retardos (Forma direta II). Os filtros são classificados em relação à sua resposta ao impulso. Nesse sentido, os filtros dividem-se em filtros FIR (Finite Impulse Response) e IIR (Infinite Impulse Response). 4.2 Filtros FIR A estrutura de um filtro FIR é bastante regular e, uma vez definidos os coeficientes, o filtro pode ser completamente especificado. Esses são os coeficientes do filtro. Na Fig. 4.7, podemos ver uma estrutura simples de um filtro FIR. Podemos observar que a passagem pelos componentes do filtro se dá sempre da esquerda para a direita. Por isso, esse filtro é chamado também de feed-forward. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 84 Fig. 4.7. Exemplo de um filtro FIR. Suponha na Fig. 4.7 que o sistema tem uma entrada x[n] = [1, 0]. Sendo um sistema causal, a entrada para n < 0 é igual a zero. Assim, para n = 0, temos: E, para n = 1: Logo, a saída seria y[n]=[0.5, 0.5]. A equação para cada termo é: y[0] = 0.5.x[0] + 0.5.x[-1] y[1] = 0.5.x[1] + 0.5.x[0] 5. seja um filtro FIR com coeficientes [1. pode-se representar um filtro FIR apenas com seus coeficientes.5.x[n] + 0. + bN-1x[n – M + 1] Um filtro FIR pode ser representado em forma direta como: Por simplicidade. de forma geral: y[n] = 0..1] Os filtros FIR são expressos como: M y[n] = ∑ bk x[n − k ] k =0 com função de transferência: M H ( z ) = ∑ bk z − k k =0 A resposta ao impulso h[n] é dada por: b 0 ≤ n ≤ M −1 h[n] = n 0 senão e a representação em equação de diferenças é: y[n] = b0x[n] + b1x[n – 1] + .Processamento Digital de Sinais – Prof.. Carlos Alexandre Barros de Mello Página 85 Ou. Por exemplo. -1]. ele pode ser representado como: .x[n . 4.Processamento Digital de Sinais – Prof. A saída é dada por: Há três importantes propriedades de um sistema: • Causalidade • Linearidade • Invariância no tempo Um sistema é dito causal quando ele não precisa de informações futuras para calcular a saída atual.x1[n] + b. 3. então x[n – m] gera uma saída y[n – m]. idealmente. . Ou seja. pode-se calcular de forma simples a saída do sistema para uma dada entrada.x2[n]} = a. A função de um filtro depende de seu comportamento no domínio da frequência. 7. Carlos Alexandre Barros de Mello Página 86 Dados os coeficientes. se y[n] = T{x[n]}. um sistema é dito invariante no tempo se a saída do sistema reflete qualquer deslocamento que a entrada. Ou seja: T{a. rejeita-faixa ou notch. 2. Um filtro notch é um filtro que tem fendas profundas ou. Um sistema é linear se obedece ao princípio da superposição. zeros perfeitos na sua resposta em frequência. Um filtro pode ser passa-baixa.T{x1[n]} + b. Considere uma entrada x[n]=[1. passa-alta. passa-faixa. 8].T{x2[n]} Por último. 5] em um filtro com coeficientes [6. Filtros FIR podem implementar diversas diferentes funções apenas com mudanças nos seus coeficientes. 4. Fig. 4. quando precisamos eliminar a frequência de 60Hz (e seus harmônicos) da rede elétrica.8. Os filtros da Fig. Isso acontece.8 são filtros ideais não realizáveis. 4. Exemplos de filtros passa-baixa e passa-alta ideais.8 e 4. Carlos Alexandre Barros de Mello Página 87 Filtros notch são bastante úteis quando frequências específicas devem ser eliminadas.Processamento Digital de Sinais – Prof. por exemplo. A Fig. Fig. 4. 4.9 apresentam exemplos simples de filtros assim. .9. Exemplos de filtros passa-baixa e passa-alta. As Figs. Filtros passa-baixa ou passa-alta permitem passar baixas ou altas frequências de um sinal.9 apresenta filtros com uma mudança mais suave da banda de passagem para a banda de corte (no FPB) e vice-versa (no FPA). Carlos Alexandre Barros de Mello Página 88 Na prática. suas transformadas de Fourier). 4.x[n .Processamento Digital de Sinais – Prof. Padrões de ondulação na banda de passagem ou na banda de parada e um banda de transição suave. Por exemplo.5.5.5] comporta-se como um FPB. É através do espectro que podemos analisar o comportamento do filtro. um filtro apenas com coeficientes [0. Essas características podem ser vistas na Fig. 4. Fig. Podemos observar ondulações e uma banda de transição mais suave.5 0. Seu comportamento foi avaliado anteriormente.x[n] + 0.1] .10 a qual apresenta o espectro de diferentes filtros (ou seja. tendo sua saída definida por: y[n] = 0. tais filtros têm características um pouco diferentes.10. 5] e [0.5. Fig.5]. Assim. de filtro da média. Um filtro com coeficientes [0. chamado de filtro de diferenciação.8192).11.x[n – 1])/2 Pequenas diferenças entre as amostras resultam em valores pequenos. filtros passa-baixa são chamados. às vezes. (esquerda) Sequência [0.5 -0. -0. Carlos Alexandre Barros de Mello Página 89 que é o mesmo que y[n] = (x[n] + x[n – 1])/2.5] e sua transformada de Fourier (um FPB) e (direita) a sequência [0. Vamos analisar o FPA: y[n] = (x[n] .5] corresponde a um filtro passa-alta. grandes diferenças resultam em valores grandes. 4.Processamento Digital de Sinais – Prof. f = fft(x. Por isso. abs(fftshift(f))).5] e sua transformada (um notch FPA).5]. plot(Freq. x = [0. A Fig 4. Freq = -5:10/8192:5-1/8192. a resposta em frequência desse filtro deve atenuar mudanças suaves no sinal (como as relacionadas com as .5 -0. O seguinte código no MatLab apresenta a transformada de Fourier para uma sequência de coeficientes.11 apresenta os resultados para os coeficientes [0.5 -0.5 0.5 0. 12 mostra exemplos desses dois filtros. 0. Filtros passa-faixa têm duas bandas de passagem. 1000). >> x = zeros (1. Fig. (topo) filtro Notch e (baixo) filtro passa-faixa. 4. . >> x(50) = 1. Exemplo: >> B2 = fir1(100. Para ver como é o comportamento de um filtro. Dois outros tipos de filtros são notch e passa-faixa. 'low'). % apresentamos metade apenas pois o resto é simétrico >> half = 1:ceil(length(Y2)/2). Carlos Alexandre Barros de Mello Página 90 baixas frequências) e enfatizar mudanças rápidas (como as relacionadas com as altas frequências).3. 4. Para ver como é o comportamento de um filtro. devemos ver sua resposta em frequência através da Transformada de Fourier de seus coeficientes. % x é um impulso >> Y2 = fft(conv(x. A Fig.Processamento Digital de Sinais – Prof. Filtros notch eliminam frequências específicas. B2)). devemos ver sua resposta em frequência através da transformada de Fourier de seus coeficientes.12. >> B2 = fir1(100. Carlos Alexandre Barros de Mello Página 91 >> plot(half/max(half). >> x = zeros (1. abs(Y2(half)). 4. filtros digitais são usados para implementar operações seletivas de frequência.2. % x é um impulso >> Y2 = fft(conv(x. 1000). >> x(50) = 1.1 Sistemas com Fase Linear Em diversas aplicações como processamento de voz ou som. abs(Y2(half)).3.Processamento Digital de Sinais – Prof. Assim. 'b'). % apresentamos metade apenas pois o resto é simétrico >> half = 1:ceil(length(Y2)/2). 'b'). >> plot(half/max(half). 0. B2)). 'high'). especificações são necessárias no domínio da frequência em termos de . Carlos Alexandre Barros de Mello Página 92 magnitude desejada e resposta em fase do filtro.13. Em geral. fase linear ∠Hid(ejω) = -ωα e atraso de grupo constante grd[Hid(ejω)] = α A transformada inversa de Fourier de Hid(ejω) é dada por: . não necessariamente um inteiro. Esse sistema tem magnitude constante: |Hid(ejω)| = 1.13).Processamento Digital de Sinais – Prof. uma resposta em fase linear na banda de passagem é desejada (Fig. Considere um sistema LTI cuja reposta em frequência sobre um período é: Hid(ejω)=e-jωα. 4. 4. |ω| < π onde α é um número real. Exemplos de fases lineares e não-lineares. Fig. a mesma sequência de entrada apenas deslocada de nd amostras. temos: 1 1 1 [e − jπ (α − n ) − e jπ (α − n ) ] = sen[π (n − α )] 2π j (n − α ) π (n − α ) sen[π ( n − α )] hid [n] = π (n − α ) . -∞< n < ∞ (Eq. pela propriedade do deslocamento do tempo da transformada de Fourier e lembrando que ℑ{δ[n]} = 1 : Hid(ejω) = e-jωnd ↔ hid[n] = δ[n – nd] Logo: y[n] = x[ n] * δ [n − nd ] Ou seja. Carlos Alexandre Barros de Mello Página 93 1 π 1 π ∫ πe ∫ πe − jωα jωn − jω (α − n ) hid [n] = e dω = dω 2π − 2π − 1 1 π 1 1 π = e −ω ( jα − jn ) = e − jω (α − n ) = 2π j (n − α ) −π 2π j ( n − α ) −π 1 1 = [e − jπ (α − n ) − e jπ (α − n ) ] 2π j (n − α ) Sabendo que senα = (e jα − e − jα ) / 2 . nd inteiro.Processamento Digital de Sinais – Prof. 1) Assim sen[π ( n − α )] y[ n] = x[n] * hid [n] = x[n] * π (n − α ) ∞ sen[π (n − α − k )] y[n] = ∑ k = −∞ x[k ] π (n − α − k ) Se α = nd. . temos a Eq. Carlos Alexandre Barros de Mello Página 94 De forma geral. 1. -π < ω < π Por exemplo. considere uma resposta em frequência com fase linear da forma H(ejω) = |H(ejω)|e-jωα.n] = h[n] Isso é condição suficiente (mas não necessária) para termos um sistema de fase linear. | ω |< ωc H LP (e ) = 0. ωc <| ω |≤ π cuja resposta ao impulso é. |ω| < π Suponha que H(ejω) é o filtro passa-baixa: jωe − jωα . como vimos: sen[ωc (n − α )] hLP [n] = π (n − α ) Se ωc = π. Se α = -nd: ^ ^ ^ jω jω jωnd jω H LP (e ) = H LP (e )e =| H LP (e ) |⇒ h LP [n] = h LP [−n] Assim. digamos α = nd: sen[ωc (2nd − n − nd )] hLP [2nd − n] = = π ( 2nd − n − nd ) sen[ωc (nd − n)] ⇒ hLP [ 2nd − n] = = hLP [ n] π (nd − n) Nesse caso.ωα. Quando α é um inteiro. se 2α é um inteiro (o que implica que α é um inteiro ou um inteiro mais 0. temos um sistema de fase zero (zero phase system).: h[2α . .5). o sistema é de fase linear se ∠Hid(ejω) = β . a resposta ao impulso correspondente tem simetria sobre α.Processamento Digital de Sinais – Prof.e. i. Tal sistema também se caracteriza por um atraso de grupo constante: grd[H(ejω)] = α De forma geral. por definição: ∞ ∞ ∞ jω H (e ) = ∑ h[n]e n = −∞ − jω n = ∑ h[n] cos ωn − j ∑ h[n]senωn n = −∞ n = −∞ com h[n] real. 0<ω<π onde α e β são constantes reais. como vimos antes. 2 é dito de fase linear generalizada dado que a fase é uma função linear de -ωα. a fase linear tem forma: ∠[H(ejω)] = β . Lembramos que. Um sistema como o da Eq. se: H (e jω ) = A(e jω )[cos(β − ωα ) + jsen(β − ωα )] ou H (e jω ) = A(e jω ) cos(β − ωα ) + jA(e jω )sen(β − ωα ) Equivalentemente. Temos que. a resposta ao impulso de sistemas de fase linear tem simetria sobre α.ωα. Carlos Alexandre Barros de Mello Página 95 Fase Linear Generalizada Um sistema é dito de fase linear generalizada se sua resposta em frequência pode ser expressa na forma: H(ejω) = A(ejω)e-jαω+jβ (Eq. Assim: H (e jω ) = A(e jω ) cos(β − ωα ) + jA(e jω )sen( β − ωα ) e . 2) onde α e β são constantes e A(ejω) é uma função real ω. se 2α é um inteiro.Processamento Digital de Sinais – Prof. O sistema que consideramos antes tinha β = 0. temos: ∞ ∞ sen( β − ωα ). ∑ h[n] cos ωn = − cos( β − ωα ) ∑ h[n]senωn n = −∞ n = −∞ ∞ ∞ ⇒ sen( β − ωα ). Carlos Alexandre Barros de Mello Página 96 ∞ ∞ ∞ jω H (e ) = ∑ h[n]e n = −∞ − jω n = ∑ h[n]cos ωn − j ∑ h[n]senωn n = −∞ n = −∞ Logo. ∑ h[n] cos ωn + cos( β − ωα ) ∑ h[n]senωn = 0 n = −∞ n = −∞ ∞ ∞ ⇒ ∑ h[n ]sen ( β − ωα ) cos ωn + ∑ h[n ] cos( β − ωα )senωn = 0 n = −∞ n = −∞ ∞ ⇒ ∑ h[n ][sen( β − ωα ) cos ωn + cos( β − ωα )senωn ] = 0 n = −∞ ∞ ⇒ ∑ h[n]sen(β − ωα + ωn) = 0 n = −∞ . podemos considerar: ∞ jω A(e ) cos( β − ωα ) = ∑ h[n] cos ωn n = −∞ e ∞ A(e ) sen( β − ωα ) = − ∑ h[n]senωn jω n = −∞ Com isso: ∞ sen( β − ωα ) − ∑ h[n]senωn tg ( β − ωα ) = = n = −∞ ∞ cos( β − ωα ) ∑ h[n] cos ωn n = −∞ Fazendo uma multiplicação cruzada dos dois lados da igualdade acima.Processamento Digital de Sinais – Prof. Assim. com 2α inteiro: ∞ ∞ ∑ h[n]sen[ω (n − α )] = 0 ⇒ ∑ h[2α − n]sen[ω (2α − n − α )] = 0 n = −∞ n = −∞ ∞ ⇒ ∑ h[2α − n]sen[ω (α − n)] = 0 n = −∞ (Eq. na Eq. 6. se β = π/2 ou 3π/2. + cos[ω (n − α )]senβ } = 0 n = −∞ (Eq.n]. se β = 0 ou π. 2α = M inteiro.n] = -h[n]. se 2α é um inteiro (ou seja. Com isso. se β = 0 ou π. α é um inteiro ou um inteiro mais 0. Carlos Alexandre Barros de Mello Página 97 ∞ ⇒ ∑ h[n]sen[ω (n − α ) + β ] = 0 n = −∞ (Eq. 3) ou ∞ ∑ h[n]{sen[ω (n − α )] cos β . 7) A Eq. Assim. 7 tem as mesmas soluções da Eq. 4) para todo valor de ω. temos dois conjuntos de condições para garantir um sistema de fase linear generalizada: .Processamento Digital de Sinais – Prof. 5. se h[n] = h[2α . 5) Se β = π/2 ou 3π/2. 4 torna-se: ∞ ∑ h[n]sen[ω (n − α )] = 0 n = −∞ (Eq. podermos ter h[2α . a Eq.n] = h[n]. 5. a Eq. 2α = M inteiro. 4 torna-se: ∞ ∑ h[n] cos[ω (n − α )] = 0 n = −∞ (Eq. podemos ter h[2α . 6) Na Eq.5). De forma similar. Causalidade implica h[n] = 0..n] = h[n] ou h[2α .n] = h[n] ii) β = π/2 ou 3π/2 2α = M inteiro h[2α . para n < 0 e n > M (para um sistema FIR. sistemas FIR causais têm fase linear generalizada se eles têm resposta ao impulso de comprimento (M + 1) e satisfaz: h[2α .n] = -h[n] Sistemas Causais de Fase Linear Generalizada Se o sistema for causal.n] = -h[n] No primeiro caso. se .3 torna-se: ∞ ∑ h[n]sen[ω (n − α ) + β ] = 0 n =0 para todo valor de ω. i. a Eq. já que a resposta ao impulso é finita). Carlos Alexandre Barros de Mello Página 98 i) β = 0 ou π 2α = M inteiro h[2α . temos. para β = 0 ou π: senπ (2α − n − α ) senπ (α − n) senπ ( n − α ) h[2α − n] = = =− = h[n] π ( 2α − n − α ) π (α − n) π (n − α ) O segundo caso acontece para β = π/2 ou 3π/2.e.Processamento Digital de Sinais – Prof. Especificamente. O atraso M/2 é um inteiro. 2. caso contrário então pode ser mostrado que H(ejω) = AP(ejω)e-jωM/2 onde AP(ejω) é uma função real.. ímpar e periódica em ω. M/2 . par e periódica em ω.. De forma similar.. 0 ≤ n ≤ M. caso contrário segue que: H(ejω) = jAI(ejω)e-jωM/2 = AI(ejω)e-jωM/2 + jπ/2 onde AI(ejω) é uma função real. . 0 ≤ n ≤ M. Sistemas FIR com fase linear do Tipo I Um sistema do tipo I tem resposta ao impulso simétrica h[n] = h[M – n]. 0≤n≤M com M um inteiro par (observe que isso gera um número ímpar de amostras). k = 1. Em ambos os casos. Carlos Alexandre Barros de Mello Página 99 h[n] = h[M – n]. o comprimento da resposta ao impulso é (M + 1) amostras. os filtros FIR podem ser divididos em quatro classes: 1. Dependendo da sua resposta ao impulso. essa resposta em frequência pode ser expressa como: M /2 jω H (e ) = e − jωM / 2 ∑ a[k ] cos(ωk ) k =0 onde a[0] = h[M/2]. a[k] = 2h[(M/2) – k].Processamento Digital de Sinais – Prof. e 0. se h[n] = -h[M – n]. A resposta em frequência é: M H (e ) = ∑ h[ n]e − jωn jω n=0 Considerando a condição de similaridade. e 0. 3. Processamento Digital de Sinais – Prof. H(ejw) tem a forma de AP(ejw)e-jwM/2..k]. Sistemas FIR com fase linear do Tipo III Se o sistema tem uma resposta ao impulso assimétrica: h[n] = -h[M ...n]. H(ejw) tem a forma: H(ejw) = AI(ejw)e-jwM/2 + jπ/2 4. H(ejw) pode ser expresso como: ( M +1) / 2 1 jω H (e ) = e − jωM / 2 { ∑ k =1 b[k ] cos[ω (k − ]} 2 onde b[k] = 2. 0≤n≤M mas com M um inteiro ímpar.. Carlos Alexandre Barros de Mello Página 100 Assim.h[(M + 1)/2 . k = 1. 2. k = 1. 3..k].. Sistemas FIR com fase linear do Tipo IV Se o sistema tem uma resposta ao impulso assimétrica: h[n] = -h[M . M/2 Nesse caso. .n]. (M + 1)/2 jw jw -jwM/2 Novamente H(e ) tem a forma de AP(e )e . então H(ejw) tem a forma: M /2 jω H (e ) = je − jωM / 2 ∑ c[k ]sin(ωk ) k =0 onde c[k] = 2h[(M/2) . 2. então H(ejw) tem a forma: ( M +1) / 2 1 jω H (e ) = je − jωM / 2 { ∑k =1 d [k ] sin[ω (k − ]} 2 . 2. Sistemas FIR com fase linear do Tipo II Um sistema do tipo II tem uma resposta ao impulso simétrica como h[n] = h[M – n]. 0≤n≤M com M um inteiro par. . 0≤n≤M com M um inteiro ímpar. Nesse caso. . e 0.k]. caso contrário h[n] = h[M – n] A resposta em frequência é: 4 1 − e − jw 5 − jw 2 sin(5w / 2) H (e ) = ∑ e jw − jwn = = e n=0 1 − e − jw sin(w / 2) Magnitude e fase: b) Tipo II. e 0. . M ímpar h[n] = 1. Carlos Alexandre Barros de Mello Página 101 onde d[k] = 2h[(M+1)/2 . resposta simétrica. resposta simétrica. (M + 1)/2 e H(ejw) tem a forma: H(ejw) = AI(ejw)e-jwM/2 + jπ/2 Exemplos: a) Tipo I.Processamento Digital de Sinais – Prof. caso contrário . 0 ≤ n ≤ 4. 0 ≤ n ≤ 5. 2... M par h[n] = 1. k = 1. Processamento Digital de Sinais – Prof. M par Se h[n] = δ[n] . Carlos Alexandre Barros de Mello Página 102 h[n] = h[M – n] A resposta em frequência é: sin(3w) H (e jw ) = e − jw ( 5 / 2) sin( w / 2) Magnitude e fase: c) Tipo III. resposta assimétrica.δ[n – 2] Então H(ejw) = 1 – e-2jw = j[2.sin(w/2)]e-jw Magnitude e fase: . Processamento Digital de Sinais – Prof.sin(w/2)]e-jw/2 Magnitude e fase: . M ímpar Se h[n] = δ[n] .δ[n – 1] Então H(ejw) = 1 – e-jw = j[2. resposta assimétrica. Carlos Alexandre Barros de Mello Página 103 d) Tipo IV. subplot(2.Processamento Digital de Sinais – Prof.A) ylabel('A(\omega)') xlabel('\omega/\pi') . H = fft([h zeros(1.1. Carlos Alexandre Barros de Mello Página 104 Exemplo: O seguinte código implementa no MatLab um filtro FIR tipo I: h = [3 4 5 6 5 4 3]/30.* W. % Veja que vai de zero a seis M = length(h).^(N*k).2) plot(w/pi. L = 512.abs(H)) ylabel('|H(\omega)| = |A(\omega)|') xlabel('\omega/\pi') subplot(2. A = real(A).1. A = H. N = (M-1)/2. figure(1) w = [0:L-1]*2*pi/(L-1). k = 0:L-1. W = exp(j*2*pi/L).1) plot(w/pi.L-M)]). A = real(A). k = 0:L-1.1. M = length(h). figure(2) w = [0:L-1]*2*pi/(L-1).abs(H)) ylabel('|H(\omega)| = |A(\omega)|') xlabel('\omega/\pi') subplot(2. Carlos Alexandre Barros de Mello Página 105 Exemplo: O seguinte código implementa no MatLab um filtro FIR tipo II: h = [3 5 6 7 7 6 5 3]/42. subplot(2.1.L-M)]).A) ylabel('A(\omega)') xlabel('\omega/\pi') . H = fft([h zeros(1.* W.^(N*k).1) plot(w/pi. L = 512. W = exp(j*2*pi/L). A = H.Processamento Digital de Sinais – Prof.2) plot(w/pi. N = (M-1)/2. a resposta de um filtro ao impulso não será necessariamente finita. considerando o filtro causal: Entrada Saída 0 0 1 0. Essa saída diminui.x[n] + 0. Por exemplo. Carlos Alexandre Barros de Mello Página 106 4.x[n-1] + 0.44 0 0.2.. o filtro continua apresentando uma saída. mas não torna-se zero. Claro que..6..3 Filtros IIR Os filtros FIR usam apenas cálculos feed forward. a resposta chega a zero em algum momento. Se feedback é permitido.. mesmo quando a entrada se anula.4. Considere então o filtro a seguir: .Processamento Digital de Sinais – Prof.y[n – 1] Se um impulso passa por esse filtro teremos como resposta as seguintes saídas.6 0 0.176 . Ou seja. o filtro abaixo: cuja equação que descreve sua saída é dada por: y[n] = 0. ... filtros com feedback são chamados de filtros com resposta ao Impulso Infinita (IIR – Infinite Impulse Response). Assim. na prática. ..86 0 0......946 .Processamento Digital de Sinais – Prof.. Carlos Alexandre Barros de Mello Página 107 Esse filtro tem saídas: Entrada Saída 0 0 1 0..6 0 0.8 mesmo a entrada permanecendo 0.8 ..8 0 0. Esse é um filtro IIR.. Nesse próximo exemplo.6 0 0. . . a saída cresce mesmo com entrada zero. Entrada Saída 0 0 1 0. . A saída será sempre 0.. 15. 4.14 e 4. 4. Forma Direta I de um filtro IIR .14. Fig. Carlos Alexandre Barros de Mello Página 108 De uma maneira geral. os filtros IIR são expressos como: N M y[ n] − ∑ a k y[n − k ] = ∑ bk x[ n − k ] k =1 k =0 com a seguinte função de sistema: M ∑k b z k =0 −k H ( z) = N 1 − ∑ a k z −k k =1 Suas formas Direta I e Direta II são mostradas nas Figs.Processamento Digital de Sinais – Prof. 75 z −1 + 0.15. Forma Direta II de um filtro IIR. 4. Carlos Alexandre Barros de Mello Página 109 Fig.125 z − 2 A forma direta I e II podem ser desenhadas como: Forma direta I: e Forma direta II: . Exemplo 1: Considere a função de sistema: 1 + 2 z −1 + z −2 H ( z) = 1 − 0.Processamento Digital de Sinais – Prof. 125 z −2 .Processamento Digital de Sinais – Prof.125 z −2 1 − 0.75 z −1 + 0.25 z −1 Como os pólos e zeros são reais.125z −2 1 − 0. Duas estruturas em cascata equivalentes podem ser criadas para essa função: i) ii) Exemplo 3: Conexão em paralelo: Considere a função de sistema (observe que é a mesma função anterior): 1 + 2 z −1 + z −2 − 7 + 8 z −1 H ( z) = =8+ 1 − 0. Carlos Alexandre Barros de Mello Página 110 Exemplo 2: Conexão em cascata Considere a função de sistema: 1 + 2 z −1 + z −2 1 + z −1 1 + z −1 H (z) = = .75 z −1 + 0.75 z −1 + 0. uma estrutura em cascata tem seções com coeficientes reais. 1 − 0.5 z −1 1 − 0. Carlos Alexandre Barros de Mello Página 111 A forma paralela para esse sistema com uma seção de segunda ordem é: Como os pólos são reais. podemos obter ainda uma forma paralela alternativa expandindo H(z) como: − 7 + 8 z −1 18 25 H (z) = 8 + = 8 + − 1 − 0.25z −1 que gera o diagrama abaixo apenas com seções de primeira ordem: .75z −1 + 0.Processamento Digital de Sinais – Prof.5 z −1 1 − 0.125z −2 1 − 0. 2. Esse filtro é FIR ou IIR? 3.4 Exercícios 1. Carlos Alexandre Barros de Mello Página 112 4.5 z −2 − 0. . 4.25 z − 2 Desenhe sua estrutura na Forma Direta I ou na Forma Direta II.25z −3 Desenhe sua estrutura na Forma Direta I ou na Forma Direta II.Processamento Digital de Sinais – Prof. Um filtro causal e invariante no tempo é definido por: H ( z ) = 1 + z −1 + 0. Um filtro IIR é definido por: 10 + 2. Um filtro IIR é definido por: 1 + 2 z −1 + z −2 H ( z) = 3 1 1 − z −1 + z −2 4 8 Desenhe sua estrutura na Forma Direta I ou na Forma Direta II.5 z −3 H ( z) = 1 − 0.25z −2 + 0. Modifique os códigos das páginas 86 e 87 para implementar exemplos de filtros FIR dos tipos III e IV. Carlos Alexandre Barros de Mello Página 113 4. Vinay K. Oppenheim. Digital Signal Processing Using MatLab and Wavelets. 1989 . Infinity Science Press. 2000. Michael Weeks. Prentice Hall.Processamento Digital de Sinais – Prof. Thomson Learning. Alan V. Ingle. Discrete Time Signal Processing. John G. 2. Ronald Schafer. 2007.5 Bibliografia Complementar 1. Digital Signal Processing. Proakis. 3. Há considerações diferentes se o projeto é voltado para criação de filtros FIR ou IIR. As especificações em magnitude podem ser dadas de duas maneiras: Especificações absolutas que provêem um conjunto de requisitos na magnitude da função de transferência. uma resposta em fase linear na banda de passagem é necessária (Fig. é possível encontrar um filtro de fase exatamente linear. Carlos Alexandre Barros de Mello Página 114 5. Os filtros são projetados como seletores de frequência. O projeto de um filtro digital tem três passos: • Especificações: determinada pela aplicação a qual o filtro está sendo construído. Em geral. Aqui. 4.Processamento Digital de Sinais – Prof. uma fase linear na banda de passagem não é possível. |H(ejw)|. consideraremos especificações em magnitude apenas. No caso de filtros FIR. como vimos no Capítulo anterior. Técnicas de projeto de filtros Neste Capítulo. • Aproximações: o projeto do filtro especificamente. O segundo tipo provê a representação do sinal no domínio da frequência e são chamados de analisadores de espectro.13). Em processamento digital de sinais há dois importantes tipos de sistemas: o primeiro tipo filtra os sinais no domínio do tempo e são chamados filtros digitais. Assim. filtros digitais são usados para implementar operações seletivas de frequência. • Implementações: a transcrição da função de transferência para hardware ou software. Essas especificações são comuns para . especificações são necessárias no domínio da frequência em termos de magnitude desejada e resposta em fase do filtro. Em diversas aplicações como processamento de voz ou som. define-se H(z). tratamos ao problema de projetar um filtro a partir de especificações. Para filtros IIR. Assim. 5. . Uma especificação absoluta de um filtro passa-baixa é mostrada na Fig. wp] é chamada de banda de passagem. 5.1 na qual: • A banda [0.Processamento Digital de Sinais – Prof.1. • A banda [ws. • A banda [ws. Carlos Alexandre Barros de Mello Página 115 filtros FIR. Especificação absoluta de um filtro passa-baixa real: banda de passagem. banda de transição e banda de corte. wp] é chamada de banda de transição. Fig. π] é chamada de banda de corte. Vamos considerar o projeto de um filtro passa-baixa como exemplo. A segunda forma é chamada de especificações relativas que provê os requisitos em decibéis (dB) e é dada por: | H (e jω ) | escala dB = − 20 log 10 ≥0 | H (e jω ) | max Essa é a forma mais comum na prática e é usada tanto para filtros FIR quanto IIR. e não há qualquer restrição na resposta em magnitude nessa banda. e δ1 é a tolerância a qual são permitidas ondulações (ripples) na resposta ideal da banda de passagem. e δ2 é a tolerância a qual são permitidas ondulações. 2.δ1)/(1 + δ1)] ⇒ δ1 = 0. Carlos Alexandre Barros de Mello Página 116 A especificação relativa de um filtro passa-baixa pode ser vista na Fig.25 dB e a atenuação na banda de corte em 50 dB. temos: 1 − δ1 δ2 RP = −20 log10 >0 e AS = −20 log10 >0 1 + δ1 1 + δ1 Exemplo: As especificações de um FPB definem as ondulações da banda de passagem em 0. .0032 Especificações semelhantes podem ser dadas para outros tipos de filtros seletores de frequência (como passa-alta ou passa-faixa).0144 AS = 50 = -20 log10 [δ2/(1 + δ1)] ⇒ δ2 = 0. Determine δ1 e δ2. Como |H(ejw)|max na especificação absoluta é igual a (1 + δ1).Processamento Digital de Sinais – Prof.2 na qual: • Rp é a ondulação na banda de passagem em dB. RP = 0. e • As é a atenuação na banda de corte em dB. 5. 5. Especificação relativa de um filtro passa-baixa real.25 = -20 log10 [(1 . Os parâmetros das duas especificações são relacionados. Fig. a qual se aplica à classe de filtros analógicos.1 Projeto de Filtros FIR Tanto a aproximação quanto a implementação podem ser realizadas de diversas maneiras diferentes. A seguir. π] com tolerância δ2 (ou AS in dB). com o resultado de que não existe uma solução única para o problema de projeto de filtros com um conjunto prescrito de especificações. 5. • A Transformada Discreta de Fourier pode ser usada em sua implementação. • Abordagem de analógico para digital. facilmente. em que a motivação é projetar um filtro digital lançando mão de um projeto de filtro analógico. obter sua função de transferência H(z) ou sua equação de diferenças) que tem uma banda de passagem [0. • São relativamente simples de projetar já que eles não têm problemas de estabilidade. Carlos Alexandre Barros de Mello Página 117 Analisaremos o problema de especificar um filtro passa-baixa e.e. as técnicas são divididas nas seguintes categorias: • Projeto usando janelas . vamos projetar filtros digitais FIR.. Esses filtros têm diversas vantagens de projeto e implementação: • A resposta em fase pode ser exatamente linear. podemos mencionar três diferentes abordagens para o projeto de filtros analógicos e digitais: • Abordagem analógica. Todavia. • Abordagem digital direta a qual se aplica à classe de filtros digitais. esses conceitos podem ser repassados para outros tipos de filtros. Para o projeto de filtros FIR. Nosso problema é projetar um filtro passa-baixa (i. wp] com tolerância δ1 (ou RP in dB) e uma banda de corte [wS. • São eficientes para implementar.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 118 • Método da amostragem em frequência • Projeto equirriple ótimo • Projeto de mínimos quadrados 5.1 Projeto usando janelas A ideia básica de um projeto por janelas é selecionar um filtro seletor de frequências ideal apropriado (que sempre é não-causal e de resposta ao impulso infinita) e então truncar sua resposta ao impulso em uma janela para obter um filtro FIR causal e de fase linear. devemos ter: . jω | ω |≤ ω c H d (e ) = 0. o foco está na escolha de uma função de janelamento e um filtro ideal apropriados.Processamento Digital de Sinais – Prof. Seja Hd(ejw) um filtro seletivo de frequência ideal que tem magnitude unitária e características de fase linear sobre sua banda de passagem.e e dω = 2π −ωC π (n − α ) Para obter um filtro FIR a partir de hd[n]. A resposta ao impulso desse filtro é de duração infinita e é dada por: π 1 ∫ −1 jω jω jωn hd [ n] = ℑ [ H d (e )] = H ( e ) e dω 2π d −π ωC 1 sen[ωc ( n − α )] ∫ − jαω jωn hd [ n] = 1. Para obter um filtro FIR causal de fase linear h[n] de comprimento M. ω c <| ω |≤ π onde wc é chamado de frequência de corte (cut-off) e α é chamado de atraso de amostra (sample delay). Um filtro passa-baixa (FPB) ideal de largura de banda wc < π é dado por: 1.1. e resposta zero na banda de corte. Assim. precisamos truncar hd[n] em ambos os lados.e − jαω . .3 para uma janela comum. No domínio da frequência. Por exemplo: 1. h[n] pode ser pensado como sendo formado pelo produto de hd[n] e uma janela w[n] tal que: h[n] = hd[n]. a resposta H(ejw) do filtro FIR causal é dada pela convolução de Hd(ejw) e a resposta da janela W(ejw): π 1 H (e ) = H d (e ) * W (e ) = ∫ W (e jλ ) H d (e j ( w −λ ) )dλ jw jw jw 2π −π Podemos ver essa convolução na Fig. Em geral. senão e α = (M – 1)/2. 0 ≤ n ≤ M − 1 h[n] = 0. Essa operação é chamada de janelamento. Dependendo de como obtivermos w[n] acima.w[n] onde w[n] é alguma função simétrica com respeito a α no intervalo 0 ≤ n ≤ M – 1 e 0 fora desse intervalo. senão é uma janela retangular. 0 ≤ n ≤ M − 1 w[n] = 0. temos diferentes projetos de filtros. Carlos Alexandre Barros de Mello Página 119 hd [n].Processamento Digital de Sinais – Prof. 5. 5. . Os lóbulos laterais produzem ondulações que têm forma similar tanto na banda de passagem quanto na de corte. A largura da banda de transição é proporcional a 1/M. Geralmente. toma-se δ1 = δ2. sua resposta em frequência tem uma região de pico central (lóbulo principal) cuja largura é proporcional a 1/M e tem lóbulos laterais com pesos menores. Observações: 1.Processamento Digital de Sinais – Prof. mas com algumas distorções (ondulações). Vamos descrever alguns tipos comuns de funções de janelamento. 3. escolha um filtro de comprimento M e uma função janela w[n] para a mais estreita largura do lóbulo principal e a menor atenuação nos lóbulos laterais possível. Projeto usando janelas: Para uma dada especificação de filtro. Da observação 4 acima. Carlos Alexandre Barros de Mello Página 120 Fig. 2. 4.3. A convolução gera uma versão da resposta ideal Hd(ejw). Como a janela w[n] tem comprimento finito igual a M. Operação de janelamento no domínio da frequência. podemos notar que a tolerância δ1 da banda de passagem e a tolerância δ2 da banda de corte não podem ser especificadas de forma independente. . 5. Magnitude da transformada de Fourier de uma janela retangular (M = 7).4. a largura do lóbulo principal diminui. 0 ≤ n ≤ M w[n] = 0. Note que W(ejw) tem fase linear generalizada. Carlos Alexandre Barros de Mello Página 121 1) Janela Retangular Essa é a janela mais simples.Processamento Digital de Sinais – Prof. mas que provê o pior desempenho em termos de atenuação da banda de corte.4 para o caso de M = 7. À medida que M aumenta. 5. senão sendo sua resposta em frequência: M 1 − e − jw( M +1) − jwM / 2 sen[ w( M + 1) / 2] W (e ) = ∑ e jw − jwn = = e n =0 1 − e − jw sen( w / 2) A magnitude da função sen[w(M + 1)/2]/sen(w/2) é mostrada na Fig. Fig. Ela é definida como: 1. . Assim. Isso significa que as ondulações vão sofrer um pico perto das bordas das bandas. mas a área sobre cada um permanece constante.Processamento Digital de Sinais – Prof.5). Isso é conhecido como fenômeno de Gibbs (Fig. a largura de cada lóbulo lateral diminui. O primeiro zero de W(ejw) ocorre quando: sen (w(M + 1)/2) = 0 ⇒ w(M + 1)/2 = π ⇒ 2π/(M + 1) Assim. Carlos Alexandre Barros de Mello Página 122 Pode ser provado que a largura do lóbulo central é ∆wm = 4π/(M + 1) para uma janela retangular. as amplitudes relativas dos picos laterais vão permanecer constantes e a atenuação da banda de passagem permanece em cerca de 21 dB. Esse fenômeno ocorre por causa da transição brusca de 0 para 1 (e de 1 para 0) da janela retangular. a largura do lóbulo central é o dobro desse valor (já que envolve os valores negativos e positivos): 2w = 4π/(M + 1) Observa-se também que a magnitude do primeiro lóbulo lateral é aproximadamente em w = 3π/(M + 1) e é dada por: sen[(w( M + 1) / 2)] sen(3π / 2) 2( M + 1) = ≅ sen( w / 2) 3π 3π sen 2( M + 1) À medida que M cresce. 5. senão Essa janela e sua resposta em frequência podem ser vistas na Fig.6 . 5. 5. 0 ≤ n ≤ M /2 2n w[ n] = 2 − .5.Processamento Digital de Sinais – Prof. M /2 < n ≤ M M 0 . 2) Janela Triangular ou de Bartlett Bartlett sugeriu uma transição mais suave para evitar o fenômeno de Gibbs. Fenômeno de Gibbs: Pico das ondulações nas fronteiras entre as bandas. Isso seria conseguido através de uma janela triangular da forma: 2n M . Carlos Alexandre Barros de Mello Página 123 Fig. Processamento Digital de Sinais – Prof.46 cos(2πn / M ). 5. 0 ≤ n ≤ M w[n] = 0. 3) Janela de Hanning (homenagem a Julius von Hann. 0 ≤ n ≤ M w[n] = 0.5 cos(2πn / M ). senão Tem uma quantidade menor de descontinuidades em relação à janela de Hanning. senão Fig. 5. Carlos Alexandre Barros de Mello Página 124 Fig. . Janela triangular. Janela de Hanning 4) Janela de Hamming (Richard Hamming.6.54 − 0. matemático americano) 0. meteorologista austríaco) 0.7.5 − 0. 0 ≤ n ≤ M w[n] = 0.42 − 0. Fig. essas janelas conseguem uma convolução no domínio da frequência mais suave e. Carlos Alexandre Barros de Mello Página 125 Fig.08 cos(4πn / M ). como . No entanto.Processamento Digital de Sinais – Prof. Hanning e Blackman têm lóbulos laterais menores do que os da janela retangular. 5. Tanto a janela de Bartlett.8. Janela de Blackman. senão Também é similar às duas anteriores. para o mesmo valor de M. Consequentemente.5 cos(2πn / M ) + 0. a largura do lóbulo principal também é mais larga para essas janelas se comparadas à janela retangular.8. quanto Hamming. 5. mas tem um segundo harmônico o que faz com que ela se aproxime de zero com mais suavidade. Janela de Hamming. 5) Janela de Blackman 0. Ela e considerada ótima porque provê um lóbulo principal largo para a dada atenuação da banda de corte.8π/M -21 Bartlett 8π/M 6.1π/M -25 Hanning 8π/M 6. Kaiser) Esta é a melhor janela. Algumas características do domínio da frequência de algumas funções de janelamento Largura de transição Pico do Tipo de Largura de aproximada do lóbulo lóbulo janela transição exata principal lateral (dB) Retangular 4π/M 1. o que implica a mais brusca banda de transição. Carlos Alexandre Barros de Mello Página 126 resultado. Para reduzir a largura da região de transição podemos aumentar o comprimento da janela. a região de transição na resposta do filtro FIR é mais larga. senão I0(. 0≤n≤M I 0 [β ] 0. Tabela 5.1. A função foi definida por Kaiser e é dada por: 2 2 I 0 β 1 − 1 − n w[n] = M . A tabela a seguir resume algumas características no domínio da frequência dessas janelas.6π/M -53 Blackman 12π/M 11π/M -74 6) Janela de Kaiser (James F.Processamento Digital de Sinais – Prof. o que resulta em filtros mais largos.2π/M -44 Hamming 8π/M 6.) é a função de Bessel modificada de ordem zero: 2 ∞ ( x / 2) n I 0 ( x) = 1 + ∑ n=1 n! . Carlos Alexandre Barros de Mello Página 127 Fig. Variadas formas da Janela de Kaiser.wP Dado: A = -20log10 δ. Na expressão de w[n].δ1 A frequência da banda de corte tem tolerância δ2. existem dois parâmetros: 1. a frequência de corte wP da banda de passagem do filtro passa-baixa é a maior frequência tal que: |H(ejw)| ≥ 1 . Kaiser mostrou que: . é possível ajustar a amplitude dos lóbulos laterais.Processamento Digital de Sinais – Prof. satisfazendo: |H(ejw)| ≤ δ2 A largura da banda de transição é: ∆w = wS . 5. O parâmetro β Variando β e M.8. Assim. considerando δ1 = δ2. Kaiser encontrou duas fórmulas que permitem achar M e β de modo a atender às especificações do filtro. dado que δ1 é fixo (especificado). O comprimento M 2. 7) ≅ 5.285∆w O procedimento para projetar um filtro passa-baixa digital FIR usando a janela de Kaiser consiste nos seguintes passos: i) Estabelecer as especificações wP.4 + 0. iii) Calcular A = 20log10 δ e ∆w = wP .5π ∆w = wS . Devido à complexidade de cálculos com funções de Bessel.1: β = 0. 5. onde w[n] é a janela de Kaiser e hd[n] = ℑ-1[Hd(ejw)]. 5.2π A = -20log10 δ = 60 dB Como A > 50.07886( A − 21) . wS e δ.001.112( A − 8. wc = (wS + wP)/2 = 0.1) 0 . Carlos Alexandre Barros de Mello Página 128 0. A > 50 β = 0.4π.7) . wS = 0. um filtro passa-baixa com as seguintes especificações: wP = 0. pela Eq.1102(A – 8. iv) Encontra a resposta ao impulso do filtro através de h[n]=hd[n]w[n]. A equação de w[n] definida por Kaiser tem valores encontrados empiricamente e são definidos sem prova.wP = 0. dados ∆w e A.6π e δ = 0. A < 21 Além disso. o projeto dessas janelas não é fácil. usando janelas de Kaiser.wS e usar as fórmulas de Kaiser para encontrar os valores de M e β.Processamento Digital de Sinais – Prof.633 . M é aproximadamente: A−8 M= 2. ii) Estabelecer a frequência de corte wc do filtro passa-baixa ideal ao qual se aplicará a janela (wc = (wP + wS)/2).5842( A − 21) 0.21 ≤ A ≤ 50 (Eq. Exemplo: Projetar. Uma implementa uma resposta ao impulso ideal de um filtro passa-baixa hd[n]. w = blackman(M): Janela de Blackman 6. w = bartlett(M): Janela de Bartlett 3. m = n . apresentando também a resposta em magnitude absoluta e em escala dB (é uma variação da função freqz do MatLab). M) % Ideal low pass filter % wc = cutoff frequency % M = length of the ideal filter alpha = (M . w = kaiser(M. . w = hamming(M): Janela de Hamming 5.8)/(2.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 129 M = (A . hd = sin(wc*m). w = hanning(M): Janela de Hanning 4.alpha + eps. Função 1: function hd = ideal_lp(wc./(pi*m).285∆w) ≅ 36. Implementações no MatLab O MatLab tem diversas funções para implementar janelas: 1. vamos implementar duas funções base importantes para os exemplos a seguir.219 ⇒ M = 37 (M inteiro) A resposta ao impulso é: sen[ wc ( n − M / 2)] h[ n] = hd [n]w[n] = w[n] π (n − M / 2) com w[n] dado pela definição da janela de Kaiser. beta): Janela de Kaiser Antes de projetarmos alguns exemplos. w = rectwin(M): Janela retangular 2.1)/2 n = [0:(M-1)]. A outra função implementa a plotagem no domínio da frequência. ws = 0. db = 20*log10((mag + eps)/(max(mag))). subplot (2. RP = 0. 2).ylabel('hd[n]'). 1). pha.Processamento Digital de Sinais – Prof. wp = 0. axis([0 M-1 0 1.3*pi.25 dB. mag.3π e AS = 50 dB. a) % Versao modificada da funcao freqz [H. w] = freqz_m(b. 1. Tanto a janela de Hamming quanto a de Blackman provêem atenuação de mais de 50 dB. title('Janela de Hamming').wp. w] = freqz_m(h.3]). stem(n. hd). .1 0. wc = (ws + wp)/2. 2.2*pi. tr_width = ws .xlabel('n'). [db. mag = abs(H). Carlos Alexandre Barros de Mello Página 130 Função 2: function [db.ylabel('w[n]'). w] = freqz(b. M = ceil(6. 2. w = (w(1:501))'. Exemplo 1: Projetar um filtro passa-baixa FIR com as seguintes especificações wP = 0. h = hd. w_ham = (hamming(M))'. Vamos escolher a janela de Hamming que provê a menor banda de transição e assim tem a menor ordem. 'whole'). mag. pha = angle(H).xlabel('n'). w_ham). H = (H(1:501))'. a.2π. title('Resposta ao Impulso Ideal'). hd = ideal_lp (wc.*w_ham. pha. M). delta_w = 2*pi/1000.6*pi/tr_width) + 1 n = [0:M-1]. wS = 0.1]). 1) subplot (2. 1000. Rp = -(min(db(1:wp/delta_w+1))) As = -round(max(db(ws/delta_w+1:501))) subplot(1. axis([0 M-1 -0. stem(n. [1]). 3]). title('Resposta ao Impulso Atual'). 3). M = 67 alpha = 33 Rp = 0.Processamento Digital de Sinais – Prof. plot(w/pi. subplot (2.xlabel('n'). 4).1 0.ylabel('Decibeis'). title('Magnitude em dB'). Carlos Alexandre Barros de Mello Página 131 subplot (2. axis([0 M-1 -0.grid axis([0 1 -100 10]).xlabel('frequencia em pi unidades').ylabel('h[n]'). 2. stem(n. db).0394 As = 52 . h). 2. 2*pi. subplot (2. 4). tr_width = ws . h). stem(n.xlabel('n'). subplot (2.1]). h = hd. plot(w/pi.ylabel('h[n]'). stem(n. 2. delta_w = 2*pi/1000. hd). mag.ylabel('w[n]').xlabel('n'). hd = ideal_lp (wc. ws = 0. M = 61 beta = 4.36*tr_width/(2*pi))+1) + 1 n = [0:M-1]. wp = 0.3]). 2.3]). title('Magnitude em dB').5513 alpha = 30 As = 52 . axis([0 M-1 -0.7.1 0. subplot (2. 1. stem(n.ylabel('Decibeis'). As = -round(max(db(ws/delta_w+1:501))) subplot(1.ylabel('hd[n]'). [db.95)/(14. db). 2). w_kai = (kaiser(M.Processamento Digital de Sinais – Prof.*w_kai.xlabel('frequencia em pi unidades'). w_kai). 2. pha. M). 1) subplot (2. axis([0 M-1 -0. 2.xlabel('n').3*pi. beta = 0. title('Janela de Kaiser'). title('Resposta ao Impulso Ideal'). As = 50.1 0. w] = freqz_m(h.wp. Carlos Alexandre Barros de Mello Página 132 Exemplo 2: Resolva o exemplo anterior usando uma janela de Kaiser. 3).7) wc = (ws + wp)/2.grid axis([0 1 -100 10]).1102*(As . axis([0 M-1 0 1. [1]). 1). M = ceil((As . title('Resposta ao Impulso Atual'). beta))'.8. Carlos Alexandre Barros de Mello Página 133 .Processamento Digital de Sinais – Prof. ∆w2 = w2S – w2P. Essas duas larguras de banda devem ser a mesma no projeto da janela.e.Processamento Digital de Sinais – Prof. Isso pode ser visto na figura a seguir: . Observe que essa resposta ao impulso pode ser obtida a partir de duas respostas em magnitude de filtros passa-baixa ideais. i. Vamos precisar também da resposta ideal ao impulso de um filtro passa-faixa hd[n].2π. Vamos escolher a janela de Blackman.8π.35π. considerando que elas tenham a mesma resposta em fase. Assim ∆w1 = ∆w2 = ∆w1. Carlos Alexandre Barros de Mello Página 134 Exemplo 3: Vamos projetar o filtro com as seguintes especificações (conforme a figura abaixo): Borda da banda de corte mais baixa: w1s = 0.. As = 60 dB Borda da banda de passagem mais baixa: w1p = 0. podemos usar a janela de Kaiser ou a de Blackman. As = 60 dB Existem duas bandas de transição: ∆w1 = w1P – w1S.65π. As = 1 dB Borda da banda de corte mais alta: w2s = 0. As = 1 dB Borda da banda de passagem mais alta: w2p = 0. Para esse projeto. não há controle independente sobre ∆w1 e ∆w2. 8*pi. title('Resposta ao Impulso Ideal'). subplot (2. 2. title('Resposta ao Impulso Atual'). tr_width = min((wp1-ws1). ws2 = 0.xlabel('n').65*pi.1]). subplot (2. axis ([0 M-1 0 1. [1]). stem(n.*w_bla. ylabel ('hd[n]').5]).35*pi. (ws2-wp2)). h). pha. As = 60.ylabel('h[n]'). w_bla = (blackman(M))'. Rp = -(min(db(wp1/delta_w+1:wp2/delta_w))) As = -round(max(db(ws2/delta_w+1:501))) subplot (2. 2).hd). wp1 = 0. [db. Carlos Alexandre Barros de Mello Página 135 ws1 = 0. w] = freqz_m(h. h = hd. ylabel('w[n]'). . 1). w_bla). 3). 2.2*pi. wc2 = (ws2 + wp2)/2. xlabel('n'). axis([0 M-1 -0. M = ceil(11*pi/tr_width) + 1 n = [0:M-1]. hd = ideal_lp(wc2.Processamento Digital de Sinais – Prof. mag. delta_w = 2*pi/1000. M) . stem(n. wc1 = (ws1 + wp1)/2. title ('Janela de Blackman'). wp2 = 0. M).4 0.5]). axis([0 M-1 -0. 2. xlabel('n').4 0. stem (n.ideal_lp(wc1. plot(w/pi.xlabel('frequencia em pi unidades').Processamento Digital de Sinais – Prof. M= 75 alpha = 37 Rp = 0. Carlos Alexandre Barros de Mello Página 136 subplot (2. 2. 4).0030 As = 75 . title('Magnitude em dB').ylabel('Decibeis').grid axis([0 1 -150 10]). db). xlabel('n'). pha. M = 45.7) w_kai = (kaiser(M. [db. 1). axis([0 M-1 -0.xlabel('n'). stem(n.8. wc2 = 2*pi/3. plot(w/pi. M). 1).hd). axis([0 M-1 -0. 1. h = hd. M) + ideal_lp(pi.2 0. Observe que a largura da banda de transição não foi dada. title('Resposta ao Impulso Atual').ylabel('h[n]'). projete um filtro passa-faixa de comprimento 45 com atenuação na banda de corte de 60 dB. podemos determinar β a partir de As: β = 0. h). ylabel ('hd[n]'). mag. As = 60. 0 ≤| w |< π / 3 H e (e jw ) = 0 .1]).2 0.*w_kai. 2).Processamento Digital de Sinais – Prof. subplot (2. Carlos Alexandre Barros de Mello Página 137 Exemplo 4: A resposta em frequência de um filtro passa-faixa ideal é dada por: 1 . subplot (2. stem(n. 2. 2. beta))'. stem (n. 4).8]). Ela será encontrada a partir do comprimento M = 45 e do parâmetro β da janela de Kaiser. [1]). subplot (2. 2. π / 3 ≤| w |≤ 2π / 3 1 . Das equações de projeto da janela de Kaiser. hd = ideal_lp(wc1. 2π / 3 <| w |≤ π Usando uma janela de Kaiser. n=[0:M-1]. w_kai).8]). 3).grid . subplot (1.1102*(As . db). title('Magnitude em dB'). xlabel('n'). beta = 0.7) Vamos agora implementar a janela de Kaiser e observar a atenuação na banda de corte. subplot (2. title('Resposta ao Impulso Ideal'). ylabel('w[n]'). w] = freqz_m(h. M) .1102( AS − 8.ideal_lp(wc2. 2. title ('Janela de Kaiser'). axis ([0 M-1 0 1. wc1 = pi/3. Carlos Alexandre Barros de Mello Página 138 axis([0 1 -80 10]). Vamos colocar um acréscimo no valor calculado de BETA para conseguir uma atenuação maior.ou seja. n=[0:M .8.6533 Observe que. Observamos que. destacada em vermelho). As = 60. com esse valor.3 w_kai = (kaiser(M.Processamento Digital de Sinais – Prof.xlabel('frequencia em pi unidades'). a mínima atenuação da banda de corte é menor que 60 dB (observe que há lóbulos na banda de corte com pico acima de 60 na escala negativa . beta = 5. é menor que 60 em módulo – resposta em magnitude na figura acima. precisamos aumentar BETA para aumentar a atenuação para 60 dB. Assim.1]. beta = 0.1102*(As . a atenuação fica maior que 60 dB na banda de corte. beta))'. assim.7) + 0. M = 45. .ylabel('Decibeis'). M). 4).ylabel('Decibeis').ideal_lp(wc2. M) . plot(w/pi. subplot (1.1]). 1). stem(n. beta = 5. title('Magnitude em dB').9533 .grid axis([0 1 -80 10]). M) + ideal_lp(pi.ylabel('h[n]'). mag. subplot (2. pha. xlabel('n'). subplot (2. h).8]). subplot (2. 2. axis([0 M-1 -0. axis([0 M-1 -0. 2. Carlos Alexandre Barros de Mello Página 139 wc1 = pi/3.hd).8]). 1). 2. axis ([0 M-1 0 1. [1]). db). ylabel ('hd[n]'). ylabel('w[n]'). title ('Janela de Kaiser').2 0. w_kai). 1. title('Resposta ao Impulso Atual').xlabel('frequencia em pi unidades').*w_kai.Processamento Digital de Sinais – Prof. 2). title('Resposta ao Impulso Ideal'). 3). wc2 = 2*pi/3. stem(n. 2. [db.2 0. w] = freqz_m(h. h = hd. subplot (2. hd = ideal_lp(wc1.xlabel('n'). stem (n. xlabel('n'). A resposta ao impulso de um diferenciador ideal com fase linear é dada por: π 1 ∫π H − jαw hd [n] = ℑ[ H d (e )e jw ]= (e jw )e − jαw e jwn dw 2π d − 0 π 1 1 ∫π (− jw)e dw + ∫ ( jw)e − jαw e jwn dw − jαw = e jwn 2π − 2π 0 cos π (n − α ) . Plote as respostas no domínio do tempo e da frequência. w. Assim. III e IV % type = tipo de filtro M = length(h). L] = Hr_Type(h. então α = (M . M deve ser um número ímpar e teremos um filtro FIR de fase linear do tipo III.1)/2 não é um inteiro e hd[n] será zero para todo n. n≠α = (n − α ) 0 . type) % Calcula a resposta em ampiltude Hr[w] para filtros FIR tipo I. − π < w < 0 Usando uma janela de Hamming de comprimento 21.mod(type. Note que se M é um número par. 0 < w ≤ π H d (e jw ) = − jw . II. Para projetar um filtro FIR de fase linear (de qualquer tipo) usamos o código abaixo: function [Hr. if (type == 1) . Carlos Alexandre Barros de Mello Página 140 Exemplo 5: A resposta em frequência de um filtro diferenciador digital ideal é dada por: jw .Processamento Digital de Sinais – Prof. coef. 2))/2. if ((type == 1) | (type == 2)) L = (M . projete um diferenciador FIR. n =α A resposta ao impulso acima pode ser implementada no MatLab através da janela de Hamming para projetar o diferenciador requisitado. 2. w. 1. h = hd. Hr = cos(w*n)*coef'.alpha))).xlabel('n'). Hr = sin(w*n)*coef'.*w_ham. P.ylabel('w[n]').2]). 2))/2. 2). w_ham). stem(n.alpha). end end Assim. [Hr. w = [0:500]'*pi/500.0./(n . w = [0:500]'*pi/500. n = [0:L]. axis([0 M-1 0 1. Hr = cos(w*n)*coef'. end else L = (M . Hr = sin(w*n)*coef'. w = [0:500]'*pi/500. 1). axis([0 M-1 -1. n = n . Carlos Alexandre Barros de Mello Página 141 coef = [h(L+1) 2*h(L:-1:1)]. if (type == 3) coef = 2*[h(L+1:-1:1)].1)/2. n = n . hd (alpha + 1) = 0.0.5.xlabel('n'). title('Resposta ao Impulso Ideal'). subplot (2. stem(n. w_ham = (hamming(M))'. n = 0:M-1. alpha = (M . 1) subplot (2. L] = Hr_Type(h. . n = [0:L]. else coef = 2*[h(L:-1:1)]. hd). title('Janela de Hamming').ylabel('hd[n]'). 2. subplot(1. else coef = 2*[h(L:-1:1)].2 1. podemos resolver a questão da seguinte forma: M = 21. w = [0:500]'*pi/500.Processamento Digital de Sinais – Prof.2]). hd = (cos(pi*(n . n = [1:L].mod(type. 3).5. n = [1:L]. 2. h). plot(w/pi. subplot (2. 3). Exemplo 6: Projete um filtro transformador digital de Hilbert de comprimento 25 usando uma janela de Hanning. stem(n.ylabel('Slope in pi units'). 0 < w < π H d (e ) = − jαw jw je . Carlos Alexandre Barros de Mello Página 142 subplot (2. 2.2]). title('Magnitude em dB'). −π < w < 0 A resposta ao impulso ideal é dada por: .2 1. 4).Processamento Digital de Sinais – Prof. Hr/pi). title('Resposta ao Impulso Atual').xlabel('frequencia em pi unidades'). A resposta em frequência ideal de um transformador de Hilbert de fase linear é dada por: − je − jαw .xlabel('n'). axis([0 M-1 -1.grid axis([0 1 0 1]).ylabel('h[n]'). w(2:501)]. Hr = [-fliplr(Hr). Hr(2:501)]. axis([0 M-1 -1. Como M = 25.xlabel('n'). h = hd. plot(w/pi. subplot (2. 2.2]). stem(n. hd)./(n . n = 0:M-1.2 1. title('Resposta ao Impulso Atual').1 1. title('Resposta em Amplitude'). P. subplot (2. hd = (2/pi)*((sin((pi/2)*(n . w. 2). o projeto do filtro é do tipo III: M = 25. axis([0 M-1 -1. n =α que pode ser implementado no MatLab. stem(n.alpha)). h). hd (alpha + 1) = 0.ylabel('h[n]').ylabel('w[n]').Processamento Digital de Sinais – Prof. subplot (2. Carlos Alexandre Barros de Mello Página 143 2 sen 2 [π (n − α ) / 2] . .alpha)). 1).grid axis([-1 1 -1. L] = Hr_Type(h. Hr). n ≠α hd [ n] = π (n − α ) 0 . 4). w = w'.*w_han. axis([0 M-1 0 1.xlabel('n').ylabel('hd[n]').xlabel('n'). title('Janela de Hamming'). 2.1)/2.1]). [Hr.xlabel('frequencia em pi unidades'). w_han). 2. Hr = Hr'.ylabel('Hr'). stem(n. 2. alpha = (M .^2). 3). w_han = (hanning(M))'. w = [-fliplr(w). 3).2]). title('Resposta ao Impulso Ideal').2]). subplot (2.2 1. Processamento Digital de Sinais – Prof.2) com . 5.2 Técnicas de Projeto por Amostragem em Frequência Nessa técnica. usamos o fato de que a função de sistema H(z) pode ser obtida a partir de amostras H(k) da resposta em frequência H(ejw).1. H[k] é sua transformada discreta de Fourier com M-pontos (Capítulo 6) e H(z) sua função de sistema. Carlos Alexandre Barros de Mello Página 144 5. Então temos: M −1 1 − z −M M −1 H [k ] H ( z ) = ∑ h[n]z −n = ∑1− z −1 j 2πk / M n=0 M k =0 e e 1 − e − jwM M −1 H [k ] H (e ) = jw M ∑ k =0 1 − e − jw j 2πk / M e (Eq. Seja h[n] a resposta ao impulso de um filtro FIR com M amostras. . k = M − 1 + 1. M − 1 2 M 2 (para tipos 1 e 2) ou π M − 1 2πk M − 1 ± − .. k =0 H [k ] = H (e j 2πk / M ) = H *[ M − k ] . M − 1 Para um filtro FIR de fase linear temos: h[n] = ±h[M – 1 . Carlos Alexandre Barros de Mello Página 145 H [0] ...Processamento Digital de Sinais – Prof. M − 1 2 2 M 2 (para tipos 3 e 4) . k = 1......... k = 0. 2 2 M 2 ∠H [ k ] = − ± π + M − 1 2π ( M − k ) .. k =0 2πk Hr = H 2π ( M − k ) .. k = M − 1 + 1. k = 1.... n = 0... .. M − 1 M r M e M − 1 2πk M − 1 − .. 1.. 2 ∠H [k ] = 2 M + M − 1 2π ( M − k ) ... Então H[k] é dado por: 2πk j∠H [ k ] H [k ] = H r e M onde H r [0] .n].... M-1 onde o sinal positivo indica filtros FIR de fase linear dos tipos1 e 2 e o negativo é para filtros FIR de fase linear dos tipos 3 e 4. k = 0. 2) Não podemos especificar δ1 e δ2 simultaneamente. . 5. Carlos Alexandre Barros de Mello Página 146 Dado um filtro passa-baixa ideal Hd(ejw). Exemplo da técnica de amostragem em frequência. 3) O erro é maior perto das fronteiras das bandas e menor dentro das bandas. A resposta ao impulso é dada por h[n] = TDF-1(H[k]). ou seja. Fig. 5.3 Projeto Equirriple Ótimo Os métodos de janelamento e de amostragem na frequência têm alguns problemas: 1) Não podemos especificar wP e wS precisamente nos projetos. Ou consideramos δ1 = δ2 (como no janelamento) ou otimizamos δ2 (como na amostragem).2 (Fig.1. Da Fig.9). A resposta H(ejw) é a interpolação das amostras H[k] dadas pela Eq.9. Ele é mais alto perto das fronteiras das bandas e menor quanto mais distante delas. 5. maior o erro de aproximação. escolha o filtro de comprimento M e então amostre Hd(ejw) em M igualmente espaçadas frequências entre 0 e 2π. 2) O erro de aproximação nas outras frequências depende da forma da resposta ideal.Processamento Digital de Sinais – Prof. 5. 5. 3) O erro de aproximação não é distribuído uniformemente nas bandas. podemos observar que: 1) O erro de aproximação – a diferença entre a resposta ideal e a atual – é zero nas frequências amostradas.9. quanto mais “sharp” a resposta ideal. w] = freqz_m(h. Rp = 0. delta2). No entanto ele é bastante difícil de utilizar e requer computador na sua implementação. f. pha. deltaH = max(delta1. delta1 = (10^(Rp/20)-1)/(10^(Rp/20)+1). AS = 50 dB wp = 0. m = [1 1 0 0]. deltaf = (ws .3π.25 dB wS = 0.3*pi.6*deltaf) + 1) f = [0 wp/pi ws/pi 1]. [1]).2*pi.2π.1. RP = 0. weights = [delta2/delta1 1]. um projeto por equirriple é feito usando a função remez que implementa o algoritmo Parks-McClellan. mag. Carlos Alexandre Barros de Mello Página 147 O método equirriple ótimo evita esses problemas.Processamento Digital de Sinais – Prof. O objetivo é minimizar o erro máximo de aproximação (minimax do erro). delta2 = (1 + delta1)*(10^(-As/20)). No MatLab. delta2). ws = 0.25. [db. Asd = -max(db(wsi:501)) while (Asd < As) . Exemplo: Vamos projetar um filtro passa-baixa usando o algoritmo de Parks-McClellan. Tais filtros são chamados de equirriple porque o erro é distribuído de maneira uniforme na banda de passagem e de corte o que resulta em um filtro de menor ordem. M = ceil((-20*log10(sqrt(delta1*delta2))-13)/(14. Os parâmetros de projeto são: wP = 0. delta_w = 2*pi/1000.wp)/(2*pi). h = remez(M . deltaL = min(delta1. weights). m. As = 50. wsi = ws/delta_w + 1. title('Resposta ao Impulso Atual').1 0.8241 Asd = 48. subplot (2.Processamento Digital de Sinais – Prof. plot(w/pi.1.ylabel('h[n]'). db).xlabel('frequencia em pi unidades'). 1). f. 1. Carlos Alexandre Barros de Mello Página 148 M = M + 1. weights).3]).8689 Asd = 47. 2).2131 M= 47 M= 45 Asd = 51.ylabel('Decibeis'). m.0857 . pha.xlabel('n'). stem(h). [db. axis([0 M-1 -0. M= 43 Asd = 48. mag.8404 M= 46 M= 44 Asd = 49. [1]). w] = freqz_m(h. 1. Asd = -max(db(wsi:501)) end subplot (2. h = remez(M . delta_w = 2*pi/1000.grid axis([0 1 -100 10]). title('Magnitude em dB'). wsi = ws/delta_w + 1. A vantagem dessa técnica está no fato que tanto tabelas de filtros analógicos quanto as conversões estão vastamente disponíveis na literatura. Carlos Alexandre Barros de Mello Página 149 5. 3) Aplicar transformações de frequência nas bandas para obter outros filtros digitais a partir do FPB. Existem duas formas de projeto de filtros IIR: 1) 2) Para projetar filtros IIR. . No entanto. os quais.2 Projeto de Filtros IIR Filtros IIR têm resposta infinita ao impulso. 2) Aplicar transformações no filtro para obter FPB digitais.Processamento Digital de Sinais – Prof. Essa técnica é chamada de transformação de filtro analógica-digital (A/D). vamos: 1) Projetar FPB analógicos. em geral. a técnica básica de projeto de filtros IIR transforma filtros analógicos bem conhecidos em filtros digitais. os projetos de filtros IIR serão apenas em magnitude. O principal problema dessas técnicas é que não temos controle sobre a fase do filtro. Para gerar outros filtros seletores de frequência. temos que aplicar transformações a filtros passa-baixa. Assim. assim eles podem ser igualados a filtros analógicos. Essas transformações também estão disponíveis na literatura. Assim. as tabelas de filtros só estão disponíveis para filtros passa-baixa. Técnica mais avançadas usam otimização e não serão tratadas. têm resposta ao impulso infinitamente longa. temos: 1 | H a ( jΩ ) | 2 = em Ω = ΩP 1+ ε 2 1 | Ha ( jΩ) | = 2 2 em Ω = ΩS A .1 Escala Relativa Seja Ha(jΩ) a resposta em frequência do filtro analógico. 5.Processamento Digital de Sinais – Prof. ΩP é a frequência de corte da banda de passagem em rad/seg. 5.10). Da Fig. ΩS ≤ |Ω| A2 onde ε é o parâmetro de ondulação da banda de passagem.10.10.2. |Ω| ≤ ΩP 1+ ε 2 1 0 ≤| H a ( jΩ) |2 ≤ . 5. Fig. Então as especificações do FPB quanto à resposta quadrática de magnitude são dadas por: 1 ≤| H a ( jΩ) |2 ≤ 1 . A é o parâmetro de atenuação da banda de corte e ΩS é a frequência da banda de corte (Fig. Especificações de um filtro passa-baixa analógico. Carlos Alexandre Barros de Mello Página 150 5. A transformada de Laplace se relaciona com a transformada de Fourier.H a (− jΩ ) = H a ( s ) H a ( − s ) s = jΩ ou H a ( s ).H a ( − s ) = | H a ( jΩ) |2 Ω=s / j Observação: O domínio-s ou plano-s é o nome do plano complexo no qual a transformada de Laplace é apresentada graficamente.4) A2 As tolerâncias δ1 e δ2 da escala absoluta são relacionados a ε e A por: 1 − δ1 1 2 δ1 = ⇒ ε = 1 + δ1 1+ ε 2 1 − δ1 e δ2 1 1 + δ1 = ⇒ A= 1 + δ1 A δ2 Especificações de filtros analógicos não têm informação de fase.Processamento Digital de Sinais – Prof. 5. 5. mas enquanto a transformada de Fourier .3) 1+ ε 2 e 1 AS = −10 log10 ⇒ A = 10 AS / 20 (Eq. Carlos Alexandre Barros de Mello Página 151 Os parâmetros ε e A estão relacionados aos parâmetros RP e AS na escala dB como: 1 RP = −10 log10 ⇒ ε = 10 RP / 10 −1 (Eq. Para calcular a função de sistema Ha(s) no domínio-s considere: H a ( jΩ ) = H a ( s ) Ω = s / j então temos | H a ( jΩ ) |2 = H a ( jΩ ).H a * ( jΩ ) = H a ( jΩ ). 11. linhas verticais no plano-s são mapeadas em ângulos no plano-z. Carlos Alexandre Barros de Mello Página 152 mapeia um sinal ou função em termos de vibrações (senóides). n =0 Essa relação expressa exatamente a transformada Z quando z = esT. O mapeamento do plano-s no plano-z pode ser visto na Fig.11. Nesse diagrama. 5. onde T é o período de amostragem. 5. a transformada de Laplace é dada por: ∞ X ( s ) = ∑ x[n]e− nsT . a transformada de Laplace mapeia uma função em relação aos seus momentos: ∞ L{ f (t )} = ∫ −∞ f (t )e − st dt onde s = σ + jω. enquanto linhas horizontais são mapeadas em raios. com σ e ω números reais. Mapeamento do plano-s no plano-z. . Fig. A transformada de Fourier é equivalente à transformada bilateral de Laplace com argumento complexo s = jω. Para um sinal amostrado x[n].Processamento Digital de Sinais – Prof. Desse gráfico. A resposta quadrática de magnitude de um FPB de N-ésima ordem é dada por: 1 | H a ( jΩ ) | 2 = 2N Ω 1 + Ωc onde N é a ordem do filtro e Ωc é a frequência de corte. Vamos ver as características das versões passa-baixa desses filtros. Característica de um filtro Butterworth com variação de parâmetros. . |Ha(j0)|2 = 1. 1) Filtro Passa-Baixa de Butterworth A principal característica desse filtro é que a resposta em magnitude é plana (flat) na banda de passagem e de corte.12. Carlos Alexandre Barros de Mello Página 153 5. Chebyshev (tipo I e II) e Elíptico. 5. para todo N. Três protótipos são largamente usados na prática: Butterworth. Esses filtros analógicos são chamados de filtros protótipos. A plotagem de Ha(jΩ) é mostrada na Fig. Fig.12.2 Características de Protótipos Analógicos O projeto de filtros IIR reside na existência de filtros analógicos para obter filtros digitais.Processamento Digital de Sinais – Prof. podemos observar: i) Em Ω = 0.2. 5. . precisamos encontrar as raízes e pólos da função do sistema. para todo N. . Sua função de sistema Ha(s) é: 1 ( jΩ) 2 N H a ( s ) H a (− s ) = | H a ( jΩ) | 2 = = 2N Ω =s / j s 2N s + ( jΩ c ) 2 N 1 + jΩ c Para projetar o filtro.ejπ/2Ωc. queremos: i) em Ω = ΩP.j Ωc = Ωcejπ(2k+N+1)/2N. − 10 log 10 | H a ( jΩ ) |2 = AS ou 1 − 10 log10 = AS 1 + (Ω S / Ω c ) 2N ... k = 0. dadas essas especificações. a essência do projeto no caso do filtro de Butterworth é obter a ordem N e a frequência de corte dada Ωc. 2N-1. o que implica 3 dB de atenuação em Ωc. E os zeros são sk = (-1)1/2N. ΩS. Assim. RP e AS.. iii) |Ha(jΩ)|2 é uma função monotonicamente decrescente em Ω. k = 0. Assim.Processamento Digital de Sinais – Prof. V) |Ha(jΩ)|2 é maximamente plano em Ω = 0. O FPB analógico é especificado pelos parâmetros ΩP. Os pólos são dados por pk = ejπ(2k + 1)/2N . os pólos estão em um círculo de raio Ωc nos ângulos θk = (π/N)k + (π/2N) + π/2. 2N – 1.. iv) |Ha(jΩ)|2 se aproxima de um FPB ideal em N → ∞. − 10 log 10 | H a ( jΩ) | 2 = R P ou 1 − 10 log10 = RP 1 + (Ω P / Ω c ) 2N e ii) em Ω = ΩS.... k = 0.. Assim. . 1. 2N – 1. Carlos Alexandre Barros de Mello Página 154 ii) Em Ω = Ωc. 2. |Ha(jΩc)|2 = 0. 1..5. 7 −1 . Para satisfazer exatamente as especificações do projeto em ΩP: ΩP ΩC = 2N 10 RP / 10 − 1 ou para satisfazer exatamente as especificações em ΩS: ΩS ΩC = 2N 10 AS / 10 − 1 Exemplo: Projete um filtro Butterworth satisfazendo: Ponto de corte na banda de passagem: ΩP = 0.3π Ripple na banda de corte: AS = 16 dB Solução: log10 [(100 .3π ) Para satisfazer exatamente as especificações em ΩP temos: 0.79 = 3 2 log10 (0.Processamento Digital de Sinais – Prof. temos: log 10 [(10 RP / 10 − 1) /(10 AS / 10 − 1)] N= 2 log 10 (Ω P / Ω S ) Em geral. 6 − 1)] N= = 2.4985 2. por isso.2π Ripple na banda de passagem: RP = 7 dB Ponto de corte na banda de corte: ΩS = 0.2π / 0. deve ser truncado para o menor inteiro maior que o valor calculado: N = N. N não é um inteiro e. isso irá gerar um filtro com ordem maior do que o necessário. 7 − 1) /(101.2π ΩC = = 0. Obviamente.3 10 0. Carlos Alexandre Barros de Mello Página 155 Resolvendo as equações para N e Ωc. por exemplo Ωc = 0.5 Como Ω = s/j. Temos que projetar um filtro Butterworth com N = 3 e Ωc = 0. Ou seja: 1 | H a ( jΩ) |2 = 6 Ω 1+ 0.4330i -0.5122 2. >> b = roots(a) b= -0.4330i .5 j cujos pólos podem ser calculados no MatLab (ou calculando pK.2500 .0.2500 .2500 + 0. temos: 1 1 1 | H a ( s ) |2 = = = S 6 1 − 26 s 6 1 − 64s 6 1 + 0. como antes): >> a = [-64 0 0 0 0 0 1]. Carlos Alexandre Barros de Mello Página 156 Para satisfazer exatamente as especificações em ΩS temos: 0.5000 -0.3π ΩC = = 0.5.0.5000 0.4330i 0.4330i 0.2500 + 0.Processamento Digital de Sinais – Prof.3 10 − 1 1.5. 6 Podemos escolher Ωc entre esses dois valores. Nele. Historicamente.Processamento Digital de Sinais – Prof.25) Vamos ajustar o numerador para que o ganho na frequência zero seja unitário.5)( s 2 + 0. usamos os pólos do semi-plano esquerdo: 1 H a ( s) = ( s + 0. quando s = 0.125 H a ( s) = = ( s + 0. o efeito de T é cancelado.5)(s2 + 0. com T representando o passo de integração.5s + 0.5)( s 2 + 0. no mapeamento de analógico para discreto. Ou seja. Carlos Alexandre Barros de Mello Página 157 Para termos um filtro causal e estável. consideramos: 2 1 − z −1 1 + sT / 2 s= ⇒ z = (Eq.25) Para transformar o filtro em digital.5s + 0.25 = 0.125 Logo. no denominador.25 + j 0. temos: (s + 0.433)( s + 0.5)( s 2 + 0. o valor de T foi incluído porque a equação de diferenças correspondendo a H(z) pode ser obtida aplicando a regra da integração trapezoidal na equação de diferenças de H(s).5)( s + 0.5) T 1 + z −1 1 − sT / 2 onde T é um parâmetro. o numerador é multiplicado por um fator de 1/8 e temos: 1/ 8 0.5s + 0. Logo.5.25) ( s + 0. o parâmetro T não tem consequência no projeto já que.0.433) 1 H a (s) = ( s + 0. 5. seja T = 1: 1 − z −1 s=2 −1 ⇒ H a ( z ) = H a ( s) s=21− z −1 = 1+ z 1+ z −1 . No nosso caso. T pode ser escolhido de forma conveniente para cada problema.25) = 0.5s + 0. podemos usar o método de transformação bilinear.25 − j 0. Dada a invariância ao impulso. x(t ) dt Ao invés de substituir uma diferença finita pela derivada.5 2 1 + z −1 + 0.Processamento Digital de Sinais – Prof. y(nT ) + b.5 2 1 + z −1 + 0.7 e obtemos a equação de diferenças para o sistema discreto no tempo equivalente. obtemos o resultado: . suponha que integramos a derivada e aproximamos a integral pela fórmula trapezoidal.8) Usamos a Eq.6) s+a Esse sistema pode ser caracterizado também pela equação de diferenças: dy (t ) + a. 5.x( nT ) (Eq.8 na Eq. Com y(n)≡ y(nT) e x(n)≡ x(nT). 5. A aproximação da integral anterior pela fórmula trapezoidal em t = nT e t0 = nT – T leva a: T y (nt ) = [y ' (nT ) + y ' (nT − T )] + y (nT − T ) (Eq.7) 2 Agora. Carlos Alexandre Barros de Mello Página 158 0. 5.25 A transformação bilinear pode ser ligada à fórmula trapezoidal para integração numérica. Assim: t y (t ) = ∫ y ' (τ ) dτ + y (t0 ) t0 onde y’(t) denota a derivada de y(t). 5. Por exemplo. y (t ) = b. 5. considere um filtro linear analógico com função de transferência: b H ( s) = (Eq. essa equação diferencial calculada em t = nT leva a: y ' (nT ) = −a.125 H a ( z) = 1 − z −1 2 1 − z −1 1 − z −1 2 1 + z −1 + 0. O Chebyshev do tipo I tem resposta equirriple na banda de passagem e o tipo II. Os filtros Butterworth têm resposta monotônica em ambas as bandas. comparando a Eq. a função de transferência do filtro digital equivalente é: Y ( z) (bT / 2)(1 + z −1 ) H ( z) = = X ( z ) 1 + aT / 2 − (1 − aT / 2) z −1 ou.9 com a Eq. na banda de corte. mapeando o plano s com o plano z. Assim.Processamento Digital de Sinais – Prof. 2) Filtro Passa-Baixa de Chebyshev Existem dois tipos de filtros de Chebyshev. um filtro de Chebyshev tem menor ordem que um de Butterworth para as mesmas especificações.9) +a −1 T 1+ z Notadamente. 5. Lembramos que um filtro de resposta equirriple tem menor ordem. 5. Nele. 5. temos dois . Veja o exemplo na Fig.6.13 gerado usando o fdatool do MatLab. 5. equivalentemente: b H ( z) = 2 1 − z −1 (Eq. temos: 2 1 − z −1 s = −1 T 1+ z que é a chamada transformação bilinear. Carlos Alexandre Barros de Mello Página 159 aT aT bT 1 + y ( n ) − 1 − y ( n − 1) = (x(n) + x(n − 1) ) 2 2 2 cuja transformada Z é aT aT −1 1 + Y ( z ) − 1 − z Y ( z ) = bT 1 + z −1 X ( z ) ( ) 2 2 2 Consequentemente. ou seja. . cos −1 ( x)) .3) e TN(x) é o polinômio de Chebyshev dado por: cos( N . buscando sempre a menor ordem possível. A resposta quadrática de magnitude de um filtro Chebyshev tipo I é dada por: 1 | H a ( jΩ ) | 2 = Ω 1 + ε 2TN2 Ωc onde N é a ordem do filtro. 5. x = (Ω/Ωc) é substituído por seu inverso e ε2TN2(x) também. O filtro de Butterworth tem ordem 31. Carlos Alexandre Barros de Mello Página 160 filtros (um de Butterworth e um de Chebysshev tipo I) gerados sobre as mesmas condições. 0 ≤ x ≤ 1 TN ( x) = −1 cosh(cosh ( x )) .Processamento Digital de Sinais – Prof. Para um filtro de Chebyshev do tipo II: 1 | H a ( jΩ ) | 2 = −1 Ω 1 + ε 2TN2 c Ω Ou seja. 1 < x < ∞ Podemos considerar x = (Ω/Ωc). enquanto o de Chebyshev I tem ordem 16. ε é o fator de ondulação da banda de passagem (Eq. 13. Carlos Alexandre Barros de Mello Página 161 Fig. São similares em magnitude a filtros FIR equirriple. 3) Filtro Passa-Baixa Elíptico Esses filtros apresentam ondulações na banda de passagem e de corte.Processamento Digital de Sinais – Prof. Esses filtros são muito difíceis de projetar e analisar. 5. . Dois filtros com as mesmas especificações gerados como Butterworth e Chebyshev tipo I: o de Chebyshev tem menor ordem. São filtros ótimos no sentido que eles alcançam a menor ordem N para as dadas especificações. sendo necessário uso de tabelas e computadores. Não é possível projetá-los com ferramentas simples. o projeto de filtros seletores de frequência como passa-alta. 5.3 Transformações em Frequência Como dissemos anteriormente. A partir desse protótipo.3) e UN(x) é a função elíptica Jacobiana de ordem N. respectivamente.Processamento Digital de Sinais – Prof. é possível aplicar uma transformação algébrica para construir o filtro desejado. Carlos Alexandre Barros de Mello Página 162 A resposta quadrática de magnitude é dada por: 1 | H a ( jΩ) |2 = Ω 1 + ε 2U N2 Ω c onde N é a ordem do filtro. Observe que as variáveis complexas Z e z estão associadas ao filtro passa-baixa protótipo e ao filtro obtido pela transformação. o cálculo da ordem do filtro é simples e dado por: 2 K (k ) K ( 1 − k1 ) N= K (k1 ) K ( 1 − k 2 ) onde π /2 Ω ε 1 k= P ΩS . Seja HPB(Z) a função do sistema de um filtro passa-baixa dado o qual se quer transformar para obter uma nova função H(z). O que se deseja. Apesar da análise complexa. ε é o fator de ondulação da banda de passagem (Eq. são feitos a partir de um protótipo do tipo passa baixa. é uma função Z=G(z) que satisfaça: H ( z ) = H PB ( Z ) Z −1 =G ( z −1 ) . k= A −1 2 e K ( x) = ∫ 0 1 − x sen θ 2 2 dθ 5. passa-faixa ou rejeita faixa. portanto. G(z-1) deve ser uma função racional de z-1.Processamento Digital de Sinais – Prof. . α1 = α): −1 −1 z −1 − α Z = G( z ) = 1 − αz −1 Agora. 3. O círculo unitário do plano Z deve mapear no círculo unitário do plano z. a transformação Z-1 = G(z-1) pode ser re-escrita como: e − jθ = G (e − jw ) e− jθ =| G(e − jw ) | e j∠G (e jw ) De forma que: |G(e-jw)| = 1 e -θ= ∠G(e-jw) A forma mais geral da função G(z-1) que satisfaz às condições acima é: N z −1 − α k Z −1 = G ( z ) = ±∏ −1 k =1 1 − α k z −1 onde |αk| < 1. respectivamente. 2. As transformações mais comuns estão na Tabela 5. podemos obter uma variedade de mapeamentos. aos planos Z e z. uma exigência natural é que a função transformada H(Z) também apresente essas características. diversos mapeamentos podem ser obtidos. O mais simples é (N = 1.1. escolhendo uma ordem apropriada N e os coeficientes {αk}. Isso implica que: 1. Dependendo da escolha de N e αk. O interior do círculo unitário do plano Z deve mapear o interior do círculo unitário do plano z. Denotando por θ e w as variáveis (ângulos) associados. Carlos Alexandre Barros de Mello Página 163 Se HPB(Z) é a função racional de um sistema causal e estável. Pequenos valores de δ2. .4 Comparação entre Filtros FIR e IIR Seja M o comprimento (número de coeficientes) de um filtro FIR de fase linear e N a ordem de um filtro elíptico (IIR). vale a pena comentar a transformação passa-baixa para passa- baixa (primeira conversão da tabela).Processamento Digital de Sinais – Prof. filtros IIR elípticos são desejáveis do ponto de vista computacional. Se assumirmos que ambos os filtros atendem exatamente às mesmas especificações. Isso é feito para que se possa construir um filtro passa-baixa que pode ser modificado apenas com a variação de um parâmetro: α. As condições mais favoráveis para filtros FIR são: 1. 2. Grandes valores de δ1. para a maior parte das aplicações. os dois filtros são equivalentes e atendem à relação: M ≅3 N Isso mostra que. 5. Carlos Alexandre Barros de Mello Página 164 Nessa tabela. Grande largura da banda de transição. 3. Transformações em frequência para filtros digitais (filtro passa-baixa protótipo tem frequência de corte em wc’).Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 165 Tabela 5.1. . 0.5π jw 0.6π 1. de acordo com as seguintes especificações: Frequência da Banda de corte: 0. de acordo com a seguinte resposta em frequência: 1. Modifique o que for necessário do filtro para que as especificações sejam completamente atendidas.5 dB Plote a resposta ao impulso e a resposta em magnitude do filtro.6π ≤| w |< π AS = 50 dB e RP = 0.5π ≤| w |< 0. A resposta em frequência de um filtro passa-faixa ideal é dada por: 0 .3π ≤| w |< 0. Projete um filtro passa-faixa. 2. 0 ≤| w |< 0.5 dB Plote a resposta ao impulso e a resposta em magnitude do filtro.6π AS = 60 dB e RP = 0.Processamento Digital de Sinais – Prof. 0.4π ≤| w |< 0.4π Frequência da Banda de passagen: 0.5 Exercícios 1. usando filtros passa-baixa ideais e janela de Hamming. Plote a resposta ao impulso e a resposta em magnitude do filtro. 3.3π 0. .4π H e (e ) = 1. Projete um filtro passa-alta. Modifique o que for necessário do filtro para que as especificações sejam completamente atendidas. 2π / 3 <| w |≤ π Usando uma janela de Kaiser. usando filtros passa-baixa ideais e janela de Hanning. π / 3 ≤| w |≤ 2π / 3 0 . 0. Carlos Alexandre Barros de Mello Página 166 5. projete um filtro passa-faixa de comprimento 45 com atenuação na banda de corte de 60 dB. 0 ≤| w |< π / 3 H e (e jw ) = 1 . 0. . 3. Carlos Alexandre Barros de Mello Página 167 4. Alan V. Prentice Hall.3π ≤ |w| ≤ π 5. 0 ≤ |w| ≤ 0. John Wiley and Sons. 1989 4. John G.2π |H(ejw)| ≤ 0. Discrete Time Signal Processing.6 Bibliografia Complementar 1. 2004. Digital Signal Processing Using MatLab and Wavelets. Proakis. Tamal Bose. 2. Oppenheim. 2000. a partir do filtro analógico de Butterworth com as seguintes especificações do filtro digital: 0. Digital Signal and Image Processing. Infinity Science Press. Digital Signal Processing.17783. Projetar um filtro digital passa-baixas. 2007. Ronald Schafer.Processamento Digital de Sinais – Prof.89125 ≤ |H(ejw)| ≤ 1. Ingle. Thomson Learning. Michael Weeks. Vinay K. 0. Consiste de uma generalização da série complexa de Fourier quando o período tende a infinito.F(w) . No caso da transformada de Fourier. Transformada Discreta de Fourier O uso de transformadas serve para observar características de um sinal que já estavam presentes nele. A transformada inversa de Fourier é definida como: ∞ 1 ∫ F ( w) e −1 j 2πwt f (t ) ≡ ℑ {F ( w)} ≡ dw 2π −∞ Existem algumas propriedades que caracterizam a transformada de Fourier. as transformadas conseguem levar o sinal para outro domínio e trazê-lo de volta ao domínio original. A transformada de Fourier é uma ferramenta muito utilizada em análise e processamento de sinais. Assim.F(w) + b. a e b constantes 2) Deslocamento no tempo: f(t .g(t) → a. A transformada de Fourier F(w) da função f (t) é definida por: ∞ ∫ f (t )e − j 2πwt F ( w) ≡ ℑ{ f (t )} = dt −∞ onde e-jwπ é o kernel da transformada de Fourier.f(t) + b. a Transformada de Fourier muda um sinal do domínio do tempo para o domínio da frequência. Criada por Jean-Baptiste Fourier. Considere os pares de transformadas f(t)→F(w) e g(t)→G(w). a mudança de domínio também traz outras vantagens. mas que podem não ser observáveis em um domínio. mudamos um sinal de um domínio o qual não temos controle (o tempo) para outro domínio que pode ser facilmente modificado (a frequência). As seguintes principais propriedades são válidas: 1) Linearidade: a.t0) → e-j2πwt0.Processamento Digital de Sinais – Prof. Uma mudança de estação de rádio nada mais é que uma mudança de frequência de um sinal.G(w). Carlos Alexandre Barros de Mello Página 168 6. Além da observação de outras características do sinal. A mais conhecida das transformadas é a transformada de Fourier. concluímos que existe um número finito de harmônicos.} são chamados de coeficientes da série discreta de Fourier. (Eq...t) → (1/|a|)F(w/a) 5) Convolução no tempo: f(t)*g(t) → F(w). sendo dados por: N −1 2π −j kn X [k ] = ∑ x[n]e N . as frequências {(2π/N)k.. ±1. k = 0.. a sequência periódica x[n] pode ser expressa como: N −1 2π 1 j kn x[n] = N ∑ X [k ]e k =0 N . . tal que x[n] = x[n + k. Assim. 6.G(w) 6) Convolução na frequência: f(t)..Processamento Digital de Sinais – Prof.. 2. k = 0. ±1. e N é o período fundamental da sequência.N]. (Eq. Carlos Alexandre Barros de Mello Página 169 3) Deslocamento na frequência: f(t)ej2πw0t → F(w – w0) 4) Escalonamento: f(a. .. foi necessária uma adequação da transformada para sinais de tempo discreto. Da periodicidade no domínio da frequência da transformada de Fourier discreta no tempo. n = 0.2) . sabemos que funções periódicas podem ser sintetizadas como uma combinação linear de exponenciais complexas cujas frequências são múltiplas (ou harmônicas) da frequência fundamental (no caso 2π/N).. .. N-1}.1) onde {X[k]. para qualquer inteiro k... . n =0 6. 1. Considere uma sequência x[n] que é periódica com período N.1 A Série Discreta de Fourier Com o advento do computador digital.. Da análise de Fourier.. k = 0.g(t) → (1/2π)F(w)*G(w) 6. ±1. 1. Carlos Alexandre Barros de Mello Página 170 onde x[n] é a sequência discreta no domínio do tempo que descreve os valores amostrados da variável contínua x(t) e N é o número de amostras da sequência da entrada. 2. Exemplo: Encontre a representação em série de Fourier da sequência: x[n] = {. podemos chamar: W N = e-j(2π/N) e assim o par de equações torna-se: N −1 Equação de análise: X [k ] = ∑ x[n]WNkn n =0 N −1 1 Equação de síntese: x[n] = N ∑ X [k ]W k =0 − kn N Tanto x[n] quanto X[k] são sequências periódicas.. 0. Assim.} O período fundamental da sequência é N = 4. W 4 = e-j2π/4 = e-jπ/2 = cos(- π/2) + j. .Processamento Digital de Sinais – Prof. 2.sen(-π/2) = 0 + j.. 3.(-1) = -j Agora 3 X [ k ] = ∑ x[ n]W4kn n =0 Assim: .. 1..0. Observe que X[k] também é uma sequência periódica com período fundamental igual a N.. Por conveniência de notação. As equações 6.2 são a representação discreta em série de Fourier de sequências periódicas. 2. 3. 3. Ou seja. 1. X[k + N] = X[k]. 0.1 e 6. Processamento Digital de Sinais – Prof.n 4 = ∑ x[n](− j ) n = −2 + 2 j n=0 n=0 3 3 X [ 2] = ∑ x[n]W 4 2.n = ∑ x[n](− j )3n = −2 − 2 j n=0 n=0 Uma outra forma de ver a transformada discreta de Fourier é através de uma representação em matrizes. Considere que x e X são vetores coluna correspondendo aos períodos primários das sequências x[n] e X[k]. respectivamente.n = ∑ x[ n] = x[0] + x[1] + x[2] + x[3] = 6 n=0 n=0 De forma similar: 3 3 X [1] = ∑ x[n]W 1. Então as equações de síntese e análise podem ser vistas como: X = W Nx e x = (1/N)W *NX onde W N é dada por: . Carlos Alexandre Barros de Mello Página 171 3 3 X [0] = ∑ x[n]W 4 0.n = ∑ x[n](− j ) 2 n = −2 n =0 n=0 3 3 X [3] = ∑ x[n]W 4 3. Carlos Alexandre Barros de Mello Página 172 A matriz W N é chamada de matriz DFS.0i 3 + 0i. Por exemplo: >> xn = [0 1 2 3].Processamento Digital de Sinais – Prof. k = [0:1:N-1]. N) n = [0:1:N-1]. nk = n'*k. Xk = xn*WNnk. k = [0:1:N-1]. nk = n'*k.^(-nk). Essa forma de calcular os coeficientes da série discreta de Fourier pode ser implementado no MatLab da seguinte forma: function [Xk] = dfs (xn.0i 1 .0i 2 . temos: >> xn = idfs(Xk. N) xn = 0 . N = 4. N) n = [0:1:N-1].0i -2 . WN = exp(-j*2*pi/N).2i Exatamente como calculamos anteriormente. >> Xk = dfs(xn.^nk. Para o Xk anterior. WNnk = WN. N) Xk =6 -2 + 2i -2 . WN = exp(-j*2*pi/N). Exemplo: Considere uma sequência representando uma onda quadrada periódica: . xn = (Xk*WNnk)/N. WNnk = WN. A transformada inversa pode ser obtida como: function [xn] = idfs(Xk. Processamento Digital de Sinais – Prof. L). axis([-N/2. zeros(1. ylabel('X[k]'). N/2. % DFS magnitude >> stem(k.xlabel('k'). Carlos Alexandre Barros de Mello Página 173 No MatLab: >> L = 5. 5. N-L)]. Para N = 40. magXk). >> magXk = abs([Xk(N/2+1:N) Xk(1:N/2+1)]). >> Xk = dfs(xn.5. k = [-N/2:N/2].5]). >> xn = [ones(1. -0. temos: . N = 20. N). então N amostras de X(z) no círculo unitário determinam X(z) para todo z. isto é: ∞ ~ x [ n] = ∑ x[n − rN ] r = −∞ O teorema da amostragem no domínio da frequência diz que. que é uma sequência periódica (e assim de duração finita). Nesse sentido. que é de duração finita. Essa DFT é a transformada de Fourier para sequências arbitrárias de duração finita. Seja X [k] =DFS ~ x [n]. Primeiro. criado usando uma sequência de N-pontos x[n]. se x[n] é de duração finita ([0. Essas N amostras ao redor do círculo unitário são chamadas ~ de coeficientes da transformada discreta de Fourier.2 A Transformada Discreta de Fourier Na prática. definimos a squência de duração finita x[n] que tem N amostras sobre 0 ≤ n ≤ N – 1 como uma sequência de N-pontos. Carlos Alexandre Barros de Mello Página 174 6. Essas noções .Processamento Digital de Sinais – Prof. N equidistantes amostras da transformada de Fourier discreta no tempo X(ejw) da sequência de N-pontos x[n] pode reconstruir unicamente X(ejw). definimos a Transformada Discreta de Fourier (DFT) como o período primário da DFS. N-1]). Seu intervalo primário é então a transformada discreta de Fourier. Seja ~ x [n] um sinal periódico de período N. Do início desse capítulo. A transformada discreta de Fourier inversa de uma DFT de N-pontos X[k] é dada por: x[n] = IDFT ( X [k ]) ou N −1 1 x[n] = N ∑ X [ k =0 k ]W −kn N . respectivamente. 0≤k≤N–1 n =0 Note que X[k] também é uma sequência de N-pontos. 0 ≤ k ≤ N − 1 X [k ] = DFT ( x[n]) = 0. 0≤n≤N–1 Novamente. A Transformada Discreta de Fourier de uma sequência de N-pontos é dada por: ~ X [k ]. senão ou N −1 X [k ] = ∑ x[ n]W Nkn . ou seja. fica claro que a DFS é praticamente equivalente à DFT quando 0 ≤ n ≤ N – 1. ela não é definida fora do intervalo de 0 ≤ k ≤ N – 1. Se x[n] e X[k] são organizados como vetores coluna x e X. então temos: X = W Nx e x = (1/N)W *NX .Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 175 são claras na seguinte definição. x[n] não é definida fora do intervalo 0 ≤ n ≤ N – 1. A extensão de x[n] fora desse intervalo é ~ x [n]. Assim a implementação da DFT pode ser feita de forma similar. deslocamento no tempo e frequência. Carlos Alexandre Barros de Mello Página 176 onde W N é a matriz DFS como antes.x2[n] ↔ a. A DFT apresenta algumas propriedades que são muito úteis no processamento digital de sinais.X2[k] Obs: Se x1[n] e x2[n] são sequências de durações diferentes (N1-pontos e N2- pontos. Se.X1[k] + b. como: simetria. Considere aquelas mesmas funções com nomes dft e idft apenas. 6. N2). Fora a simetria. A implementação tanto da DFT quanto da IDFT no MatLab é igual às da DFS e IDFS que apresentamos anteriormente. A relação de Euler é dada por ejθ = cosθ + jsenθ . entre outras. então X1[k] é a DFT de x1[n] aumentada de (N2 – N1) zeros.3 Propriedades da Transformada Discreta de Fourier 1) Linearidade Dadas duas sequências periódicas com período N. A DFT pode ser escrita então da seguinte forma: 2πmn N −1 2πmn X [ m] = ∑ x[n]cos − jsen n =0 N N lembrando que j = √−1. por exemplo). linearidade. Uma outra possível representação da transformada discreta de Fourier é a forma retangular que se utiliza da relação de Euler. N1 < N2. 2) Deslocamento de uma sequência Seja x[n] uma sequência periódica com coeficientes de Fourier X[m]. x1[n] e x2[n].Processamento Digital de Sinais – Prof. por exemplo. e suas respectivas DFTs X1[k] e X2[k]. Este é um conceito abstrato conveniente para nos ajudar a comparar a relação de fase entre várias componentes senoidais do sinal. as outras propriedades são comuns à transformada de Fourier de tempo contínuo. escolha N3 = max(N1.x1[n] + b. então: a. Assim: . basta que calculemos as componentes de X[m] para 0 ≤ m ≤ N/2 . então X[N − m]* = X[m]. Quando a sequência do sinal for real.x[-k] 4) Simetria A simetria pode poupar muito esforço computacional.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 177 x[n – m] ↔ W NkmX[m] 3) Dualidade Se x[n] ↔ X[k] então X[n] ↔ N.0 = 1.jsen(2πn) = 1 – j. Prova: N −1 2π −j kn X [ k ] = ∑ x[ n]e N n=0 Logo 2π * 2π 2π * N −1 − j n ( N −m ) N −1 − j nN j nm X [ N − m] = ∑ x[ n]e * N = ∑ x[ n]e N e N n= 0 n= 0 2π * N −1 j nm X [ N − m] = ∑ x[ n]e * − j 2πn e N n =0 onde e-j2πk = cos(2πn) . Ou seja. Assim: 2π * N −1 j nm X [ N − m] = ∑ x[n]e N * n= 0 Se x[n] for real: N −1 2π −j nm X [ N − m] = ∑ x[n]e * N = X [ m] n =0 5) Convolução Periódica N −1 ∑ x [ m ] x [ n − m] ↔ X [ k ] X m =0 1 2 1 2 [k ] . 1. >> subplot(3. 'b'). >> fs = 200. Carlos Alexandre Barros de Mello Página 178 onde o lado esquerdo da igualdade é conhecido como convolução. 2). .2*pi/5) + 2*cos(2*pi*60*n*Ts + pi/8). title('Fase'). 1.3). representado por x1[n]*x2[n]. >> xlabel('frequencia (Hz)'). 'b'). >> m = 0:length(X) . >> subplot(3.1. stem(x). 1). É importante observar que o somatório ocorre no intervalo 0 ≤ m ≤ N-1. stem(m*fs/length(X). title('Magnitude da Resposta em Frequencia').title('Sequencia'). >> Ts=1/fs. Exemplo: >> n = 0:99. >>x=cos(2*pi*20*n*Ts + pi/4) + 3*cos(2*pi*40*n*Ts . angle(X). O valor de x2[n – m] se repete periodicamente fora desse intervalo. ylabel('magnitude').Processamento Digital de Sinais – Prof. 1. ylabel('Angulo'). >> xlabel('frequencia (Hz)'). >> subplot(3.ylabel('x(n)'). abs(X). stem(m*fs/length(X). >> X = fft(x). xlabel('n'). 'b'). >> xlabel('frequencia (Hz)'). o padrão também aparece refletido no eixo da frequência. a magnitude da resposta em frequência apresenta uma imagem refletida. Para a fase. Assim. >> ylabel('magnitude').4 A Transformada Discreta Bi-Dimensional de Fourier Para duas dimensões. precisamos apenas da primeira metade dela. title('Magnitude da Resposta em Frequencia'). 6. novamente. Para a questão da magnitude podemos fazer: >> half_m = 0:ceil(length(X)/2). como o sinal x[n] é real. abs(X(half_m + 1)). só precisamos de metade da plotagem.Processamento Digital de Sinais – Prof. >> stem(half_m*fs/length(X). Carlos Alexandre Barros de Mello Página 179 Observe que. a DFT e sua inversa podem ser vistas como: . mas também tridimensional: . a imagem abaixo: Pode ser vista como uma figura tridimensional. cuja visão em perspectiva seria como na figura: que é uma versão tridimensional da função porta. Carlos Alexandre Barros de Mello Página 180 Essa é a forma como a transformada é calculada para imagens digitais. por exemplo. Se considerarmos uma imagem em níveis de cinza onde o valor 0 corresponde à ausência de cor (o preto) e o valor 1 corresponde ao valor máximo da cor (o branco). Dessa forma. a transformada também é uma função sample.Processamento Digital de Sinais – Prof. foi imposta uma rotação de 45º à imagem da figura acima. podendo ser possível encontrar o ângulo de rotação da imagem. a transformada guardará a informação da inclinação inicial. Por exemplo. Carlos Alexandre Barros de Mello Página 181 Uma propriedade importante da DFT aplicada a imagens é sua sensibilidade à rotação.Processamento Digital de Sinais – Prof. Em processamento de voz.5 O Espectrograma O espectrograma apresenta a densidade espectral do sinal ao longo do tempo. Por exemplo. considere a figura abaixo e sua DFT: Se for imposta uma rotação à imagem. o espectrograma é usado para identificar fonemas . Veja o resultado da DFT como apresenta a inclinação. 6. na figura a seguir. Com isso. Normalmente. O som foi gerado por uma voz feminina. Carlos Alexandre Barros de Mello Página 182 no sinal. Ou seja. Em seguida. apresentamos seu espectrograma. espectrogramas são gerados através do cálculo do quadrado da magnitude da STFT (Short-Time Fourier Transform – Transformada de Fourier de Tempo Curto) do sinal. da pasta Enroll_Session1 -> f16 -> female_list_4a (base TIMIT do MIT). enquanto os tons azuis correspondem a valores baixos.wav. as cores vermelha e amarela correspondem a picos (o que indica alta densidade da frequência). Nele está sendo dito: “jessica brown”. ω)|2 Exemplo: Considere o sinal de voz abaixo. Arquivo phrase59_16k. . ω) = |STFT(t. Uma terceira dimensão indica a amplitude de cada frequência e é normalmente associada a uma cor. Há um ruído no início da gravação. com ruído de fundo.Processamento Digital de Sinais – Prof. A forma mais comum de representarmos um espectrograma é através de um gráfico bi-dimensional onde a abscissa corresponde ao tempo e a ordenada à frequência. Espectrograma(t. No padrão de cores do MatLab. o espectrograma pode ser visto como uma imagem. % calculate the table of amplitudes [B.f.bmin)/bmin)).f.fs]=wavread('phrase59_16k.Processamento Digital de Sinais – Prof. % plot top 50dB as image imagesc(t. colormap(jet). Carlos Alexandre Barros de Mello Página 183 A função usada para gerar esse espectrograma pode ser vista abaixo: % read the signal [y.uk/courses/spsci/matlab/lect9.html) As figuras a seguir mostram as mesmas palavras ditas pela mesma mulher.1024. % label plot axis xy. Observe as diferenças mais visíveis no espectrograma.256. xlabel('Time (s)').phon. mas com outro tipo de microfone.t]=specgram(y.192).20*log10(max(abs(B).ac. .wav').fs. % calculate amplitude 50dB down from maximum bmin=max(max(abs(B)))/300. (fonte: http://www.ucl. ylabel('Frequency (Hz)'). Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 184 . 3.3n . -5. usando a definição de IDFS: a) X1[k] = {5. N = 4 c) X3[k] = {1. 5}. -3}. 0 ≤ n ≤ 25 x21[n] = 0. Carlos Alexandre Barros de Mello Página 185 6. N = 4 2. N = 4 3. -j. 2. 3. 26 ≤ n ≤ 99 a) Encontre DFT{x1[n]} e plote (usando a função stem) os gráficos de sua magnitude e de sua fase.Processamento Digital de Sinais – Prof. -2j. usando a definição de DFS: a) x1[n] = {2. 2j}. N = 5 c) x3[n] = {3. 26 ≤ n ≤ 49 e seja x2[n] periódica com período fundamental N = 100. 0. N = 4 d) x4[n] = {j. N = 4 b) x2[n] = {0. Seja x1[n] periódica com período fundamental N = 50. 2. -5}.6 Exercícios 1. N = 5 d) X4[k] = {0. -3. 3. 1. onde um período é dado por: ne−0. 0. N = 4 b) X2[k] = {4. -j}. b) Encontre DFT{x2[n]} e plote (usando a função stem) os gráficos de sua magnitude e de sua fase. 0. dados os seguintes coeficientes DFS.3n . 4. 0. Determine as sequências periódicas. Determine os coeficientes da DFS das seguintes sequências periódicas. 0}. 0}. 0}. 3. 2. j. onde um período é dado por: ne−0. c) Qual a diferença entre as duas plotagens? . 0 ≤ n ≤ 25 x1[n] = 0. Processamento Digital de Sinais – Prof. para cada função. Nas questões abaixo. Carlos Alexandre Barros de Mello Página 186 4. plote a magnitude e a fase de sua DFT (crie as funções no MatLab): a) Dente de serra: b) Onda quadrada . Processamento Digital de Sinais – Prof. Ingle. Infinity Science Press. Proakis. 2007. Alan V. John G. Digital Signal Processing. Vinay K. Prentice Hall. Oppenheim. Carlos Alexandre Barros de Mello Página 187 6. Digital Signal Processing Using MatLab and Wavelets. Thomson Learning. 2. Michael Weeks. Discrete Time Signal Processing. Ronald Schafer. 3. 1989 .7 Bibliografia Complementar 1. 2000. e a indústria dos semicondutores. Carlos Alexandre Barros de Mello Página 188 7. Tradicionalmente tem-se usado apenas a complexidade multiplicativa como o parâmetro mais importante.Para uma sequência de N pontos. O esforço computacional pode ser definido como o número máximo de operações elementares necessárias para resolver o problema. pode-se tratar da complexidade multiplicativa e complexidade aditiva i. Graças a Cooley e Tukey. número de multiplicações ponto flutuante (respectivamente adições) necessárias para calculá-la. enquanto o algoritmo FFT realiza apenas (N/2)log2N.e. O que difere esses algoritmos é o tempo de resposta deles ou a chamada complexidade do ..Fast Fourier Transform) Embora a DFT seja o melhor procedimento matemático para determinar o conteúdo espectral de uma sequência no domínio do tempo. 7. A FFT foi implementada com o objetivo de diminuir complexidade (temporal) necessária para calcular uma DFT (Transformada Discreta de Fourier). Em 1965. As primeiras aplicações práticas da FFT usando computação digital foram resultantes de manipulações da DFT.W. DFTs com 1024 pontos podem ser calculadas em apenas alguns segundos em computadores pessoais. Por exemplo. este algoritmo ficou conhecido como Transformada rápida de Fourier (FFT). o algoritmo comum para cálculo da DFT realiza N2 multiplicações. um artigo foi publicado por J. No caso da DFT. Transformada Rápida de Fourier (FFT. ela é muito ineficiente. A FFT usa um número reduzido de operações aritméticas para calcular a DFT em relação ao seu cálculo direto. visando aplicações em tempo real.W. há diversos algoritmos dedicados à ordenação de uma sequência.Tukey descrevendo um algoritmo eficiente para implementação da DFT. Antes do advento da FFT.Processamento Digital de Sinais – Prof. a DFT com muitos pontos estava restrita a grandes centros de pesquisas.Cooley e J.1 Algoritmos Rápidos Existem diversos algoritmos para executar computações. Um algoritmo mais eficiente calcula: . apenas executando menos operações aritméticas. há condições específicas para que isso ocorra. Isso pode não afetar a complexidade do algoritmo.Processamento Digital de Sinais – Prof. Por exemplo. no entanto.c + a. a análise de complexidade de um algoritmo não considera detalhes de implementação. mas deve diminuir seu tempo de processamento. pode ser simplificada para: A = (a + b).d Esse cálculo direto leva o programa a executar 4 multiplicações e 3 adições. Observamos que essa expressão é equivalente à primeira. os algoritmos rápidos propõem modificações na forma de resolver algum problema a fim de conseguir um ganho de tempo de processamento. a multiplicação é o elemento de maior custo considerado. Em geral.c + b.(c + d) provocando uma redução das operações para apenas 1 multiplicação e 2 adições. Essa expressão.d + b. O produto complexo: (e + jf) = (a + jb). No entanto. Nesse sentido. Casos onde essas condições não são atendidas podem provocar até um aumento no tempo de processamento. Um outro exemplo menos trivial é o cálculo de uma multiplicação complexa.(c + jd) é definido por: e = (ac – bd) f = (ad + bc) exigindo 4 multiplicações e duas adições. considere a computação da variável A dada por: A = a. Claro. Carlos Alexandre Barros de Mello Página 189 algoritmo. A busca por soluções rápidas deve ser constante no desenvolvimento de um algoritmo. A idéia é representar uma DFT de tamanho arbitrário N = N1. 7.2 Algoritmo de Cooley-Tukey ou Decimação no Tempo J. O princípio do algoritmo de decimação em tempo pode ser analisado considerando que N é um inteiro potência de 2.Tukey (Bell Labs) conseguiram uma revolução maior no tratamento digital de sinais em 1965 com a publicação da transformada rápida de Fourier.. Como N é um inteiro . ..1) n =0 n =0 onde k = 0. 2. a DFT requer O(N2) operações. 7. a FFT. Algoritmos no qual a sequência é decomposta sucessivamente em sequências menores são chamados de algoritmos de decimação em tempo. Calculada assim diretamente. A idéia do algoritmo de Cooley-Tukey é dividir a sequência x[n] em duas sequências: uma com os coeficientes de índice par e outra com os coeficientes de índice ímpar. N – 1. Carlos Alexandre Barros de Mello Página 190 e = (a – b)d + a(c – d) f = (a – b)d + b(c + d) tendo 3 multiplicações apenas. Trata-se de um método engenhoso e altamente eficiente de reagrupar os cálculos dos coeficientes de uma DFT.W.. N = 2v.e. 1.N2 em termos de DFTs menores de tamanhos N1 e N2. procedendo recursivamente.Cooley (IBM) em colaboração com J. o algoritmo é conhecido também como Radix-2. O aumento na quantidade de adições não prejudica o desempenho do algoritmo já que a multiplicação é o elemento mais custoso.W.. Como a quebra é em duas sequências. Lembrando que os coeficientes da DFT são definidos por: N −1 N −1 X (k ) = ∑ x[n](e ) = ∑ x[n]WNkn − j 2 π / N kn (Eq. i.Processamento Digital de Sinais – Prof.. 1. Como X(k) é dado pela Eq. a Eq.2) N / 2−1 N / 2 −1 X (k ) = ∑ x[2r ](W r =0 N ) +W 2 rk k N ∑ x[2r + 1](W r =0 2 rk N) (Eq. 7.4) .Processamento Digital de Sinais – Prof. separando x[n] em duas sequências de N/2 pontos. 7.3) Mas W N2 = W N/2 já que: W N2 = e-2j(2π/N) = e-2j(π/(N/2)) = W N/2 Consequentemente. separando x[n] no pontos de índice par e ímpar: X (k ) = ∑ n _ par x[n]WNnk + ∑ x[n]W n _ ímpar nk N Substituindo as variáveis n = 2r para n par e n = 2r + 1 para n ímpar: N / 2−1 N / 2−1 X (k ) = ∑ x[2r ]W r =0 N 2 rk + ∑ x[2r + 1]W r =0 ( 2 r +1) k N (Eq. 7. Carlos Alexandre Barros de Mello Página 191 par. 7.3 pode ser escrita como: N / 2−1 N / 2−1 X (k ) = ∑ x[2r ]W r =0 rk N/2 +W k N ∑ x[2r + 1]W r =0 rk N /2 X (k ) = G[k ] +WNk H [ k ] (Eq. 7. podemos considerar calcular X(k). consistindo dos pontos de índice par em x[n] e os pontos de índice ímpar em x[n]. Na saída. A Fig. Para calcular X[4] deveríamos multiplicar H[4] por W N4 e somar o resultado com G[4]. 7. Carlos Alexandre Barros de Mello Página 192 Cada parcela na Eq.1 apresenta um diagrama de fluxo do cálculo de uma DFT de 8 pontos. 7. Contudo.1. sendo a primeira parcela uma DFT de N/2 pontos dos pontos de índice par da sequência original e o segundo termos uma DFT de N/2 pontos dos pontos de índice ímpar da sequência original. X[1] é obtido multiplicando H[1] por W N1 e somando o resultado com G[1]. como G[k] e H[k] são . Fig. X[0] é obtido multiplicando H[0] por W N0 e somando o produto com G[0]. Decimação no tempo de uma DFT de N-pontos (N = 8) computada em duas DFTs de N/2 pontos. Na Fig.Processamento Digital de Sinais – Prof.4 é reconhecida como uma DFT de N/2 pontos. com G[k] designando a DFT de 4 pontos dos termos de índice par e H[k] designando a DFT de 4 pontos dos termos de índice ímpar. 7. 7.1 duas DFTs de 4 pontos são calculadas. Carlos Alexandre Barros de Mello Página 193 periódicas em k com período 4 (nesse caso). Então as duas DFTs de N/2 pontos devem ser combinadas precisando N multiplicações complexas. Assim. A Eq. Os outros valores são obtidos de forma similar. se usarmos o método clássico para calcular cada DFT dessas.Processamento Digital de Sinais – Prof. o que acontece quando N é igual a uma potência de 2. 7. H[4] = H[0] e G[4] = G[0]. esse valor é menor que as N2 operações necessárias pela DFT clássica. 4 requer o cálculo de duas DFTs de N/2 pontos o que significa 2(N/2)2 multiplicações complexas e o mesmo número de adições. H[4] é obtido multiplicando h[0] por W N4 e somando o resultado com G[0].4.4 corresponde a quebrar a computação da DFT de N-pontos em duas DFTs de N/2 pontos. 7. Com isso. Assim. 7. cada uma será quebrada em duas DFTs de N/4 pontos. Com a computação re-estruturada de acordo com a Eq. correspondendo a multiplicar H[k] pelo twiddle e N adições complexas para somar G[k] com o resultado desse produto. 7. Para N> 2. Assim. G[k] e H[k] serão dados por: N / 4 −1 N / 4−1 G[ k ] = ∑ g[2l ]W l =0 lk N /4 +W k N /2 ∑ g[2l + 1]W l =0 lk N/4 (Eq.4 para todos os valores de k requer. A computação direta da DFT requer N2 multiplicações complexas e adições. podemos considerar calcular cada DFT de N/2 pontos usando o mesmo método. a computação da Eq.6) . no máximo: N + 2(N/2)2 = N + N2/2 multiplicações complexas e adições. 6. A Eq.5) N / 4−1 N / 4 −1 H [k ] = ∑ h[2l ]W l =0 lk N /4 +W k N/2 ∑ h[2l + 1]W l =0 lk N /4 (Eq. Se N/2 é par. podemos analisar a complexidade desse novo método e comparar com o algoritmo clássico da DFT. 7. 7. 7. considerando que W N/2 = W N2. Gráfico de fluxo da decimação em tempo de uma DFT de N/2 pontos em duas DFTs de N/4 pontos (para N = 8).6.3.2 no diagrama de fluxo da Fig.2. . a DFT de N/2 pontos G[k] pode ser obtida combinando as DFTs de N/4 pontos das sequências g[2l] e g[2l + 1].1 forem calculadas de acordo com as Eqs. então o cálculo aconteceria como na Fig.1. onde expressamos os coeficientes em termos de potências de W N ao invés de WN/2.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 194 Consequentemente. Assim. se as DFTs de 4 pontos da Fig. Fig. obtemos o diagrama completo da Fig. 7. 7. O mesmo acontecendo com o cálculo de H[k].5 e 7. 7.2. 7. Inserindo a computação da Fig. por exemplo. 7.4. 7. Para o caso geral.3. podemos continuar com a decomposição da DFT de N/4 pontos em duas de N/8 pontos e continuarmos até que só restem DFTs de 2 pontos. sendo dividida em 4 de N/4 pontos. 7. x[0] e x[4] é detalhada na Fig.4.Processamento Digital de Sinais – Prof. A DFT de 2 pontos para. Fig. mas ainda considerando N como potência de 2. Para a DFT de 8 pontos que estamos usando como exemplo. Como em uma árvore. esse . Fluxo completo do cálculo da DFT de 8 pontos. Detalhe do cálculo de uma DFT de 2 pontos. a computação foi reduzida a DFTs de 2 pontos. Carlos Alexandre Barros de Mello Página 195 Fig. 5 pode ser simplificado para a forma da Fig. onde v = log2N. Assim. Como: W NN/2 = e-j(2π/N)N/2 = e-jπ = -1 o fator W Nr+N/2 pode ser escrito como: W Nr+N/2 = W NN/2. isso pode ser feito no máximo v = log2N vezes. . o fator (N/2)2 é substituído por N/2 + 2(N/4)2. essa computação é chamada de butterfly. podemos observar que a passagem de um estágio para o outro na Fig. calculamos a quantidade de operações executadas para uma DFT usando uma única decimação em tempo (uma única quebra) e chegamos a N + 2(N/2)2 = N + N2/2. Todo o processo ainda pode ser mais simplificado se explorarmos a simetria e periodicidade dos coeficientes W Nr. 7. assim. Ou seja.5. Se N = 2v. 7.log2N. 7.W Nr = -W Nr Com isso em mente. Anteriormente. onde os coeficientes são sempre potências de W N e os expoentes são separados por N/2. ela envolve a obtenção de um par de valores de um estágio a partir de um par de valores do estágio anterior. Carlos Alexandre Barros de Mello Página 196 processo requer v estágios.6 que requer apenas uma multiplicação complexa ao invés de duas. se fizermos a decomposição o maior número de vezes possível. temos uma quantidade total de multiplicações complexas e adições igual a N. o cálculo da butterfly da Fig.Processamento Digital de Sinais – Prof. Por causa de sua forma. Quando temos uma decomposição de uma DFT de N/2 pontos e duas de N/4 pontos.3 tem uma computação básica como mostrada na Fig. 7. a computação total requer: N + N + 4(N/4)2 multiplicações complexas e adições. Primeiro. Além disso.Processamento Digital de Sinais – Prof.. para desenvolver o cálculo apresentado na Fig. 7... 7. 1. Carlos Alexandre Barros de Mello Página 197 Fig. Em termos práticos. Fig. Gráfico de fluxo de uma computação butterfly simplificada.3: X0[0] = x[0] X0[1] = x[4] X0[2] = x[2] X0[3] = x[6] X0[4] = x[1] X0[5] = x[5] . N-1. ..3. vamos definir o conjunto de amostras de entrada como X0[l]. .6. 7. onde l = 0. Vamos denotar a sequência de números complexos resultante do m-ésimo estágio como Xm[l]. 2.. 7.5.. para o caso de m = 8 como na Fig. e m=1. Gráfico de fluxo de uma computação butterfly.. poderíamos usar dois arrays: um para o array sendo computado e outro para o array usado na computação. Podemos pensar em Xm-1[l] como o array de entrada e Xm[l] como o array de saída do m-ésimo estágio. v. Assim. a ordem no qual os dados de entrada são armazenados e acessados é chamada de ordem bit-reverso. de acordo com as seguintes equações: (Eqs. .7. Gráfico de fluxo das Eqs. Esse tipo de computação é chamado de computação in-place.7. Para entendermos essa terminologia.8. 7. 7.8 e pela Fig. De fato. Carlos Alexandre Barros de Mello Página 198 X0[6] = x[3] X0[7] = x[7] Usando essa notação. a DFT de 8 pontos que vimos usando como exemplo precisa de 3 bits para armazenar os índices dos dados.3. que a sequência de entrada é acessada de uma maneira não-sequencial. pela Fig.Processamento Digital de Sinais – Prof. 7.3. 7. É importante observar também.7) que podem ser re-escritas como: (Eqs.8) Fig. podemos legendar a entrada e a saída do butterfly da Fig. 7. como indicado na Fig. 7. está claro que apenas o passo m-1 é necessário estar armazenado para poder calcular os valores do array no passo m. 7. Pelas equações 7.6. 7. n0] é armazenado no array na posição X0[n0. então o valor da sequência x[n2. Essa ordenação em subsequências de índices pares e ímpares é apresentada no diagrama em árvore da Fig. Carlos Alexandre Barros de Mello Página 199 Escrevendo esses índices na forma binária.Processamento Digital de Sinais – Prof. Outra forma de melhorar o desempenho do cálculo da DFT é através da subdivisão da sequência de saída. . Todo o processo é bem semelhante à decimação em tempo. n2]. n1. invertendo os bits do índice n. obtemos o seguinte conjunto de equações: X0[000] = x[000] X0[001] = x[100] X0[010] = x[010] X0[011] = x[110] X0[100] = x[001] X0[101] = x[101] X0[110] = x[011] X0[111] = x[111] Se (n2. n1.8. n0) é a representação binária do índice da sequência x[n]. 7. n1. Esses algoritmos são chamados de algoritmos de decimação em frequência. 7.10.Processamento Digital de Sinais – Prof.9.8. 7. 7. Diagrama final de uma DFT de 8 pontos Fig. Diagrama em árvore apresentando a ordenação bit-reverso Fig. Carlos Alexandre Barros de Mello Página 200 Fig. Diagrama da DFT de 8 pontos usando computação butterfly . Carlos Alexandre Barros de Mello Página 201 7. Se N é primo. Por exemplo. A melhoria de desempenho em relação a FFTs mais simples é de cerca de 20 a 30%. eliminando muitas multiplicações.log2N). então nenhuma sub-divisão é possível e o usuário termina usando uma FFT com complexidade O(N2) ao invés de O(N. Outra classe de FFTs sub-dividem o conjunto de dados inicial de comprimento N em conjunto menores de tamanho proporcional a potências de 2. mas por qualquer primo pequeno que divida N. os senos e cossenos são todos ±1 ou 0. Também é possível derivar algoritmos de FFT que primeiro desenvolvam um conjunto de log2N iterações nos dados de entrada e re-arranje os valores de saída em ordem reversa de bits. deixando mais adições e subtrações. pior o método funciona. os dados são convertidos para o domínio da frequência e depois de volta ao domínio do tempo. Tais algoritmos são chamados de decimação em frequência ou algoritmos de FFT de Sande-Tukey. Existem também algoritmos de FFT que atuam em conjuntos de comprimento N que não é potência de 2. não por potências de 2. Para algumas aplicações. FFTs de base 4. FFTs de base 8. como a convolução. O algoritmo de Cooley-Tukey ou de decimação no tempo re-arranja os elementos de entrada e depois constrói a saída em log2N iterações. Quanto maior for o maior fator primo de N. Essas transformações são feitas por seções de códigos otimizadas que usam características de simetria desses valores de N. Deve-se ficar atento a esse tipo de implementação. ou N = 8.3 Outras FFTs Existem diversas variações no algoritmo da FFT. por exemplo. Nesses casos. Algoritmos de Winograd são de certa forma análogos às FFTs de base 4 e 8. Winograd derivou códigos altamente otimizados para atuar em DFTs de N . para N = 4. N = 4. Eles trabalham usando relações análogas ao lema de Danielson-Lanczos para sub-dividir o problema inicial em problemas sucessivamente menores.Processamento Digital de Sinais – Prof. é possível evitar todo o reverso dos bits. conseguindo uma grande redução no número de multiplicações do algoritmo. . uma classe interessante de transformadas para gerar convoluções mais rápidas são as transformadas baseadas em teoria dos números. 13.. para N = 2. Para valores de N da ordem de potências de 2. O método envolve uma re-ordenação de dados antes e depois do processamento. Carlos Alexandre Barros de Mello Página 202 pequeno. 8. mas suas propriedades são similares e a velocidade computacional pode ser muito superior.g. 7. Esses esquemas substituem a aritmética de ponto-flutuante por uma aritmética de inteiros módulo algum valor primo grande N. 3. 11. De fato. Os algoritmos também usam um método mais eficiente para combinar os sub-fatores. e. Essa vantagem deve ser analisada com cuidado já que o método torna bastante mais complicada a indexação dos dados envolvidos na transformada. 4. Finalmente. o algoritmo de Winograd pode ser mais rápido que algoritmos mais simples de FFT. 5. 16. esses métodos não são transformadas de Fourier em absoluto.Processamento Digital de Sinais – Prof. Processamento Digital de Sinais – Prof. k = 1. N n =1 2N Onde: 1 k =1 w( k ) = k 2 2≤k ≤ N N .4 Exercícios 1.... . Carlos Alexandre Barros de Mello Página 203 7.. apresente como ficaria sua implementação usando o algoritmo rápido de decimação no tempo. N π ( 2n − 1)( k − 1) y ( k ) = w( k ) ∑ x( n ) cos . Dada a equação abaixo para a transformada discreta do cosseno. 5 Bibliografia Complementar 1. Infinity Science Press. 2007. Michael Weeks. Prentice Hall. Digital Signal Processing Using MatLab and Wavelets.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 204 7. Alan V. Discrete Time Signal Processing. Ronald Schafer. 2. 1989 . Oppenheim. Processamento Digital de Sinais – Prof. 8. características do sinal podem ser observadas de uma maneira mais apropriadas.1. Por exemplo. 8. . enquanto que a representação no domínio da frequência especifica as amplitudes relativas das componentes de frequência da função. Joseph Fourier propôs sua análise de frequência em sinais. Carlos Alexandre Barros de Mello Página 205 8.1) sendo a transformada inversa: ∞ 1 ∫ j 2 πωt f (t ) = F (ω ) e dω (Eq. em cada intervalo de tempo. a transformada de Fourier da função porta é a chamada função sample (sen(x)/x). A representação no domínio do tempo especifica uma função.2) 2π −∞ A Transformada de Fourier representa no domínio da frequência uma função do domínio do tempo. A transformada de Fourier é definida como: ∞ F (ω ) = ∫ −∞ f (t )e − j 2πωt dt (Eq. Através dessa análise. 8. na Fig. Dessa forma. um sinal no domínio do tempo poderia ser convertido para o domínio da frequência e vice-versa. Análise Wavelet Em 1807. Dentro da janela. O problema é que os sinais reais são não-estacionários. Assim. 8. 8. Ao invés da transformada de Fourier ser aplicada a todo o sinal. a transformada de Fourier representa um sinal como uma série de senos e cossenos.2 apresenta a representação de dois sinais: um estacionário e outro não. A transformada não é sensível a mudanças de frequência no sinal. Carlos Alexandre Barros de Mello Página 206 Fig. O problema é que a transformada considera o sinal todo. O sinal passaria a ser visto em janelas e a transformada seria calculada em cada janela.3). sendo todo o restante desconsiderado nesse momento. A Fig. A esse processo chamou-se de Transformada de Fourier de Tempo Curto (Short-Time Fourier Transform). O sinal passa a ser considerado apenas na porção que está sob a janela. Uma solução para esse problema foi sugerida por Gabor em 1946. Exemplo de transformada de Fourier. Assim. a transformada de Fourier torna-se inútil. Lembrando que ejw = sen(w) + j.cos(w). ela atuaria apenas em partes dele. ela é apropriada para os chamados sinais estacionários: sinais cuja frequência não muda com o tempo. considera-se que o sinal tem comportamento estacionário (Fig. . nesses casos.Processamento Digital de Sinais – Prof. 8.1. 8. No caso da Transformada de Fourier de Tempo Curto. Exemplo de um sinal estacionário e um não-estacionário. Fig. O problema associado ao uso dessa técnica está quanto ao tamanho da janela. a janela tem tamanho invariante durante todo o processamento.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 207 Fig. Assim. usada bastante em processamento digital de voz.2.3. . 8. Transformada de Fourier de Tempo Curto A aplicação de janelas a um sinal é uma prática comum. Já uma janela grande pode aumentar o erro na consideração de estacionaridade do sinal.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 208 uma janela pequena pode trazer pouca informação sobre o sinal e exige muito processamento. .4). Variações nessa função criam as chamadas famílias de wavelets. o próximo passo natural na evolução das transformadas é a aplicação de uma transformada em uma janela de tamanho variável. 8.4. Essa função é aplicada sobre a função em análise (x(t)). Essa é a idéia básica da Transformada Wavelet. As janelas podem atuar em intervalos maiores quando queremos informações mais precisas sobre baixas frequências ou em intervalos menores quando queremos informações mais precisas sobre altas frequências (Fig. A primeira família de wavelets é a Haar criada na tese de Alfred Haar ainda em 1909 sem o propósito atual das Wavelets.3) Nessa equação. Nesse sentido. em janelas (cuja posição é definida pelo deslocamento τ) e com dimensões diferentes (definidas pelo fator de escala s). s atua como fator de escala e τ atua como fator de translação (deslocamento) da janela.1 A Transformada Wavelet A função da transformada Wavelet contínua é dada por: (Eq. ψ é uma função conhecida como a wavelet mãe. Fig. Transformada Wavelet 8. 8. 8. 5. como veremos posteriormente. Existem condições que definem uma função como passível de ser wavelet. 8. Para análises de baixas frequências do sinal. Para análise de altas frequências usa- se baixa escala para ter uma visão global detalhada do sinal. O nome wavelet é a versão em inglês para o termo original ondeletteque significa “pequena onda” como referência ao deslocar da onda por todo o sinal desde escalas pequenas.6 apresenta o resultado do deslocamento na função. usamos uma alta escala para ter uma visão global não detalhada do sinal.Processamento Digital de Sinais – Prof. O fator de escala afeta o sinal de forma que: • Se s>1. Todas as janelas são versões expandidas ou comprimidas e deslocadas dessa função. então o sinal é comprimido. podemos entender a transformada de Fourier como um caso particular da transformada Wavelet com a wavelet mãe sendo a função exponencial. Fig.3 pode ser vista como uma forma geral da transformada que pode variar. então o sinal é expandido. • Se s<1. Carlos Alexandre Barros de Mello Página 209 A Eq.5 apresenta um exemplo de uma wavelet e o resultado da aplicação de um elemento de escala nela. 8. . Influência da escala na wavelet mãe. efetivamente. Dessa forma. A Fig. 8. 8. A Fig. A wavelet mãe é a função que analisa o sinal. O termo também referencia o fato da janela ter comprimento finito. dependendo da função assumida por ψ. 8. Fig.7 representa o comportamento da wavelet mãe ao longo de toda a análise wavelet. Há algumas propriedades que devem ser obedecidas para que uma função possa ser chamada de wavelet. • que tenham suporte compacto.6. Comportamento da wavelet mãe à medida que mudanças de escala vão sendo impostas a ela durante a análise. 8. Influência do deslocamento na wavelet mãe. wavelets devem satisfazer requisitos como: • possuírem energia finita. Neste contexto. . como a wavelet mãe se comporta.7. 8.Processamento Digital de Sinais – Prof. • possuírem certo grau de regularidade (suavidade). Carlos Alexandre Barros de Mello Página 210 A Fig. • serem nulas no infinito. • possuírem um certo número de momentos nulos. • que sejam funções de classe Ck (0<k<∞). à medida que a escala vai sendo modificada. Fig. no tempo e na frequência. 2. Análise de wavelet no contínuo: a) correlação entre a função e a wavelet mãe. 8. 8. 3.Processamento Digital de Sinais – Prof.8a).Calcule a correlação C entre a função e a região do sinal original (Fig.Tome uma função wavelet e compare-a com a região no início do sinal original. 4 – Aplique uma escala na wavelet e repita os passos 1 a 3 (Fig. Esse resultado é plotado em um gráfico tridimensional que apresenta o tempo versus a escala e o valor dos coeficientes para cada escala. 8. c) re-início do processamento com uma nova escala aplicada à wavelet mãe. Quando o processo é concluído. a) b) c) Fig. Carlos Alexandre Barros de Mello Página 211 A análise wavelet no contínuo acontece da seguinte forma: 1. b) novo cálculo com a função deslocada. .8b). temos os coeficientes resultantes das comparações em cada escala da wavelet mãe. 8.Desloque a wavelet para a direita e repita os passos 1 e 2 até que todo o sinal tenha sido coberto (Fig.8. 5 – Repita os passos 1 a 4 para todas as escalas.8c). s0-j b0 > 0.2 Análise em Multiresolução A implementação da análise de wavelets é um processo bastante custoso. tradicionalmente discretizam-se os parâmetros s (escala) e τ (deslocamento). Carlos Alexandre Barros de Mello Página 212 Para as wavelets discretas.3) O fator s0 não pode ser arbitrário. Para s toma-se valores inteiros (positivos e negativos). na maioria dos casos práticos. um sinal pode ser dividido em duas partes: • Aproximações: componentes de alta escala e baixa frequência do sinal .k∈Z A wavelet discreta fica então: ψ j . uma escolha natural é: b= k. j.b). fixo. Assim. 8. s0 > 1 e j∈Z A discretização de b deve depender de j tal que wavelets estreitas (de alta frequência) sejam deslocadas por passos pequenos. Mallat propôs sua implementação com filtros. Diferentes valores de s0 levam a wavelets diferentes. A escolha mais natural é s0=2. e wavelets largas (de baixa frequência) sejam deslocadas por passos maiores. a wavelet da equação 3 fica: ψ j .k (t ) = s0j / 2ψ (s0j t − kb0 ) (Eq. potências de um parâmetro fixo s0: s = s0-j . No entanto. Observamos que a intenção inicial da transformada wavelet é poder observar um sinal em suas diferentes frequências.Processamento Digital de Sinais – Prof. os coeficientes wavelet. k (t ) = 2 j / 2ψ (2 j t − k ) A wavelet acima é conhecida por wavelet diádica. Fazendo-se b0=1.b0. as informações de baixa frequência são as mais importantes. Em 1988. Assim. variáveis do sinal transformado F(a. 8. e bases ortonormais de wavelets só são conhecidas para valores racionais de s0. Se um sinal tem. Carlos Alexandre Barros de Mello Página 213 • Detalhes: componentes de pequena escala e alta frequência do sinal.9). por exemplo. a passagem desse sinal por um filtro passa-baixa. Para resolver esse problema.000 amostras. 8. Isso pode ser facilmente conseguido com o uso de filtros passa- baixa e passa-alta (Fig.10). a saída dos filtros passa-baixa e passa-alta passam a ter aproximadamente a mesma quantidade de amostras que o sinal original de entrada (Fig. 8. . Um problema quanto a essa decomposição é o aumento na quantidade de amostras a serem armazenadas do sinal e processadas posteriormente. 1. cada decomposição. aumentaria muito a quantidade de amostras. Assim. gera um sinal com cerca de 1.000 amostras também.9. a cada passo da decomposição. 8. embora as amostras de alta frequência sejam suavizadas.Processamento Digital de Sinais – Prof. Essa divisão nada mais é do que a divisão de um sinal em baixas e altas frequências. Dessa forma. Fig. Decomposição de um sinal em suas componentes de baixa (aproximações) e alta (detalhes) frequências. o sinal resultante é novamente amostrado em um processo chamado de downsampling. por exemplo. . a) Processamento sem uso de downsampling e b) com uso (representado pelo bloco com a seta para baixo).11. Com o processo de downsampling. Para o processo inverso. Isso pode ser visto na Fig.12). 8. Fig. há perda de informação que não se consegue recuperar com o upsampling. A isso se chama análise em multiresolução. apenas os componentes de baixa frequência do sinal (os mais importantes). 8. como sugerido. Carlos Alexandre Barros de Mello Página 214 Todo esse processo pode ser repetido em cascata. a) b) Fig. usa-se o processo de upsampling para recuperar o sinal (Fig. Decomposição do sinal em baixas e altas frequências com o mesmo processo se repetindo para as componentes de baixa frequência.Processamento Digital de Sinais – Prof. 8.10.11. tratando. 8. compressão (já que o downsampling já é. um elemento de compressão com perda). 8. análise de texturas. 8. Dentre elas. Carlos Alexandre Barros de Mello Página 215 Fig. a análise wavelet é apropriada para imagens que tenham diferente iluminação ao longo dela. Tal estrutura é chamada de two-channel filter banks. podemos citar remoção de ruído. Nela. etc. Um two channel filter bank.Processamento Digital de Sinais – Prof. Por exemplo. um sinal de entrada alimenta dois canais. naturalmente. Daubechies. filtragem. Uso do upsampling (bloco com seta para cima) para reconstrução do sinal.3 Sobre os coeficientes das wavelets Existem diversos tipos de wavelets como a Haar. 8. cada qual com um par de filtros FIR.12. por processarem as diferentes frequências de um sinal. . 8.13. Coiflets. Diversas são as aplicações de wavelets em processamento de sinais ou de imagens. vamos usar o esquema apresentado na Fig. etc. Para demonstrar uma transformada geral.13. Análise Síntese Fig. Shannon. A idéia é que w[n] e z[n] sejam versões transformadas de x[n] e que y[n] é o sinal após a transformada inversa. Vamos considerar o filter bank da Fig. são combinadas para gerar a saída y[n]. espera-se que y[n] seja igual a x[n].14 e vamos ver como se comportam w[n] e z[n].Processamento Digital de Sinais – Prof. em seguida. Para a transformada inversa.14.x[n – 2] .x[n] – a. Como dito anteriormente. A metade da direita é a transformada inversa. chamada de análise. Na parte da análise. Exemplo de filter bank. w[n] e z[n] são definidos por: w[n] = a. Carlos Alexandre Barros de Mello Página 216 A metade esquerda da Fig.x[n] + b. É esperado que a síntese gere um sinal de saída que seja igual ao sinal de entrada.x[n – 1] Precisamos saber também que são w[n – 1] e z[n – 1]: w[n .1] = a.13 (filtros h0 e h1) corresponde à transformada direta. Isso é chamado de subband coding. chamada de síntese. 8. 8.1] + b. Fig.x[n – 1] z[n] = b. Os filtros complementares de banco de filtros (h0 para h1 e g0 para g1) dividem o sinal em sub-sinais de baixa e alta frequência. as saídas dos filtros da parte de análise (z[n] e w[n]) passam por outros filtros FIR e.x[n . 8. 1] – a. Por exemplo. y[n] será: y[n] = -a.x[n . Essa é a mais simples das wavelets.x[n .z[n] + b.a.a.x[n – 1]) + a.x[n – 2] y[n] = aa.1] – ba.x[n – 1] + b. .1] + b. se a = b = 1/√2. A busca por coeficientes que tornem aa + bb = 1 e não 2(aa + bb) = 1 está relacionada ao processo de downsampling como explicado anteriormente.x[n – 1]) + b.(b.x[n – 2] Assim. Se procurarmos a e b tal que: aa + bb = 1 podemos ter aa = ½ e bb = ½. Se escolhermos com cuidado os coeficientes.1] = b.1] – a.x[n – 2]) + b. em relação ao sinal original: y[n] = -a. a saída é a entrada com um retardo de 1.x[n] + b.x[n .z[n – 1] + b.x[n – 1] y[n] = (2aa + 2bb).x[n – 1] + bb.b.x[n – 1] + aa.(a.x[n – 1] + bb. Carlos Alexandre Barros de Mello Página 217 z[n .x[n – 1] Essas operações retratam o processamento da wavelet de Haar.( a.w[n – 1] E.x[n] + b.x[n] + aa. teremos os coeficientes da transformada de Haar.Processamento Digital de Sinais – Prof.( b.x[n] – a.x[n – 2] + b. teremos a transformada de Haar.x[n – 1] + a.b.x[n .x[n – 2]) y[n] = -ab. Assim.1] + ab.w[n] + a.x[n . se: 2aa + 2bb = 1 então y[n] = x[n – 1] ou seja. um two channel filter bank é chamado de quadrature mirror filter (QMF). Os outros filtros (h1. Um QMF é um filter banks com condições especiais nos coeficientes dos filtros para evitar aliasing e conseguir uma reconstrução perfeita. Para a reconstrução. respectivamente. Seja um dos filtros da análise h0. O conjugate quadrature filter (CQF) especifica que h1 deve ser o reverso de h0 com os valores em índices de ordem par negativados.15 e 8. sua única diferença para filter banks é a escolha dos coeficientes dos filtros. O termo “quadratura” quer dizer que as respostas dos filtros passa-baixa e passa-alta são simétricas ao redor do ponto de “quadratura” π/2. Carlos Alexandre Barros de Mello Página 218 Algumas vezes. mas negativa os coeficientes de índice par.16. 8. Se a = b. Fig. h1 g1 h0 g0 Fig.Processamento Digital de Sinais – Prof. O termo . Ou seja. 8. g0 e g1 são os reversos de h0 e h1. g0 e g1) são gerados a partir de h0.15. então QMF = CQF. CQF para a transformada de Haar.16 mostram exemplos de QMF e CQF para a transformada de Haar. QMF para a transformada de Haar. As Figs. O filtro de reconstrução g0 é igual a h0 e g1= -h1. Especificamente. h1 usa os mesmos coeficientes de h0. 8. 18.17. Fig.x[n – 1] + c. a família das wavelets Daubechies (ou db) é a única família de wavelets que tem suporte compacto e decaimento suave. Forma de uma onda da família das Daubechies.17. 8. 8. O decaimento suave impede que a wavelet introduza artefatos de altas frequências. Criada por Ingrid Daubechies. Um conjugate quadrature filter com quatro coeficientes. 8.x[ n – 2] + d. Um exemplo de uma wavelete de daubechies pode ser visto na Fig. Carlos Alexandre Barros de Mello Página 219 “mirror” vem do fato de que a magnitude da resposta em frequência do filtro HPF é uma imagem espelhada da magnitude da resposta em frequência do filtro LPF. O suporte compacto impede que a wavelet se espalhe por todo o espectro.18.x[n] + b.x[n – 3] . Um das famílias de wavelets mais utilizadas é a família das Daubechies. Como foi feito anteriormente: w[n] = a.Processamento Digital de Sinais – Prof. Fig. Vamos analisar o processamento de um sinal usando uma wavelet de 4 coeficientes e um conjugate quadrature filter conforme a Fig. 8. k] = d.c.x[n – 1] + b.x[ n – k .x[n – 3] Considerando que: w[n . 8.x[n – k .x[n .2] + d.11).a.c. 8.1] + c. A mais básica é a função swt (e swt2 para sinais bi-dimensionais como imagens) ou dwt.x[n .x[ n – 2] . Os coeficientes de Daubechies obedecem a essas duas condições: i) (aa + bb + cc + dd) = 1 ii) ac = -bd 8. .Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 220 z[n] = d.x[n – k .k] . Todas essas funções podem ser ativadas por linha de comando no próprio MatLab. Já a função dwt apresenta apenas a decomposição do sinal nos componentes de aproximação e detalhes (como apresentado na Fig.19). que ac = -bd.x[n – 3] Novamente. sendo os principais: o sinal de entrada. nessas operações.1] + b.2] .4 Wavelets no MatLab O MatLab traz uma série de ferramentas para lidar com wavelets.k] = a. precisamos ter (aa + bb + cc + dd) = 1.3] z[n . A função wavemenu abre uma janela com diversas funcionalidades do MatLab relacionadas com wavelets (Fig.a. chegamos à expressão final: y[n] = 2(aa + bb + cc + dd). então.x[n – k . A função swt permite diversos parâmetros de entrada (veja a documentação do MatLab para ver todos).k] + b. a quantidade de níveis de decomposição e o tipo de wavelet (com o número de coeficientes previamente calculados até certo ponto).x[n] .x[ n – k .x[n – k -3] Se consideramos. >> D1 = idwt([ ]. .Processamento Digital de Sinais – Prof.1. >> % reconstrução >> l_s = length(som). >> A1 = idwt(cA1.[ ].'db1'.wav’). Tela do ambiente de processamento por wavelets do MatLab.cD1.1). cD1] = dwt(som. plot(A1). 'db1'). >> subplot(2. Exemplos: 1. Carlos Alexandre Barros de Mello Página 221 Fig. >> [cA1.1.l_s).2).l_s). >> plot (som).19. Fz] = wavread(‘a_casa. title('Detalhes D1'). plot(D1). 8. >> subplot(2. Sinal de voz: >> [som. title('Aproximacao A1').'db1'. .l_s).'db1'.Processamento Digital de Sinais – Prof.1102e-016 >> plot (A0). Carlos Alexandre Barros de Mello Página 222 Plotagem do sinal de voz: Plotagem das aproximações e detalhes: Recuperação do sinal: >> A0 = idwt(cA1.cD1. >> err = max(abs(som-A0)) err = 1. Carlos Alexandre Barros de Mello Página 223 No wavemenu. O resultado está apresentado abaixo: Podemos visualizar a árvore de decomposição e o resultado final da reconstrução comparando com o arquivo original na próxima imagem: . selecione Wavelet 1-D.wav e clique em analyze com uma wavelet haar e 5 níveis de decomposição. carregue o arquivo a_casa.Processamento Digital de Sinais – Prof. bmp e processando com uma db1 com 5 níveis de decomposição. temos a janela apresentada na próxima figura e detalhada nas seguintes.Processamento Digital de Sinais – Prof. . Carlos Alexandre Barros de Mello Página 224 Para imagens. podemos usar o comando Wavelet 2-D do wavemenu. Carregando a imagem lena. Carlos Alexandre Barros de Mello Página 225 .Processamento Digital de Sinais – Prof. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 226 Imagem original Imagem sintetizada . 0. 2.8365. -0. Determine se os coeficientes correspondem a filtros passa-baixa. 4. Qual o erro entre a resposta da letra anterior e desta em relação à saída? 2.2241.7071. 0. a) Verifique se os coeficientes a = (1-√3)/(4√2).1294} . 6. 7. 0. 0.0884. Carlos Alexandre Barros de Mello Página 227 8. use o MatLab para plotar a resposta em frequência. b) Use esses coeficientes para filtrar a sequência: x[n] = {8. 0. Para os coeficientes de filtros abaixo. -0. c = (3+√3)/(4√2) e d = (1+√3)/(4√2) podem ser coeficientes de uma wavelet de Daubechies. 9} de acordo com o filter banks da figura desta questão.1294. 0.2241. 0. c) Agora.4830} c) {-0. acrescente o downsampling antes das saídas z[n] e w[n] e um upsampling após o processamento dessas saídas (antes da soma que gera y[n]).0884. passa-alta ou passa-faixa: a) {-0.7071.0884} b) {-0.8365.5 Exercícios 1. 0.4830. 3.Processamento Digital de Sinais – Prof. b = (3-√3)/(4√2). -0. 0.08840. 5. 7. w e y para a = b = ½. .15 e encontre z. 4. 2. dada a entrada x[n] = {6. 3. temos uma transformada de Haar? Justifique.Processamento Digital de Sinais – Prof. No conjugate quadrature filter da Figura 8.16. 10}. Carlos Alexandre Barros de Mello Página 228 3. Apresente as condições e exemplo de coeficientes para outra família de wavelets. 5. 1. se a = 3 e b = 1. 8. Use o QMF da Figura 8. Michael Weeks. 2007. 2. Stéphane Mallat. Academic Press.6 Bibliografia Complementar 1. Digital Signal Processing Using MatLab and Wavelets. Infinity Science Press. .Processamento Digital de Sinais – Prof. A Wavelet Tour of Signal Processing. Carlos Alexandre Barros de Mello Página 229 8. 2009. Diversas são as aplicações que precisam utilizar algum algoritmo associado ao processamento digital de imagens. sem perder informação. as imagens chegam com distorções e ruídos que precisam ser filtrados para uma análise humana. a quantidade de estudos voltados para a visão computacional vêm crescendo mundialmente e. onde. na maioria dos casos. No segundo caso. Esse é o caso também de imagens médicas. Nesses casos. nesse tipo de aplicação. Carlos Alexandre Barros de Mello Página 230 9. o primeiro passo para um sistema de visão computacional é a aplicação de algoritmos de processamento de imagens para. podemos observar aplicações voltadas para a Internet que. precisam usar imagens para transmitir informações. mas. como o sensoriamento remoto. nos Estados Unidos. cada vez mais. Na prática. Cada um desses objetivos leva a um grande leque de técnicas e algoritmos. podemos destacar aplicações relacionadas com imagens via satélite. . Por exemplo. extrair a borda de objetos. permitindo uma melhor análise da sua forma. a preocupação maior é o armazenamento das imagens. o interesse em técnicas de processamento digital de imagens (PDI) vem aumentando. e ii) compressão para transmissão ou armazenamento de imagens. em termos de compressão e transmissão. Processamento Digital de Imagens Ao longo dos anos. mamografia digitais precisam ser armazenadas por 5 anos após o exame. Nesse caso também. Cada exame gera diversas lâminas que são imagens de alta resolução ocupando GigaBytes de espaço de armazenamento. Da mesma forma. Algumas dessas aplicações exigem imagens de alta resolução. os principais objetivos relacionados com PDI são: i) melhoria na qualidade da imagem para observação humana ou para um mais reconhecimento automático por máquinas. No primeiro caso.Processamento Digital de Sinais – Prof. por exemplo. é essencial que a compressão seja feita sem perdas. é preciso usar algoritmos que provoquem uma grande redução na quantidade de dados. em geral. por exemplo. A imagem digital pode ser gerada diretamente através de um dispositivo digital ou pode ser digitalizada a partir de uma imagem real. Quando x. essa representação está relacionada com a percepção humana para os dados inseridos e retornados pelos sistemas. Para tanto. como computadores. dizemos que temos uma imagem digital. onde x e y são as coordenadas espaciais e a função f é o nível de cinza (ou de brilho) naquele ponto. alguns processos são fundamentais como veremos posteriormente.1. Para os dispositivos. como scanners. faziam a transposição da imagem do meio real para o digital. Notadamente. Carlos Alexandre Barros de Mello Página 231 Uma imagem digital pode ser entendida como uma função f(x. onde dispositivos. encontramos ainda elementos de computação gráfica e de visão computacional. . 1995] relacionam essas áreas de acordo com a representação gráfica da Fig. Essa representação e essa relação estão associadas ao tipo de dado que entra e que sai de um sistema específico. Esse segundo caso é o mais clássico. processamento digital de imagens está inserido na grande área de processamento gráfico. 9. Nessa área. y e f estão numa escala finita e discreta.Processamento Digital de Sinais – Prof. tudo é apenas processamento de dados. Em termos de pesquisa e desenvolvimento.y). [Gomes e Velho. 1. As primeiras aplicações relacionadas a imagens datam do início do século XX com as primeiras transmissões de imagens para jornais. A computação gráfica refere-se ao uso de dados de entrada para geração das imagens de saída. o tempo de envio de uma imagem passou a ser de apenas poucas horas. uma imagem 3D de uma esfera é gerada por um conjunto de dados que definem o centro da esfera. Relação entre processamento de imagens e outras áreas correlatas. 9. seu raio. Em 1929. 9. Já a visão computacional corresponde ao oposto da computação gráfica: uma imagem é inserida no sistema e dados são extraídos dela. Com a invenção do sistema Bartlane (dedicado para esse tipo de transmissão). Esses dados são renderizados compondo a imagem final. quantidade de faces.1. As imagens eram transmitidas em 5 tons de cinza em cerca de uma semana. Por exemplo. etc. podemos definir os sistemas de processamento de imagens como sistemas que recebem uma imagem de entrada e devolvem uma imagem de saída. Da Fig. Um exemplo pode ser uma contagem automática de pessoas a partir de uma fotografia. as imagens .Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 232 Fig. 9. partes dela serão perdidas porque não podem ser representadas. vemos uma função no contínuo. amostras da função são coletadas por impulsos separados por intervalos definidos de tempo de forma que representem da melhor forma possível a função original. a digitalização consiste em colher amostras dessa imagem para representá-la em um meio discreto. um meio para processar e armazenar a imagem (como o computador) e uma forma de visualização da imagem. Mas espera-se que a perda não seja significativa. em muitos casos reais. Cada amostra é então codificada e armazenada.Processamento Digital de Sinais – Prof. 9. De qualquer forma. 9. é preciso “adaptar” a função a esse domínio. Em geral. essa representação perde elementos que não podem ser recuperados. Na década de 60. A partir daí. O sinal original é discretizado. a reconstrução do sinal leva a uma forma aproximada do sinal original. A decodificação é feita sem . comecemos com o processo de geração de uma imagem digital a partir de uma imagem real: a digitalização. etc).3. Nela.1 Digitalização Um sistema de processamento digital de imagens necessita de um dispositivo de digitalização (câmera digital. Carlos Alexandre Barros de Mello Página 233 começaram a ser geradas em 15 tons de cinza. O processo de coleta de amostras é o mesmo que a digitalização de uma função como pode ser visto na Fig.2. o tratamento de imagens começou a ter um maior desenvolvimento junto com o desenvolvimento de tecnologias digitais. Para ser representada em algum domínio discreto. Dada uma imagem real. registra-se o primeiro uso de computador para tratamento de imagens. a grande dificuldade está relacionada com a digitalização que pode gerar imagens com grande quantidade de dados a serem processados. scanner. Ou seja. Notadamente. Assim. Detalhando as principais funções relativas ao processamento digital de imagens. procurava-se corrigir distorções nas imagens transmitidas pela sonda Ranger 7. de uma maneira geral. Isso está representado na Fig. No caso. Em azul (linha contínua) o sinal original e em vermelho (linha pontilhada) as amostras colhidas do sinal para representá-lo em um domínio discreto. Fig. A reconstrução que seria o processo inverso da discretização é que ocorre de forma aproximada. .3. Fig.Processamento Digital de Sinais – Prof. 9. 9. Carlos Alexandre Barros de Mello Página 234 perda. recuperando o sinal discreto correto. Discretização e codificação em oposição à decodificação e reconstrução do sinal contínuo original.2. O número de amostras que deve ser colhido de um sinal para poder recuperá-lo é definido pela taxa de Nyquist. Essa medida define a resolução da imagem e é especificada em dpi (dots per inch ou pontos por polegada). Diferente da resolução da imagem. a célula da matriz. Para geração do sinal (ou imagem) discretizado.4. A essa definição de cores chama-se de resolução de cor da imagem. Definida as dimensões da matriz. define-se cada elemento dessa matriz. o Universo de Implementação (onde são associadas às descrições abstratas e simbólicas com estruturas de dados implementáveis no computador). No caso. 9.4). a quantização é responsável por discretizar o sinal em sua amplitude. através da quantização definimos quantas cores a imagem terá. em alguns casos. por fim. Em uma imagem digital. pode ser alterada após a digitalização. 9. a resolução de cor. é chamado de pixel.Processamento Digital de Sinais – Prof. como fizemos na Fig. 9. Carlos Alexandre Barros de Mello Página 235 Tanto para sinais quanto para imagens. o Universo de Representação (com descrições simbólicas dos objetos) e. a amplitude de cada célula da matriz corresponde à sua cor. temos o que se chama [Gomes e Velho. ainda há outros elementos a serem cuidados como será descrito posteriormente. A matriz imagem tem suas dimensões definidas durante o processo de digitalização. Isso pode ser visto na Fig. então. como eles existem na natureza). porém. uma imagem digital está completamente definida: suas dimensões e a cor de cada pixel. A resolução da imagem não pode ser alterada após o processo de digitalização a não ser por uma nova digitalização. é preciso ter definido todo o modelo conceitual dos objetos em estudo. ou seja. Assim. o processo de digitalização ocorre da mesma forma. a imagem digital é representada no computador através de uma matriz. Seu valor é definido também durante a digitalização em um processo semelhante ao de amostragem chamado de quantização. Nas imagens. uma imagem nada mais é do que . o seu menor elemento. Como está claro. temos o Universo Físico (que são os objetos reais. A coleta de amostras define qual será a dimensão da matriz. Nesse caso. o Universo Matemático (que é uma descrição abstrata desses objetos). Em uma analogia com sinais. Nele. 1995] do Paradigma dos Quatro Universos (Fig. Dessa forma.2. Em imagens. Ou seja.4. Fig. 9. Carlos Alexandre Barros de Mello Página 236 uma matriz onde cada célula tem uma cor específica. 9. O conjunto e a disposição dessas cores é percebida pelo sistema visual humano e interpretado pelo nosso cérebro como uma imagem. ela deriva de um fenômeno físico relacionado com a luz. Como antes (Fig. descreveremos a seguir o sistema computacional de cores desde sua definição.2 Sistema Computacional de Cores A cor é tida como um fenômeno psicofísico. em vermelho (linha pontilhada vertical) as amostras colhidas do sinal durante a amostragem e em pontilhado na horizontal temos a discretização das amplitudes durante a quantização. . perceberemos a parede como um tom de vermelho e não conseguiremos distingui-lo de outra cor. Se a única fonte de luz no ambiente for uma luz vermelha. Dada a importância das cores na formação e percepção da imagem. em azul (linha contínua) temos o sinal original. Percebemos uma parede como branca se uma luz branca incidir sobre ela. nossa percepção da cor depende de sua interação com nosso sistema visual.Processamento Digital de Sinais – Prof. por um lado.3). No entanto. 9. que derrubou essa idéia com um experimento simples: Newton colocou um prisma na frente de outro e a decomposição da luz branca provocada pelo primeiro prisma incidia sobre o segundo prisma retornando luz branca novamente (Fig. média e baixa frequências) todas as cores do espectro poderiam ser geradas através de um processo aditivo.5). cada uma responsável pela percepção de uma cor. mas o modelo de Young não explicava alguns fenômenos do sistema visual. Newton acreditava que o olho humano era composto por infinitas células fotossensíveis. Foi Sir Isaac Newton. No século XIX. Young propôs o modelo tricromático: nele. 9. matemático e astrônomo inglês. A idéia do modelo tricromático foi comprovada por Helmholtz na década de 60.5. nosso sistema visual não é sensível às frequências . no século XVII. o fenômeno que mais chamava a atenção era a decomposição da luz branca em todas as cores do espectro ao passar por um prisma. Young mostrou que com apenas essas três cores primárias (de alta. físico. Carlos Alexandre Barros de Mello Página 237 No início do estudo sobre cores. o sistema visual humano era composto apenas de três células que seriam responsáveis pela percepção de altas. Experimento de Newton sobre a decomposição da luz branca. com seu trabalho. 9. No entanto. De fato. Fig. Atualmente. médias e baixas frequências. Acreditava-se que o prisma tinha essa propriedade “mágica” de decompor a luz. teoria da percepção das cores usa o modelo de Young-Helmholtz e o modelo de Hering.Processamento Digital de Sinais – Prof. Além do sistema RGB. B). Carlos Alexandre Barros de Mello Página 238 de forma separada. M a média frequência e H a alta frequência. 1 byte. Com isso. Esse é o modelo adotado pelos sistemas computacionais. a Companhia Internacional de Iluminação definiu o modelo RGB baseado na teoria de Young. temos células fotossensíveis às combinações: L-M H – (L + M) L+M As altas frequências (baixo comprimento de onda) correspondem ao tom de azul (B). as médias aos tons de verde (G) e as altas frequências ao vermelho (R). Em 1931. HSL. CMYK. ou seja. As combinações (i) e (ii) formam a componente de crominância. CieLab.Processamento Digital de Sinais – Prof. . 3 bytes são necessários para representar uma cor. Assim. A mudança de um sistema para outro pode trazer diversas vantagens dependendo da aplicação. percebemos as combinações: i) R – G ii) B – (R + G) iii) R + G A combinação (iii) corresponde ao amarelo ou à luminosidade da cor. por televisores. projetores. à composição delas. monitores. Seja L a componente de baixa frequência. outros sistemas surgiram ao longo dos tempos para aplicações específicas como o HSV. cada cor é representada pela tríplice (R. G. No sistema computacional de cores. onde a soma de diferentes intensidades de cada uma dessas cores primárias corresponderia a uma cor do sistema. etc. a quantidade máxima de cores que uma imagem pode ter em um computador comum é cerca de 16 milhões. etc. Assim. mas. sim. Pantone. onde cada componente de cor tem seu valor inteiro variando de 0 a 255. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 239 No sistema padrão do Windows, adotado pela maioria dos sistemas computacionais, as imagens podem ser armazenadas em 4 diferentes formatos, baseado na quantidade de bits necessária para armazenar a cor do pixel: 1) 1 bit – 2 cores 2) 4 bits – 16 cores 3) 8 bits – 256 cores 4) 24 bits (3 bytes) – 16 milhões de cores Nos casos 1, 2 e 3, o pixel armazena, de fato, uma entrada para uma tabela de cores. A tabela é que armazena, efetivamente, a cor daquele pixel. Essa tabela é chamada de paleta de cores. No quarto caso, o pixel armazena a cor propriamente dita, sem haver a necessidade de uma paleta. Ainda quanto ao modelo de cores, as imagens podem ser armazenadas também em uma paleta pré-definida, contendo apenas o nível de brilho de cada cor, também chamado de tom de cinza. Essa paleta contém 256 entradas (cores), precisando, assim, de 8 bits para cada pixel da imagem codificar a entrada da paleta. O nível de brilho de uma cor é calculado tomando como base sua cor (R, G, B). Seja C o tom de cinza: C = 0,310.R + 0,510.G + 0,11.B. (Eq. 9.1) Podemos observar que: i) um tom de cinza corresponde a iguais valores de R, G e B (já que a Eq. 9.1 gera apenas um valor C); ii) a contribuição do componente B é pequena em relação aos outros componentes. Existem diferentes formas de representar as cores de um sistema. A mais comum é através de um sólido como o cubo de cor, ou o cilindro ou o cone. Essas são três representações comuns para o sistema RGB. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 240 No sistema RGB, o branco corresponde à cor (255, 255, 255) e o preto à cor (0, 0, 0). Por exemplo, o vermelho puro seria (255, 0, 0), o verde puro é (0, 255, 0) e o azul é (0, 0, 255). Variações nesses valores geram as outras cores do sistema computacional de cores. 9.3 Histograma Em uma imagem, o histograma é um gráfico que mostra a distribuição das cores na imagem. No eixo x, encontramos todos os valores possíveis de cada componente de cor de uma imagem. Cada ponto desse eixo corresponde a um contador que armazena quantas vezes aquela cor aparece na imagem. Observamos que o histograma não diz como as cores estão distribuídas na imagem; apenas quantas vezes cada componente aparece. No entanto, existem outras informações agregadas ao histograma de uma imagem que permitem alterar algumas de suas características. Por exemplo, suponha uma imagem em tons de cinza, com histograma variando de 0 a 255 (0 sendo o preto e 255 sendo o branco). Nesse caso, um histograma concentrado próximo ao 0 indica uma imagem escura, assim como um histograma concentrado próximo ao 255 indica uma imagem clara. Um histograma com uma pequena variação de cores (Fig. 9.6) indica uma imagem com baixo contraste (o contraste está associado à separação das cores na imagem). Fig. 9.6. Histograma de uma imagem de baixo contraste. Por não conter informação sobre a distribuição das cores em uma imagem, diferentes imagens podem ter o mesmo histograma (Fig. 9.7) Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 241 Fig. 9.7. Imagens completamente opostas, mas que têm o mesmo histograma. As imagens podem ser manipuladas através de mudanças em seus histogramas. As operações mais básicas são de equalização, stretch e especificação. Na equalização, procura-se distribuir as cores de forma uniforme ao longo do histograma; isso faz com que o contraste de uma imagem aumente. No stretch, procura-se ocupar todo o espectro de cores de cada componente. Assim, se, por exemplo, o tom 20 do vermelho não estiver presente na imagem original, ele deverá estar na imagem final após a aplicação dessa operação. Já a especificação faz com que uma imagem passe a ter o histograma como definido em outra imagem. Por outro lado, mudanças na imagem trazem consequências em seu histograma. Por exemplo, se cada pixel da imagem é somado com um valor positivo X, as cores dessa imagem tornar-se-ão mais próximas do branco; a imagem estará mais clara. Se o valor de X for negativo, claro, a imagem ficará mais escura. O produto de cada pixel por um valor maior do que 1 provocará a expansão do histograma, aumentando seu contraste. Já o produto por um valor entre 0 e 1 provocará a compressão do histograma, diminuindo seu contraste. Nesse caso, valores negativos, claro, não fazem sentido já que as cores são positivas entre 0 e 255. Assim, através do histograma podemos obter algumas informações sobre a imagem que o gerou ou modificar a imagem já atingindo, de uma primeira forma, o objetivo inicial de manipular uma imagem digital. Outras formas de manipular uma imagem, modificando suas características são vistas a seguir. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 242 9.4 Filtragem de Imagens Digitais A forma mais comum de manipular uma imagem (mudar suas características) é através do processo de filtragem. Existem diversos tipos de filtros e maneiras diferentes de realizar uma filtragem. Os filtros digitais podem ser classificados em: 1) Filtros Estatísticos ou Determinísticos: onde os estatísticos são os que usam alguma propriedade estatística da imagem. Exs: filtro da moda, da mediana. 2) Filtros lineares ou não-lineares: os filtros lineares não geram novas frequências na imagem, enquanto os lineares geram. Exs: Lineares: passa- baixa, passa-alta, passa-faixa; Não-Lineares: filtros polinomiais com base de polinômios de ordem maior que 2. 3) Filtros Topológicos ou de Amplitude: filtros topológicos são os que afetam a estrutura da imagem (como os filtros de warping) e os filtros de amplitude atuam apenas no espaço de cores da imagem. Uma das formas de executar o processo de filtragem de uma imagem é através da convolução. A convolução é uma operação comum em processamento de sinais, resultante do seguinte cálculo: ∞ f (t ) * h(t ) = ∫ f (τ ).h(t − τ )dτ −∞ (Eq. 9.2) A Eq. 9.2 representa a convolução de uma função f(t) por uma função g(t). Em termos gráficos, a convolução pode ser representada como na Fig. 9.8 (onde as funções estão representadas como retângulos apenas para facilitar o entendimento). Uma das funções, h, é rebatida e desloca-se pelo espaço das funções. No momento que ela começa a ter alguma interseção com a função f a área dessa interseção é calculada (resultado da integração). Enquanto as funções tiverem área comum ao longo do deslocamento de h, o resultado é avaliado. A integração é feita de -∞ a +∞, mas, claro, a área só é diferente de zero enquanto há área em comum. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 243 Para imagens, a convolução é aplicada de forma discreta. Ou seja, no caso das imagens, as funções que convoluem são matrizes. Da mesma forma, a integração é substituída por somatório. Na sua execução, como na versão contínua, uma matriz é fixa e a outra desloca-se sobre ela. A área (resultado da integração) é a região em comum entre as funções. Podemos ver esse processo com as matrizes apresentadas na Fig. 9.10. Fig. 9.8. Representação gráfica da convolução da função f pela função h. Fig. 9.9. Convolução discreta aplicada a matrizes. Uma característica da convolução discreta não é desejável na filtragem de imagens. Por exemplo, considere na Fig. 9.9 que f é a imagem e h é o filtro. A imagem de entrada tem dimensões 2x3, enquanto o resultado da operação é uma matriz 3x4. Na prática, o processo de filtragem não pode acrescentar linhas ou colunas à imagem. Assim, para aplicação em imagens digitais, a convolução digital ocorre de maneira um pouco diferente. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 244 No caso de imagens, o pixel a ser processado de deve ser casado com o centro da matriz do filtro (Fig. 9.10). O resultado da filtragem para esse pixel será o somatório do produto de cada valor da máscara pelo valor da imagem sob a máscara. Fig. 9.10. Processo de convolução aplicado em imagens. Por exemplo, suponha que a matriz de um filtro tem os valores: w1 w2 w3 w4 w5 w6 w7 w8 w9 Quando o ponto w5 casar no pixel p1, suponha que os valores abaixo da matriz do filtro tenham valores: z1 z 2 z3 z 4 z5 z 6 z7 z8 z 9 O resultado da filtragem será: w1.z1 + w2.z2 + .... + w10.z10. Assim, a matriz do filtro (chamada de máscara) atua como uma matriz de pesos. Para evitar perda das características do filtro, a máscara deve ser sempre multiplicada por 1/∑iw. Se o centro da máscara estiver numa posição (x,y) na imagem, o tom do pixel posicionado em (x,y) será substituído por R. A máscara é então movida para a A Fig. 9. ganhando novos elementos em sua borda externa de forma que a operação de convolução possa ser executada. Suponha um filtro formado por uma matriz 3x3. uma linha para baixo e uma coluna para cada lado. Isso evita o uso de pixels que tenham sido alterados na operação anterior. a matriz imagem é estendida. essa parte como todo o resto da imagem precisa ser processado. Ou seja. No entanto. É importante ressaltar que esses novos elementos são inseridos apenas para fins de processamento. A extensão mais simples é a fixa que preenche toda a borda externa com um valor fixo. Essa extensão é necessária para o processamento de toda a borda interna da imagem. Para um filtro 3x3 precisa-se estender a imagem de uma linha para cima. Os elementos inseridos na extensão dependem do tipo de extensão. No momento que o ponto central dessa matriz processa o primeiro pixel da imagem (pixel do canto superior esquerdo). é comum provocar uma extensão da imagem. Carlos Alexandre Barros de Mello Página 245 próxima posição de pixel na imagem e o processo se repete. Nessa figura. A quantidade de elementos a ser estendidos depende da dimensão do filtro. o filtro está sendo aplicado exatamente no primeiro pixel da imagem. O preferível é que a extensão seja preenchida com os valores da borda interna da imagem para diminuir os “efeitos de borda” (pixels com cores não relacionadas com as cores presentes no restante da imagem). É prática criar uma nova imagem para armazenar os valores de R em vez de mudar os valores de pixel no lugar. a extensão é chamada de nula. parte da máscara não estará sobre nenhum elemento da imagem. Para garantir que o processamento ocorra.11 retrata essa situação. É preciso observar que essa operação exige algumas alterações na matriz imagem para fins de processamento.Processamento Digital de Sinais – Prof. estando em cinza a imagem original e em branco a área estendida da imagem. . Eles não farão parte da imagem original e nem da imagem de saída. Se esse valor é zero. na verdade. 9. mas as atenua. esse filtro tem um comportamento como o da Fig. passa-alta e passa-faixa.12b). Na prática. Como definido. Carlos Alexandre Barros de Mello Página 246 Fig. Dentre os filtros baseados em máscaras. os filtros lineares são os que têm as maiores aplicações práticas. os filtros lineares não acrescentam novas frequências à imagem. sua função é deixar passar as baixas frequências (frequências entre –w e w) e eliminar as altas frequências. onde ele. esse filtro é gerado por uma função que tem valor 1 entre –w e w e zero fora desse intervalo (Fig.12a). 1) Filtro Passa-Baixa Teoricamente. exemplificá-los e discutir a função deles em imagens. A imagem original (em cinza) é estendida (parte em branco) para poder ser processada pelo filtro (em destaque no canto superior esquerdo).11. 9. 9. não elimina completamente as altas frequências.Processamento Digital de Sinais – Prof. . São eles: filtro passa-baixa. O filtro Box é um exemplo de um filtro passa baixa (Fig 9. Como um filtro passa-baixa.12c. Vamos descrever esses filtros. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 247 a) b) c) Fig. 9.12. a) Forma de um filtro passa-baixa ideal, b) matriz de um filtro passa- baixa (filtro Box) e c) forma de um filtro passa-baixa real. O resultado da aplicação de um filtro passa-baixa em uma imagem é seu embaçamento. Em imagens, as frequências estão associadas a regiões de mudanças bruscas entre tons (como, por exemplo, uma passagem de branco para preto). A atenuação dessas mudanças é interpretada por nosso sistema visual como um embaçamento na imagem. A Fig. 9.13 ilustra essa idéia. A Fig. 9.13a mostra uma região de alta frequência da imagem e a Fig. 9.13b apresenta o resultado de uma filtragem passa-baixa. a) b) Fig. 9.13. Ilustração do efeito de um filtro passa-baixa: a) imagem original e b) imagem resultante. 2) Filtro Passa-Alta Esse filtro tem comportamento oposto ao passa-baixa e é gerado por uma função que tem valor zero entre –w e w e 1 fora desse intervalo (Fig. 9.14a). O Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 248 filtro Laplaciano é um exemplo de um filtro passa-alta (Fig 9.14b). Como um filtro passa-alta, sua função é deixar passar as altas frequências e eliminar as baixas frequências. Na prática, esse filtro tem um comportamento como o da Fig. 9.14c, onde ele, na verdade, não elimina completamente as baixas frequências, mas as atenua, intensificando as altas. a) b) c) Fig. 9.14. a) Forma de um filtro passa-alta ideal, b) matriz de um filtro passa-alta (filtro Laplaciano) e c) forma de um filtro passa-alta real. O resultado da aplicação de um filtro passa-alta em uma imagem é o destaque de seus contornos. A atenuação das baixas frequências e intensificação das altas provoca um realce nas regiões de fronteiras da imagem (regiões que há mudanças bruscas entre tons claros e escuros). Uma ilustração do efeito da aplicação desse filtro em uma imagem pode ser visto na Fig. 9.15. a) b) Fig. 9.15. Ilustração do efeito de um filtro passa-alta: a) imagem original e b) imagem resultante. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 249 3) Filtro Passa-Faixa Esse filtro permite a passagem de frequências dentro de um intervalo e cortam as frequências fora dele (Fig. 9.16a). O filtro de Prewitt é um exemplo de um filtro passa-faixa (Fig 9.16b). Como um filtro passa-faixa, sua função é deixar passar frequências específicas da imagem. Na prática, esse filtro tem um comportamento como o da Fig. 9.16c. a) b) c) Fig. 9.16. a) Forma de um filtro passa-faixa ideal, b) matriz de um filtro passa- faixa (filtro Prewitt – detector de linhas horizontais) e c) forma de um filtro passa- faixa real. O resultado da aplicação de um filtro passa-faixa em uma imagem é o destaque de alguns componentes. Por exemplo, o filtro de Prewitt da Fig. 9.16b destaca as componentes horizontais de uma imagem. Além da extensão da imagem, na implementação de uma filtragem digital deve- se considerar questões relacionadas a cores não-realizáveis. O processo de filtragem pode, por exemplo, gerar uma cor negativa ou maior que 255. Esse fenômeno é chamado de “cor não-realizável”. Assim, é preciso truncar o resultado da filtragem para que as cores resultantes sejam sempre inteiras e entre 0 e 255. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 250 É possível também aplicar uma filtragem no domínio da frequência. Considere a função abaixo no MatLab que calcula a transformada de Fourier de uma imagem. function [F] = img_fourier (nome, ext) nome_in = [nome '.' ext]; im = imread(nome_in); figure, imshow (im); F = fft2(im); figure; F2 = fftshift(F); imshow(log(abs(F2)), []); colormap (jet); O código acima pode ser complementado com as linhas abaixo para implementar um filtro passa-baixas (gaussiano) e um filtro passa-alta (laplaciano). nx = size(F, 2); ny = size(F, 1); cxrange = [0:nx/2, -nx/2+1:-1]; cyrange = [0:ny/2, -ny/2+1:-1]; [cx, cy] = meshgrid(cxrange, cyrange); fxrange = cxrange * 2*pi/nx; fyrange = cyrange * 2*pi/ny; [fx, fy] = meshgrid(fxrange, fyrange); sigma = 0.3; % Gaussiana ms = exp(-(fx.^2 + fy.^2)/(2*sigma^2)); smoothF = F.* ms; smooth = ifft2(smoothF); figure, imshow(smooth, []); ftd = F.*fx.*i; % Diferenciacao ftd(:, nx/2+1) = 0; d = ifft2(ftd); figure, imshow(d, []); 9.5 Compressão de Imagens Como uma imagem é apenas uma matriz de dados, qualquer algoritmo de compressão de dados pode ser usado para gerar compressão no arquivo imagem. No entanto, podemos usar características da própria imagem para alcançar mais altas taxas de compressão. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 251 Por exemplo, um dos primeiros algoritmos utilizados especificamente para comprimir alguns tipos de imagens é o algoritmo de run-length. Esse algoritmo armazena a quantidade de vezes que uma cor se repete e qual essa cor. Ele é muito útil para alguns tipos de imagens, principalmente, imagens com apenas duas cores. Considere, por exemplo, uma imagem em preto-e-branco de um documento. Em geral, maior parte do documento é papel, ou seja, tons em branco. Assim, nesse exemplo, regiões inteiras da imagem podem ser codificadas com apenas um contador e o valor do tom branco. Em alguns casos como esse, o algoritmo de run-length é bastante eficiente. Para imagens coloridas em geral, o algoritmo não funciona bem, podendo até expandir o espaço de armazenamento necessário para a imagem. No entanto, esse algoritmo de compressão encontra-se implementado em uma variação do formato BMP, o BMP_RLE (Run-Length Encoding). Outro algoritmo que sofreu uma variação e foi implementado para imagens é o Lempel-Ziv. O LZ77 foi criado por Abraham Lempel e Jacob Ziv em 1977, sendo um algoritmo de compressão dinâmico. Ou seja, ele gera a codificação à medida que lê o arquivo de entrada. Isso é diferente de outros algoritmos clássicos de compressão de dados como o código de Huffman que, em sua versão clássica, primeiro lê todo o arquivo, gerando a codificação. Somente depois, outra varredura é feita para gerar a compactação. Em 1984, Terry Welch propôs uma modificação no LZ77 (a qual foi chamada de LZW) que o tornou mais eficiente. Essa modificação é, por exemplo, implementada no formato GIF (Graphic Interchange Format) para armazenamento de imagens de até 256 cores. O LZW é inicializado com um dicionário básico de codificação e esse dicionário vai ganhando novos códigos à medida que o arquivo vai sendo lido. Na transmissão ou armazenamento, apenas o dicionário básico é enviado com o arquivo. Durante a descompactação, o mesmo dicionário é formado automaticamente. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 252 Uma forma mais nova para gerar compressão é através do uso de wavelets. A decomposição wavelet gera um downsampling em cada nível que, por definição, já diminui a quantidade de dados. Assim, é bastante natural que ela seja usada como mecanismo para gerar compressão. 9.6 Processamento de Imagens no MatLab O MatLab possui uma toolbox específica para o tratamento de imagens digitais. Essa toolbox possui diversos comandos para as diversas técnicas de processamento de imagens. Pelas próprias características do MatLab, ele se torna bastante apropriado para trabalhar com imagens. Por exemplo, a estrutura básica do MatLab é a matriz e uma imagem nada mais é do que uma matriz. Uma imagem é lida no MatLab e armazenada como uma matriz do tipo uint8. Esse tipo armazena valores inteiros de 0 a 255 (correspondendo aos tons da imagem), mas não podem ser usados com operadores de números do tipo double como adição, subtração, multiplicação e divisão. Para tanto, é preciso primeiro converter a matriz imagem para o tipo double. O seguinte código apresenta diversas funções do MatLab para imagens na prática: >> im = imread (‘lena.jpg’); % Leitura da imagem em tons de cinza >> [lin, col] = size(im); % lê o número de linhas e colunas de uma imagem % e armazena nas variáveis lin e col (variáveis quaisquer) >> imshow (im); % visualização de imagens >> im2 = double(im); % conversão da imagem para tipo numérico >> im2 = im2 + 10; % aumento do brilho de uma imagem >> im2 = uint8(im2); % volta ao tipo imagem >> imwrite (im2, ‘nome.bmp’, ‘bmp’); %salva a nova imagem O código acima apresenta apenas um exemplo de trabalho com imagens. No caso, uma imagem em tons de cinza é carregada e armazenada na variável im. Podemos criar uma nova imagem 24 bits fazendo: >> im2 = uint8(zeros(lin. col. 3) = b. >> im2(:. o seguinte código pode ser utilizado: >> im = imread(‘flowers. B são armazenadas assim na imagem. Para separar cada componente. % matriz do segundo plano >> b = im(:. tif. Carlos Alexandre Barros de Mello Página 253 Não há necessidade de indicar o tipo da imagem já que isso é lido direto do cabeçalho da mesma. :. :. As matrizes R. 2) = g. 1).bmp’). G. um terceiro parâmetro de saída deve ser usado. % atribui todas as linhas e todas as colunas do primeiro plano % de im à variável r >> g = im(:. 3). 1) = r. :. col. Isso pode ser feito da forma: [im. Recorte de cores pode ser feito com os comandos: . Isso é tratado no MatLab como uma matriz 3 dimensional. >> im2(:. :. É possível esse comando ter dois argumentos de saída quando queremos armazenar em uma variável a paleta de cores de uma imagem (no caso de imagens com até 256 cores). observe que a leitura das dimensões da imagem deve ser feita como: >> [lin. Ou seja. A principal função desse código é a leitura do arquivo da imagem com o comando imread. jpg. % matriz do terceiro plano Nesse caso. % imagem 24 bits >> r = im(:. map] = imread(‘lena. O MatLab aceita imagens do tipo bmp.bmp’). 2). plano] = size(im). :. 3)). Para imagens armazenadas no formato true color (24 bits) não há paleta de cores. pcx e alguns outros.Processamento Digital de Sinais – Prof. Cada dimensõ contém uma matriz mxn que corresponde à matriz de um dos tons (exatamente na ordem RGB). por exemplo: >> im2(:. % criada uma imagem só de zeros Cada plano dessa nova imagem pode receber os planos da outra imagem. :. bilinear ou bicubic. O comando imrotate rotaciona uma imagem: B = imrotate(A.Processamento Digital de Sinais – Prof. Quanto a histograma. 5). onde method = nearest. >> h = fspecial (‘average’. Ângulo. M.bmp’). ‘tif’). Exemplo: >> A = imread (‘eight’. >> B = imrotate (A. Carlos Alexandre Barros de Mello Página 254 rgb2grey: conversão de 24 bits para tons de cinza im2bw: conversão para preto-e-branco (dado um ponto de corte) rgb2ind: conversão de 24 bits para 256 cores As dimensões de uma imagem podem ser alteradas com o comando imresize: B = imresize(A. im))). ‘method’). ‘method’) % Retorna uma matriz que é M vezes maior (ou menor) que a imagem A % onde ‘method’ = % nearest = vizinho mais próximo % bilinear = interpolação bilinear % bicubic = interpolação bicúbica % Exemplo: >> B = imresize (A. eles precisam ser arredondados e convertidos para uint8 para poderem ser visualizados e armazenados como uma imagem: >> im = imread(‘lena. 0. ‘nearest’). ‘nearest’). Observa- se que a função devolve uma matriz de valores reais. A filtragem de uma imagem pode ser conseguida com a função filter2.5. 45. respectivamente. Assim. % cria um filtro da média (box) >> im2 = uint8(round(filter2(h. as funções histeq e imadjust provocam a equalização e a especificação do histograma de uma imagem. imhist calcula o histograma de uma imagem: >> h = imhist(im). . sobel. laplacian.Processamento Digital de Sinais – Prof. Cada um com sua particularidade quanto à ordem. prewitt. usamos a função fspecial para criar o filtro da média. . log. Carlos Alexandre Barros de Mello Página 255 >> imshow (im2). A função permite ainda a criação de filtros: gaussian. No código acima. average e unsharp. O parâmetro 5 indica a ordem do filtro (dimensões da matriz quadrada). 3. 4. 2.Processamento Digital de Sinais – Prof. O que representa o histograma de uma imagem e cite. aplique um mesmo filtro passa-baixa de ordens diferentes nas imagens cameraman. Como os filtros se classificam de maneira geral? b. sem precisar visualizar a imagem). .bmp e lena.bmp. Explique os motivos das diferenças encontradas nos resultados. Considere a imagem abaixo: 1 2 3 1 0 2 2 2 0 Qual a imagem resultante após a aplicação de um filtro Box 3x3? 5. Compare os resultados encontrados e analise as diferenças à medida que as ordens se diferenciam mais e mais. Como se classificam os filtros lineares? Explique o resultado da aplicação de cada um desses tipos a uma imagem. Sobre filtros digitais: a. Diferencie os processos de amostragem e quantização. No MatLab. duas características diferentes que podemos inferir de uma imagem olhando apenas para seu histograma (ou seja. pelo menos. Carlos Alexandre Barros de Mello Página 256 9.7 Exercícios 1. Ed. Análise de Imagens Digitais. Hélio Pedrini. 2007.8 Bibliografia Complementar 1. Ed. Carlos Alexandre Barros de Mello Página 257 9. Richard Woods. 2. Luiz Velho. 1996. Sociedade Brasileira de Matemática. . Digital Image Processing. 2007.Processamento Digital de Sinais – Prof. Thomson. 3. Computação Gráfica: Imagem. Prentice- Hall. Jonas Gomes. Rafael Gonzalez. Para reduzir o espaço necessário para armazenar tais arquivos (seja para fins de preservação ou transmissão dos mesmos). D} que se deseja codificar usando bits (ou seja. Caso haja perda. Por exemplo. 1}). Por exemplo. precisamos entender os conceitos associados à teoria dos códigos. Carlos Alexandre Barros de Mello Página 258 10. seja o alfabeto fonte S = {A.1 Teoria dos Códigos Codificação consiste no mapeamento de um alfabeto (alfabeto fonte) em outro (alfabeto código). Para imagens. algoritmos de compressão de dados são usados. Uma codificação possível seria: A = 00 B = 01 C = 10 D = 11 Os códigos podem ser classificados da seguinte maneira: Códigos de comprimento variável ou de bloco Os códigos de comprimento variável são aqueles que têm atribuídos códigos de comprimento diferente a uma mesma palavra. Técnicas de Codificação de Áudio e Vídeo Com a melhoria dos dispositivos digitalizadores. Pode haver . C. tem sido constante o aumento na quantidade de dados a serem armazenados. essa perda pode ser relevante ou não. Isso é mais sensível quando falamos de dados relacionados com áudio ou imagens. antes de começarmos a falar de codificação de áudio e vídeo. A compressão de dados é uma forma de codificação que visa a reduzir o tamanho dos dados com ou sem perda de informação. temos um código de comprimento variável. B. o alfabeto código é apenas {0. se A é codificado como 0 ou como 01.Processamento Digital de Sinais – Prof. O código pode ser formado por uma sequência de símbolos do alfabeto fonte. Cada símbolo ou palavra da fonte deve ser mapeada de forma única ou não em um código. o problema agrava-se com vídeos que nada mais são do que sequências de imagens. 10. Assim. Já os não-unicamente decodificáveis geram ambigüidades. Se o receptor recebe a sequência “01”. Por exemplo: A = 10 B = 10 C = 01 Os códigos não-singulares são divididos em unicamente decodificáveis ou não unicamente decodificáveis. se: A=0 B = 01 temos um código de bloco. por sua vez. o mapeamento de volta ao alfabeto fonte é feito de forma única. Os códigos de bloco. Por exemplo: A = 10 B = 11 C = 01 é um código unicamente decodificável. Por exemplo: A = 10 B = 11 Se há repetição. Os códigos unicamente decodificáveis não geram ambigüidades na decodificação. enquanto: A=0 B=1 C = 01 não é. . ela pode ser decodificada em AB ou C. Nos códigos não-singulares todas as palavras código são distintas. podem ser divididos em singulares ou não- singulares. temos um código singular. Carlos Alexandre Barros de Mello Página 259 diferentes comprimentos entre diferentes palavras de um código. Por exemplo.Processamento Digital de Sinais – Prof. nas palavras código. Para decodificar uma sequência de bits. precisamos ler o próximo bit para saber se ele é zero ou um. o código: A = 10 B = 100 C = 1000 é não instantâneo. denotando o encerramento ou não da sequência. Essa classificação pode ser vista em resumo na figura abaixo: Uma condição necessária e suficiente para um código ser unicamente decodificável é que nenhuma palavra completa do código seja prefixo de outra palavra qualquer. Já o código: A = 01 B = 001 C = 0001 é instantâneo.Processamento Digital de Sinais – Prof. . Os códigos são ditos instantâneos se sua decodificação não precisa de informação futura. Carlos Alexandre Barros de Mello Página 260 Por último. ao encontrarmos um bit 1 sabemos que o código acabou. Por exemplo. os códigos unicamente decodificáveis podem ser divididos em instantâneos ou não-instantâneos. Por exemplo. Um código é dito compacto para uma fonte S. considere o código: A = 0 comprimento Li=1 B = 01 comprimento Li=2 C = 11 comprimento Li=2 Número binário base r=2 Ou seja. 2-1 + 2-2 + 2-2 = 1 Isso garante que o código é instantâneo. o comprimento médio é calculado como: onde Li é o comprimento de cada uma das q palavras do código e Pi é a probabilidade de cada palavra. A desigualdade de Kraft garante que um código é instantâneo. a desigualdade é satisfeita. Carlos Alexandre Barros de Mello Página 261 Por exemplo. cada palavra com comprimento Li. Se. se: A = 10 B = 01 C=? C não pode receber nenhum código que comece com 10 ou 01 para garantir que o código seja unicamente decodificável. ele também é unicamente decodificável. McMillan mostrou que. para um código de base r.Processamento Digital de Sinais – Prof. com q palavras. Para um código. . se um código satisfaz a mesma desigualdade. então o código é dito instantâneo. se o ponto (i. Algoritmos dinâmicos geram a codificação e codificam à medida que eles lêem o arquivo de entrada. j) em uma imagem tem tom de cinza 130 e o ponto (i. C. Dependendo da fonte e do nível de perda. em termos de imagens. os dois pontos podem passar a ter o valor 130 sem que nosso sistema visual perceba. Algoritmos baseados em wavelets e em quantização vetorial são algoritmos de compressão com perda.Processamento Digital de Sinais – Prof. Já a taxa de compressão. Em geral. efetivamente.2 Algoritmos de Compressão Os algoritmos de compressão dividem-se em: . . nós não conseguimos ver essa diferença. eles precisam ler o arquivo de novo para codificar o arquivo. Assim. Assim. tais algoritmos são ditos de dois passos: primeiro. codificar o arquivo. j + 1) tem tom 131. eles lêem todo o arquivo a fim de gerar a tabela de codificação e. em seguida. Algum símbolo que havia no arquivo original e foi perdido no arquivo compactado. se colocados em posições adjacentes em uma imagem. Carlos Alexandre Barros de Mello Página 262 se seu comprimento médio é menor ou igual ao comprimento médio de todos os outros códigos unicamente decodificáveis para a mesma fonte S. essa perda pode não ser sensível ao ser humano. Assim. No entanto. não percebemos a diferença entre tons muito próximos. isso pode provocar um aumento na taxa de compressão de um arquivo de imagem. Por exemplo. Algoritmos estáticos são algoritmos que geram toda a tabela de codificação antes de. é medida como: Compriment o _ do _ Arquivo _ Original C= Compriment o _ do _ Arquivo _ Compactado 10. o Run-length e o Lempel-Ziv-Welch. para arquivos em geral. temos o código de Huffman. todo o processo é feito em um passo apenas.Algoritmos estáticos ou dinâmicos O termo “perda” relaciona-se com perda de informação.Algoritmos com perda ou sem perda . principalmente. Já algoritmos sem perda. Prossegue com a codificação da mesma forma. considere um arquivo com apenas 5 símbolos (a. • Continua o passo anterior até que só restem 2 símbolos. gerando símbolos cuja probabilidade é dada pela soma das probabilidades dos símbolos que os gerou e criando. • Continua atribuindo 0’s e 1’s até chegar aos símbolos iniciais. O algoritmo completo pode ser resumido da seguinte forma: • Organizam-se os símbolos em ordem decrescente de suas probabilidades. d. assim. Esses símbolos são listados em ordem decrescente de probabilidade. Os símbolos de menor probabilidade vão sendo agrupados. Carlos Alexandre Barros de Mello Página 263 Vamos ver o exemplo de funcionamento de alguns algoritmos. b. aleatoriamente.1. O processo continua até que só reste uma quantidade de símbolos igual à base a que se deseja gerar a codificação (por exemplo. O código de Huffman divide o conjunto de entrada em dois subconjuntos.2.Processamento Digital de Sinais – Prof. • Uma fonte reduzida é formada a partir dos 2 símbolos de menor probabilidade. Assim. começando com algoritmos de compressão sem perdas. deve-se calcular a probabilidade de cada símbolo.1 Código de Huffman Definido por David Huffman em 1952.3.2. temos a com probabilidade de 0. Por exemplo.1. é uma variação do algoritmo de Shannon- Fano. e) dispostos na mensagem M da seguinte forma: M=aaabbbcecd Primeiro. e e com 0. c com 0. A figura abaixo representa o processo: . as chamadas fontes reduzidas. c. para uma codificação binária – base 2 – o processo continua até que só restem dois símbolos).3. 10. b com probabilidade de 0. • Atribui-se 0 a um dos símbolos e 1 ao outro. atribuindo 0 a um deles e 1 ao outro. d com 0. Esse processo vai se repetindo pelas outras fontes reduzidas até chegar aos símbolos da fonte. atribui-se 0 para um símbolo e 1 para o outro. aleatoriamente. as atribuições de 0’s e 1’s são feitas à direita dos símbolos. garantindo que nenhuma palavra do código será prefixo de outra (tornando o código unicamente decodificável): No caso desse exemplo. A partir da penúltima fonte. a seguinte codificação é gerada: a ↔ 10 (2 bits) b ↔ 11 (2 bits) c ↔ 00 (2 bits) d ↔ 010 (3 bits) .Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 264 A partir dos símbolos da última fonte reduzida. se no arquivo original. Uma variação no código de Huffman é a Codificação Aritmética. tínhamos uma mensagem com 80 bits. O problema do código de Huffman é que. 2) A codificação atribuiu para os símbolos de maior probabilidade os menores códigos (claro. Nesse exemplo. . o código de Huffman adaptativo. onde. as condições para garantir o item 1 acima). Ela funciona basicamente da mesma forma que o código de Huffman. Carlos Alexandre Barros de Mello Página 265 e ↔ 011 (3 bits) Assim. cada símbolo ocupava 8 bits. O comprimento médio desse código é 1. sua codificação pode atingir rapidamente grandes quantidades de bits. o número de bits necessário para especificá-lo aumenta. podemos observar algumas características do código de Huffman: 1) O código gerado é unicamente decodificável e instantâneo. mas gera a codificação baseando-se em intervalos ao invés de probabilidades. Cada símbolo da fonte será representado por um intervalo. O código de Huffman é um algoritmo de compressão sem perda e estático. permitindo sua decodificação. Sua codificação é dita bottom-up já que podemos comparar a estrutura montada como uma árvore invertida (a raiz embaixo) cuja codificação iria da raiz às folhas. observando. dependendo da quantidade de símbolos no código fonte. Agora. o truncado e a versão modificada. à medida que o intervalo se torna menor. Existem algumas variações do código de Huffman como a versão para multi-símbolos. apenas 16 bits são necessários para codificar a mensagem (sem contar o espaço necessário para armazenar a tabela de codificação). Uma tabela de codificação deve ser anexada ao arquivo.6.Processamento Digital de Sinais – Prof. 2.2. a codificação começa com um dicionário base o qual contém a codificação dos símbolos da fonte. Em 1984. 120> <1. . 60> Como dito antes. Por exemplo. Esse dicionário vai ganhando novos símbolos à medida que o arquivo original vai sendo lido e codificado. como uma imagem de um documento onde a maior parte é o branco do papel. 10. No LZW. Carlos Alexandre Barros de Mello Página 266 A codificação aritmética é utilizada em parte da compactação do formato JPEG para imagens. essa codificação pode se mostrar bastante eficiente. o LZW. Sua codificação é da forma: <contador. 10. como o nome diz.2 Run-length O algoritmo de run-length é um dos mais simples. Por exemplo. Terry Welch modificou o algoritmo. O run-length é implementado em uma versão do formato BMP para armazenamento de imagens (o BMP_RLE). comprimentos de carreiras. se o arquivo tem grandes repetições de um mesmo valor. para a sequência: 120 120 120 30 45 45 45 60 o resultado da codificação seria: <3.Processamento Digital de Sinais – Prof. 45> <1. o LZ-77 é um algoritmo de compressão dinâmico e sem perda. símbolo> onde o contador diz quantas vezes o símbolo se repete em sequência. criando uma versão mais eficiente que é a utilizada hoje em dia. Ele é apropriado para alguns tipos de arquivos em condições específicas. O run-length armazena. imagens em preto-e- branco com grandes quantidades de um dos tons. 30> <3.3 Algoritmo de Lempel-Ziv-Welch Criado por Abraham Lempel e Jacob Ziv. Se não faz parte. o algoritmo verifica se esse símbolo está no dicionário. o algoritmo verifica se XY (o símbolo anterior completo concatenado com o atual) faz parte do dicionário. ele é acrescentado com uma nova codificação (por exemplo.3 Algoritmos de codificação multimídia Os algoritmos de compressão com perdas mais conhecidos utilizados em multimídia são: MPEG-1 – MPEG é a sigla de Moving Pictures Experts Group. Ao decodificar. Agora. No entanto. considere o dicionário base abaixo (sem nos preocuparmos com o código que foi atribuído a cada símbolo da fonte): X ↔ #1 Y ↔ #2 Z ↔ #3 W ↔ #4 e a seguinte mensagem M: M = XYXZXYXW Ao ler o primeiro símbolo da mensagem (X). Se estiver. o próximo símbolo (Y) é lido e codificado de acordo com o dicionário (#2).Processamento Digital de Sinais – Prof. . apenas o dicionário base é armazenado junto com a mensagem codificada. #5). O dicionário agora passa a ter essa entrada. 10. O MPEG-1 é o padrão original do MPEG e é capaz de codificar áudio e vídeo a uma taxa de 1. O processo prossegue. Carlos Alexandre Barros de Mello Página 267 Por exemplo. Em seguida. que é um grupo de pesquisadores que desenvolvem padrões para compressão de áudio e vídeo. atribui a codificação (#1).5 Mbps. o dicionário base é utilizado e é estendido da mesma forma que foi feito na codificação. acrescentando novas entradas que passam a poderem ser usadas na codificação. por exemplo. ou melhor.1 Codificação de Vídeo A fim de avaliar sistemas de compressão de vídeo. eles podem oferecer qualidade semelhante à MPEG-2 sem ocupar tanto espaço. Uma maneira . no entanto. principalmente. XViD. etc.) é um dos mais usados atualmente. MPEG-2 – É um padrão de compactação de maior qualidade utilizado em radiodifusão por satélite. Em cada camada o nível de compressão é mais complexo e exige mais poder computacional. Essa medida. Uma versão modificada do MPEG-2 é usada pelo padrão HDTV e também nos DVDs. pode trazer problemas para imagens (estáticas ou dinâmicas) quando temos uma matriz m versus n com ainda uma quantidade de bits por pixel para representar a cor. avaliado como uma razão entre os dados de saída e os de entrada.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 268 O MPEG define três níveis ou camadas de compressão para áudio. MPEG Layer 3. O grau da compressão é. os seguintes parâmetros devem ser considerados quanto ao desempenho da compressão: • Quantidade ou grau da compressão • Qualidade da Imagem • Velocidade da compressão e descompressão É preciso analisar também a implementação em hardware ou software. Pode ser utilizado em transmissões a taxas de 4 a 9 Mbps. MPEG-4 e derivados .O padrão MPEG 4 e seus derivados (DiVX. Vamos detalhar mais sobre compressão de áudio e vídeo a seguir: 10.3. geralmente. Devido à melhoria dos recursos computacionais. A terceira camada (layer 3) se tornou bastante popular para a compressão de áudio e atualmente é o que conhecemos como MP3. porém.Processamento Digital de Sinais – Prof. hardware específico é necessário para conseguir implementar os algoritmos com a máxima eficiência. 2 Saída do compactador. para vídeos essa é uma taxa inaceitável. de uma maneira geral. Na maioria dos casos. para imagens. deve ser feita a transmissão de todos os pixels da imagem. é fazer com que essa mudança não seja perceptível pelo usuário. podemos dividir os algoritmos de compressão.000x8 bits)/(256x240 pixels) = 2 bits por pixel A taxa de compressão apenas. Nesse caso. Algoritmos de compressão sem perda. Outro fator igualmente importante é a qualidade da imagem gerada. geram uma quantidade maior de dados a serem transmitidos. Algoritmos de compressão com perda provocam alguma mudança na imagem. pois são milhares de imagens (quadros ou frames) que são compactados/descompactados. Se. não é medida suficiente para avaliar um sistema. em com perda ou sem perda. no entanto. essa avaliação é feita com algum critério subjetivo. estamos comprimindo: (bits)/(pixels) = (15. porém. Algoritmos de compressão com perda podem inserir diversos artefatos na imagem e não é fácil quantificar o desempenho desses algoritmos. Nesse sentido. Normalmente. uma compactação/descompactação de 1 segundo é considerada rápida. Nos algoritmos de compressão sem perda.000-byte. esse é um problema fundamental. Para vídeo. se estamos reproduzindo uma imagem 256x240 pixels de um bitstream de 15. Carlos Alexandre Barros de Mello Página 269 mais eficiente de especificar o total de compressão é determinar o número de bits por pixel apresentado (displayed) necessário no bitstream2 comprimido. Por exemplo. O objetivo. não há necessidade de avaliar a qualidade da imagem já que ela é exatamente igual à imagem original. . Tais algoritmos ainda trazem um outro problema a ser tratado: a velocidade de compactação e descompactação. normalmente. Uma taxa mais rápida está associada ao algoritmo utilizado e a como esse algoritmo é implementado (hardware ou software). • Imagens onde alguns pixels se repetem por diversos frames (redundância temporal). Por exemplo. As principais técnicas de compressão de vídeo são baseadas em: . inserimos elementos redundantes que melhoram os resultados de algoritmos de compressão (observamos que essa mudança provoca perdas na imagem – mesmo elas não sendo perceptíveis. Assim. são mudanças na imagem original). podemos converter duas cores adjacentes que tenham uma distância menor do que 10 entre elas para que se tornem uma mesma cor. o sistema visual humano tem certas limitações quanto à percepção de cores. Carlos Alexandre Barros de Mello Página 270 Os algoritmos de compressão buscam reduzir a quantidade de elementos redundantes no arquivo. Com isso. • Quando a cena ou parte dela contém predominantemente objetos orientados verticalmente existe grande probabilidade que duas linhas adjacentes sejam as mesmas (redundância espacial). Necessitamos de uma diferença de até 10 tons (em termos de sistema computacional de cores) para perceber duas cores adjacentes diferentes. Em imagens de vídeo digital essa redundância pode ser encontrada de diferentes formas: • Algumas áreas do frame possuem a mesma cor que se espalha por mais de um pixel (redundância espacial). Outros elementos podem ser considerados pelo algoritmo de compressão. Algoritmos de compressão podem explorar essas características de redundância a fim de conseguirem uma melhor taxa de compressão. quanto à resolução de cor.Processamento Digital de Sinais – Prof. Não conseguimos diferenciar cores que estão muito próximas no espectro. em geral. • Codificação Run-length: já explicada anteriormente. Se há uma região de mudança de preto para branco. Interpolação é sugerida para ser usada em sistemas baseados no modelo YIQ (como o NTSC) ou YUV (como o Pal). suponha um sistema que use apenas 4 bits para armazenar/transmitir a diferença entre tons. • Técnicas de interpolação: compressão através de interpolação atua a nível de pixel e consiste de transmitir um subconjunto de pixels. Em DPCM.Processamento Digital de Sinais – Prof. o DPCM: a forma mais simples de compressão preditiva é chamada de PCM diferencial (ou DPCM. onde PCM = pulse code modulation). Há uma grande probabilidade de alta compressão por esse método porque pixels adjacentes. Um problema de DPCM ocorre quando a diferença entre os pixels ultrapassa o limite de representação da quantidade de bits adotada pelo sistema. Assim. espera-se uma diferença pequena que pode ser transmitida em uma quantidade menor de bits. Carlos Alexandre Barros de Mello Página 271 • Color Look-Up Table: o pixel na matriz da imagem corresponde na verdade a um índice para uma tabela que aloca as cores reais. essa mudança não poderá acontecer entre pixels adjacentes. pixels adjacentes são comparados e apenas a diferença entre eles é transmitida. Seria necessário um certo número de pixels intermediários para conseguir a . por exemplo) e usar essa informação para predizer qual o próximo elemento. pois não haveria como representá-la. Por exemplo. têm cores muito próximas. • Técnicas preditivas: técnicas de compressão preditivas são baseadas no fato que podemos armazenar um elemento anterior (como um frame. usando técnicas de interpolação para reconstruir os pixels intermediários. Processamento Digital de Sinais – Prof. no entanto. Carlos Alexandre Barros de Mello Página 272 representação. Uma das transformadas mais utilizadas para compressão de imagem e vídeo é a Transformada Discreta do Cosseno (DCT). 64 pixels por vez são processados pela DCT. a DFT. Esse efeito é chamado de slope overload. em geral. o ADPCM: O slope overload pode ser reduzido tornando o DPCM adaptativo (ADPCM). Assim. 8x8). A DCT é calculada como: onde Sendo a inversa calculada como: A DCT está relacionada com a DFT. • Técnicas de codificação por transformadas: uma transformada é uma técnica que converte um conjunto de dados de um domínio para outro mais apropriado para a aplicação. Uma forma simples de implementá-lo é tornando adaptativa a quantidade de bits necessária para armazenar a diferença entre os pixels. de fato. o DCT: A DCT é executada em blocos adjacentes de pixels (em geral. tem . Esse efeito pode provocar um embaçamento na imagem. O uso de ADPCM pode provocar ruídos nas regiões de alta frequência. são reversíveis. A DCT. é um passo no cálculo da DCT para uma sequência. As transformadas. Apesar de serem relativamente fáceis de implementar em qualquer linguagem de computador. Por isso na prática a estratégia que se adota é de dividir a imagem em blocos de tamanho menor (em geral de tamanho 8x8 pixels. e depois disto apenas realizar operações . por ser uma função transcendental. como no JPEG). com apenas uns poucos coeficientes da transformada representando a maior parte da energia da sequência. Os ganhos de processamento com esta abordagem suplantam em muito as perdas em termos de compressão.Processamento Digital de Sinais – Prof. levando a nossa primeira otimização: • Otimização 1: a imagem a ser tratada deve ser dividida em blocos menores facilitando a computação das transformadas. Se verificarmos a fórmula da transformada discreta de cosseno veremos que podemos pré-calcular todos os valores de cosseno a serem utilizados. O cálculo das funções de cosseno. O uso da DCT em imagens grandes. também exige bastante poder de processamento. a compressão de imagens demanda um grande poder de processamento e por isso precisa ser otimizada ao máximo. existe pouca ou nenhuma correlação entre pontos distantes de uma mesma imagem. exige um processamento muito grande. Outra justificativa para esta abordagem é que apesar de terem bastante correlação com os vizinhos próximos. é possível reconstruir um sinal a partir de apenas alguns coeficientes da DCT. Por causa dessa compressão. Essas propriedades fazem a DCT bem apropriada para compressão de dados. Carlos Alexandre Barros de Mello Página 273 propriedades de compactação de energia. apesar de apresentar ótimos resultados. os coeficientes mais significativos se acumulam no início do vetor (ou matriz) dos dados. Carlos Alexandre Barros de Mello Página 274 aritméticas de soma e multiplicação. a forma mais comum e que gera melhores resultados. Ao aplicar a transformada discreta de cosseno. Algumas formas de quantização normalmente utilizadas com a transformada discreta de cosseno são: • Eliminação dos componentes menos significativos (determina-se um patamar de valor ou mesmo de posição . acabamos por ter uma perda nos dados. Entretanto. a compressão usando transformada discreta de cosseno é uma compressão com perdas. Este tipo de distribuição já é suficiente para que uma técnica de redução de redundância (como os algoritmos LZ77. Portanto. mesmo sem aplicar nenhuma forma de quantização. LZ78 ou LZW) ou uma codificação otimizada (como codificação de Huffman ou codificação aritmética) produzam melhores resultados do que na imagem ou nos dados originais. realizando-se assim apenas operações aritméticas ao se calcular a fórmula da transformada. Entretanto. Essa quantização permite uma maior eficiência das técnicas de codificação e eliminação de redundância utilizadas. e armazenar apenas os dados quantizados. por trabalharmos sempre com uma precisão finita nas representações numéricas utilizadas.Processamento Digital de Sinais – Prof. ficando o restante com valores muito pequenos e carregando pouca informação. Isso nos leva a segunda regra: • Otimização 2: os cossenos utilizados devem ser pré- calculados e armazenados. é a aplicação de uma operação de quantização nos dados gerados pela transformada. em 1988 ISO esquematizou o MPEG (Moving Picture Experts Groups). Foram definidos três itens a serem desenvolvidos: 1. ou bits. Carlos Alexandre Barros de Mello Página 275 na matriz de resultados da transformada. ficou claro a necessidade de aliar imagem com tecnologia digital. Vídeo e áudio associados a uma taxa de 1. pois é mais flexível e permite que se ajuste a matriz a qualidade desejada da imagem).Processamento Digital de Sinais – Prof. Dentre os formatos mais utilizados para compressão de áudio e vídeo. • Divisão inteira dos valores por um coeficiente de quantização fixo (assim pode-se usar menos dígitos. . Imagens em movimento e áudio associados a uma taxa de 10 Mbps (mais tarde chamado de MPEG-2).5 Mbps (mais tarde chamado de MPEG-1). • Divisão inteira por uma matriz de coeficientes de quantização (Esta técnica é a empregada pela maioria dos padrões de compressão de dados. 2. temos: • MPEG (Moving Picture Expert Groups) • DiVX Vamos detalhar cada um desses. • Codificação estatística: como o código de Huffman ou a codificação aritmética. e elimina-se ou substitui-se esses valores por 0). para desenvolver padrões para o vídeo digital. para se representar os valores). MPEG Na década de 80. Nesse sentido. Assim. Apesar de que um fluxo MPEG representa um fluxo constante de bits. quanto maior o pacote. agrupando os bits em pacotes cria um maior tráfego para acomodar os cabeçalhos dos pacotes. Geralmente. . Pode- se considerar. portanto. Enquanto os padrões se desenvolviam ficou claro que as técnicas empregadas nos padrões poderiam ser usados em qualquer bit-rate (quantidade de bits necessários para codificar um segundo de informação. os títulos dos que incluíam a taxa de transmissão foram alterados para MPEG-1 e MPEG-2 e ficou claro que MPEG-2 poderia satisfazer as necessidades do HDTV.Digital Storage Media). Imagens em movimento e áudio associados a uma taxa de 60 Mbps (mais tarde reduzido para 40 Mbps e então cancelado). os bits precisam ser organizados em grupos (pacotes) para que erros de bit não se propaguem além das fronteiras de um único pacote. Essa é a principal tarefa do MPEG-2 Systems. MPEG-3 para televisão de alta-definição (HDTV). Geralmente quanto menores os pacotes. que formar pacotes é uma terceira função para os MPEG Systems. Por outro lado. O vídeo. assim. MPEG-2 foi orientado como broadcast. MPEG 1 era orientado como imagem digital armazenada em Mídia de armazenagem digital (DSM . seja esta vídeo. existe um trade-off entre escolher o tamanho do pacote e sua resiliência e eficiência. Assim. áudio ou ambos). Carlos Alexandre Barros de Mello Página 276 3.Processamento Digital de Sinais – Prof. Quando o multiplexador está recebendo um fluxo de bits de vídeo e áudio comprimidos. maior o tráfego. mais suscetível ele é aos erros de bit. áudio. o MPEG-3 foi descartado. como eles devem ser multiplexados para que o decodificador possa obtê-los sincronizados? Uma outra tarefa do sistema é fornecer meios para essa sincronização. ou qualquer outra informação para um serviço codificado em MPEG deve ser multiplexado num único fluxo de bits. Nos quadros P (Predicted) e B (Bidirectionally Predicted) também se aplicam algoritmos de redução de redundância temporal. No caso dos quadros B a predição de movimento é bidirecional. 3) Empacota os bits em grupos.Processamento Digital de Sinais – Prof. . permitindo streams sem áudio. Nos MPEG-2 Systems. é feita com quadros no passado e no futuro em relação ao quadro sendo codificado. Fornecer estas PSIs é a quarta tarefa do MPEG Systems. Nos quadros I (Intraframe) somente se aplicam algoritmos de redução de redundância espacial. decodificadores necessitam de Informações Específicas do Programa (PSI . como áudio e vídeo. O comitê ISO especifica separadamente o tratamento de áudio e de vídeo. por exemplo. um programa é definido como o conjunto de Fluxos Elementares significativos. 4) Provê informações específicas chamadas PSI. 2) Prover maneiras para sincronizar os fluxos de bits que compõem um serviço de áudio e/ou vídeo. Um MPEG Systems deve: 1) Multiplexar fluxos de bits individuais num único fluxo de bits. Um arquivo MPEG é um arquivo digital contendo vídeo e áudio digitais codificados seguindo determinados padrões de compressão e armazenados em um dado formato específico. Carlos Alexandre Barros de Mello Página 277 Na maioria dos casos. A sincronização entre o vídeo e o áudio é feita através de marcadores de tempo que são fixados durante a codificação nos identificadores de blocos. ou seja. Um filme é uma sequência de blocos. que têm a mesma base de tempo. O padrão MPEG especifica 3 tipos de quadros comprimidos no arquivo de saída.Program Specific Information) para decodificar o os dados que chegam. Cada bloco do filme contém seções individuais para o vídeo e para o áudio. 10. O padrão publicado pela ISO especifica o formato final do arquivo comprimido.1. sendo que os quadros B apresentam a maior taxa. maiores as perdas de qualidade sofridas nos quadros.1). Quanto maior a compressão. por isso há a necessidade de intercalar quadros I de tempos em tempos para permitir a “restauração” da qualidade do sinal e também acesso aleatório aos quadros do filme (Fig. deixando margem para que diferentes abordagens possam ser utilizadas.1. Tabela 10. Isto se deve ao fato de que nos quadros I eliminamos apenas a redundância espacial. Carlos Alexandre Barros de Mello Página 278 Os quadros apresentam diferentes taxas de compressão. 10. Taxa de compressão de cada tipo de quadro no MPEG. Quadro Taxa de Compressão I 10-20:1 P 20-30:1 B 30-50:1 Fig. Uma análise bilateral (observando frames passados e futuros) é importante para permitir que frames futuros sejam usados em uma predição mais correta.Processamento Digital de Sinais – Prof. Disposição dos quadros no formato MPEG. Além disso. seguidos dos P e dos I (Tabela 10. com diferentes compromissos entre compressão e complexidade computacional.1). também fazem parte do padrão: . considere que na Fig. A DCT faz uma transformação na imagem. seguida de Quantização e Run Length Encoding (RLE) para redução da redundância espacial de cada quadro do filme. sua utilização se dá porque ela permite uma representação mais compacta da imagem. temos como resultado a matriz apresentada na Fig.2-direita. Aplicação da DCT: (esquerda) região 8x8 da imagem em YCbCr e (direita) o resultado da aplicação da DCT nessa região.2. Fig. O uso da DCT faz com que as maiores frequências se concentrem no canto superior esquerdo da matriz (Fig. Este processo não introduz perdas de qualidade na imagem.2-esquerda temos o resultado da conversão de uma imagem do formato RGB para o formato YCbCr (mais indicado para vídeo). 10. gerando a compressão efetiva. 10.2-direita. .Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 279 • Uso da Transformada Discreta do Cosseno (DCT). quadro em vermelho). mudando o domínio de representação da mesma. 10. Após a aplicação da DCT nesse bloco da imagem. • Uso de Motion Estimation e Motion Compensation (MEC) preditiva e interpolativa para redução de redundância temporal entre quadros e • Uso de Codificação de Huffman ao final do processo. 10. facilitando a compressão. Por exemplo. Para tê-los agrupados de forma mais adjacente. Carlos Alexandre Barros de Mello Página 280 Após a aplicação da DCT. 10.3-esquerda. Leitura em zig-zag da matriz DCT para aplicação da codificação Run- Length. 10.3-esquerda). . 10. O resultado para a matriz DCT da Fig.4) é feita nessa matriz.2-direita. 10.4. Fig. uma codificação run-length. 10. Fig. 10. por exemplo.3. Observamos nessa matriz quantizada uma grande presença de valores zero. Assim. usando. 10. uma leitura em zig-zag (Fig. Cada valor da matriz gerada pela DCT é dividido pelo valor correspondente na máscara de quantização e arredondado para um inteiro.Processamento Digital de Sinais – Prof. (esquerda) Matriz de quantização e (direita) resultado da quantização da matriz DCT da Fig. podemos agrupá-los.2-direita é apresentado na Fig. uma quantização é feita tomando uma matriz de quantização fixa (Fig. Este algoritmo consiste na procura de um bloco de tamanho fixo (16x16 pixels no padrão MPEG) de um quadro em uma janela de busca em um quadro seguinte (ou anterior).1. A Fig. Ele foi produzido para ser usado em compactação de vídeo digital. conhecida como IMDCT é dada por: n / 2 −1 π n xk = ∑ i =0 S i cos( 2n [ 2k + 1 + ](2i + 1)). Fig... Carlos Alexandre Barros de Mello Página 281 Existem diferentes formas de se detectar movimento de objetos numa sequência de imagens. O padrão MPEG adota algoritmos de MEC baseados em casamento de blocos.. mas o tamanho usual é de 30x30 pixels..1. Inc. i = 0.Processamento Digital de Sinais – Prof. o que pode fazer com que um computador tecnologicamente defasado demore para .5. n − 1 2 DivX O DivX é um codec de vídeo criado pela DivX. Para alcançar tal compactação é necessário muito processamento. Aplicação de Motion Estimation.. utilizada para ocupar menos espaço no Disco rígido. deixando os vídeos com qualidade.5 mostra um exemplo de tal técnica. 10. apesar da alta compactação. Esta janela pode ser de tamanho variável. O padrão MPEG usa uma variação da DCT chamada MDCT (Modified DCT): n −1 π n n S i = ∑ x k cos( [ 2k + 1 + ]( 2i + 1)).. 10. − 1 k =0 2n 2 2 E a sua inversa.. k = 0.. No entanto.2 Codificação de Áudio Um dos primeiros sistemas desenvolvidos para compressão de áudio usa métodos parecidos com o algoritmo de run-length. Desta forma. Mas. O resto da cena pode ser considerado. Assim como que em outros programas e plug-ins encontrados na Internet. para se converter um arquivo de vídeo em formato não compactado para um em DivX é preciso comprar o DivX Codec que é o software responsável por esta tarefa.Processamento Digital de Sinais – Prof. O DivX é compatível com Windows. A vantagem é a redução do tamanho a até um quarto do tamanho original. A idéia da compressão usada em arquivos VOC é a redução dos chamados “blocos de silêncio”. não é possível uma conversão para . porém. Solaris e Mac OS X. é possível se fazer o download gratuito do tocador (player) no site oficial da DivX. se seu objetivo é apenas o de assistir os vídeos já compactados em DivX. Linux. Carlos Alexandre Barros de Mello Página 282 realizar a operação ou tenha dificuldades para realizar a exibição. Inc ou em quaisquer sites de downloads. Simplificando: tomando-se uma cena onde a câmera é estática e fundo não se modifica. devido ao seu reduzido tamanho e à ótima qualidade. caso haja uma pessoa andando. como uma foto estática ao fundo do vídeo. resultando um arquivo de tamanho reduzido com uma perda de qualidade pequena. grosseiramente. os arquivos DivX estão amplamente presentes nas redes dos programas de P2P. Na mesma cena. 10.3. o codec DIVX grava um único frame dessa imagem e repete-o até a imagem sofrer alguma alteração. ao contrário do MP3. como desvantagens têm a degradação no som. são guardados muito menos dados pelo vídeo compactado. O método de compactação DIVX funciona como um MP3 para vídeo. Atualmente. somente os pixels em que sua imagem se sobrepõe são modificados. o DIVX torna repetitivas as imagens que não se modificam no decorrer dos frames (quadros) que formam o vídeo. que apaga sons sobrepostos que nosso cérebro não conseguiria reconhecer. 6. 10. Uma extensão de silêncio menor que a janela é considerada muito curta para merecer a conversão para bloco de silêncio. Fig./f/. /s/. Carlos Alexandre Barros de Mello Página 283 outro formato e só é aplicado a arquivos amostrados com baixas taxas. 10.6). Outro problema é que pode haver uma confusão do silêncio com o início de um som (como um fricativo inaudível . Os Blocos de silêncio não existem na maioria dos formatos de arquivos de áudio. /sh/) (Fig. Silêncio é definido como a amplitude da forma de onda que não ultrapassa a janela de silêncio. Som fricativo inaudível que pode ser confundido com um silêncio por ter baixas amplitudes em parte dele.Processamento Digital de Sinais – Prof. . Blocos de silêncio são marcadores que contêm um valor de duração do tempo que representa a extensão do silêncio ou quase silêncio. As camadas referem-se ao esquema de compressão de áudio do MPEG-1. É importante lembrar que essa diferença da compressão não tem nada a ver com uma camada ser mais avançado que o outro tecnologicamente. de estudos de psico-acústica. Para fazer isso o MP3 utiliza-se. Foram projetadas em número de 3. a compressão pode ser menos conservadora e aproveitar melhor as características psicoacústicas do som limitando-se apenas pela qualidade desejada para o ouvido humano. MPEG-3 é um formato morto. pois o formato MPEG-4 o suplantou com muitas vantagens. Carlos Alexandre Barros de Mello Página 284 MP3 MP3 é uma abreviação de MPEG 1 Layer-3 (camada 3). sendo que estes permitem aproveitar-se das limitações e imperfeições da audição humana. que dá menor compressão. Trata-se de um padrão de arquivos digitais de áudio estabelecido pelo Moving Picture Experts Group (MPEG). mas sim com o objetivo da aplicação do áudio ser processado. emissoras de TV. se destina a utilização em ambientes de áudio profissional (estúdios. a 3 se destina ao áudio que será usado pelo cliente final. cada uma com finalidades e capacidades diferentes. dependendo da qualidade desejada. A compressão típica da camada 1 é de 2:1 enquanto a da 3 é de 10:1. Como se espera que esse áudio não sofrerá novos ciclos de processamento. Enquanto a camada 1. Um erro comum é confundir o MP3 com MPEG-3. etc) onde o nível de perda de qualidade deve ser mínimo devido à necessidade de pré-processamento.Processamento Digital de Sinais – Prof. Enquanto o MPEG-3 deveria ter sido um formato para compressão tanto de áudio como de vídeo o MP3 responde apenas pela compressão de áudio do MPEG-1. A utilização dos limites da audição humana baseia-se em três princípios básicos: . além das técnicas habituais de compressão. grupo de trabalho de especialistas de Tecnologias da Informação vinculado ao ISO e à CEI. As taxas de compressão alcançadas pelo MP3 chegam a até 12 vezes. 100 Hz como taxa de amostragem. sendo que estes valores podem variar de indivíduo para indivíduo e também com a idade (com o envelhecimento perdemos a capacidade de ouvir frequências mais altas). Ou seja. o MP3 utiliza-se desta propriedade para obter compressão em arquivos de áudios. Assim. basta amostrar a 40 KHz. devido às suas limitações físicas. . para garantir a reprodução de um sinal. os mesmos não serão percebidos por um ser humano.Processamento Digital de Sinais – Prof. neste caso. como a frequência máxima de interesse é 20 KHz. que remove todos os componentes de frequência fora da faixa de interesse. Ou seja. Assim. Dessa forma. Faixa de frequência audível humana: O ouvido humano. pois ao serem reproduzidos. Carlos Alexandre Barros de Mello Página 285 • Faixa de frequência audível dos seres humanos. a percepção da intensidade de um som varia com a frequência em que este se encontra. Utiliza-se 44. De acordo com o Teorema de Nyquist. pois leva-se em consideração 10% de tolerância e busca-se um valor produto dos quatro primeiros números primos (Obs: (2x3x5x7)^2 = 44100). acima de 20 Khz. Esta é a primeira limitação da audição humana do qual o sistema MP3 faz uso para alcançar altas taxas de compressão. Apesar da faixa de audição humana variar entre 20Hz e 20KHz. • Limiar de audição na faixa de frequência audível. sendo que o que se faz é descartar amostras que se encontrem abaixo deste limiar. temos de amostrá-lo pelo menos a duas vezes sua frequência máxima. ou Limiar de Audição. a sensibilidade para sons dentro desta faixa não é uniforme. não faz sentido armazenar dados referentes a sons fora desta faixa de frequência. esta taxa de amostragem funciona como um filtro passa-baixa. é capaz de detectar sons em uma faixa de frequência que varia de 20 Hz a 20 KHz. Esta abordagem é bastante intuitiva. Limiar de audição na faixa de frequência audível: Outro fator utilizado pela codificação MP3 é a curva de percepção da audição humana dentro da faixa de frequências audíveis. neste caso. Processamento Digital de Sinais – Prof. que se encontra em uma frequência próxima. o que o método de compressão do MP3 faz é identificar casos de mascaramento em frequência e descartar sinais que não serão audíveis devido a este fenômeno. identificando casos onde o mesmo ocorre e descartando sons que seriam mascarados. Em função deste comportamento. temos o chamado pós-mascaramento. sendo que isto se deve à limitação da percepção de frequências do ouvido humano. O método de compressão do MP3 utiliza-se. temos ainda o mascaramento no tempo. . deste fenômeno. ou “audiabilidade diminuída de um som devido à presença de outro”. Se um som é mascarado após um som mais forte. No caso de um som ser mascarado antes do som mais forte. o limiar de audição é modificado (aumentado) na região próxima à frequência do som que causa a ocorrência do mascaramento. O mascaramento em frequência ocorre quando um som que normalmente poderia ser ouvido é mascarado por outro. sendo que este ocorre quando um som forte é precedido por um mais fraco que se encontra em uma frequência próxima à do primeiro. O pré-mascaramento existe só por um curto momento. podendo variar de 100 Hz a 4 KHz. Ou seja. o que permite reduzir a informação de áudio consideravelmente sem mudança audível. temos o que chamamos de pré- mascaramento. enquanto que o pós-mascaramento tem efeito por até 200 ms. Carlos Alexandre Barros de Mello Página 286 • Mascaramento em frequência e mascaramento temporal. este som mais fraco não será percebido pela audição humana. Além do mascaramento em frequência. O mascaramento em frequência depende da frequência em que o sinal se encontra. podendo este ser em frequência ou no tempo. Se o intervalo de tempo entre os dois for suficientemente pequeno. de maior intensidade. uma última propriedade da audição humana ainda é utilizada pelo método é o chamado mascaramento auditivo. Mascaramento em frequência e mascaramento temporal: Por fim. portanto. cerca de 20ms. o Instituto Fraunhofer enviou um comunicado a diversos desenvolvedores de programas MP3. Carlos Alexandre Barros de Mello Página 287 A Thomson Consumer Electronics controla o licenciamento da patente do MPEG-1/2 Layer 3 nos poucos países que reconhecem patentes de software. tais como Estados Unidos da América e Japão.4.4 Implementações no MatLab 10. O comunicado informava que o licenciamento era necessário para "distribuir e/ou vender decodificadores e/ou codificadores". portanto. É possível abrir arquivos MPEG também. é necessário obter uma licença". aceitando alguns CODECs (codificadores/decodificadores) mais conhecidos como o XViD. 10. exigindo cobrança de royalties por essa patente. Funções de Video file import/export: • aviread – Lê arquivo de vídeo (AVI) • aviinfo . e que os produtos não licenciados infringiam os "direitos sobre a patente do Instituto Fraunhofer e da Thomson.Retorna informação sobre o arquivo AVI • avifile . O sistema empregado pelo MP3 também possibilita transmissões por streaming.Processamento Digital de Sinais – Prof.Cria um novo arquivo AVI • mmreader – Lê frames de vídeo de um arquivo multimídia (como MPEG) . de suas respectivas patentes. Para produzir. vender e/ou distribuir produtos que se utilizem do padrão MPEG-1/2 Audio Layer 3 e. trabalhando mais facilmnte com arquivos do tipo AVI (Audio Vídeo Interleave).1 Processamento de Vídeo no MatLab O MatLab tem algumas funções para processamento de vídeo. onde o arquivo pode ser interpretado na medida em que é feito o download ou em que é baixado (não é necessário que o arquivo chegue inteiro para iniciar a reprodução). Em setembro de 1998. avi') info = Filename: 'D:\MATLABR2008b\work\video1.mov – não do Quicktime) Exemplo: >> info = aviinfo('video1. A leitura do arquivo de vídeo é feita pelo comando aviread (arquivo AVI): >> mov = aviread('video1.Height.Processamento Digital de Sinais – Prof.avi'). Carlos Alexandre Barros de Mello Página 288 • mmfileinfo .2950e+007 NumColormapEntries: 0 Para acessar as informações: >> info. >> w = info.avi' FileSize: 2997760 FileModDate: '03-mai-2010 19:53:44' NumFrames: 13 FramesPerSecond: 15 Width: 320 Height: 240 ImageType: 'truecolor' VideoCompression: 'none' Quality: 4. É possível acessar um frame específico do arquivo de vídeo: .Retorna informação sobre o arquivo multimídia • movie2avi – Cria filme AVI a partir de um filme MATLAB (.Width.NumFrames ans = 13 >> h = info. O parâmetro repetições indica quantas vezes o vídeo será repetido. info. 3). temos um arquivo de imagem que pode ser exibido como tal: >> imshow (mov1) Para exibição do vídeo podemos usar o comando movie: >> movie(mov. Mas o arquivo de saída continua sendo um arquivo de vídeo: >> whos Name Size Bytes Class Attributes mov 1x1 230648 struct Observe que a saída mov é do tipo struct.Processamento Digital de Sinais – Prof. A conversão de imagens para frame é feita com o comando im2frame: >> mov1(i) = im2frame(imagem. o 3º frame está sendo lido. repetições.cdata. Carlos Alexandre Barros de Mello Página 289 >> mov = aviread('video1. No caso. .avi'. >> mov mov = cdata: [240x320x3 uint8] colormap: [ ] >> mov1 = mov. Agora. map).FramesPerSecond). As funções (para imagem e vídeo) podem ser acessadas através do munu Vídeo and Image Processing Blockset conforme a Fig.Processamento Digital de Sinais – Prof.8).7. Variando i criamos o arquivo de vídeo a partir de diversas imagens. Acesso aos blocos de processamento de imagem e vídeo pelo Simulink. Carlos Alexandre Barros de Mello Página 290 Isso faz com que imagem seja inserida como frame i do arquivo de vídeo mov1 com mapa de cores especificado em map. O MatLab permite também o processamento de vídeo usando o módulo Simulink. 10. 10. Fig. As possíveis entradas para o sistema são acessadas pelo item sources enquanto as saídas podem ser geradas pelos blocos sinks (Fig.7. 10. . 8. . A Fig. 10.Processamento Digital de Sinais – Prof. Para executar a simulação. Entrada e saída de dados multimídia via Simulink.9 apresenta um esquema simples com um vídeo exemplo do MatLab inserido e apresentado. basta clicar em Simulation- >Start (tecla de atalho: CTRL+T). 10. Carlos Alexandre Barros de Mello Página 291 Fig. Processamento Digital de Sinais – Prof.11. Sequência de blocos do Simulink para apresentar um vídeo. 10. 10. Execução de uma rotação em um vídeo .10.12 (uma transformação geométrica). 10. Carlos Alexandre Barros de Mello Página 292 Fig.11 (uma rotação) e na Fig. 10. Outros blocos podem ser colocados entre a entrada e saída para gerar processamento do vídeo como na Fig. Fig. é importante informar a frequência de amostragem: >> soundsc (som. O parâmetro ‘1’ indica que a gravação é feita em apenas um canal (mono) e não em estéreo. Para tocar o som. Às vezes.12. Esse comando grava 16000 amostras com uma taxa de amostragem de 8 kHz e o armazena no vetor som do tipo double. Execução de uma transformação geométrica em um vídeo 10. 8000. Carlos Alexandre Barros de Mello Página 293 Fig.Processamento Digital de Sinais – Prof. O arquivo de som pode ser plotado em um gráfico como um vetor comum: . ‘double’). 1.4. 8000). 10. basta usar o comando soundsc: >> soundsc (som).2 Processamento de Áudio no MatLab Um som pode ser gravado com a função wavrecord que gera um arquivo do tipo wav: >> som = wavrecord (16000. É comum precisarmos trabalhar com o arquivo de som normalizado. usando a função filter: >> y = filter (b. . onde a e b são os coeficientes do filtro a ser aplicado (para filtros FIR. A leitura de um arquivo wav pode ser feita com o comando wavread: >> som = wavread (‘teste. ou >> [som. Para tanto. Isso não muda o sinal apenas o apresenta com amplitude entre -1 e 1. O comando wavread não permite que o parâmetro de entrada seja uma variável com o nome do arquivo. som). Nesse segundo caso.wav’). Carlos Alexandre Barros de Mello Página 294 >> plot (som). fs] = wavread (‘teste. a = 1). A entrada precisa ser especificamente o nome do arquivo de som. O processamento do sinal de áudio pode ser feito através de filtros como o processamento de sinais.Processamento Digital de Sinais – Prof. usamos: >> som = som/max(abs(som)).wav’). a frequência de amostragem do sinal é salva na variável fs. a. >> plot (som). 256). >> plot (abs(som_spec)). Calculando a transformada de Fourier: >> som_spec = fft (som. .Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 295 Exemplo 1: >> som = wavread(‘a_casa.wav’). Um gráfico em formato mais padrão pode ser obtido com as baixas frequências centralizadas: >> plot (abs(fftshift(som_spec))). Processamento Digital de Sinais – Prof.9375]. 1.13). 22000). 22000). >> y = filter(h. a seguir (Fig. end >> soundsc(outsp. assim como suas transformadas de Fourier: . >> soundsc(y.9375z-1: >> h = [1 -0. 1. Ouviremos um som mais nasal. >> n = floor(length(som)/w). segf = filter(h. Observem. seg). >> for k=1:n seg = som(1+(k . 10. som). Vamos fazer o mesmo processamento. a plotagem do sinal original (som) e filtrado (outsp).1)*w:k*w). Carlos Alexandre Barros de Mello Página 296 Suponha um filtro IIR com função de transferência: H(z) = 1 – 0. outsp(1+(k-1)*w:k*w) = segf. mas dividindo o som em amostras de 240 frames cada que serão filtradas individualmente e re-agrupadas depois: >> w = 240. . Carlos Alexandre Barros de Mello Página 297 Fig.Processamento Digital de Sinais – Prof. (coluna da esquerda) Sinal original e sua transformada e (coluna da direita) sinal filtrado e sua transformada. 10.13. 8192)).001:5]. >> f = abs(fft(z. 1024). >> s = spectrogram(z. >> plot(f(1:4096)). .5. >> waterfall(abs(s)'). Carlos Alexandre Barros de Mello Página 298 Exemplo 2: Como um exemplo da dificuldade de analisar um sinal que muda constantemente. Mas esse gráfico representa mesmo o sinal que criamos? Vamos observar melhor o sinal quebrando ele em janelas e plotando-as como uma “queda d’água” (waterfall) para ver como as frequências mudam pelo tempo. vamos construir um sinal “ágil na frequência” (um que muda rapidamente suas características de frequência): >> y = chirp([0:0. y(length(y):-1:1).Processamento Digital de Sinais – Prof. >> soundsc (y). y]. % Escute o som para entende-lo!! >> z = [y.0.500). Carlos Alexandre Barros de Mello Página 299 A plotagem em “queda d’água” mostra cerca de 30 pedaços no tempo. cada um correspondendo a uma FFT-512 e indicando claramente que diferentes componentes de frequência estão presentes durante cada período de tempo. 256). >> waterfall(abs(s)').Processamento Digital de Sinais – Prof. . Veja o resultado para diferentes FFTs de N-Pontos: >> s = spectrogram(z. waterfall(abs(s)'). 8192).Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 300 >> s = spectrogram(z. . >> figure. 5)). Esse vetor cnote contém amostras da onda senoidal de t = 0s a t = 0.25*(0:0. Carlos Alexandre Barros de Mello Página 301 Exemplo 3: Criando música no MatLab: Primeiro.htm.5s.wav’). O seguinte site apresenta a frequência de diferentes notas (apresentadas na tabela a seguir): http://www. .25 Hz (correspondente a um pitch C em um piano.Processamento Digital de Sinais – Prof. E temos a primeira nota.000125s (que é o intervalo de amostragem Ts). ‘c. as amostras são separadas de 0. uma oitava acima do C médio): cnote = sin(2*pi*523.dolmetsch. Note que esse intervalo de amostragem corresponde à frequência de amostragem de 8 kHz (1/Ts = fs). Podemos graver esse som com o comando wavwrite: wavwrite(cnote.000125:0. com uma frequência de 523. vamos crier uma onda senoidal de amplitude A = 1.com/musictheory27. e. e toque com sound() ou soundsc().d. Observe que existem diferentes oitavas da mesma forma que existem diferentes teclas em um piano. line2 = [a.f].5)).99*(0:0.c. Pas de música faça: line1 = [a. As letras correspodem às notas que você cria no MatLab de acordo com a tabela anterior. podemos criar diferentes notas no MatLab. . Aqui estão algumas no MatLab: f = sin(2*pi*174.000125:0. Carlos Alexandre Barros de Mello Página 302 Usando essa informação.000125:0. b = sin(2*pi*246.61*(0:0.Processamento Digital de Sinais – Prof.e. Coloque as notas na ordem que você quiser tocá-las.000125:0. line2].94*(0:0.b.000125:0.5)).c. g = sin(2*pi*195.f].5)).5)).d.b. Para crier uma música use: song = [line1. a = sin(2*pi*220*(0:0. Como podemos avaliar a qualidade de um algoritmo de compressão para imagens estáticas ou dinâmicas (vídeos)? 3. Cite os princípios básicos de funcionamento da compressão MP3.m). você acha que o algoritmo seria eficiente para compressão ou não? 4.avi e calcule com PSNR a diferença entre os frames.5 Exercícios 1. No mesmo arquivo de voz.bmp.Processamento Digital de Sinais – Prof. Implemente no MatLab o Código de Huffman e aplique-o para compressão do arquivo de voz sentence. No MatLab. 2. definidos pela psicoacústica. capture dois frames próximos do arquivo vipmen.wav. implemente a técnica DPCM e apresente qual a maior diferença entre tons adjacentes que ela possui. Nesse caso. Usando o MatLab (funções dct2. 6.m e idct2. . calcule através do uso do PSNR a perda provocada pelo uso da DCT na imagem lena. 5. Carlos Alexandre Barros de Mello Página 303 10. C.Introduction to Information Theory and Data Compression. Academic Press. 2003. 3. CRC Press.Bovik.A Practical Guide to Video and Audio Compression.Wootton.C. 2.Processamento Digital de Sinais – Prof.6 Bibliografia Complementar 1. 2009. Carlos Alexandre Barros de Mello Página 304 10. 2005.Hankersson . . Focal Press. D. The Essential Guide to Video Processing. A. cordas vocais. A voz é um tipo específico de som. Carlos Alexandre Barros de Mello Página 305 11. . A voz consiste de um conjunto de sons que podem ser gerados pelo ser humano.Processamento Digital de Sinais – Prof. Exemplo de plotagem de um sinal de voz. Fig. os sons são variações na pressão do ar ao longo do tempo em frequências que podemos ouvir. Outra maneira de caracterizar o sinal de voz é como sendo uma onda acústica que carrega a informação. De uma forma geral. etc). O sinal de voz pode ser plotado (Fig. Para o processamento de voz. O propósito primário da voz é comunicação. 11. Isso acontece porque a radiação de voz da boca faz com que a pressão do ar seja temporariamente maior ou menor que a pressão do ar do ambiente. a voz pode ser representada em termos de conteúdo ou informação. As articulações movem-se em resposta a estes sinais neurais para desempenhar uma sequência de gestos os quais resultam em uma forma de onda acústica que contém a informação da mensagem original.1) como uma forma de onda na qual podemos observar valores positivos e negativos. 1945]. Processamento de Voz O som é uma vibração que propaga pelas moléculas do ar até nossos ouvidos. o mais comum é entendermos o sinal de voz como sendo uma onda ou algum modelo paramétrico como discutiremos posteriormente. De acordo com a Teoria da Informação conforme definida por Claude Shannon [Shannon.11.1. A Informação gerada no cérebro é convertida em um conjunto de sinais neurais os quais controlam o mecanismo articulatório (movimentos da língua. um som pode ser uma voz ou não. lábios. Logo. o inglês possui 42 fonemas). vemos a figura humana como sendo a fonte de informação. se encaixa em todo o universo do sinal de voz. Nela. ou seja.2 mostra onde o processamento de sinais. A voz é transmitida.Preservação do conteúdo da mensagem no sinal de voz. Por fim. . Assim. Um fonema é uma unidade de voz. Essa informação é convertida para algum meio observável (a forma de onda) o qual é pode sofrer diferentes representações (como a mudança para o domínio da frequência) e transformações. Ou seja. A Fig. 11. armazenada e processada de maneiras diferentes de modo a preservar o seu conteúdo. de onde a voz é gerada. o sinal transformado é utilizado novamente pelo homem ou por algum dispositivo. pode ser representada como uma concatenação de um conjunto finito de símbolos – fonemas. Carlos Alexandre Barros de Mello Página 306 A informação que é comunicada através do sinal de voz é intrinsicamente discreta. de uma forma geral. O interesse em qualquer sistema é: . Na fala usamos cerca de 10 fonemas por segundo o que leva a uma taxa média de informação de 60 bits/seg. um código de 6 bits pode representar todos os fonemas.Processamento Digital de Sinais – Prof.Representação do sinal de voz em uma forma que seja conveniente para transmissão ou armazenamento ou numa forma flexível tal que modificações possam ser feitas sem degradar o conteúdo do sinal de voz. ou seja. . o equivalente escrito da voz contém informação equivalente a 60 bits/seg para uma taxa normal de fala. o conjunto que define todos os sons dos quais palavras podem ser construídas em uma linguagem particular: as línguas possuem cerca de 30 a 50 fonemas distintos (por exemplo. . Há diversas vantagens dos sistemas digitais para os analógicos: . mas mais apropriadas para aplicações específicas.2. O processamento digital de sinais (PDS) tem interesse na obtenção de representações discretas dos sinais e no design e implementação de procedimentos numéricos para processar essa representação.Grande capacidade de integração.Sistemas digitais são mais confiáveis. PDS tornou-se viável devido à criação de processadores mais rápidos e a avanços teóricos quanto ao tema. para simular sistemas analógicos. Visão geral da manipulação e processamento da informação. Em meados da década de 60. primeiramente. 11. O processamento do Sinal de Voz é o veículo para obtenção de uma representação geral do sinal tanto como forma de onda ou na forma paramétrica Ele serve como função auxiliar no processo de transformar a representação do sinal em formas alternativas que sejam mais gerais em natureza. podendo ser implementados em um único chip. Carlos Alexandre Barros de Mello Página 307 Fig.Processamento Digital de Sinais – Prof. As técnicas digitais surgiram. . 1) spect=fft(y. Dado o sinal de voz abaixo: Trata-se de um sinal de voz ruidoso contendo a expressão “a casa” com um ruído de fundo. b = fir1(98.Maior segurança de informação (permite inclusão de elementos de criptografia).Permitem comunicação em canais ruidosos. fs] = wavread('casa1. filt_sp=filter(b. O propósito do processamento digital pode ser: • Saber se determinado sinal corresponde a um sinal de voz ou não • Classificar uma seção de um sinal de voz como: o voz audível (voiced speech) o voz inaudível (unvoiced speech) o silêncio ou ruído de fundo • Redução de ruído Para redução de ruído. a filtragem digital do sinal usando filtros FIR ou IIR pode trazer bons resultados. Esse sinal pode ser filtrado com a redução do ruído através do uso de uma janela de Hanning conforme o código: [y. hanning(99)).1. Vejamos o exemplo a seguir. . 256).Baixo custo. 31/80. f = 0:8000/(127):8000.1. subplot(2. . por exemplo.wav').y). Carlos Alexandre Barros de Mello Página 308 . .Processamento Digital de Sinais – Prof. abs(filt_spect(1:128))/max(abs(filt_spect(1:128)))).wav'). filt_spect=fft(filt_sp.2). 256). abs(spect(1:128)))/max(abs(spect(1:128))). 'casa1_firfilt. fs. Gerando como resposta o seguinte sinal: Os sonogramas abaixo mostram o resultado da aplicação do filtro no domínio da frequência.1. wavwrite (filt_sp. Carlos Alexandre Barros de Mello Página 309 plot(f. sendo esse o sinal original: e esse o sinal filtrado: . xlabel ('frequencia').Processamento Digital de Sinais – Prof. subplot(2. plot(f. A representação em forma de onda está preocupada com a preservação da forma de onda do sinal analógico através de um processo de amostragem e quantização. o sinal amostrado e quantizado). . a implementação das técnicas de processamento e a classe de aplicações. de fundamental importância para todo o processo. o sinal é tratado para obtenção dos parâmetros necessários para sua representação. Carlos Alexandre Barros de Mello Página 310 Considerando a aplicação de técnicas de processamento digital de sinais a problemas de comunicação por voz. começa com a forma de onda (ou seja. claro. Esses parâmetros são classificados em parâmetros de excitação (relativos à fonte da voz) e parâmetros do trato vocal (relativos a sons de voz individuais).Processamento Digital de Sinais – Prof. o processo de amostragem é o passo inicial de toda a teoria e aplicações do processamento digital da voz.3): representações em forma de onda e representações paramétricas. Essas representações podem ser classificadas em dois grandes grupos (Fig. em geral. A seguir. Essa conversão é guiada pelo teorema da amostragem que diz que um sinal banda-limitado pode ser representado por amostras colhidas periodicamente no tempo desde que elas sejam tomadas a uma taxa alta o suficiente (teorema de Nyquist). 11. Assim. Já a representação paramétrica está preocupada com a representação do sinal de voz como a saída de um modelo para produção de voz. A representação do sinal de voz na forma discreta é. A obtenção de uma representação paramétrica. Existem muitas formas de representar um sinal de voz. é interessante observar três aspectos principais: a representação do sinal de voz na forma digital. 4 exemplifica algumas delas.Processamento Digital de Sinais – Prof. leitura de textos é a preocupação em métodos de síntese de voz. por exemplo. O reconhecimento de interlocutor pode estar associado a questões de segurança. . A produção de voz humana para. Muitas dessas aplicações são naturalmente indicadas para ajudar pessoas com necessidades especiais como deficientes visuais. O sinal de voz pode ser melhorado com eliminação de ruído ou eco como um pré- processamento para quaisquer das aplicações anteriores. onde um dado sistema só se torna acessível se padrões de voz permitidos forem reconhecidos. O reconhecimento da fala pode permitir que o computador atenda a comandos vocais. A transmissão e o armazenamento digital relacionam-se com técnicas de compressão do sinal de voz. Representações do sinal de voz. 11. Existem diversas aplicações relacionadas com processamento do sinal de voz.3. onde os maiores problemas estão relacionados com a criação automática de elementos como entonação da voz e a produção de um texto que soe natural ao nosso sistema auditivo. A Fig. Carlos Alexandre Barros de Mello Página 311 Fig. 11. 5. Fig. 11. Um sinal é geralmente representado por um padrão que varia no tempo.4. Esta sequência pode ser vista como uma sequência de amostras de um sinal analógico feitas com período de amostragem T: xa(nT). 11. A Fig. É possível representar um sinal como uma sequência de números: x(n).Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 312 Fig. Aplicações relacionadas com processamento de voz.5 ilustra essa representação. . 11. vamos fazer uma breve revisão de alguns conceitos básicos de processamento de sinais. 11. A voz produzida pelo ser humano é desta natureza: x(t).1 Amostragem e Quantização Dada a relação direta entre processamento de voz e processamento de sinais. Representação de um sinal de voz na forma de onda e amostrado. Elas podem ser definidas como: Impulso: δ(n) = 1. . u(n) = 0. A Fig. 11. para n = 0. caso contrário Degrau Unitário: u(n) = 1. Sequência de impulsos representando uma função exponencial discreta. Fig.Processamento Digital de Sinais – Prof. A discretização do sinal é um passo fundamental para que o processamento posterior aconteça de forma adequada. 11.6). Carlos Alexandre Barros de Mello Página 313 As funções básicas para o processamento digital de sinais são o impulso e o degrau unitário.6. podemos afirmar que: δ(n) = u(n) .7 ilustra os possíveis resultados da discretização de uma função com diferentes taxas de amostragem. 11. caso contrário No caso. e δ(n) = 0.u(n – 1) É através da função impulso que podemos representar as amostras de um sinal digitalizado (Fig. resultando em um sinal de boa ou de má qualidade. para n ≥ 0. O quantizador é responsável então pela discretização do sinal em amplitude. É por isso que há uma certa dificuldade em reconhecer uma voz ao .Processamento Digital de Sinais – Prof. pelo menos. Na Fig. Além da amostragem. O sinal de voz não é banda limitado. Uma representação fiel da voz exige uma taxa de amostragem de. gerando o sinal discreto final.5 kHz. Fig. Carlos Alexandre Barros de Mello Página 314 a) b) Fig. Se um sinal analógico for banda limitado e amostrado na taxa de Nyquist pode- se reconstruir o sinal original. sendo inserido em um amostrador que cuida da discretização do sinal no tempo.8. 11. 11. 20 kHz.7. Amostragem e quantização. o sinal de voz passa por outro processo para ser digitalizado: a quantização. 11. As frequências que mais contribuem para o sinal de voz estão abaixo de 3. a) Sinal amostrado com uma taxa apropriada para sua recuperação e b) o mesmo sinal amostrado de forma incorreta (baixa taxa de amostragem) tornando impossível uma recuperação fiel ao original. podemos ver o sinal de entrada contínuo.8. embora o espectro tenda a cair rapidamente para frequências mais altas. 11. A quantização pode ser: a) Quantização Instanânea. podemos. Na prática é geralmente impossível distinguir entre eles. Carlos Alexandre Barros de Mello Página 315 telefone.9. o sinal é decodificado. para a maioria das aplicações. Números binários são usados para representarmos os níveis de quantização. c) Companding Instanâneo. O sinal amostrado. Esse sinal é transmitido e decodificado. Processo de quantização. 11. gerando o sinal codificado c(n). codificação e envio do sinal. c(n) = c’(n). Se a transmissão foi sem erro. é quantizado com um passo ∆. o sinal recebido c’(n) deverá ser igual a c(n). Podemos representar a quantização como na Fig. Dá-se o mesmo valor a todas as amostras dentro de um mesmo . Na transmissão.Processamento Digital de Sinais – Prof. b) Quantização Uniforme. É conveniente separar os processos de amostragem e quantização. utilizar uma taxa de Nyquist de 8 kHz. Fig. d) Quantização Adaptativa. Na quantização instantânea as amplitudes das amostras são quantizadas dividindo-se a amplitude em um conjunto finito de pequenas variações de amplitude. Se não houve erros na transmissão. x(n). Se passarmos o sinal de voz por um filtro passa-baixa.9. 11.11 apresenta esses dois quantizadores para uma quantização de 3 bits como na Fig. a origem aparece no ponto médio da parte crescente de uma função escada. O quantizador mid-riser é conveniente quando temos o número de níveis uma potência de 2. O quantizador mid-riser não possui o nível zero. 11. A Fig. No mid-riser.11. O quantizador mid-tread possui um nível negativo a mais que positivo.10) e conseqüentemente o número de diferentes sequências de rotulação é o fatorial de 8. Quantização instantânea com 3 bits. O quantizador mid-tread possui o zero (000) no meio da escala o que é útil em diversas aplicações.10. Pode-se ter desde a codificação direta a escolhas que tentem manter equilibrada a potência utilizada entre os bits da amostra em relação a origem.Processamento Digital de Sinais – Prof. Para uma representação em 3 bits há 8 possíveis rótulos (Fig. O mid-riser possui o mesmo número de níveis positivos e negativos que estão simetricamente posicionados em relação à origem. 11. Existem duas classes de quantizadores uniformes: mid-riser e mid-tread. 11. Carlos Alexandre Barros de Mello Página 316 patamar de amplitude. . Fig. etc. Q quantização uniforme exige uma mesma distância entre xi e xi-1. Carlos Alexandre Barros de Mello Página 317 a) b) Fig.Processamento Digital de Sinais – Prof. 11. .11. Quantizadores de 3 bits: a) mid-riser e b) mid-tread. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 318 Companding é uma expressão que significa compress + expand. Para tornar a porcentagem de erro constante os níveis de quantização devem ser espaçados logaritmicamente. Para tanto, o logaritmo da entrada é quantizado ao invés da própria entrada: y(n) = ln|x(n)| Cujo inverso é: x(n) = exp[y(n)]sgn[x(n)] Dessa maneira, pode-se mostrar que o nível sinal-ruído é independente da variância do sinal. Problemas acontecem com pequenas amplitudes (x[n] ≈ 0). A Fig. 11.12 apresenta em diagrama de blocos como se desenvolve a codificação e a decodificação do sinal. Fig. 11.12. Representação da técnica de companding. O problema da quantização é quanto a quantidade de degraus. Desejamos fazer essa quantidade suficientemente grande para termos uma varredura pico-a-pico do sinal. Mas isso implica mais níveis de quantização. Porém, mais níveis de quantização implica em uma cpdificação com mais bits o que implica em maior tempo de processamento/espaço de armazenamento; o que não é interessante. Esse é o grande dilema. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 319 Uma solução está em utilizar um quantizador não-uniforme. Alternativamente, pode-se adaptar as propriedades do quantizador aos níveis do sinal de entrada. O tamanho do degrau ∆ varia casadamente com a variância do sinal de entrada. A Fig. 11.13 apresenta o comportamento de um tal quantizador. Fig. 11.13. Quantização adaptativa. 11.2 Técnicas Temporais para Processamento de Voz Técnicas temporais para processamento de voz envolvem a forma de onda do sinal diretamente (em contraste com métodos do domínio da frequência). São simples de implementar e ricas em informação. As técnicas mais difundidas são: a) Taxa de passagem pelo Zero (zero-crossing rate); b) Energia do Sinal; c) Magnitude do Sinal; d) Auto-Correlação. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 320 As propriedades do sinal de voz variam com o tempo: a excitação muda entre a voz audível e não audível; a amplitude do sinal varia; há uma variação significativa da frequência fundamental para a voz audível. Essas propriedades são nitidamente observáveis na forma de onda. Por isso, os métodos podem ser aplicados no domínio do tempo, diferente de outros tipos de sinais que são preferivelmente tratados no domínio da frequência. A maioria dos sistemas de processamento de voz assume que as propriedades da fala mudam relativamente devagar com o tempo. Afinal, não há variações bruscas num fonema ou entre fonemas. Assim, podem-se utilizar métodos de processamento em tempo curto (short-time), nos quais analisam-se amostras de curta duração do sinal. Cada segmento curto de voz é visto como um som estável com propriedades fixas. Às vezes, esses segmentos se sobrepõem. Essas amostras de curta duração são geralmente chamadas de moldura de análise (analysis frames). O resultado da análise de uma moldura pode ser um número ou um conjunto de números. A sequência gerada pode ser tomada como uma nova representação no tempo do sinal original. É geralmente assumido que o sinal de voz foi limitado em faixa e que foi amostrado em taxa não inferior a taxa de Nyquist (pelo menos 8.000 amostras/segundo). É também considerado que o sinal foi quantizado e que o erro de quantização é desprezível. A maioria das técnicas de processamento em tempo curto pode ser representada pela equação: ∞ Qn = ∑ T [ x(m)]w(n − m) m = −∞ (Eq. 11.1) o sinal de voz, x(.), é submetido a transformação T[ ], linear ou não, a qual pode depender de um conjunto ajustável de parâmetros. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 321 Observando a Eq. 11.1, podemos vê-la como uma operação de convolução da transformação do sinal de entrada x() por uma função w. Aqui, podemos entender w como uma sequência de janelas posicionadas em um tempo correspondente a amostra índice n (Fig. 11.14). O produto é somado sobre todos os valores diferentes de zero. Geralmente, w é de duração finita, mas pode ser infinita. Fig. 11.14. Processamento de um sinal de voz em uma janela w. 11.2.1 Energia de Curta Duração Das técnicas temporais para processamento de voz a mais simples é a Energia de Curta-Duração. A amplitude do sinal de voz varia apreciavelmente com o tempo. A voz audível apresenta amplitude maior que a voz inaudível ou o silêncio (ruído de fundo), assim, a energia de curta duração de um sinal provê uma representação conveniente que reflete as variações de amplitude. A energia de um sinal discreto no tempo pode ser definida como: ∞ E= ∑x m = −∞ 2 (m) Em relação à equação de Qn (Eq. 11.1), temos: T[ ] = quadrado w(n) = 1, 0 ≤ n ≤ N – 1 e 0, caso contrário. A energia de tempo curto de um sinal de voz pode ser definida como: Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 322 ∞ En = ∑ [ x(m).w(n − m)] m = −∞ 2 que pode ser re-escrita como: ∞ En = ∑ x (m) .h(n − m) m = −∞ 2 com h(n) = w2(n). Observamos que En é um número e não uma função. Um problema relacionado ao processamento em tempo curto é o tamanho da janela. Para o caso da Energia, por exemplo, se a janela for muito longa e constante em amplitude, En varia muito pouco em relação ao tempo. Essa janela seria equivalente a um filtro de passa-baixa de banda (muito) estreita. Uma janela estreita demais não consegue produzir uma função suave de energia. Se a janela for muito estreita, não proverá medições suficientes para produzir uma função de energia suave. Se a janela for da ordem de vários picos do sinal, En não vai refletir as variações do sinal. Esse conflito é de grande importância na representação em tempo curto de sinais de voz. Dessa maneira o tamanho da janela varia desde: a) 20 amostras para uma voz aguda de mulher ou criança; b) 250 amostras para uma voz grave de homem. Na prática, para uma frequência de amostragem do sinal de 10 kHz deve-se utilizar uma janela da ordem de 100 < N < 200 amostras (10 ms < t < 20 ms). A maior significância de En está em conseguir distinguir entre segmentos com voz audível e voz inaudível. Os valores de En são significativamente maiores para sinais audíveis. En pode ser usada para determinar o tempo onde um sinal audível torna-se inaudível e vice-versa; se o sinal for de boa qualidade pode-se distinguir a voz do silêncio. Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 323 11.2.2 Magnitude de Curta Duração Outra técnica de processamento em tempo curto é a Magnitude de Curta Duração. O cálculo da energia é muito sensível a níveis altos de sinal (devido à potenciação na computação de En). Uma maneira de aliviar este problema é utilizar-se uma função de magnitude média: ∞ Mn = ∑ | x(m) | w(n − m) m = −∞ Essa função é de aritmética mais simples que a energia, porém tem menor capacidade de diferenciação entre voz audível e inaudível. Tanto para a Energia quanto para a Magnitude de Curta Duração para uma janela de 20ms uma taxa de amostragem de 100 amostras/seg. é adequada. A janela não precisa ser restrita a qualquer função comumente utilizada como filtro. Ela também não precisa ser retangular; é necessário apenas que o filtro seja suave e passa-baixa. Pode ser um filtro FIR ou IIR; sugere-se FIR, pois a saída é mais fácil de ser computada a uma baixa taxa de amostragem. A janela não precisa ter dimensão finita; basta que a Transformada-Z seja uma função racional. Por exemplo, se: h(n) = an ,n≥0 =0 ,n<0 ou seja, h(n) = anu(n) Um valor de 0 < a < 1 dá uma janela cuja duração efetiva pode ser ajustada como desejado (Fig. 11.15). Isso pode produzir um LPF com banda-passante mais larga ou mais estreita. A transformada Z é dada por: 1 H ( z) = , ROC = |z|>|a| 1 − az −1 11.F0/Fs passagens/amostra .3. Um valor de a entre 0 e 1 pode produzir janelas de maior ou menor banda-passante. A taxa com que há a passagem pelo zero é apenas uma medida do conteúdo de frequência do sinal. Este fato é particularmente verdadeiro para sinais faixa-estreita. 11. A Energia e a Magnitude devem ser calculadas para cada amostra do sinal de entrada.Processamento Digital de Sinais – Prof. Cada ciclo possui duas passagens pelo zero (Fig. possui Fs/F0 amostras por ciclo de senóide. Carlos Alexandre Barros de Mello Página 324 Que possui as propriedades de um filtro passa-baixa. Fig. correspondendo a filtros causais com fase linear. Um sinal senoidal de frequência F0. 11.2. ou seja. Esse conceito define a técnica de processamento de Passagem pelo Zero em Tempo Curto.16). amostrado numa taxa Fs. a taxa média de passagens pelo zero é: Z = 2. Taxa de Passagem pelo Zero Diz-se que houve uma passagem pelo zero quando duas amostras sucessivas possuem sinais diferentes.15. se x(n) ≥ 0 = -1. Assim. a interpretação da taxa média de passagem pelo zero é menos precisa. 11.Processamento Digital de Sinais – Prof. para 0 ≤ n ≤ N-1 = 0. A maior parte da energia para sinais de voz não audíveis é de alta-frequência: altas frequências implicam uma taxa alta de passagem pelo zero e baixas frequências implicam numa taxa baixa de passagem pelo zero. caso contrário O modelo para a produção da fala sugere que a energia dos sinais de voz está concentrada abaixo de 3 kHz (340 Hz a 4 KHz) devido ao corte produzido pela onda produzida na glote. portanto. Estimativas grosseiras das propriedades espectrais podem ser obtidas baseadas na taxa de passagem pelo zero média em tempo curto. há uma correlação forte entre taxa de passagem . Os sinais de voz são sinais faixa-larga e. Uma senóide tem duas passagens pelo zero em um ciclo.16. Pode-se definir: ∞ zn = ∑ | sgn[ x( m)] − sgn[ x(m − 1)] | w(n − m) m = −∞ onde sgn[x(m)] = 1. Carlos Alexandre Barros de Mello Página 325 Fig. se x(n) < 0 e w(n) = 1/(2N). Em gravações com alta relação sinal/ruído os sons da voz de menor intensidade são mais fortes que o ruído de fundo. é preferível utilizar-se um filtro passa-faixa ao invés de passa-baixa. O problema de ruído de fundo é de grande importância no reconhecimento de voz. Há uma sobreposição das distribuições de sinais audíveis e não-audíveis de forma que esta divisão não pode ser tomada somente com a informação da taxa de passagem pelo zero. o sinal é audível.Processamento Digital de Sinais – Prof. É essencial saber onde cada palavra inicia e termina. Isso dificulta a decisão entre voz audível e inaudível. o sinal é inaudível. ii) 14 vezes por 10 ms para sinais audíveis. Cuidado extremo deve ser tomado no processo analógico antes da digitalização. do contrário. Função de Autocorrelação A última técnica de processamento de sinal de voz é a Função de Autocorrelação de Tempo Curto. Para eliminar a frequência de 60 Hz da rede elétrica que pode corromper o sinal original. A taxa de passagem pelo zero é fortemente afetada por: a) sinal de rede elétrica.2. 11. A taxa média de passagem pelo zero em tempo curto é de: i) 49 vezes por 10 ms para sinais não-audíveis. A autocorrelação de um sinal determinístico discreto no tempo é dada por: ∞ Φ (k ) = ∑ x (m) x(m + k ) m = −∞ . Carlos Alexandre Barros de Mello Página 326 pelo zero e a distribuição de energia com a frequência: se a taxa de passagem pelo zero é alta. A separação Voz/Silêncio não é simples exceto no caso de gravações de alta-fidelidade em câmaras de gravação.4. b) qualquer ruído no processo de digitalização. O seguinte código do MatLab pode ser usado para estimar a frequência fundamental de um sinal usando a função de autocorrelação: [x. um segmento de voz é selecionado pelo produto com a janela.wav').1). i. plot(t.fs]=wavread('casa1. em seguida.. primeiro. a autocorrelação de uma função periódica também é periódica com o mesmo período. Carlos Alexandre Barros de Mello Página 327 A representação em função de autocorrelação de um sinal é um modo conveniente de apresentar algumas propriedades do sinal. 2) Ela alcança seu valor máximo quando k = 0. se o sinal é periódico com período de P amostras. |φ(k)|≤0.Processamento Digital de Sinais – Prof. para todo k.e. então: φ(k) = φ(k+P) Ou seja. ms20=fs/50. A técnica de autocorrelação pode ser usada para estimativa do pitch (frequência fundamental) de um sinal de voz. % minimum speech Fx at 50Hz % % plot waveform t=(0:length(x)-1)/fs.1. Outras propriedades importantes da função de autocorrelação são: 1) Ela é uma função par: φ(k) = φ(-k). A função de autocorrelação para tempo curto é definida como: ∞ Rn ( k ) = ∑ x ( m ) w( n − m ) x ( m + k ) w( n − k − m ) m = −∞ Ou seja.x). a autocorrelação é aplicada ao segmento de voz sob a janela. 3) O valor de φ(0) é igual à Energia para sinais determinísticos ou à potência média para sinais periódicos. Por exemplo. legend('Waveform'). . % times of sampling instants subplot(2. r). Podemos ver a aplicação desse código no sinal de voz correspondente ao som “a casa”.fs/(ms2+tx-1)). % % calculate autocorrelation r=xcorr(x. Nesse caso.195Hz . a frequência fundametal estimada é: Fx=512.2). % % plot autocorrelation d=(-ms20:ms20)/fs.'). % times of delays subplot(2. ylabel('Correlation coeff. plot(d. Carlos Alexandre Barros de Mello Página 328 xlabel('Time (s)'). % maximum speech Fx at 1000Hz ms20=fs/50.Processamento Digital de Sinais – Prof. xlabel('Delay (s)').'coeff'). [rmax. ylabel('Amplitude'). fprintf('rmax=%g Fx=%gHz\n'.rmax.ms20.tx]=max(r(ms2:ms20)). % Estimativa da frequencia fundamental ms2=fs/1000. % minimum speech Fx at 50Hz % just look at region corresponding to positive delays r=r(ms20+1:2*ms20+1).1. legend('Autocorrelation'). 3 Análise Cepstral O nome “cepstrum” vem do inverso da primeira metade da palavra “spectrum” (espectro) e plota a amplitude de um sinal versus sua “quefrência” (que seria o inverso da frequência). Isso significa que os componentes de frequência foram ordenados logaritmicamente. a segunda transformada pode ser a transformada inversa. na prática. A utilidade da análise do cepstrum deriva do fato que ele corresponde à transformada inversa de Fourier do logaritmo da transformada de Fourier.Processamento Digital de Sinais – Prof. Carlos Alexandre Barros de Mello Página 329 11. no domínio logarítmico. Essa técnica é útil para separar componentes de um sinal complexo formado por diversos simultâneos. . mas. então. Na matemática. se alguma expressão é a combinação multiplicativa de dois elementos. um dos princípios do logaritmo é que. de fato. O cepstrum é gerado pela transformada de Fourier de logaritmo da transformada de Fourier. mas diferentes elementos combinados. São duas transformadas de Fourier calculadas. f=(0:hz5000)*fs/length(Y). se a taxa de amostragem de um sinal de áudio é 44100 Hz e existe um pico no gráfico do cepstrum cuja quefrência é 100 amostras. A quefrência é uma medida de tempo.wav’: [x.1).x). x(t) pode ser o pitch enquanto h(t) é o componente do trato vocal. O código de MatLab abaixo estima a frequência fundamental do arquivo ‘casa1. Carlos Alexandre Barros de Mello Página 330 esses elementos são combinados aditivamente. ylabel('Amplitude'). Y = fft(x). Esse pico ocorre no cepstrum porque os harmônicos no espectro são periódicos e o período corresponde ao pitch. subplot(3. o pico indica a presença de um pitch que é 44100/100 = 441 Hz. ms1=fs/1000.x(t) então: log[y(t)) = log[h(t)] + log[x(t)] No domínio do processamento digital de voz. xlabel('Time (s)'). % mínima frequência de voz Fx em 50Hz % % plotagem da forma de onda t=(0:length(x)-1)/fs. se o sinal sob análise y(t) é igual a h(t) vezes x(t): y(t) = h(t). % plotagem do espectro abaixo de 5000Hz hz5000=5000*length(Y)/fs.fs]=wavread('casa1. % máxima frequência de voz Fx em 1000Hz ms20=fs/50.Processamento Digital de Sinais – Prof. legend('Waveform'). . plot(t. embora não no sentido de um sinal no domínio do tempo. Colocando de outra forma.1.wav'). Por exemplo. xlabel('Frequency (Hz)'). subplot(3.Processamento Digital de Sinais – Prof. legend('Cepstrum'). plot(f.1. plot(q. [c. % cepstrum C=fft(log(abs(Y)+eps)). ylabel('Magnitude (dB)'). ylabel('Amplitude').abs(C(ms1:ms20))).20*log10(abs(Y(1:length(f)))+eps)). legend('Spectrum'). Carlos Alexandre Barros de Mello Página 331 subplot(3. fprintf('Fx=%gHz\n'. Frequência estimada: 667.fs/(ms1+fx-1)).2). xlabel('Quefrency (s)'). % plotagem entre 1ms (=1000Hz) e 20ms (=50Hz) q=(ms1:ms20)/fs.1.171Hz .3).fx]=max(abs(C(ms1:ms20))). 'g'). pl2. cep2(cut) = cep(cut). o envelope espectral é uma forma mais suave do gráfico da frequência. pl1. cep2 = zeros(1. No domínio cepstral. cep2(1) = cep(1). 'k-. Carlos Alexandre Barros de Mello Página 332 Outra aplicação do cepstrum é a extração da informação de envelope para análise da voz. . span = [1:fs/len:fs/2]. % Converte para o dominio da frequencia env = real(fft(cep2)).Processamento Digital de Sinais – Prof. cep2(1:cut-1) = cep(1:cut-1)*2. onde o processo de suavização ignora os componentes de mais alta frequência. pl1 = 20*log10(env(1:len/2)). ps = log(abs(fft(som))).'). % Filtragem cut = 30. len = length(som). Na figura a seguir temos o cepstrum (em verde) e o envelope (em preto). pl2 = 20*log10(act(1:len/2)). len). act = real(fft(cep)). Em geral. figure. plot (span. isso corresponde ao descarte de todos os coeficientes cepstrais relacionados às frequências maiores que o envelope da frequência. pl1(length(pl1)) = []. fs] = wavread('casa1.wav'). plot(span. Isso pode ser conseguido no MatLab com o código abaixo: [som. pl2(length(pl2)) = []. cep = ifft(ps). Carlos Alexandre Barros de Mello Página 333 .Processamento Digital de Sinais – Prof. Explique a técnica temporal de processamento de voz de Energia de Curta Duração. Tal quantizador possui características de um quantizador mid-riser? E mid-tread? . 2. e igual a –1. É correto afirmar que a quantização de um sinal pode compactá-lo? Essa compactação seria com ou sem perda de informação? 3. Carlos Alexandre Barros de Mello Página 334 11. Construa o gráfico da função característica do quantizador de 2 bits definido pela seguinte relação entre as amostras quantizadas e a palavra código: ^ x = sign(c(n)) * (c(n) + 1) * ∆ / 2 onde a função sign(c(n)) é igual a +1. se o primeiro bit de c(n) for 1. se o primeiro bit de c(n) for igual a zero. Para c(n) é usada uma representação em sinal-magnitude. seguindo os seguintes passos: ∞ a) Defina a equação Qn = ∑ T [ x(m)]w(n − m) m = −∞ b) Cite quais os cuidados que devem ser tomados na definição da janela w(n).Processamento Digital de Sinais – Prof. Diferencie Quantização e Amostragem. relacionando as duas técnicas com o processo de Digitalização de um sinal.4 Exercícios 1. 2. The Digital Signal Processing Handbook. 1978.ee.html . Madisetti. Carlos Alexandre Barros de Mello Página 335 11.ac.5 Bibliografia Complementar 1.uk/hp/staff/dmb/voicebox/voicebox. Digital Processing of Speech Signals. Lawrence Rabiner. Ronald W.ic. 3. CRC Press. Vilay K.Processamento Digital de Sinais – Prof. 2010. Prentice Hall. VOICEBOX (a MATLAB toolbox for speech processing): http://www. Schafer. Documents Similar To PDS - Notas de AulaSkip carouselcarousel previouscarousel nextConversores a-D e D-ALab5_pds - Tp5CAP_IIItcc_janizeApostila Teo Dspaula5Princípios de Comunicação Digital - Código de Linha, Avaliação e SimulaçãoO Conceito de Sistemaaula2_SistemasProcessamento Digital de Siais - Analise de AudioResenha CríticaAula 5 - Transformada de FourierRaphael_Apresentação_19Clampon Pig Por WebPrefacioE-voo - Aeromodelismo Elétrico - Turnigy 9x v2 - RECEPTORES COMPATIVEIS !!!.pdfBalanceamento de Sinaiscv-europass-20180427-santos-ptManual LW201Instrumentação_Eletrônica (2)Tabela_prova1ArtigodBFS iatec 1705TCC oficial7_rev2Automaçao e Instrumentaçao_Aquisiçao de dadosDownload Automacao e Controle Xc201 Banco de Ensaios de Sensores Em IndustriaisCatalogo Comercial - Pressurizador_REV00.pdfConcreto e AgregadosCpC-T00Aulas_Teoricas_C4More From EvanioSkip carouselcarousel previouscarousel nextDecepcionado Com DeusConstituicaoTextoAtualizado_EC95.pdf1 - metaisApostila_Res_Mat_outubro_2012-atualizada.pdfPds Aula00Direito Do Trabalho - Caderno de QuestõesPDS Aula01 SinaisMenu inferiorVoltar para o topoSobreSobre o ScribdImprensaNosso blogJunte-se à nossa equipe!Contate-nosEntre hojeConvidar amigosPresentesSuporteAjuda / FAQAcessibilidadeAjuda de compraAdChoicesEditorasLegalTermosPrivacidadeDireitos autoraisRedes sociaisCopyright © 2018 Scribd Inc. .Ver livros.Diretório do site.Idioma do site: English中文EspañolالعربيةPortuguês日本語DeutschFrançaisTurkceРусский языкTiếng việtJęzyk polskiBahasa indonesiaVocê está lendo uma amostra gratuitaBaixarClose DialogAre you sure?This action might not be possible to undo. Are you sure you want to continue?CANCELOK
Comments
Copyright © 2024 UPDOCS Inc.