APOSTILA PDS

Embed Size (px)

Citation preview

Processamento Digital de Sinais

Carlos Alexandre Mello Centro de Informtica UFPE 2011

Agradecimentos turma de Processamento Digital de Sinais dos cursos de Engenharia da Computao e Cincia da Computao de 2010.1: Adriano Damascena, Bernardo Fonseca, Daker Fernandes, Daniel Brito, Fernando Rodrigues, Gabriel Carvalho, Joo Carlos Procpio, 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 Mello

Pgina 1

ndice1. Processamento Digital de Sinais ......................................................................4 1.1 Principais Tipos de Sinais ...........................................................................5 1.2 Sistemas Discretos no Tempo.....................................................................6 1.3 Sistemas Lineares e Invariantes no Tempo ................................................8 1.4 Sistemas LTI como Filtros Seletores de Frequncia .................................11 1.5 Representao de Sequncias pela Transformada de Fourier .................15 1.5.1 Propriedades da Transformada de Fourier .........................................18 1.6 Cdigos do MatLab ...................................................................................19 1.7 Exerccios..................................................................................................27 1.8 Bibliografia Complementar ........................................................................30 2. A Transformada Z ...........................................................................................31 2.1 Propriedades da Transformada Z..............................................................33 2.2 Pares de Transformadas Z........................................................................36 2.3 Exemplos de Clculo da Transformada Z .................................................36 2.4 Propriedades da Regio de Convergncia................................................44 2.5 A Transformada Z Inversa.........................................................................45 2.6 Exerccios..................................................................................................54 2.7 Bibliografia Complementar ........................................................................56 3. Teoria da Amostragem ...................................................................................57 3.1 Teorema de Shannon................................................................................62 3.2 Re-Obteno do Sinal a partir de suas amostras......................................67 4. Filtros Digitais .................................................................................................70 4.1 Filtros Digitais............................................................................................72 4.2 Filtros FIR..................................................................................................76 4.2.1 Sistemas com Fase Linear .................................................................84 4.3 Filtros IIR ...................................................................................................95 4.4 Exerccios................................................................................................101 4.5 Bibliografia Complementar ......................................................................102 5. Tcnicas de projeto de filtros ........................................................................103 5.1 Projeto de Filtros FIR ..............................................................................106 5.1.1 Projeto usando janelas .....................................................................107 5.1.2 Tcnicas de Projeto por Amostragem em Frequncia ......................131 5.1.3 Projeto Equirriple timo....................................................................133 5.2 Projeto de Filtros IIR................................................................................136 5.2.1 Escala Relativa .................................................................................137 5.2.2 Caractersticas de Prottipos Analgicos .........................................140 5.3 Transformaes em Frequncia..............................................................149 5.4 Comparao entre Filtros FIR e IIR.........................................................151 5.5 Exerccios................................................................................................153 5.6 Bibliografia Complementar ......................................................................154 6. Transformada Discreta de Fourier ................................................................155 6.1 A Srie Discreta de Fourier .....................................................................156 6.2 A Transformada Discreta de Fourier .......................................................161 6.3 Propriedades da Transformada Discreta de Fourier ...............................163

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 2

6.4 A Transformada Discreta Bi-Dimensional de Fourier ..............................166 6.5 Exerccios................................................................................................169 6.6 Bibliografia Complementar ......................................................................171 7. Transformada Rpida de Fourier (FFT- Fast Fourier Transform) .................172 7.1 Algoritmos Rpidos .................................................................................172 7.2 Algoritmo de Cooley-Tukey ou Decimao no Tempo ............................174 7.3 Outras FFTs ............................................................................................185 7.4 Exerccios................................................................................................187 7.5 Bibliografia Complementar ......................................................................188 8. Anlise Wavelet ............................................................................................189 8.1 A Transformada Wavelet.........................................................................192 8.2 Anlise em Multiresoluo.......................................................................196 8.3 Sobre os coeficientes das wavelets ........................................................199 8.4 Wavelets no MatLab................................................................................204 8.5 Exerccios................................................................................................211 8.6 Bibliografia Complementar ......................................................................213 9. Processamento Digital de Imagens ..............................................................214 9.1 Digitalizao ............................................................................................217 9.2 Sistema Computacional de Cores ...........................................................220 9.3 Histograma ..............................................................................................224 9.4 Filtragem de Imagens Digitais .................................................................226 9.5 Compresso de Imagens ........................................................................234 9.6 Processamento de Imagens no MatLab ..................................................236 9.7 Exerccios................................................................................................240 9.8 Bibliografia Complementar ......................................................................241 10. Tcnicas de Codificao de udio e Vdeo ................................................242 10.1 Teoria dos Cdigos ...............................................................................242 10.2 Algoritmos de Compresso ...................................................................246 10.2.1 Cdigo de Huffman .........................................................................247 10.2.2 Run-length ......................................................................................250 10.2.3 Algoritmo de Lempel-Ziv-Welch......................................................250 10.3 Algoritmos de codificao multimdia ....................................................251 10.3.1 Codificao de Vdeo......................................................................252 10.3.2 Codificao de udio ......................................................................266 10.4 Implementaes no MatLab ..................................................................271 10.4.1 Processamento de Vdeo no MatLab .................................................271 10.4.2 Processamento de udio no MatLab .................................................277 10.5 Exerccios..............................................................................................287 10.6 Bibliografia Complementar ....................................................................288 11. Processamento de Voz...............................................................................289 11.1 Amostragem e Quantizao ..................................................................296 11.2 Tcnicas Temporais para Processamento de Voz ................................303 11.2.1 Energia de Curta Durao ..............................................................305 11.2.2 Magnitude de Curta Durao..........................................................307 11.2.3. Taxa de Passagem pelo Zero........................................................308 11.2.4. Funo de Autocorrelao.............................................................310

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 3

11.3 Anlise Cepstral ....................................................................................313 11.4 Exerccios..............................................................................................318 11.5 Bibliografia Complementar ....................................................................319

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 4

1. Processamento Digital de SinaisSinais esto presentes em diversas situaes do dia-a-dia do ser humano. Um sinal pode ser definido como uma funo que carrega uma informao. A forma mais comum para ns a comunicao 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 representao, transformao e manipulao dos sinais e da informao que eles contm. At a dcada de 60, a tecnologia para processamento de sinais era basicamente analgica. A evoluo de computadores e microprocessadores juntamente com diversos desenvolvimentos tericos 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 seqncias de amostras. Para tanto, o sinal contnuo no tempo convertido nessa seqncia de amostras, i.e., convertido em um sinal discreto no tempo. Aps o processamento digital, a seqncia de sada pode ser convertida de volta a um sinal contnuo 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 digitais so aqueles para os quais tanto o tempo quanto a amplitude so discretos. Sinais discretos no tempo so representados matematicamente como uma seqncia de nmeros, x. O n-simo nmero dessa seqncia denotado por x[n]. Assim, x formalmente escrito como: x = {x[n]}, - > stem (n, x); title ('Exemplo de Sequencia'); xlabel('n'); ylabel('x[n]');

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 20

Funo Degrau function [x, n] = stepseq(n0, n1, n2) % Degrau n = [n1:n2]; x = [(n-n0) >= 0]; stem (x); Exemplos 1. >> stepseq (5, 0, 10);

2. x[n] = n[u[n] u[n 10]] + 10e-0.3(n 10)[u[n 10] u[n 20]], 0 n 20 >> n = 0:20; >> x1 = n.*(stepseq(0,0,20) - stepseq(10,0,20)); >> x2 = 10*exp(-0.3*(n-10)).*(stepseq(10,0,20) - stepseq(20,0,20)); >> x = x1 + x2; >> stem(n,x); title('Sequencia de Degraus'); xlabel('n'); ylabel ('x[n]');

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 21

Senide function x = sinseq(n1,n2) % Senide n = [n1:0.1:n2]; x = 3*cos(0.1*pi*n + pi/3) + 2*sin(0.5*pi*n); stem (x); Exemplo: >> sinseq (0, 10);

Operaes em sequncias Adio de sinais y[n] = x1[n] + x2[n] function [y,n] = sigadd(x1,n1,x2,n2) n = min(min(n1),min(n2)):max(max(n1),max(n2)); y1 = zeros(1, length(n)); y2 = y1; y1(find((n>=min(n1))&(n=min(n2))&(n=min(n1))&(n=min(n2))&(n> n = -2:10; >> x = [1:7, 6:-1:1]; a) Plote x1[n] = 2x(n 5) 3x[n + 4]. >> [x11, n11] = sigshift(x, n, 5); >> [x12, n12] = sigshift(x, n, -4); >> [x1, n1] = sigadd(2*x11,n11,-3*x12, n12); >> stem (n1, x1); title(Sequencia); xlabel (n); ylabel (x1(n));

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 23

b) Plote x2[n] = x[3 n] + x[n].x[n 2] >> [x21, n21] = sigfold(x, n); >> [x21, n21] = sigshift(x21, n21,3); >> [x22, n22] = sigshift(x, n,2); >> [x22, n22] = sigmult(x, n, x22, n22); >> [x2, n2] = sigadd(x21, n21, x22, n22); >> stem (n2, x2); title('Sequencia'); >> xlabel ('n'); ylabel ('x2(n)');

Convoluo Considere as sequncias: x = [3, 11, 7, 0, -1, 4, 2], h = [2, 3, 0, -5, 2, 1]; -3 n 3 -1 n 4

onde, novamente, os termos em negrito indicam a origem do eixo das abscissas. As sequncias podem ser vistas abaixo:

x[n]

h[n]

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 24

Podemos usar a funo conv do MatLab diretamente: >> x = [3, 11, 7, 0, -1, 4, 2]; >> h = [2, 3, 0, -5, 2, 1]; >> y = conv (x, h); y= 6 31 47 6 -51 -5 41 18 -22 -3 8 2

O problema do uso da funo conv que no sabemos, na resposta, onde est a origem da sequncia. Para tanto, vamos criar uma nova funo: function [y, ny] = conv_m (x, nx, h, nh) nyb = nx(1) + nh(1); nye = nx(length(x)) + nh(length(h)); ny = [nyb:nye]; y = conv(h, x); >> x = [3, 11, 7, 0, -1, 4, 2]; >> nx = [-3:3]; >> h = [2, 3, 0, -5, 2, 1]; >> nh = [-1:4]; >> [y, ny] = conv_m (x, nx, h, nh) y= ny = 6 -4 31 -3 47 -2 6 -51 -1 0 -5 1 41 2 18 -22 3 4 5 -3 6 8 7 2

A amplitude -51 est no ponto de origem (ny = 0).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 25

Equaes de Diferenas e Resposta ao Impulso Exemplo: Dada a seguinte equao de diferenas: y[n] y[n 1] + 0.9y[n 2] = x[n], para todo n

a) Calcule e plote sua resposta ao impulso h[n] para n = -20,.., 100. Como vimos anteriormente, uma equao de diferenas da forma:

ak =0

N

k

y[n k ] = bk x[n k ]k =0

M

De acordo com a equao dada, temos: a = [1, -1, 0.9] e b = [1]

No MatLab, fazemos: >> x = impseq(0, -20, 120); >> n = [-20:120]; >> h = filter(b, a, x); >> stem(n, h); title('Resposta ao impulso'); xlabel('n'); ylabel('h[n]');

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 26

b) Calcule e plote sua resposta ao degrau s[n] para n = -20,.., 100. No MatLab, fazemos: >> x = stepseq(0, -20, 120); >> n = [-20:120]; >> h = filter(b, a, x); >> stem(n, h); title('Resposta ao degrau'); xlabel('n'); ylabel('s[n]');

c) O sistema estvel? Como vimos, um sistema estvel se:

S=

n =

| h[n] | <

Assim, no MatLab, basta fazermos: >> sum(abs(h)) Ans = 14.8785 Logo, o sistema estvel.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 27

1.7 Exerccios1. Considere um sistema linear arbitrrio com entrada x[n] e sada y[n]. Mostre que se x[n] = 0 para todo n, ento y[n] deve ser zero para todo n tambm. 2. Usando a definio de linearidade, mostre que o sistema de atraso ideal e a mdia mvel so ambos lineares. 3. Para cada sistema abaixo, determine se ele (1) estvel, (2) causal, (3) linear, (4) invariante no tempo e (5) sem memria: a. T(x[n]) = g[n]x[n], b. T(x[n]) = nk=n0 x[k] c. T(x[n]) = x[n n0] d. T(x[n]) = exp(x[n]) e. T(x[n]) = a.x[n] + b, f. T(x[n]) = x[-n]) g. T(x[n]) = x[n] + 3.u[n + 1] 4. O sistema T abaixo invariante no tempo. Quando as entradas dele so x1[n], x2[n] e x3[n], as sadas so y1[n], y2[n] e y3[n], respectivamente. a e b nmeros reais com g[n] dado

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 28

a) Determine se o sistema pode ser linear. b) Se a entrada x[n] do sistema um impulso ([n]), qual a sada y[n]? c) Determine a relao entre a entrada e a sada do sistema. 5. Para cada par de sequncias abaixo, use convoluo discreta para encontrar a resposta entrada x[n] do sistema linear invariante no tempo com resposta ao impulso h[n]. a)

b)

6. Considere o sistema com entrada x[n] e sada y[n] que satisfaz a equao de diferenas: y[n] = n.y[n 1] + x[n] O sistema causal tal que, se x[n] = 0, para n < n0, ento y[n] = 0, para n < n0. a) Se x[n] = [n], determine y[n] para todo n. b) O sistema linear? c) O sistema invariante no tempo?

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 29

7. Plote a seguintes sequncias no MatLab: a) x[n] = n2.(u[n + 5] u[n 6]) + 10.[n], b) x[n] = 20.(0,5)n.(u[n 4] u[n - 10]), -5 n 5 -5 n 5

8. Seja x[n] = {1, -2, 4, 6, -5, 8, 10}, gere e plote no MatLab as seguintes sequncias: a) x[n] = 3.x[n + 2] + x[n 4] 2.x[n] b) x[n] = 5.x[5 + n] + 4.x[n + 4] + 3.x[n] 9. Usando as seguintes sequncias: x1[n] = u[n + 10] u[n 20] x2[n] = 2.[n 2] + 5.u[n + 10] x3[n] = 5.u[n + 2] 6.u[n 3] mostre que a convoluo linear tem as seguintes propriedades como vlidas: 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 funo conv_m.m apresentada anteriormente. 10. A operao de dilatao de sinal (ou decimao ou downsampling) definida por: y[n] = x[nM] na qual a sequncia de entrada down-sampled por um fator inteiro M. Por exemplo, se : x[n] = {...., -2, 4, 3, -6, 5, -1, 8,...} ento a sequncia down-sampled por um fator de 2 dada por: y[n] = {..., -2, 3, 5, 8, ..} Escreva uma funo no MatLab que execute essa dilatao. A funo deve ser da forma: function [y, n] = dnsample(x, n, M) Cuidado com a origem do eixo!!

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 30

1.8 Bibliografia Complementar1. Vinay K. Ingle, John G. Proakis, Digital Signal Processing, Thomson Learning, 2000. 2. Michael Weeks, Digital Signal Processing Using MatLab and Wavelets, Infinity Science Press, 2007. 3. Alan V. Oppenheim, Ronald Schafer, Discrete Time Signal Processing, Prentice Hall, 1989

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 31

2. A Transformada ZA Transformada Z (TZ) uma ferramenta matemtica poderosa para anlise de sinais e sistemas. A transformada Z constitui a forma discreta da transformada de Laplace. Seja a Transformada de Fourier (TF) de uma seqncia dada por:

X (e ) =jw

n =

x[n]e

jwn

Seja z = ejw. Temos ento, a TZ definida como:

X ( z) =

n =

x[n]z

n

Essa chamada tambm de TZ bilateral. A transformada unilateral dada por:

X ( z ) = x[ n] z nn =0

Notadamente, h uma relao entre a TZ e a TF. Se z uma varivel complexa, z pode ser escrita como ejw = cos(w) + j.sen(w). Nesse caso, a TZ transforma-se na TF. De forma mais geral, se z = r.ejw, sua representao grfica corresponde ao crculo no Plano imaginrio (chamado de Plano-Z). Se esse crculo tem raio igual a 1, ento temos a condio da TZ = TF (Fig. 2.1). Assim, a TZ calculada no crculo unitrio igual TF. A Transformada Z no converge para todos os valores de Z. Onde a TZ converge chamada de regio de convergncia (ROC Region of Convergence). Para garantir a convergncia preciso que:

| x[n]zn =0

n

| |a|

X ( z ) = (az 1 ) n =n =0

1 z = , | z |>| a | 1 1 az za

Para a = 1:

x[n] = u[n] Z X ( z ) =

1 , | z |> 1 1 1 z

Observamos que, para a = 1, a ROC no contm o crculo unitrio. Logo, a TF para essa seqncia no converge.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 38

Exemplo 2: x[n] = -anu[-n 1]

X ( z) =

n =

x[n]z1 n =

n

=n

n =

a u[n 1]zn

n

= a nu[ n 1]z nn =

X ( z) = a zn

= a z = 1 ( a 1 z ) nn n n =1 n =0

ROC: |a-1z| 1/2

(ii)

X ( z) =

1 1 + 1 1 1 z 1 1 + z 1 2 3

Para X(z), os plos so dados por z=1/2 e z=-1/3 e os zeros so z=0 e z=1/12. Uma das propriedades da ROC que podemos observar aqui que os plos no fazem parte dela.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 40

Exemplo 4: x[n] = (-1/3)nu[n] (1/2)nu[-n 1]

X ( z) =

n =

x[n]z

n

n 1 n 1 = u[ n] u[ n 1] z n 2 n = 3

1 1 n X ( z ) = u[n]z u[n 1]z n 3 n = 2 n =

n

n

1 n 1 1 n X ( z) = z z 3 n =0 n = 2

n

n

1 n 1 n X ( z ) = z z 3 n=0 n =1 2 1 1 1 1 X ( z ) = z 1 + z 3 n=0 n = 0 2 n n

n

n

(i) ROC(i) = |(-1/3).z-1| < 1 |z| > 1/3 ROC(ii) = |(1/2)-1.z| < 1 |z| < 1/2 ROC = ROC(i) ROC(ii) = 1/3 < |z| < 1/2

(ii)

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 41

ROC(i)

ROC(ii)

ROC:

X ( z) =

1 1 2z 1 1+ = + 1 1 2 z 1 + 1 z 1 1 2 z 1 + z 1 3 3

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 42

Exemplo 5: Funo delta [n]: [n] = 0, n 0, e [n] = 1, n = 0 Transformada Z:

X ( z) =

n =

x[n]z

n

= 1. z 0 = 1

ROC = Todo o Plano Z

Exemplo 6: x[n] = [n n0]

X ( z) =

n =

x[n]z

n

=

n =

[n n ]z0

n

= z n0

ROC = Todo o Plano Z.

Nos exemplos 5 e 6, x(n) finita. X(z) um polinmio de base z-1 e todo o plano Z menos quando z = 0. Nesse ponto, a transformada no definida. Exemplo 7: Determine a transformada Z da sequncia: x[n] = (n 2).(0,5)(n-2)cos[(n 2)/3]u[n 2] Considerando a propriedade do deslocamento no tempo (x[n + n0] zn0.X(z)), temos: X(z) = Z{x[n]} = z-2.Z{n(0,5)n.cos(n/3)u[n]} Considerando agora a diferenciao no domnio Z (n.x[n] -z.dX(z)/dz), temos: X(z) = Z{x[n]} = z-2.{-z.[d(Z{(0,5)n.cos(n/3).u[n]}/dz} A transformada Z de (0,5)n.cos(n/3).u[n] , pela tabela da Seo 2.2:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 43

z[(0,5) n cos(

n3

)u[n]] =

1 (0,5. cos ) z 1 3 1 2(0,5. cos ) z 1 + 0,25 z 2 3, ROC = |z| > 0,5

1 0,25 z 1 z[(0,5) cos( )u[n]] = 3 1 0,5 z 1 + 0,25 z 2n

n

Assim:

1 0,25 z 1 d X ( z) = z dz 1 0,5 z 1 + 0,25 z 2 1

0,25 z 3 0,5 z 4 + 0,0625 z 5 X ( z) = 1 z 1 + 0,75 z 2 0,25 z 3 + 0,0625 z 4

ROC = |z| > 0,5

O seguinte procedimento no MatLab pode ajudar a verificar se a transformada est correta. Para tanto, vamos calcular as primeiras 8 amostras da sequncia x[n] correspondente a X(z): >> b = [0, 0, 0, 0.25, -0.5, 0.0625]; >> a = [1, -1, 0.75, -0.25, 0.0625]; >> [delta, n] = impseq(0,0,7) delta = 1 0 0 0 0 0 0 0 n= 0 1 2 3 4 5 6 7 >> x = filter(b, a, delta) % checar a sequncia x= 0 0 0 0.2500 -0.2500 -0.3750 -0.1250

0.0781

>> x = [(n-2).*(1/2).^(n-2).*cos(pi*(n-2)/3)].*stepseq(2, 0, 7) % sequncia original x= 0 0 0 0.2500 -0.2500 -0.3750 -0.1250 0.0781 Conferindo com a sequncia gerada pelo processo de filtragem.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 44

2.4 Propriedades da Regio de ConvergnciaA regio de convergncia (ROC) traz algumas propriedades: 1) A ROC um anel ou disco no Plano Z com centro na origem. 2) A TF da seqncia x[n] converge absolutamente se e somente se a ROC da TZ contm o crculo unitrio. 3) A ROC no pode conter plos. 4) Se x[n] uma seqncia de durao finita, a ROC todo plano Z. 5) Se x[n] causal (right-sided), a ROC extende-se para alm dos plos mais externos, possivelmente tendendo a infinito.

6) Se x[n] no causal (left-sided), a ROC extende-se para uma regio menor que o menor plo at zero.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 45

7) Se x[n] uma seqncia com componentes parte causal e parte no-causal, ento a ROC um anel.

8) A ROC uma regio conectada.

2.5 A Transformada Z InversaO clculo da TZ inversa no to direto quanto o da TF. Aqui, existem diversas maneiras formais e informais de calcular a TZ inversa dada uma expresso algbrica e a ROC associada. Seja a Transformada Z definida por:

X ( z) =

n =

x[n]z

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. Tal contorno pode ser visto na Figura 2.2. Assim, temos:

C

X ( z) z

k 1

dz =

C n =

x[n]z

k 1 n

dz

(1)

onde C denota o contorno fechado na ROC de X(z), tomado no sentido antihorrio. Como a srie converge nesse contorno, podemos mudar a ordem da integrao e do somatrio no lado direito, ficando com:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 46

C

X ( z) z

k 1

dz =

n =

x[n] zC

k 1 n

dz

(2)

Pelo teorema de integrao de Cauchy:

1, n = k 1 k 1 n z dz = 0, n k 2j C (2) reduz-se a 2j.x[k] e assim a frmula inversa alcanada:

(3)

onde C qualquer contorno que inclui a origem. Aplicando (3), o lado direito de

x[k ] =

1 X ( z ) z k 1dz 2j C

(4)

Fig. 2.2. Contorno C para a integral da transformada Z inversa. Essa a inversa da transformada Z para uma dada seqncia. No entanto, ns no precisaremos usar essa inverso j que dentro de sinais e sistemas, as transformadas Z so funes racionais (i.e., razo entre dois polinmios). Para

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 47

tais transformadas, h mtodos mais simples de inverso que envolvem tabelas conhecidas e mtodos mais simples. Os principais mtodos so: - Mtodo da inspeo - Expanso em Fraes Parciais - Expanso em Sries de Potncias O mtodo da inspeo o mais simples e consiste em apenas observar a transformada e ver se ela da forma de alguma TZ conhecida. Por exemplo, dado:

X ( z) =

1 1 1 z 1 2

,

|z|>

Por observao, sabemos que: x[n] = -()nu[-n 1] Notadamente, o mtodo da inspeo no o mais apropriado para calcular TZs inversas mais complexas. Para ver como obter uma expanso em fraes parciais, vamos assumir que X(z) pode ser expressa como uma razo de polinmios em z-1, i.e.,

X ( z) =

bk z k

M

ak =0r

k =0 N

k

z k

Para calcular a transformada inversa, tentamos expressar X(z) da forma:M N r =0

X ( z) =

Br z

+

Ak 1 k =1 1 d k z

N

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 48

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 2Vamos considerar que:

X ( z ) = B0 +

A1 A2 + = 1 1 1 z 1 1 z 2

=

B0 (1

1 1 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 2 1 z + z ) + A1 (1 z 1 ) + A2 (1 z 1 ) 2 2 2 1 (1 z 1 )(1 z 1 ) 2

=Logo:

B0 (1 z 1

3 1 1 ( B0 + A1 + A2 ) + z 1 ( B0 A1 A2 ) + z 2 ( B0 ) 2 2 2 X ( z) = = 1 1 (1 z )(1 z 1 ) 2

1 + 2 z 1 + z 2 = 1 (1 z 1 )(1 z 1 ) 2Assim, temos:

B0 + A1 + A2 = 1

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 49

3 1 B0 A1 A2 = 2 2 2

1 B0 = 1 B0 = 2 2Com isso, ficamos com:

2 + A1 + A2 = 1 A1 + A2 = 1 1 1 3 A A = 2 A1 + A2 = 5 1 2 2 2 Resolvendo, temos: A1 = -9 e A2 = 8 Logo:

X ( z) = 2 +

9 8 + 1 1 1 z 1 1 z 2

que corresponde Transformada Z da sequncia:

1 x[ n] = 2 [ n] 9.( ) n u[ n] + 8.u[ n] 2A expanso em srie de potncias aplicada quando a transformada Z um polinmio da forma:

X ( z) =

n =

x[n]z

n

Isso ocorre, principalmente, se a TZ uma seqncia finita. Por exemplo, considere que a TZ de uma seqncia x[n] da forma:

X ( z ) = z 2 (1

1 1 z )(1 + z 1 )(1 z 1 ) 2

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 50

Uma expanso em fraes parciais para esse caso no apropriada. No entanto, efetuando os produtos, podemos reduzir a expresso a:

X ( z) = z 2 que equivale seqncia:

1 1 z 1 + z 1 2 2

x[n] = [n + 2] .[n + 1] - [n] + .[n 1]

Exemplo 9: Considere a funo:

X ( z )=de z-1:

z 3z 2 4 z + 1

Primeiro, vamos re-arranjar X(z) tal que ela se torne uma funo em potncias

z 1 0 + z 1 X ( z )= = 1 2 3 4z + z 3 4 z 1 + z 2Usando o MatLab, temos1: >> b = [0 1]; >> a = [3 -4 1]; >> [R, p, C] = residuez(b, a) R= 0.5000 -0.5000 p= 1.0000 0.3333 C=1

[]

Para mais informao sobre a funo residuez, digite help residuez no MatLab.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 51

que corresponde a:

X ( z) =

0,5 1 1 z

0,5 1 1 z 1 3

De maneira similar, podemos voltar forma anterior: >> [b, a] = residuez(R, p, C) b= -0.0000 a= 1.0000 -1.3333 que corresponde a: 0.3333 0.3333

1 0 + z 1 z 1 0 +z 1 3 = = X ( z )= 4 1 1 2 3 4 z 1 + z 2 3 4 z 1 + z 2 1 z + z 3 3como antes. Exemplo 10: Calcule a transformada Z inversa de:

X ( z) =

1 (1 0,9 z 1 ) 2 (1 + 0,9 z 1 ) ,|z|>0,9

Podemos calcular o polinmio no denominador assim como os resduos usando MatLab: >> b = 1; >> a = poly([-0.9 -0.9 0.9]) % calcula os coeficientes do polinmio que tem essas razes a= 1.0000 0.9000 -0.8100 -0.7290

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 52

>> [R, p, C] = residuez(b, a) R= 0.2500 0.2500 - 0.0000i 0.5000 + 0.0000i p= 0.9000 -0.9000 + 0.0000i -0.9000 - 0.0000i C= [] Isso significa que X(z) pode ser expandido em fraes parciais como:

X ( z) =

0,25 0,5 0,25 + + 1 0,9 z 1 (1 0,9 z 1 ) 2 1 + 0,9 z 1 ,

|z| > 0,9

0,25 0,5 0,9 z 1 0,25 X ( z) = + z + 1 1 2 1 0,9 z 0,9 (1 0,9 z ) 1 + 0,9 z 1nos d:

,

|z| > 0,9

que, de acordo com as propriedades da transformada Z e a tabela da Seo 2.2,

5 x[n] = 0,25.(0,9) n u[n] + (n + 1)(0,9) n +1 u[n + 1] + 0,25(0,9) n u[n] 9Vamos tentar deixar todas as parcelas em funo de u[n]. Para tanto, vamos trabalhar na segunda parcela:

5 (n + 1)(0,9) n+1 u[n + 1] 9Observe que: a.u[n + 1] = a.u[n = -1] + a.u[n]. Logo:

5 5 5 + (n + 1)(0,9) n+1 u[n] (n + 1)(0,9) n+1 u[n + 1] = (n + 1)(0,9) n+1 9 9 9 n =1 5 5 (n + 1)(0,9) n+1 u[n + 1] = (n + 1)(0,9) n+1 u[n] 9 9

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 53

5 = (n + 1).0,9.(0,9) n u[n] = 0,5(n + 1)(0,9) n u[n] 9= 0,5n(0,9) n u[n] + 0,5(0,9) n u[n]Logo:

x[n] = 0,75.(0,9) n u[n] + 0,5n.(0,9) n u[n] + 0,25(0,9) n u[n]Como antes, podemos verificar as 8 primeiras amostras da sequncia x[n], no MatLab: >> [delta, n] = impseq(0,0,7); >> x = filter (b, a, delta) x= x= 1.0000 1.0000 0.9000 0.9000 1.6200 1.6200 1.4580 1.4580 1.9683 1.9683 1.7715 1.7715 2.1258 2.1258 1.9132 1.9132 >> x = 0.75*(0.9).^n+0.5*n.*(0.9).^n + 0.25*(-0.9).^n

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 54

2.6 Exerccios1. Calcule a transformada Z das sequncias: a. x[n] = -(1/2)nu[-n 1] b. y[n] = (-1/2)nu[n] + (1/3)nu[-n 1] c. y[n] =2[n 3] + (-1/4)nu[-n - 1] + (1/2)nu[n] 2. Calcule a transformada Z das seguintes sequncias usando as suas propriedades e a tabela da Seo 2.2 e verifique seus resultados usando MatLab. a. x[n] = 2.[n-2] + 3u[n 3] b. x[n] = (1/3)nu[n 2] + (0,9)n-3u[n] 3. Seja x[n] uma sequncia com transformada Z dada por X(z). O que se pode dizer sobre as sequncias que geram as seguintes transformadas: a. X1(z) = [(z 1)/z]X(z) b. X2(z) = z.X(z-1) 4. Ache a transformada inversa de: a. X ( z ) =

1 , 1 1 + z 1 21 , 1 1 1+ z 21

ROC = |z| >

b. X ( z ) =

ROC = |z| < 1/2

1 1 z 2 , c. X ( z ) = 3 1 1 2 1+ z + z 4 8

ROC = |z| > 1/2

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 55

5. Determine a transformada inversa usando o mtodo de expanso em fraes parciais de:

1 z 1 4 z 2 + 4 z 3 X 1 ( z) = 11 13 1 1 z 1 + z 2 z 3 4 8 4sabendo que a sequncia causal. 6. Suponha que X(z) :

2 + 3 z 1 X 1 ( z) = 1 z 1 + 0,81z 2

,

|z| > 0,9

Encontre as primeiras 20 amostras de x[n], usando o MatLab.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 56

2.7 Bibliografia Complementar1. Vinay K. Ingle, John G. Proakis, Digital Signal Processing, Thomson Learning, 2000. 2. Michael Weeks, Digital Signal Processing Using MatLab and Wavelets, Infinity Science Press, 2007. 3. Alan V. Oppenheim, Ronald Schafer, Discrete Time Signal Processing, Prentice Hall, 1989

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 57

3. Teoria da AmostragemSinais discretos no tempo podem ser gerados de diferentes formas, mas a mais comum sendo uma representao de sinais contnuos no tempo. Em parte, isso devido ao fato que o processamento de sinais contnuos no tempo feito atravs do processamento discreto no tempo de seqncias obtidas atravs de amostragem. Um sinal contnuo no tempo pode ser representado por amostras como na Fig. 3.1.

Fig. 3.1. Exemplo: (esquerda) sinal original e (direita) amostragem desse sinal. A forma mais comum de obter uma representao discreta no tempo de um sinal contnuo no tempo atravs de uma amostragem peridica, quando a seqncia de amostras x[n] obtida de um sinal contnuo no tempo xc(t) de acordo com a relao: x[n] = xc(nT), - < n < (Eq. 3.1)

Na Eq. 3.1, T chamado de perodo de amostragem e sua inversa, fs = 1/T, a freqncia de amostragem, medida em amostras por segundo. Referimo-nos a um sistema que implementa a operao da Eq. 3.1 como um conversor ideal contnuo-para-discreto (C/D) no tempo. Na prtica, a operao

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 58

de amostragem implementada por um conversor analgico-para-digital (A/D). Tais sistemas podem ser vistos como aproximaes de conversores C/D ideais. Na implementao ou escolha de um conversor A/D deve-se considerar a quantizao da sada, linearidade, a necessidade de circuitos sample-and-hold e limitaes na taxa de amostragem. Em geral, a amostragem um processo no-inversvel. Ou seja, dada uma seqncia x[n], no possvel reconstruir o sinal original xc(t). Muitos sinais diferentes podem gerar a mesma seqncia de amostras de sada. conveniente representarmos matematicamente o processo de amostragem, dividindo-o em duas partes conforme a Fig. 3.2. O processo consiste de um trem de impulsos seguido de uma converso desse trem em uma seqncia. Na Fig. 3.2, a diferena fundamental entre xs(t) e x[n] que xs(t) um sinal contnuo com valores zero exceto nos inteiros mltiplos de T. x[n], por outro lado, no possui informao explcita sobre a taxa de amostragem e um sinal onde as regies que no representam valores inteiros no tm valor definido. So muitas as razes para o aumento no uso de sistemas digitais: 1. Muitas informaes (ou dados) esto nessa forma, e.g. entrada/sada de computadores, sinais de controle digital, etc. 2. A disponibilidade de componentes pequenos, confiveis e de baixo custo, principalmente, com o aumento da escala de integrao dos circuitos integrados. 3. Relativa simplicidade no projeto de circuitos e facilidade de

implementao usando circuitos integrados.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 59

Fig. 3.2. Amostragem com um trem de impulsos peridicos seguida de uma converso para uma seqncia discreta no tempo. a) Viso geral do sistema; b) xc(t) (sinal original no tempo contnuo) e xs(t); c) a seqncia x[n] de sada. 4. Ampla utilizao de computadores digitais no processamento de todo tipo de dados e sinais. 5. Armazenamento de sinais realizado de modo simples e econmico (simplicidade das memrias digitais) 6. Crescente uso e disponibilidade de tcnicas de processamento digital de sinais (DSP).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 60

7. Fidelidade em transmisses longas devido ao uso de estaes repetidoras regenerativas. 8. Flexibilidade do formato digital que permite: a. Combinao em um mesmo canal de uma variedade de diferentes trfegos (telgrafo, dados, voz, imagem, vdeo, etc); b. Multiplexao feita de forma simples e econmica; c. Transmisso com velocidade ajustvel; rpida ou lenta em funo do trfego e/ou qualidade exigidas. 9. Uso de parte do sinal digital para controlar o progresso do sinal atravs do sistema (ex: cabealho). 10. Possibilidade da codificao (teoria da informao): a. Codificao da fonte, reduzindo redundncia, isto , compactando os dados; b. Codificao do canal, combatendo os efeitos do rudo,

interferncias, etc. 11. Aplicaes de tcnicas de criptografia, garantindo a privacidade e autenticidade da comunicao. A digitalizao de sinais analgicos vem tornando-se cada vez mais importante, principalmente, com o desenvolvimento das redes digitais de servios integrados.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 61

Na converso analgico-digital necessrio colher-se um nmero discreto de amostras de um sinal contnuo. O problema crucial na amostragem est com o nmero de amostras/seg devem ser colhidas. Um nmero muito pequeno de amostras pode resultar em uma representao demasiadamente pobre do sinal. A anlise quantitativa acerca desse problema estudada pelo Teorema de Shannon-Nyquist. A princpio, pode-se imaginar que, no processo de amostragem de um sinal analgico, h sempre perda de informao e que essa perda tanto menor quanto maior a taxa de amostragem utilizada. Entretanto, o teorema de Shannon mostra que isto nem sempre verdade. O teorema estabelece que sob certas condies, as amostras de um sinal podem conter precisamente toda a informao a ele associada. Isto significa que o sinal pode ser perfeitamente recuperado a partir de amostras colhidas sem nenhuma aproximao. O estudo sobre o teorema da amostragem aplicado a sinais banda limitado, isto , aqueles que no possuem componentes espectrais para freqncia acima de uma dada freqncia (Fig. 3.3).

Fig. 3.3. Exemplo de um sinal banda limitado.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 62

Embora essa condio no seja rigorosamente verificada, ela bastante til em termos prticos.

3.1 Teorema de ShannonTeorema de Shannon: Um sinal de banda limitada por fm Hz est unicamente determinado por amostras, se so tomadas, pelo menos, 2.fm amostras eqidistantes por segundo.

Prova: Se as amostras so obtidas a cada Ts segundos, considera-se ento um trem de impulsos Ts(t)

Ts (t ) =

n =

(t nTs )

A amostragem de um sinal f(t) em intervalos de T segundos ser definida por:

f s (t ) = f (t ). Ts (t ) =f(nTs), n = 0, 1, 2, 3, ...., pois

n =

f (t ). (t nTs)

Ento a funo amostrada contm apenas informaes acerca das amostras

f s (t ) =

n =

f (nTs). (t nTs)

Toda a informao de um sinal banda limitada em fm Hz est contida nas amostras colhidas em intervalos uniformes menores que fm Hz. Os pares sinal e transformada envolvidos no processo podem ser vistos na Fig. 3.4.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 63

Fig. 3.4. (topo) Exemplo de um sinal e sua transformada banda limitada em wm. (centro) Trem de impulsos e sua transformada e (embaixo) o resultado da amostragem do sinal; sua transformada analisada a seguir. O espectro do sinal amostrado fs(t) pode ser determinado com o auxlio do teorema da convoluo na freqncia: f1(t).f2(t) (1/2)F1(w)*F2(w) onde * a operao de convoluo. Segue, ento, que: 1 f (t ) T (t ) F ( w) * ws ( w nwS ) 2 n =

Se: fs(t) Fs(w) Ento, o espectro de fs(t) dado por:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 64

w 1 Fs ( w) = F ( w) * ws ( w nwS ) = s 2 2 n =

n =

F (w) (w nws

S

)

1 Fs ( w) = Tse, finalmente,

n =

F (w) ( w nw ) , com ws = 2/TS

1 Fs ( w) = Ts

n =

F (w nw

S

)

Este espectro esboado para vrios valores de ws, isto , vrios valores para o espaamento Ts entre amostras. A escolha do valor de Ts e, consequentemente, de ws importante para evitar a sobreposio entre sinais no domnio da freqncia. A fig. 3.5 apresenta trs casos onde o valor de ws maior, igual ou menor a wm (freqncia limite da banda do sinal de entrada). Nesses trs casos, pode-se ver que no h sobreposio quando ws 2wm. Ento, o uso de um filtro passa-baixa ideal permite recuperar o sinal perfeitamente sem distores (Fig. 3.6). A sobreposio dos sinais chamada de aliasing e deve ser evitada.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 65

a)

b)

c)

d) Fig. 3.5. a) Sinal original banda limitado em wm; resultado no domnio da freqncias de amostragens com: b) ws > 2wm, c) ws = 2wm, d) ws < 2wm (sobreposio de sinais aliasing).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 66

Fig. 3.6. Recuperao do sinal original com um filtro passa-baixa. Para recuperao do sinal com um FPB sem distores, preciso que: ws 2wm ou seja 2/Ts 2.2fm Ts 1/(2fm) seg O limite 1/Ts = 2fm chamado de taxa de Nyquist. Valores de Ts que no atendam a essa condio podem provocar diversas distores no sinal, como:

Ganho nas altas freqncias Perda nas altas freqncias Modulao das freqncias do sinal original Casos hbridos

Esses problemas podem ser vistos na Fig. 3.7. A Figura 3.8 mostra uma distoro desse tipo em uma imagem. Esse problema (conhecido como efeito Moire) surgiu por causa de uma baixa resoluo utilizada na digitalizao da imagem. Ele se apresenta de forma mais forte em partes da imagem que tenham um padro repetitivo (como essas linhas circulares).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 67

Fig. 3.7. Distores que podem ser provocadas por escolha errada na banda de passagem do fitro passa-baixa para recuperao do sinal de entrada aps a amostragem.

Fig. 3.8. Efeito Moire.

3.2 Re-Obteno do Sinal a partir de suas amostrasDe acordo com o teorema de Shannon-Nyquist, se Ts 1/(2fm), ento a passagem do sinal amostrado por um filtro passa-baixa ideal recupera exatamente o sinal analgico. Suponha que o filtro passa-baixa tem funo de transferncia: H(w) = Ts. (w/(2wm)) ento Fs(w).Ts. (w/(2wm)) = F(w)

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 68

A seguir, vamos analisar o processo de re-obteno do sinal no domnio do tempo: f(t) F(w) = Fs(w).Ts. (w/(2wm)) O uso do teorema da convoluo no tempo indica que f(t) = F-1(Fs(w))*F-1(Ts. (w/(2wm))) Utilizando os pares de transformadas: fs(t) Fs(w) (wm/) Sa(wmt) (w/(2wm)) onde sa(t) a chamada funo sample e tem a forma sen(x)/x, tem-se f(t) = fs(t)*Ts(wm/)Sa(wmt) logo

Ts wm f (t ) = f (nTs ) (t nTs ) * Sa(wm t ) n = f (t ) = Ts wm

n =

f (nT )[ (t nT ) * Sa(w t )]s s m

Lembrando da propriedade da amostragem da funo impulso, segue-se

f (t ) = 2 f m .Ts

n =

f (nT ) Sa(ws

m

(t nTs ))

No caso particular em que Ts = 1/(2fm), tem-se

f (t ) =

n =

f (2 f

nm

) Sa( wm t n )

Como o sinal recomposto atravs das amostras, observa-se que f(t) corresponde superposio de vrias funes sample deslocadas, centradas em 0, T, 2T, .... (Fig. 3.9).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 69

Fig. 3.9. Interpolao das amostras por filtro passa-baixa. Observaes a) Nos pontos de amostragem nT, o valor correto de f(t) f(nT). Em T = 0, todas as funes sample se anulam, exceto aquele centrado em t=0, cujo valor f(0). Em t=T apenas a sample a centrada no nula, e assim por diante. b) Nos instantes diferentes de nT, as samples somam desde - a + e reconstituem o valor de f(t) no ponto analisado por interpolao.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 70

4. Filtros DigitaisUm sistema discreto no tempo definido matematicamente como uma transformao que mapeia uma seqncia de entrada x[n] em uma seqncia de sada y[n]. Isso pode ser denotado por: y[n]=T{x[n]} como representado na Fig. 4.1.

Fig. 4.1. Representao de um sistema discreto no tempo Uma classe importante de sistemas consiste naqueles que so lineares e invariantes no tempo. Os sistemas lineares so aqueles que obedecem ao princpio da superposio. Se a propriedade da linearidade combinada com a representao de uma seqncia geral como uma combinao de impulsos, ento um sistema linear pode ser completamente caracterizado pela sua resposta ao impulso. Seja hk[n] a resposta do sistema a [n k]. Assim, como:

x[ n] =ento

k =

x[k ] [n k ]

y[ n] = T { x[ k ] [ n k ]}k =

Pelo princpio da superposio, podemos escrever:

y[ n] =

k =

x[k ]T { [n k ]} = x[k ]h [n]k = k

De acordo com essa equao, a resposta do sistema a qualquer entrada pode ser expressa em termos da resposta a [n k] (o impulso).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 71

A propriedade da invarincia no tempo implica que, se h[n] a resposta a [n], ento a resposta a [n - k] h[n k]. Com isso, podemos dizer que:

y[ n] =

k =

x[k ]h[n k ]

(Eq. 4.1)

Como conseqncia, um sistema linear invariante no tempo completamente descrito por sua resposta ao impulso. Essa equao conhecida como soma de convoluo (convolution sum) que pode ser representada pela notao: y[n] = x[n]*h[n] (Eq. 4.2)

Apesar da semelhana na notao, deve-se salientar que a soma de convoluo para sinais discretos no uma aproximao da integral de convoluo. Para qualquer que seja a entrada x[n] de um sistema: x[n]* [n] = x[n] Assim, em geral, se um sistema linear invariante no tempo tem uma resposta ao impulso h[n], ento seus sistema inverso, se existir, tem resposta ao impulso hi[n] definida pela relao: 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 atravs de uma equao de diferenas de coeficientes constantes lineares de n-sima ordem da forma:

ak =0

N

k

y[n k ] = bk x[n k ]k =0

M

(Eq. 4.3)

Um exemplo de um tal sistema um acumulador definido pela seqncia cujo diagrama de blocos pode ser visto na figura abaixo:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 72

Esse sistema representado pela equao de diferenas: 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 DigitaisEm geral, estamos interessados em manipular o sinal. Por exemplo, podemos querer retirar algum rudo de um sinal, como no caso de um sinal de voz, onde o rudo deve ser diferenciado da voz propriamente dita. Para isso, filtros so utilizados. Filtros esto 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 vdeo. 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 so formados por poucos componentes. Basicamente so apenas multiplicadores, somadores e elementos de retardo (delay). Desses, multiplicadores e somadores implementam essas operaes aritmticas em seqncias discretas. Retardos so unidades que processam elementos anteriores de uma seqncia (Fig. 4.2).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 73

Fig. 4.2. Retardo (delay) aplicado a uma seqncia x[n]. A representao mostrada na Fig. 4.2 em diagrama de blocos comum para filtros. Os elementos bsicos de um filtro tambm so representados dessa maneira. Nesse caso, o elemento de delay representado como z-1, devido Transformada Z. As representaes em diagrama de blocos podem ser vistas na Fig. 4.3.

Fig. 4.3. Diagrama de blocos de: a) Somador de duas seqncias, b) multiplicador de duas seqncias, c) multiplicador de uma seqncia por uma constante e d) retardo. Exemplos: 1) Podemos ver na Fig. 4.4 a representao em diagrama de blocos da equao de diferena definida por: y[n] = a1.y[n 1] + a2.y[n 2] + b.x[n]

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 74

cuja transformada Z (ou funo de sistema) dada por:

H ( z) =

b 1 a1 z 1 a 2 z 2

Fig. 4.4. Diagrama de blocos para uma equao de diferenas. 2) Uma equao de diferenas pode ser generalizada da forma:

y[ n] a k y[ n k ] = bk x[n k ]k =1 k =0

N

M

com funo de sistema correspondente:

H ( z) =

b zk =0 N k k =1

M

k

1 ak z k

=

Y ( z) X ( z)

A funo de sistema ou funo de transferncia corresponde relao entre a sada e a entrada do sistema. Podemos re-escrever a equao de diferenas na forma de uma relao de recorrncia:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 75

y[ n] = ak y[ n k ] + bk x[ n k ]k =1 k =0

N

M

que pode ser representada em diagrama de blocos como na Fig. 4.5.

Fig. 4.5. Representao em diagrama de blocos de uma equao de diferenas geral. Nessa figura, temos:

v[ n] = bk x[ n k ]k =0

M

y[ n] = v[ n] + ak y[ n k ]k =1

N

Como apresentado na Fig. 4.5, referimos a essa forma de diagrama de blocos como a Forma Direta I. Uma implementao com uma menor quantidade de retardos tambm 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 Mello

Pgina 76

Fig. 4.6. Representao com menos retardos (Forma direta II). Os filtros so classificados em relao sua resposta ao impulso. Nesse sentido, os filtros dividem-se em filtros FIR (Finite Impulse Response) e IIR (Infinite Impulse Response).

4.2 Filtros FIRA estrutura de um filtro FIR bastante regular e, uma vez definidos os coeficientes, o filtro pode ser completamente especificado. Esses so 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 tambm de feed-forward.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 77

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 sada seria y[n]=[0.5, 0.5]. A equao para cada termo : y[0] = 0.5.x[0] + 0.5.x[-1] y[1] = 0.5.x[1] + 0.5.x[0]

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 78

Ou, de forma geral: y[n] = 0.5.x[n] + 0.5.x[n - 1] Os filtros FIR so expressos como:

y[n] = bk x[n k ]k =0

M

com funo de transferncia:

H ( z ) = bk z kk =0

M

A resposta ao impulso h[n] dada por:

bn h[n] = 0

0 n M 1 seno

e a representao em equao de diferenas : y[n] = b0x[n] + b1x[n 1] + ... + bN-1x[n M + 1] Um filtro FIR pode ser representado em forma direta como:

Por simplicidade, pode-se representar um filtro FIR apenas com seus coeficientes. Por exemplo, seja um filtro FIR com coeficientes [1, -1], ele pode ser representado como:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 79

Dados os coeficientes, pode-se calcular de forma simples a sada do sistema para uma dada entrada. Considere uma entrada x[n]=[1, 2, 3, 4, 5] em um filtro com coeficientes [6, 7, 8]. A sada dada por:

H trs importantes propriedades de um sistema:

Causalidade Linearidade Invarincia no tempo

Um sistema dito causal quando ele no precisa de informaes futuras para calcular a sada atual. Um sistema linear se obedece ao princpio da superposio. Ou seja: T{a.x1[n] + b.x2[n]} = a.T{x1[n]} + b.T{x2[n]} Por ltimo, um sistema dito invariante no tempo se a sada do sistema reflete qualquer deslocamento que a entrada. Ou seja, se y[n] = T{x[n]}, ento x[n m] gera uma sada y[n m]. Filtros FIR podem implementar diversas diferentes funes apenas com mudanas nos seus coeficientes. A funo de um filtro depende de seu comportamento no domnio da freqncia. Um filtro pode ser passa-baixa, passa-alta, passa-faixa, rejeita-faixa ou notch. Um filtro notch pode ser visto como um rejeita-faixa, mas que rejeita uma faixa bastante estreita.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 80

Filtros passa-baixa ou passa-alta permitem passar baixas ou altas freqncias de um sinal. As Figs. 4.8 e 4.9 apresentam exemplos simples de filtros assim.

Fig. 4.8. Exemplos de filtros passa-baixa e passa-alta ideais.

Fig. 4.9. Exemplos de filtros passa-baixa e passa-alta. Os filtros da Fig. 4.8 so filtros ideais no realizveis. A Fig. 4.9 apresenta filtros com uma mudana mais suave da banda de passagem para a banda de corte (no FPB) e vice-versa (no FPA). Na prtica, tais filtros tm caractersticas um pouco diferentes. Podemos observar ondulaes e uma banda de transio mais suave. Essas

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 81

caractersticas podem ser vistas na Fig. 4.10 a qual apresenta o espectro de diferentes filtros (ou seja, suas transformadas de Fourier). atravs do espectro que podemos analisar o comportamento do filtro.

Fig. 4.10. Padres de ondulao na banda de passagem ou na banda de parada e um banda de transio suave. Por exemplo, um filtro apenas com coeficientes [0,5 0,5] comporta-se como um FPB. Seu comportamento foi avaliado anteriormente, tendo sua sada definida por: y[n] = 0.5.x[n] + 0.5.x[n - 1] que o mesmo que y[n] = (x[n] + x[n 1])/2. Por isso, filtros passa-baixa so chamados, s vezes, de filtro da mdia.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 82

Um filtro com coeficientes [0,5 -0,5] corresponde a um filtro passa-alta, chamado de filtro de diferenciao. O seguinte cdigo no MatLab apresenta a transformada de Fourier para uma seqncia de coeficientes. A Fig 4.11 apresenta os resultados para os coeficientes [0,5 0,5] e [0,5 -0,5]. x = [0.5, -0.5]; f = fft(x,8192); Freq = -5:10/8192:5-1/8192; plot(Freq, abs(fftshift(f)));

Fig. 4.11. (esquerda) Seqncia [0,5 0,5] e sua transformada de Fourier (um FPB) e (direita) a seqncia [0,5 -0,5] e sua transformada (um FPA). Vamos analisar o FPA: y[n] = (x[n] - x[n 1])/2 Pequenas diferenas entre as amostras resultam em valores pequenos; grandes diferenas resultam em valores grandes. Assim, a resposta em frequncia desse filtro deve atenuar mudanas suaves no sinal (como as relacionadas com as baixas frequncias) e enfatizar mudanas rpidas (como as relacionadas com as altas frequncias).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 83

Dois outros tipos de filtros so notch e passa-faixa. Filtros notch atenuam bandas muito estreitas de freqncia. Filtros passa-faixa tm duas bandas de passagem. A Fig. 4.12 mostra exemplos desses dois filtros. Para ver como o comportamento de um filtro, devemos ver sua resposta em frequncia atravs da transformada de Fourier de seus coeficientes.

Fig. 4.12. (topo) filtro Notch e (baixo) filtro passa-faixa. Para ver como o comportamento de um filtro, devemos ver sua resposta em frequncia atravs da Transformada de Fourier de seus coeficientes.

Exemplo: >> B2 = fir1(100, 0.3, low'); >> x = zeros (1, 1000); >> x(50) = 1; % x um impulso >> Y2 = fft(conv(x, B2)); % apresentamos metade apenas pois o resto simtrico >> half = 1:ceil(length(Y2)/2); >> plot(half/max(half), abs(Y2(half)), 'b');

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 84

>> B2 = fir1(100, 0.3, high'); >> x = zeros (1, 1000); >> x(50) = 1; % x um impulso >> Y2 = fft(conv(x, B2)); % apresentamos metade apenas pois o resto simtrico >> half = 1:ceil(length(Y2)/2); >> plot(half/max(half), abs(Y2(half)), 'b');

4.2.1 Sistemas com Fase LinearEm diversas aplicaes como processamento de voz ou som, filtros digitais so usados para implementar operaes seletivas de frequncia. Assim, especificaes so necessrias no domnio da frequncia em termos de magnitude desejada e resposta em fase do filtro. Em geral, uma resposta em fase linear na banda de passagem desejada (Fig. 4.13).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 85

Fig. 4.13. Exemplos de fases lineares e no-lineares. Considere um sistema LTI cuja resposta em frequncia sobre um perodo seja: Hid(ejw) = e-jw, |Hid(ejw)| = 1 Hid(ejw) = -w

|w| <

onde um nmero real. Tal sistema tem magnitude constante e fase linear:

A transformada de Fourier inversa de Hid(ejw) a resposta ao impulso, hid[n] que dada por:

1 hid [n] = 2hid [n] =

e

j

e

jn

1 d = 2

e

( j jn )

d

1 1 1 1 e ( j jn ) = e j ( n ) 2 j (n ) 2 j (n )

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 86

hid [n] =

1 1 e j ( n ) e j ( n ) 2 j (n )

[

]

(Eq. 4.4)

Lembrando que:

e j e j sen = 2jTemos que, na equao 4.4:

hid [n] =

1 1 sen[ (n )] 2 jsen[ ( n)] = 2 j (n ) (n ) , - 0 e n > M, M inteiro 00 1 + 1

Exemplo: As especificaes de um FPB definem as ondulaes da banda de passagem em 0,25 dB e a atenuao na banda de corte em 50 dB. Determine 1 e 2. RP = 0,25 = -20 log10 [(1 - 1)/(1 + 1)] 1 = 0,0144 AS = 50 = -20 log10 [2/(1 + 1)] 2 = 0,0032 Especificaes semelhantes podem ser dadas para outros tipos de filtros seletores de frequncia (como passa-alta ou passa-faixa).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 106

Analisaremos o problema de especificar um filtro passa-baixa e, facilmente, esses conceitos podem ser repassados para outros tipos de filtros. Nosso problema projetar um filtro passa-baixa (i.e., obter sua funo de transferncia H(z) ou sua equao de diferenas) que tem uma banda de passagem [0, wp] com tolerncia 1 (ou RP in dB) e uma banda de corte [wS, ] com tolerncia 2 (ou AS in dB). A seguir, vamos projetar filtros digitais FIR. Esses filtros tm diversas vantagens de projeto e implementao:

A resposta em fase pode ser exatamente linear; So relativamente simples de projetar j que eles no tm problemas de estabilidade; So eficientes para implementar; A Transformada Discreta de Fourier pode ser usada em sua implementao.

5.1 Projeto de Filtros FIRTanto a aproximao quanto a implementao podem ser realizadas de diversas maneiras diferentes, com o resultado de que no existe uma soluo nica para o problema de projeto de filtros com um conjunto prescrito de especificaes. Todavia, podemos mencionar trs diferentes abordagens para o projeto de filtros analgicos e digitais:

Abordagem analgica, a qual se aplica classe de filtros analgicos. Abordagem de analgico para digital, em que a motivao projetar um filtro digital lanando mo de um projeto de filtro analgico. Abordagem digital direta a qual se aplica classe de filtros digitais.

Para o projeto de filtros FIR, as tcnicas so divididas nas seguintes categorias:

Projeto usando janelas

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 107

Mtodo da amostragem em freqncia Projeto equirriple timo Projeto de mnimos quadrados

5.1.1 Projeto usando janelasA ideia bsica de um projeto por janelas selecionar um filtro seletor de frequncias ideal apropriado (que sempre no-causal e de resposta ao impulso infinita) e ento truncar sua resposta ao impulso em uma janela para obter um filtro FIR causal e de fase linear. Assim, o foco est na escolha de uma funo de janelamento e um filtro ideal apropriados. Seja Hd(ejw) um filtro seletivo de frequncia ideal que tem magnitude unitria e caractersticas de fase linear sobre sua banda de passagem, e resposta zero na banda de corte. Um filtro passa-baixa (FPB) ideal de largura de banda wc < dado por:

1.e j , | | c H d (e ) = c 50 = 0,5842( A 21) 0, 4 + 0,07886( A 21) ,2 A 50 0 , seno Alm disso, dados w e A, M aproximadamente:

(Eq. 5.1)

M=

A8 2,285w

O procedimento para projetar um filtro passa-baixa digital FIR usando a janela de Kaiser consiste nos seguintes passos: i) Estabelecer as especificaes wP, wS e . ii) Estabelecer a frequncia de corte wc do filtro passa-baixa ideal ao qual se aplicar a janela (wc = (wP + wS)/2). iii) Calcular A = 20log10 e w = wP - wS e usar as frmulas de Kaiser para encontrar os valores de M e . iv) Encontra a resposta ao impulso do filtro atravs de h[n]=hd[n]w[n], onde w[n] a janela de Kaiser e hd[n] = -1[Hd(ejw)]. Devido complexidade de clculos com funes de Bessel, o projeto dessas janelas no fcil. A equao de w[n] definida por Kaiser tem valores encontrados empiricamente e so definidos sem prova.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 117

Exemplo: Projetar, usando janelas de Kaiser, um filtro passa-baixa com as seguintes especificaes: wP = 0,4, wS = 0,6 e = 0,001. wc = (wS + wP)/2 = 0,5w = wS - wP = 0,2

A = -20log10 = 60 dB Como A > 50, pela Eq. 5.1: = 0,1102(A 8,7) 5,633

M = (A - 8)/(2,285w) 36,219 M = 37 (M inteiro) A resposta ao impulso :

h[n] = hd [n]w[n] =

sen[ wc (n M / 2)] w[n] ( n M / 2)

com w[n] dado pela definio da janela de Kaiser.

Implementaes no MatLab O MatLab tem diversas funes para implementar janelas: 1. w = rectwin(M): Janela retangular 2. w = bartlett(M): Janela de Bartlett 3. w = hanning(M): Janela de Hanning 4. w = hamming(M): Janela de Hamming 5. w = blackman(M): Janela de Blackman 6. w = kaiser(M, beta): Janela de Kaiser Antes de projetarmos alguns exemplos, vamos implementar duas funes base importantes para os exemplos a seguir. Uma implementa uma resposta ao impulso ideal de um filtro passa-baixa hd[n]. A outra funo implementa a plotagem no domnio da frequncia, apresentando tambm a resposta em magnitude absoluta e em escala dB ( uma variao da funo freqz do MatLab).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 118

Funo 1: function hd = ideal_lp(wc, M) % Ideal low pass filter % wc = cutoff frequency % M = length of the ideal filter alpha = (M - 1)/2 n = [0:(M-1)]; m = n - alpha + eps; hd = sin(wc*m)./(pi*m); Funo 2: function [db, mag, pha, w] = freqz_m(b, a) % Versao modificada da funcao freqz [H, w] = freqz(b, a, 1000, 'whole'); H = (H(1:501))'; w = (w(1:501))'; mag = abs(H); db = 20*log10((mag + eps)/(max(mag))); pha = angle(H); Exemplo 1: Projetar um filtro passa-baixa FIR com as seguintes especificaes wP = 0,2, RP = 0,25 dB, wS = 0,3 e AS = 50 dB. Tanto a janela de Hamming quanto a de Blackman provem atenuao de mais de 50 dB. Vamos escolher a janela de Hamming que prov a menor banda de transio e assim tem a menor ordem. wp = 0.2*pi; ws = 0.3*pi; tr_width = ws - wp; M = ceil(6.6*pi/tr_width) + 1 n = [0:M-1]; wc = (ws + wp)/2; hd = ideal_lp (wc, M); w_ham = (hamming(M))'; h = hd.*w_ham; [db, mag, pha, w] = freqz_m(h, [1]); delta_w = 2*pi/1000;

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 119

Rp = -(min(db(1:wp/delta_w+1))) As = -round(max(db(ws/delta_w+1:501))) subplot(1, 1, 1) subplot (2, 2, 1); stem(n, hd); title('Resposta ao Impulso Ideal'); axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('hd[n]'); subplot (2, 2, 2); stem(n, w_ham); title('Janela de Hamming'); axis([0 M-1 0 1.1]);xlabel('n');ylabel('w[n]'); subplot (2, 2, 3); stem(n, h); title('Resposta ao Impulso Atual'); axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('h[n]'); subplot (2, 2, 4); plot(w/pi, db); title('Magnitude em dB');grid axis([0 1 -100 10]);xlabel('frequencia em pi unidades');ylabel('Decibeis'); M = 67 alpha = 33 Rp = 0,0394 As = 52

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 120

Exemplo 2: Resolva o exemplo anterior usando uma janela de Kaiser. wp = 0.2*pi; ws = 0.3*pi; As = 50; tr_width = ws - wp; M = ceil((As - 7.95)/(14.36*tr_width/(2*pi))+1) + 1 n = [0:M-1]; beta = 0.1102*(As - 8.7) wc = (ws + wp)/2; hd = ideal_lp (wc, M); w_kai = (kaiser(M, beta))'; h = hd.*w_kai; [db, mag, pha, w] = freqz_m(h, [1]); delta_w = 2*pi/1000; As = -round(max(db(ws/delta_w+1:501))) subplot(1, 1, 1) subplot (2, 2, 1); stem(n, hd); title('Resposta ao Impulso Ideal'); axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('hd[n]'); subplot (2, 2, 2); stem(n, w_kai); title('Janela de Kaiser'); axis([0 M-1 0 1.1]);xlabel('n');ylabel('w[n]'); subplot (2, 2, 3); stem(n, h); title('Resposta ao Impulso Atual'); axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('h[n]'); subplot (2, 2, 4); plot(w/pi, db); title('Magnitude em dB');grid axis([0 1 -100 10]);xlabel('frequencia em pi unidades');ylabel('Decibeis'); M = 61 beta = 4,5513 alpha = 30 As = 52

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 121

Exemplo 3: Vamos projetar o filtro com as seguintes especificaes (conforme a figura abaixo): Borda da banda de corte mais baixa: w1s = 0,2, As = 60 dB Borda da banda de passagem mais baixa: w1p = 0,35, As = 1 dB Borda da banda de corte mais alta: w2s = 0,65, As = 1 dB Borda da banda de passagem mais alta: w2p = 0,8, As = 60 dB

Existem duas bandas de transio: w1 = w1P w1S, w2 = w2S w2P. Essas duas larguras de banda devem ser a mesma no projeto da janela; i.e., no h

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 122

controle independente sobre w1 e w2. Assim w1 = w2 = w1. Para esse projeto, podemos usar a janela de Kaiser ou a de Blackman. Vamos escolher a janela de Blackman. Vamos precisar tambm da resposta ideal ao impulso de um filtro passa-faixa hd[n]. Observe que essa resposta ao impulso pode ser obtida a partir de duas respostas em magnitude de filtros passa-baixa ideais, considerando que elas tenham a mesma resposta em fase. Isso pode ser visto na figura abaixo:

ws1 = 0.2*pi; wp1 = 0.35*pi; wp2 = 0.65*pi; ws2 = 0.8*pi; As = 60; tr_width = min((wp1-ws1), (ws2-wp2)); M = ceil(11*pi/tr_width) + 1 n = [0:M-1]; wc1 = (ws1 + wp1)/2; wc2 = (ws2 + wp2)/2; hd = ideal_lp(wc2, M) - ideal_lp(wc1, M); w_bla = (blackman(M))'; h = hd.*w_bla; [db, mag, pha, w] = freqz_m(h, [1]); delta_w = 2*pi/1000; Rp = -(min(db(wp1/delta_w+1:wp2/delta_w))) As = -round(max(db(ws2/delta_w+1:501)))

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 123

subplot (2, 2, 1); stem(n,hd); title('Resposta ao Impulso Ideal'); axis([0 M-1 -0.4 0.5]); xlabel('n'); ylabel ('hd[n]'); subplot (2, 2, 2); stem (n, w_bla); title ('Janela de Blackman'); axis ([0 M-1 0 1.1]); xlabel('n'); ylabel('w[n]'); subplot (2, 2, 3); stem(n, h); title('Resposta ao Impulso Atual'); axis([0 M-1 -0.4 0.5]);xlabel('n');ylabel('h[n]'); subplot (2, 2, 4); plot(w/pi, db); title('Magnitude em dB');grid axis([0 1 -150 10]);xlabel('frequencia em pi unidades');ylabel('Decibeis'); M= Rp = As = 75 0,0030 75

alpha = 37

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 124

Exemplo 4: A resposta em frequncia de um filtro passa-faixa ideal dada por:

0 | w |< / 3 1 , H e (e jw ) = 0 , / 3 | w | 2 / 3 1 , 2 / 3 > a = [-64 0 0 0 0 0 1]; >> b = roots(a) b= -0.5000 -0.2500 + 0.4330i -0.2500 - 0.4330i 0.5000 0.2500 + 0.4330i 0.2500 - 0.4330i

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 144

Para termos um filtro causal e estvel, usamos os plos do semi-plano esquerdo:

H a (s) =

1 ( s + 0,5)( s + 0,25 + j 0,433)( s + 0,25 j 0,433)

H a ( s) =

1 ( s + 0,5)( s 2 + 0,5s + 0,25)

Vamos ajustar o numerador para que o ganho na frequncia zero seja unitrio. Ou seja, no denominador, quando s = 0, temos: (s + 0,5)(s2 + 0,5s + 0,25) = 0,5.0,25 = 0,125 Logo, o numerador multiplicado por um fator de 1/8 e temos:

H a ( s) =

1/ 8 0,125 = ( s + 0,5)( s 2 + 0,5s + 0,25) ( s + 0,5)( s 2 + 0,5s + 0,25)

Para transformar o filtro em digital, podemos usar o mtodo de transformao bilinear. Nele, consideramos:

2 1 z 1 1 + sT / 2 s= z= 1 sT / 2 T 1 + z 1

(Eq. 5.5)

onde T um parmetro. Historicamente, o valor de T foi includo porque a equao de diferenas correspondendo a H(z) pode ser obtida aplicando a regra da integrao trapezoidal na equao de diferenas de H(s), com T representando o passo de integrao. Dada a invarincia ao impulso, o parmetro T no tem conseqncia no projeto j que, no mapeamento de analgico para discreto, o efeito de T cancelado. Logo, T pode ser escolhido de forma conveniente para cada problema. No nosso caso, seja T = 1:

1 z 1 s=2 H a ( z ) = H a ( s) s=21 z 1 = 1 1+ z 1+ z 1

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 145

H a ( z) =

0,1252 1 z 1 1 z 1 1 z 1 + 0,5 2 + 0,25 + 0,5 2 2 1 1 1 z 1 1 z 1 z

A transformao bilinear pode ser ligada frmula trapezoidal para integrao numrica. Por exemplo, considere um filtro linear analgico com funo de transferncia:

H (s) =

b s+a

(Eq. 5.6)

Esse sistema pode ser caracterizado tambm pela equao de diferenas:

dy (t ) + a. y (t ) = b.x(t ) dtAo invs de substituir uma diferena finita pela derivada, suponha que integramos a derivada e aproximamos a integral pela frmula trapezoidal. Assim:

y (t ) = y ' ( )d + y (t0 )t0

t

onde y(t) denota a derivada de y(t). A aproximao da integral anterior pela frmula trapezoidal em t = nT e t0 = nT T leva a:

y (nt ) =

T [ y ' (nT ) + y ' (nT T )] + y (nT T ) 2

(Eq. 5.7)

Agora, essa equao diferencial calculada em t = nT leva a:

y ' ( nT ) = a. y (nT ) + b.x(nT )

(Eq. 5.8)

Usamos a Eq. 5.8 na Eq. 5.7 e obtemos a equao de diferenas para o sistema discreto no tempo equivalente. Com y(n) y(nT) e x(n) x(nT), obtemos o resultado:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 146

bT aT aT (x(n) + x(n 1) ) 1 + y ( n ) 1 y ( n 1) = 2 2 2 cuja transformada Z

bT aT aT 1 1 + z 1 X ( z ) 1 + Y ( z ) 1 z Y ( z) = 2 2 2 Consequentemente, a funo de transferncia do filtro digital equivalente :

(

)

(bT / 2)(1 + z 1 ) Y ( z) = H ( z) = X ( z ) 1 + aT / 2 (1 aT / 2) z 1ou, equivalentemente:

H ( z) =

b 2 1 z 1 1 + z 1 + a T

(Eq. 5.9)

Notadamente, comparando a Eq. 5.9 com a Eq. 5.6, ou seja, mapeando o plano s com o plano z, temos:

2 1 z 1 s= 1 + z 1 T que a chamada transformao bilinear.

2) Filtro Passa-Baixa de Chebyshev Existem dois tipos de filtros de Chebyshev. O Chebyshev do tipo I tem resposta equirriple na banda de passagem e o tipo II, na banda de corte. Os filtros Butterworth tm resposta monotnica em ambas as bandas. Lembramos que um filtro de resposta equirriple tem menor ordem. Assim, um filtro de Chebyshev tem menor ordem que um de Butterworth para as mesmas especificaes. Veja o exemplo na Fig. 5.13 gerado usando o fdatool do MatLab. Nele, temos dois

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 147

filtros (um de Butterworth e um de Chebysshev tipo I) gerados sobre as mesmas condies, buscando sempre a menor ordem possvel. O filtro de Butterworth tem ordem 31, enquanto o de Chebyshev I tem ordem 16. A resposta quadrtica de magnitude de um filtro Chebyshev tipo I dada por:

| H a ( j ) | 2 =

12 1 + 2 TN c

onde N a ordem do filtro, o fator de ondulao da banda de passagem (Eq. 5.3) e TN(x) o polinmio de Chebyshev dado por:

cos( N . cos 1 ( x)) , 0 x 1 TN ( x) = 1 cosh(cosh ( x)) , 1 < x < Podemos considerar x = (/c). Para um filtro de Chebyshev do tipo II:

| H a ( j ) | 2 =

1 2 1 + 2TN c 1

Ou seja, x = (/c) substitudo por seu inverso e 2TN2(x) tambm.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 148

Fig. 5.13. Dois filtros com as mesmas especificaes gerados como Butterworth e Chebyshev tipo I: o de Chebyshev tem menor ordem.

3) Filtro Passa-Baixa Elptico Esses filtros apresentam ondulaes na banda de passagem e de corte. So similares em magnitude a filtros FIR equirriple. So filtros timos no sentido que eles alcanam a menor ordem N para as dadas especificaes. Esses filtros so muito difceis de projetar e analisar. No possvel projet-los com ferramentas simples, sendo necessrio uso de tabelas e computadores.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 149

A resposta quadrtica de magnitude dada por:

| H a ( j ) | 2 =

12 1 + 2U N c

onde N a ordem do filtro, o fator de ondulao da banda de passagem (Eq. 5.3) e UN(x) a funo elptica Jacobiana de ordem N. Apesar da anlise complexa, o clculo da ordem do filtro simples e dado por:

N=onde

K (k ) K ( 1 k1 ) K (k1 ) K ( 1 k 2 )

2

k= P S

,

k=

A 12

/2

e

K ( x) =

0

1 1 x sen 2 2

d

5.3 Transformaes em FrequnciaComo dissemos anteriormente, o projeto de filtros seletores de frequncia como passa-alta, passa-faixa ou rejeita faixa, so feitos a partir de um prottipo do tipo passa baixa. A partir desse prottipo, possvel aplicar uma transformao algbrica para construir o filtro desejado. Seja HPB(Z) a funo do sistema de um filtro passa-baixa dado o qual se quer transformar para obter uma nova funo H(z). Observe que as variveis complexas Z e z esto associadas ao filtro passa-baixa prottipo e ao filtro obtido pela transformao, respectivamente. O que se deseja, portanto, uma funo Z=G(z) que satisfaa:

H ( z ) = H PB ( Z ) Z 1 =G ( z 1 )

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 150

Se HPB(Z) a funo racional de um sistema causal e estvel, uma exigncia natural que a funo transformada H(Z) tambm apresente essas caractersticas. Isso implica que: 1. G(z-1) deve ser uma funo racional de z-1. 2. O interior do crculo unitrio do plano Z deve mapear o interior do crculo unitrio do plano z. 3. O crculo unitrio do plano Z deve mapear no crculo unitrio do plano z. Denotando por e w as variveis (ngulos) associados, respectivamente, aos planos Z e z, a transformao Z-1 = G(z-1) pode ser re-escrita como:

e j = G (e jw ) e j

=| G (e

jw

)|e

jG ( e jw )

De forma que: |G(e-jw)| = 1 e -= G(e-jw) A forma mais geral da funo G(z-1) que satisfaz s condies acima :

Z

1

z 1 k = G ( z ) = 1 k =1 1 k z1 N

onde |k| < 1. Dependendo da escolha de N e k, diversos mapeamentos podem ser obtidos. O mais simples (N = 1, 1 = ):

Z

1

z 1 = G( z ) = 1 z 11

Agora, escolhendo uma ordem apropriada N e os coeficientes {k}, podemos obter uma variedade de mapeamentos. As transformaes mais comuns esto na Tabela 5.1. Nessa tabela, vale a pena comentar a transformao passa-baixa para passabaixa (primeira converso da tabela). Isso feito para que se possa construir um

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 151

filtro passa-baixa que pode ser modificado apenas com a variao de um parmetro: .

5.4 Comparao entre Filtros FIR e IIRSeja M o comprimento (nmero de coeficientes) de um filtro FIR de fase linear e N a ordem de um filtro elptico (IIR). Se assumirmos que ambos os filtros atendem exatamente s mesmas especificaes, os dois filtros so equivalentes e atendem relao:

M 3 NIsso mostra que, para a maior parte das aplicaes, filtros IIR elpticos so desejveis do ponto de vista computacional. As condies mais favorveis para filtros FIR so: 1. Grandes valores de 1; 2. Pequenos valores de 2; 3. Grande largura da banda de transio.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 152

Tabela 5.1. Transformaes em frequncia para filtros digitais (filtro passa-baixa prottipo tem frequncia de corte em wc).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 153

5.5 Exerccios1. Projete um filtro passa-faixa, usando filtros passa-baixa ideais e janela de Hamming, de acordo com a seguinte resposta em frequncia:

0 | w |< 0,3 1, 0, 0,3 | w |< 0,4 jw H e (e ) = 1, 0,4 | w |< 0,5 0, 0,5 | w |< 0,6 1, 0,6 | w |< AS = 50 dB e RP = 0,5 dB Plote a resposta ao impulso e a resposta em magnitude do filtro. 2. Projete um filtro passa-alta, usando filtros passa-baixa ideais e janela de Hanning, de acordo com as seguintes especificaes: Frequncia da Banda de corte: 0,4 Frequncia da Banda de passagen: 0,6 AS = 60 dB e RP = 0,5 dB Plote a resposta ao impulso e a resposta em magnitude do filtro. Modifique o que for necessrio do filtro para que as especificaes sejam completamente atendidas. 3. A resposta em frequncia de um filtro passa-faixa ideal dada por:

0 | w |< / 3 0 , H e (e jw ) = 1 , / 3 | w | 2 / 3 0 , 2 / 3 > xn = idfs(Xk, N) xn = 0 - 0i 1 - 0i 2 - 0i 3 + 0i.

Exemplo: Considere uma sequncia representando uma onda quadrada peridica:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 160

No MatLab: >> L = 5; N = 20; k = [-N/2:N/2]; >> xn = [ones(1, L), zeros(1, N-L)]; >> Xk = dfs(xn, N); >> magXk = abs([Xk(N/2+1:N) Xk(1:N/2+1)]); % DFS magnitude >> stem(k, magXk); axis([-N/2, N/2, -0.5, 5.5]);xlabel('k'); ylabel('X[k]');

Para N = 40, temos:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 161

6.2 A Transformada Discreta de FourierNa prtica, definimos a Transformada Discreta de Fourier (DFT) como o perodo primrio da DFS. Essa DFT a transformada de Fourier para sequncias arbitrrias de durao finita. Primeiro, definimos a squncia de durao finita x[n] que tem N amostras sobre 0 n N 1 como uma sequncia de N-pontos. Seja ~ [n] um sinal peridico de x perodo N, criado usando uma sequncia de N-pontos x[n]; isto :

~[ n] = x

r =

x[n rN ]

O teorema da amostragem no domnio da frequncia diz que, se x[n] de durao finita ([0, N-1]), ento N amostras de X(z) no crculo unitrio determinam X(z) para todo z. Nesse sentido, N eqidistantes amostras da transformada de Fourier discreta no tempo X(ejw) da sequncia de N-pontos x[n] pode reconstruir unicamente X(ejw). Essas N amostras ao redor do crculo unitrio so chamdas ~ de coeficientes da transformada discreta de Fourier. Seja X [k] =DFS ~ [n], que x uma sequncia peridica (e assim de durao finita). Seu intervalo primrio ento a transformada discreta de Fourier, que de durao finita. Essas noes

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 162

so claras na seguinte definio. A Transformada Discreta de Fourier de uma sequncia de N-pontos dada por:

~ X [k ], 0 k N 1 X [k ] = DFT ( x[n]) = seno 0,oukn X [k ] = x[n]W N , n =0 N 1

0kN1

Note que X[k] tambm uma sequncia de N-pontos, ou seja, ela no definida fora do intervalo de 0 k N 1. A transformada discreta de Fourier inversa de uma DFT de N-pontos X[k] dada por:

x[n] = IDFT ( X [k ])ou

1 x[n] = N

X [k ]Wk =0

N 1

kn N ,

0nN1

Novamente, x[n] no definida fora do intervalo 0 n N 1. A extenso de x[n] fora desse intervalo ~ [n]. x Do incio desse captulo, fica claro que a DFS praticamente equivalente DFT quando 0 n N 1. Assim a implementao da DFT pode ser feita de forma similar. Se x[n] e X[k] so organizados como vetores coluna x e X, respentivamente, ento temos: X = WNx e x = (1/N)W*NX

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 163

onde WN a matriz DFS como antes. A implementao tanto da DFT quanto da IDFT no MatLab igual s da DFS e IDFS que apresentamos anteriormente. Considere aquelas mesmas funes com nomes dft e idft apenas. Uma outra possvel representao da transformada discreta de Fourier a forma retangular que se utiliza da relao de Euler. A relao de Euler dada por ej = cos + jsen . A DFT pode ser escrita ento da seguinte forma:

2mn 2mn X [m] = x[n]cos jsen N n=0 N N 1

lembrando que j = 1. Este um conceito abstrato conveniente para nos ajudar a comparar a relao de fase entre vrias componentes senidais do sinal. A DFT apresenta algumas propriedades que so muito teis no processamento digital de sinais, como: simetria, linearidade, deslocamento no tempo e freqncia, entre outras. Fora a simetria, as outras propriedades so comuns transformada de Fourier de tempo contnuo.

6.3 Propriedades da Transformada Discreta de Fourier1) Linearidade Dadas duas seqncias peridicas com perodo N, x1[n] e x2[n], e suas respectivas DFTs X1[k] e X2[k], ento: a.x1[n] + b.x2[n] a.X1[k] + b.X2[k] Obs: Se x1[n] e x2[n] so sequncias de duraes diferentes (N1-pontos e N2pontos, por exemplo), escolha N3 = max(N1, N2). Se, por exemplo, N1 < N2, ento X1[k] a DFT de x1[n] aumentada de (N2 N1) zeros. 2) Deslocamento de uma seqncia Seja x[n] uma seqncia peridica com coeficientes de Fourier X[m]. Assim:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 164

x[n m] WNkmX[m] 3) Dualidade Se ento 4) Simetria A simetria pode poupar muito esforo computacional. Quando a seqncia do sinal for real, ento X[N m]* = X[m]. Ou seja, basta que calculemos as componentes de X[m] para 0 m N/2 . Prova:2 kn N

x[n] X[k] X[n] N.x[-k]

X [k ] = x[n]en=0

N 1

j

Logo2 2 2 j n ( N m ) j nN j nm N 1 N 1 * N N X [ N m] = x[n]e e N = x[n]e n =0 n =0 2 j nm N 1 * j 2n X [ N m] = x[n]e e N n =0 * * *

onde e-j2k = cos(2n) - jsen(2n) = 1 j.0 = 1. Assim:2 j nm N 1 * X [ N m] = x[n]e N n =0 *

Se x[n] for real:

X [ N m] = x[n]e* n =0

N 1

j

2 nm N

= X [ m]

5) Convoluo Peridica

m =0

x [ m] x [ n m] X [ k ] X1 2 1

N 1

2

[k ]

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 165

onde o lado esquerdo da igualdade conhecido como convoluo, representado por x1[n]*x2[n]. importante observar que o somatrio ocorre no intervalo 0 m

N-1. O valor de x2[n m] se repete periodicamente fora desse intervalo.

Exemplo: >> n = 0:99; >> fs = 200; >> Ts=1/fs; >>x=cos(2*pi*20*n*Ts + pi/4) + 3*cos(2*pi*40*n*Ts - 2*pi/5) + 2*cos(2*pi*60*n*Ts + pi/8); >> X = fft(x); >> m = 0:length(X) - 1; >> subplot(3, 1, 1); stem(x); xlabel('n');ylabel('x(n)');title('Sequencia'); >> subplot(3, 1, 2); stem(m*fs/length(X), abs(X), 'b'); ylabel('magnitude'); >> xlabel('frequencia (Hz)'); title('Magnitude da Resposta em Frequencia'); >> subplot(3,1,3); stem(m*fs/length(X), angle(X), 'b'); ylabel('Angulo'); >> xlabel('frequencia (Hz)'); title('Fase');

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 166

Observe que, como o sinal x[n] real, a magnitude da resposta em frequncia apresenta uma imagem refletida. Assim, precisamos apenas da primeira metade dela. Para a fase, o padro tambm aparece refletido no eixo da freqncia; novamente, s precisamos de metade da plotagem. Para a questo da magnitude podemos fazer: >> half_m = 0:ceil(length(X)/2); >> stem(half_m*fs/length(X), abs(X(half_m + 1)), 'b'); >> ylabel('magnitude'); >> xlabel('frequencia (Hz)'); title('Magnitude da Resposta em Frequencia');

6.4 A Transformada Discreta Bi-Dimensional de FourierPara duas dimenses, a DFT e sua inversa podem ser vistas como:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 167

Essa a forma como a transformada calculada para imagens digitais, por exemplo. Se considerarmos uma imagem em nveis de cinza onde o valor 0 corresponde ausncia de cor (o preto) e o valor 1 corresponde ao valor mximo da cor (o branco), a imagem abaixo:

Pode ser vista como uma figura tridimensional, cuja viso em perspectiva seria como na figura:

que uma verso tridimensional da funo porta. Dessa forma, a transformada tambm uma funo sample, mas tambm tridimensional:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 168

Uma propriedade importante da DFT aplicada a imagens sua sensibilidade rotao. Por exemplo, considere a figura abaixo e sua DFT:

Se for imposta uma rotao imagem, a transformada guardar a informao da inclinao inicial, podendo ser possvel encontrar o ngulo de rotao da imagem. Por exemplo, na figura a seguir, foi imposta uma rotao de 45 imagem da figura acima. Veja o resultado da DFT como apresenta a inclinao.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 169

6.5 Exerccios1. Determine os coeficientes da DFS das seguintes sequncias peridicas, usando a definio de DFS: a) x1[n] = {2, 0, 2, 0}, N = 4 b) x2[n] = {0, 0, 1, 0, 0}, N = 5 c) x3[n] = {3, -3, 3, -3}, N = 4 d) x4[n] = {j, j, -j, -j}, N = 4 2. Determine as sequncias peridicas, dados os seguintes coeficientes DFS, usando a definio de IDFS: a) X1[k] = {5, -2j, 3, 2j}, N = 4 b) X2[k] = {4, -5, 3, -5}, N = 4 c) X3[k] = {1, 2, 3, 4, 5}, N = 5 d) X4[k] = {0, 0, 2, 0}, N = 4 3. Seja x1[n] peridica com perodo fundamental N = 50, onde um perodo dado por:

ne0,3n , 0 n 25 x1[n] = 26 n 49 0,e seja x2[n] peridica com perodo fundamental N = 100, onde um perodo dado por:

ne 0,3n , 0 n 25 x21[n] = 26 n 99 0,a) Encontre DFT{x1[n]} e plote (usando a funo stem) os grficos de sua magnitude e de sua fase. b) Encontre DFT{x2[n]} e plote (usando a funo stem) os grficos de sua magnitude e de sua fase. c) Qual a diferena entre as duas plotagens?

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 170

4. Nas questes abaixo, para cada funo, plote a magnitude e a fase de sua DFT (crie as funes no MatLab): a) Dente de serra:

b) Onda quadrada

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 171

6.6 Bibliografia Complementar1. Vinay K. Ingle, John G. Proakis, Digital Signal Processing, Thomson Learning, 2000. 2. Michael Weeks, Digital Signal Processing Using MatLab and Wavelets, Infinity Science Press, 2007. 3. Alan V. Oppenheim, Ronald Schafer, Discrete Time Signal Processing, Prentice Hall, 1989

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello

Pgina 172

7. Transformada Rpida de Fourier (FFT- Fast Fourier Transform)Embora a DFT seja o melhor procedimento matemtico para determinar o contedo espectral de uma seqncia no domnio do tempo, ela muito ineficiente. Em 1965, um artigo foi publicado por J.W.Cooley e J.W.Tukey descrevendo um algoritmo eficiente para implementao da DFT, este algoritmo ficou conhecido como Transformada rpida de Fourier (FFT). Antes do advento da FFT, a DFT com muitos pontos estava restrita a grandes centros de pesquisas. Graas a Cooley e Tukey, e a indstria dos semicondutores, DFTs com 1024 pontos podem ser calculadas em apenas alguns segundos em computadores pessoais. O esforo computacional pode ser definido como o nmero mximo de operaes elementares necessrias para resolver o problema. No caso da DFT, pode-se tratar da complexidade multiplicativa e complexidade aditiva i.e., nm