Você está na página 1de 331

Processamento Digital

de
Sinais






Carlos Alexandre Mello
Centro de Informtica UFPE
2013
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 2
































Agradecimentos primeira 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 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 Sistemas LTI como Filtros Seletores de Frequncia ................................. 14
1.5 Representao de Sequncias pela Transformada de Fourier ................. 18
1.5.1 Propriedades da Transformada de Fourier ......................................... 21
1.6 Cdigos do MatLab ................................................................................... 22
1.7 Exerccios .................................................................................................. 30
1.8 Bibliografia Complementar ........................................................................ 33
2. A Transformada Z ........................................................................................... 34
2.1 Propriedades da Transformada Z .............................................................. 36
2.2 Pares de Transformadas Z ........................................................................ 39
2.3 Exemplos de Clculo da Transformada Z ................................................. 39
2.4 Propriedades da Regio de Convergncia ................................................ 47
2.5 A Transformada Z Inversa ......................................................................... 48
2.6 Exerccios .................................................................................................. 57
2.7 Bibliografia Complementar ........................................................................ 59
3. Teoria da Amostragem ................................................................................... 60
3.1 Teorema de Shannon ................................................................................ 65
3.2 Re-Obteno do Sinal a partir de suas amostras ...................................... 70
4. Filtros Digitais ................................................................................................. 73
4.1 Filtros Digitais ............................................................................................ 75
4.2 Filtros FIR .................................................................................................. 79
4.4 Exerccios ................................................................................................ 108
4.5 Bibliografia Complementar ...................................................................... 109
5. Tcnicas de projeto de filtros ........................................................................ 110
5.1 Projeto de Filtros FIR .............................................................................. 113
5.1.1 Projeto usando janelas ..................................................................... 114
5.1.2 Tcnicas de Projeto por Amostragem em Frequncia ...................... 140
5.1.3 Projeto Equirriple timo .................................................................... 142
5.2 Projeto de Filtros IIR ................................................................................ 145
5.2.1 Escala Relativa ................................................................................. 146
5.2.2 Caractersticas de Prottipos Analgicos ......................................... 149
5.3 Transformaes em Frequncia .............................................................. 158
5.4 Comparao entre Filtros FIR e IIR ......................................................... 160
5.5 Exerccios ................................................................................................ 162
5.6 Bibliografia Complementar ...................................................................... 163
6. Transformada Discreta de Fourier ................................................................ 164
6.1 A Srie Discreta de Fourier ..................................................................... 165
6.2 A Transformada Discreta de Fourier ....................................................... 170
6.3 Propriedades da Transformada Discreta de Fourier ............................... 172
6.4 A Transformada Discreta Bi-Dimensional de Fourier .............................. 175
6.5 O Espectrograma .................................................................................... 177
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 4
6.6 Exerccios ................................................................................................ 181
6.7 Bibliografia Complementar ...................................................................... 183
7. Transformada Rpida de Fourier (FFT- Fast Fourier Transform) ................. 184
7.1 Algoritmos Rpidos ................................................................................. 184
7.2 Algoritmo de Cooley-Tukey ou Decimao no Tempo ............................ 186
7.3 Outras FFTs ............................................................................................ 197
7.4 Exerccios ................................................................................................ 199
7.5 Bibliografia Complementar ...................................................................... 200
8. Anlise Wavelet ............................................................................................ 201
8.1 A Transformada Wavelet ......................................................................... 204
8.2 Anlise em Multiresoluo....................................................................... 208
8.3 Sobre os coeficientes das wavelets ........................................................ 211
8.4 Wavelets no MatLab ................................................................................ 216
8.5 Exerccios ................................................................................................ 223
8.6 Bibliografia Complementar ...................................................................... 225
9. Processamento Digital de Imagens .............................................................. 226
9.1 Digitalizao ............................................................................................ 229
9.2 Sistema Computacional de Cores ........................................................... 232
9.3 Histograma .............................................................................................. 236
9.4 Filtragem de Imagens Digitais ................................................................. 238
9.5 Compresso de Imagens ........................................................................ 246
9.6 Processamento de Imagens no MatLab .................................................. 248
9.7 Exerccios ................................................................................................ 252
9.8 Bibliografia Complementar ...................................................................... 253
10. Tcnicas de Codificao de udio e Vdeo ................................................ 254
10.1 Teoria dos Cdigos ............................................................................... 254
10.2 Algoritmos de Compresso ................................................................... 258
10.2.1 Cdigo de Huffman ......................................................................... 259
10.2.2 Run-length ...................................................................................... 262
10.2.3 Algoritmo de Lempel-Ziv-Welch ...................................................... 262
10.3 Algoritmos de codificao multimdia .................................................... 263
10.3.1 Codificao de Vdeo ...................................................................... 264
10.3.2 Codificao de udio ...................................................................... 278
10.4 Implementaes no MatLab .................................................................. 283
10.4.1 Processamento de Vdeo no MatLab ................................................. 283
10.4.2 Processamento de udio no MatLab ................................................. 289
10.5 Exerccios .............................................................................................. 299
10.6 Bibliografia Complementar .................................................................... 300
11. Processamento de Voz ............................................................................... 301
11.1 Amostragem e Quantizao .................................................................. 308
11.2 Tcnicas Temporais para Processamento de Voz ................................ 315
11.2.1 Energia de Curta Durao .............................................................. 317
11.2.2 Magnitude de Curta Durao .......................................................... 319
11.2.3. Taxa de Passagem pelo Zero ........................................................ 320
11.2.4. Funo de Autocorrelao ............................................................. 322
11.3 Anlise Cepstral .................................................................................... 325
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 5
11.4 Exerccios .............................................................................................. 330
11.5 Bibliografia Complementar .................................................................... 331
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 6
1. Processamento Digital de Sinais
Sinais 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 podem ser classificados em quatro diferentes categorias dependendo de
carcatersticas de tempo e dos tipos de valores que eles podem assumir. Sinais
contnuos no tempo (ou analgicos) so definidos para qualquer valor de tempo
e eles assumem valores no intervalo contnuo (a, b), onde a pode ser - e b
pode ser +. Podem ser representados por uma funo de variveis contnuas.
Sinais discretos no tempo so definidos apenas para certos valores especficos
de tempo. Podem ser representados matematicamente por uma sequncia de
nmeros reais ou complexos, x. O n-simo nmero dessa seqncia denotado
por x[n]. Assim, x formalmente escrito como:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 7
x = {x[n]}, - <n <
onde n um inteiro. Tais seqncias so geradas a partir de um processo de
amostragem peridica de um sinal analgico. Assim, o valor numrico do n-
simo nmero da seqncia igual ao valor do sinal analgico x
a
(t) no tempo
nT, i.e.:
x[n] = x
a
(nT), - <n <

Os valores de amplitude de sinais contnuos ou discretos no tempo podem ser
contnuos ou discretos. Se um sinal pode assumir qualquer valor dentro de um
espao finito ou infinito, ele dito um sinal contnuo em valores. Sinais digitais
so aqueles para os quais tanto o tempo quanto a amplitude so discretos. Ou
seja, ele discreto no tempo e s pode assumir valores dentro de um conjunto
finito de possveis valores ( discreto em valores).

Sinais tambm podem ser classificados em determinsticos ou aleatrios.
Qualquer sinal que podem ser unicamente descrito por uma expresso
matemtica, uma tabela de dados ou uma regra bem definida chamado
determinstico. Esse termo usado para destacar que quaisquer valores
passados, presentes e futuros do sinal so conhecidos precisamente, sem
incerteza. No entanto, em aplicaes prticas, os sinais no podem ser
representados precisamente por equaes matemticas ou suas descries so
muito complexas para uso. Isso indica que tais sinais tm comportamentos
imprevisveis sendo chamados de sinais aleatrios.


1.1 Principais Tipos de Sinais
Em um estudo sobre processamento digital de sinais, alguns sinais so de mais
importncia. Dentre eles, temos o impulso unitrio, [n], definido como:

=
0 , 1
0 , 0
] [
n
n
n

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 8
Um dos mais importantes aspectos do impulso que uma seqncia arbitrria
pode ser representada como uma soma de impulsos escalonados e deslocados.
Por exemplo, a seqncia p[n] abaixo:

pode ser representada como:

p[n] = 3.[n+3] + 2.[n + 1] + 4.[n - 2] 1.[n 3]

De forma mais geral, qualquer seqncia x[n] pode ser representada como:

=
=
k
k n k x n x ] [ ] [ ] [

Outra seqncia importante o degrau unitrio, u[n]:

<

=
0 , 0
0 , 1
] [
n
n
n u

O degrau relaciona-se com o impulso como:

=
=
n
k
k n u ] [ ] [

Uma forma alternativa de representar o degrau em termos de impulso obtida
interpretando o degrau em termos de uma soma de impulsos deslocados. Isso
pode ser expresso como:

=
=
0
] [ ] [
k
k n n u

Por outro lado, o impulso relaciona-se com o degrau unitrio como:
[n] = u[n] u[n 1]
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 9
Uma seqncia exponencial importante na anlise de sistemas discretos e
invariantes no tempo. A forma geral de uma seqncia exponencial dada por:
x[n] = A.
n


1.2 Sistemas Discretos no Tempo
Um 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. 1.1.

Fig. 1.1. Representao de um sistema discreto no tempo

Alguns exemplos ilustram sistemas simples:
1) Sistema de atraso ideal: y[n] = x[n n
d
], - <n <


2) Mdia mvel:
=

+ +
2
1
] [
1
1
2 1
M
M k
k n x
M M


A seguir, destacamos algumas importantes propriedades dos sistemas.

1) Um sistema dito sem memria (memoryless systems) se a sada 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 princpio da superposio. Ou seja:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 10

T{a.x
1
[n] + b.x
2
[n]} = a.T{x
1
[n]} + b.T{x
2
[n]}

Ex: Acumulador:
=
=
n
k
k x n y ] [ ] [


3) Um sistema invariante no tempo um sistema no qual um deslocamento
no tempo (ou atraso) da seqncia de entrada gera um deslocamento
correspondente na seqncia de sada. Ou seja, suponha um sistema que
transforma uma seqncia de entrada x[n] na seqncia de sada y[n]. Se a
seqncia de entrada sofre um deslocamento de n
0
, x[n] = x[n n
0
], ento a
seqncia de sada torna-se y[n] = y[n n
0
].

Ex: Um sistema de atraso ideal um sistema invariante no tempo.

Ex: O seguinte exemplo mostra um sistema que no invariante no tempo:
y[n] = x[M.n], - <n <

4) Um sistema dito causal se ele no depende de valores futuros da
seqncia. Ou seja, o valor de y[n
1
] pode ser calculado apenas com valores de
x[n] para n n
1
.
Ex: Um sistema no causal: y[n] = x[n + 1] x[n]

5) Um sistema dito estvel se toda entrada limitada provoca uma sada
limitada. Assim, se, para todo n, |x[n]| B < , para algum valor finito B, ento
|y[n]| C < , para algum valor finito C.

1.3 Sistemas Lineares e Invariantes no Tempo
Uma classe importante de sistemas consiste naqueles que so lineares e
invariantes no tempo. Como dito acima, os sistemas lineares so aqueles que
obedecem ao princpio da superposio. Se a propriedade da linearidade
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 11
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 h
k
[n] a resposta do sistema a
[n k]. Assim, como:

=
=
k
k n k x n x ] [ ] [ ] [

ento
} ] [ ] [ { ] [

=
=
k
k n k x T n y

Pelo princpio da superposio, podemos escrever:


=

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


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

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:

=
=
k
k n h k x n y ] [ ] [ ] [
(Eq. 1.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. 1.2)

Apesar da semelhana na notao, deve-se salientar que a soma de convoluo
para sinais discretos no uma aproximao da integral de convoluo.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 12
Propriedades da soma de convoluo:
1) Comutatividade:
x[n]*h[n] = h[n]*x[n]

Isso pode ser facilmente justificvel com uma mudana de varivel na Eq. 1.1.
Especificamente, podemos fazer m = n k.

2) Distributividade:
x[n]*(h1[n] + h2[n]) = x[n]*h1[n] + x[n]*h2[n]

3) Conexo em Cascata

4) Conexo em Paralelo




Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 13
5) Causalidade
Como definido anteriormente, um sistema dito causal se sua resposta no
depende de eventos futuros. Ou seja, para calcular a sada de y[n
0
], precisamos
apenas de x[n], n n
0
. Isso implica na condio:
h[n] = 0, n < 0
Assim, para testar a causalidade basta testar se h[n] = 0 para n<0.

6) Estabilidade
A estabilidade garantida se:
< =

= n
n h S | ] [ |


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 seu sistema inverso, se existir, tem resposta ao impulso h
i
[n]
definida pela relao:

h[n]*h
i
[n] = h
i
[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:

= =
=
N
k
M
k
k k
k n x b k n y a
0 0
] [ ] [
(Eq. 1.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 14

Tal sistema representado pela equao de diferenas:
y[n] = y[n 1] + x[n]
ou y[n] - y[n 1] = x[n]

Pela Eq. 1.3, temos: N = 1, a
0
= 1, a
1
= -1, M = 0 e b
0
= 1.

Assim, para cada valor de n a sada dada pela entrada x[n] somada com o
valor anterior do acumulador, y[n 1].

1.4 Sistemas LTI como Filtros Seletores de Frequncia
O termo filtro normalmente usado para descrever um dispositivo que
discrimina, de acordo com algum atributo do objeto aplicado como entrada, o
que passa atravs dele. Por exemplo, como um filtro de ar que deixa o ar
passar, mas retm partculas de impureza. Um sistema LTI tambm funciona
como um tipo de discriminante ou filtrando entre os vrios componentes de
frequncia na sua entrada. A forma da filtragem definida pela resposta de
frequncia H() que depende da escolha de parmetros do sistema (como os
coeficientes do filtro). Assim, com uma escolha apropriada de parmetros,
podemos projetar filtros seletores de frequncia que deixam passar sinais
contendo componentes de frequncia em algumas bandas e atenuando sinais
contendo componentes de frequncia em outras bandas.

Em geral, um sistema LTI modifica o espectro do sinal de entrada X() de
acordo com a resposta em frequncia H() que leva a um sinal de sada com
espectro Y() = H()X(). De certa forma, H() atua como uma funo de peso
nos diferentes componentes de frequncia do sinal de entrada. Assim, um
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 15
sistema LTI pode ser visto como um filtro embora no bloqueie completamente
qualquer componente de frequncia do sinal de entrada. Consequentemente, os
termos sistema LTI e filtro so sinnimos e so normalmente usados sem
distino.

Um filtro um sistema LTI usado para desempenhar a funo de filtragem
seletora de frequncia. Filtragem usada em processamento digital de sinais
em uma grande variedade de formas, como remoo de rudo, equalizao,
anlise espectral de sinais, etc.

Filtros so normalmente classificados de acordo com suas caractersticas no
domnio da frequncia como passa-baixa, passa-alta, passa-faixa e rejeita-faixa.
As caractersticas de resposta em magnitude ideais desses tipos de filtros esto
ilustradas na Fig. 1.2. Esses filtros ideais tm caractersticas de ganho constante
na banda de passagem (normalmente, tomados como unitrios) e ganho zero na
banda de corte. Mais detalhes sobre filtros digitais e formas de projeto sero
vistos nos Captulos 4 e 5.


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 16

Fig. 1.2. Resposta em magnitude para alguns filtros seletores de frequncia
discretos no tempo.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 17
Outra caracterstica de um filtro ideal uma resposta de fase linear. Considere
que um sinal {x[n]} com componentes de frequncia dentro da faixa de
1
<
<
2
passa por um filtro com resposta em frequncia:

< <
=

seno
Ce
H
n j
0
) (
2 1
0


onde C e n
0
so constantes. O sinal na sada do filtro ter um espectro:

0
) ( ) ( ) ( ) (
n j
e CX H X Y



= =


Aplicando as propriedades da transformada de Fourier, obtemos a sada no
domnio do tempo:

Y[n] = C.x[n n
0
]

Consequentemente, a sada do filtro simplesmente uma verso escalonada e
atrasada do sinal de entrada. Tanto um atraso simples quanto uma diferena em
escala so considerados tolerveis e no distores do sinal. Portanto, filtros
ideais tm uma caracterstica de fase linear na banda de passagem que :

() = -n
0


A derivada da fase em relao frequncia medida em unidades de atraso.
Assim, podemos definir o atraso do sinal como uma funo da frequncia como:


d
d
g
) (
) (

=

g
() chamado de atraso de grupo (group delay) do filtro. Entendemos
g
()
como o atraso de tempo que os componentes de frequncia de um sinal so
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 18
submetidos medida que ele passa da entrada sada do sistema. Note que,
quando () linear,
g
() = n
0
= constante. Nesse caso, todas as componentes
de frequncia do sinal de entrada sofrem o mesmo atraso de tempo.

Como concluso, todos os filtros ideais tm caractersticas de magnitude
constante e fase linear dentro da banda de passagem. Em todos os casos, tais
filtros no so fisicamente realizveis, mas servem como idealizaes
matemticas para filtros prticos.

1.5 Representao de Sequncias pela Transformada de Fourier
Assim como sinais do contnuo, os sinais discretos no tempo tambm podem ser
representados de formas diferentes. Uma das formas mais utilizadas atravs
da transformao do sinal para o domnio da freqncia atravs da
Transformada de Fourier. Muitas seqncias podem ser representadas por uma
integral de Fourier da forma:

d e e X n x
n j j
) (
2
1
] [
(Eq. 1.4)

onde X(e
jw
) dada por:

=
n
n j j
e n x e X

] [ ) (
(Eq. 1.5)
A Eq. 1.4 conhecida como a Transformada Inversa de Fourier, enquanto a Eq.
1.5 a Transformada de Fourier.

Em geral, a Transformada de Fourier uma funo complexa em . Como na
resposta freqncia, algumas vezes, pode-se expressar X(e
j
) na forma:

X(e
j
) = X
R
(e
j
) + j.X
I
(e
j
)

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 19
ou na forma polar:

X(e
j
) = |X(e
j
)| e
jX(e^j)


As quantidades |X(e
j
)| e X(e
j
) so chamadas de magnitude e fase da
Transformada de Fourier (tambm chamada de espectro de Fourier ou,
simplesmente, espectro).

H casos onde a Transformada de Fourier para uma dada seqncia no
converge. Esses casos podem ser definidos atravs da Transformada Z como
veremos posteriormente.

Podemos verificar facilmente que as Eqs. 1.4 e 1.5 so inversas realmente.
Especificamente, considere:
^
] [ ] [
2
1
n x d e e m x
n j
m
m j
= |

\
|


Se trocarmos a ordem da integrao com o somatrio, temos:
|
|

\
|
=

d e m x n x
m n j
m
) (
^
2
1
] [ ] [


Calculando a integral dentro dos parnteses, temos:

=
=

n m
n m
m n
m n
d e
m n j
, 0
, 1
) (
)) ( sin(
2
1
) (



] [ m n =

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 20
Assim:
] [ ] [ ] [ ] [
^
n x m n m x n x
m
= =



Exemplo 1:
Seja x[n] = a
n
u[n].

A TF dada por:


=

= = = =
0 0
1
1
) ( ] [ ) (
n
jw
n
n jw jwn n
n
jwn jw
ae
ae e a e n x e X

Que converge se |a.e
-jw
| < 1 ou |a| < 1.

OBS:

=
1
1
0 n
n
, para || < 1


Exemplo 2:
Vamos calcular a resposta ao impulso de um filtro passa-baixa ideal cuja
resposta em freqncia :

< <
<
=
| | , 0
| | , 1
) (
w w
w w
e H
c
c jw
LPF


A resposta o impulso h
LPF
[n] pode ser encontrada atravs da Transformada
Inversa de Fourier:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 21


= =
c
c
w
w
jwn jwn jw
LPF LPF
dw e dw e e H n h

2
1
) (
2
1
] [

< < = n
n
n w
n h
c
LPF
,
) sin(
] [



1.5.1 Propriedades da Transformada de Fourier
Algumas propriedades da TF: Seja: x[n] X(e
jw
) e y[n] Y(e
jw
)
Propriedade Seqncia Transformada de Fourier
Linearidade a.x[n] + b.y[n] a.X(e
jw
) + b.Y(e
jw
)
Deslocamento no Tempo x[n nd] e
-jwnd
X(e
jw
)
Deslocamento na Freq e
jwon
x[n] X(e
j(w w0)
)
Reverso no Tempo x[-n]
X(e
-jw
)
X*(e
-jw
), se x[n] real
Diferenciao em Freq n.x[n] j dX(e
jw
)/dw
Convoluo x[n]*y[n] X(e
-jw
).Y(e
-jw
)
Modulao x[n].y[n]

d e Y e X
w j j
) ( ) (
2
1
) (


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 22
1.6 Cdigos do MatLab

Funo Impulso
function [x, n] = impseq(n0, n1, n2) % Impulso
n = [n1:n2];
x = [(n-n0) == 0];
stem (x);

Exemplos:

1.
>> impseq (5, 0, 10);



2.
x[n] = 2.[n + 2] - [n 4], -5 n 5
>> n = [-5:5];
>> x = 2*impseq(-2, -5,5) - impseq(4, -5, 5);
>> stem (n, x); title ('Exemplo de Sequencia'); xlabel('n'); ylabel('x[n]');






Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 23
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]] + 10
e-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 24
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<=max(n1))==1)) = x1;
y2(find((n>=min(n2))&(n<=max(n2))==1)) = x2;
y = y1 + y2;

Multiplicao de sinais
y[n] = x1[n].x2[n]

function [y,n] = sigmult(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<=max(n1))==1)) = x1;
y2(find((n>=min(n2))&(n<=max(n2))==1)) = x2;
y = y1.*y2;
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 25
Deslocamento
y[n] = x[n k]

function [y,n] = sigshift(x, m, n0)
n = m + n0;
y = x;

Inverso
y[n] = x[-n]

function [y,n] = sigfold(x,n)
y = fliplr(x);
n = -fliplr(n);

Exemplo: Seja x[n] = {1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1}. O valor em negrito
corresponde ao centro da sequncia.

Sobre as sequncias, temos que:
>> n = -2:10;
>> x = [1:7, 6:-1:1];

a) Plote x
1
[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 26
b) Plote x
2
[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], -3 n 3
h = [2, 3, 0, -5, 2, 1]; -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 27
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 = 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).




Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 28
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:


= =
=
N
k
M
k
k k
k n x b k n y a
0 0
] [ ] [


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 29
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:
< =

= n
n h S | ] [ |

Assim, no MatLab, basta fazermos:
>> sum(abs(h))
Ans = 14.8785

Logo, o sistema estvel.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 30
1.7 Exerccios

1. 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], com g[n] dado
b. T(x[n]) =
n
k=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, a e b nmeros reais
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.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 31
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 < 0, ento y[n] = 0, para n < 0.

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 32
7. Plote a seguintes sequncias no MatLab:
a) x[n] = n
2
.(u[n + 5] u[n 6]) + 10.[n], -5 n 5
b) x[n] = 20.(0,5)
n
.(u[n 4] u[n - 10]), -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 n
0
] = x[n n
0
]
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 33
1.8 Bibliografia Complementar

1. 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 34
2. A Transformada Z
A 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:

=
n
jwn jw
e n x e X ] [ ) (

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

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

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

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


Notadamente, h uma relao entre a TZ e a TF. Se z uma varivel complexa,
z pode ser escrita como e
jw
= cos(w) + j.sen(w). Nesse caso, a TZ transforma-se
na TF. De forma mais geral, se z = r.e
jw
, 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:
<

0
| ] [ |
n
n
z n x

Assim, possvel que TZ convirja mesmo se a TF no convergir. Para a TF
convergir, a ROC da TZ deve conter o crculo unitrio. Uma transformada Z s
est completamente definida se sua ROC estiver determinada.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 35

Fig. 2.1. Plano Z: representao grfica da transformada Z no plano complexo.
No crculo unitrio, a transformada Z reduz-se transformada de Fourier.

A srie definida pela TZ chamada de srie de Laurent. Uma tal srie
representa uma funo contnua em qualquer ponto dentro da regio de
convergncia. Assim, a TZ e todas as suas derivadas devem ser funes
contnuas de z na ROC. Isso implica que, se a regio de convergncia uniforme
inclui o crculo unitrio, ento a TF e suas derivadas com respeito a w so
funes contnuas de w. Alm disso, a seqncia deve ser absolutamente
somvel, i.e., uma seqncia estvel.

Entre as mais teis e importantes TZs esto aquelas para as quais X(z) uma
funo racional dentro da regio de convergncia, i.e.:
) (
) (
) (
z Q
z P
z X =

onde P(z) e Q(z) so polinmios em z. Os valores de z que fazem X(z) = 0 so
chamados de zeros de X(z). Os valores de z para os quais X(z) tende a infinito
so chamados de plos de X(z). Os plos de X(z) so as razes do polinmio do
denominador.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 36
2.1 Propriedades da Transformada Z

a) Linearidade: ax
1
[n] + bx
2
[n] aX
1
(z) + bX
2
(z), ROC = ROC
x1
ROC
x2

Comentrios:
A prova de tal propriedade vem diretamente da definio de transformada Z:

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

Considere que x[n] = ax
1
[n] + bx
2
[n]. Logo:
= + = + =


=

n
n n
n
n
z n bx z n ax z n bx n ax z X ] [ ] [ ]) [ ] [ ( ) (
2 1 2 1



=

+ = + =
n
n
n
n
n
n
n
n
z n x b z n x a z n bx z n ax ] [ ] [ ] [ ] [
2 1 2 1

= aX
1
(z) + bX
2
(z)

b) Deslocamento no tempo: x[n + n
0
] z
n
0
.X(z), ROC = ROC
x
(cuidado deve ser
tomado observando o que acontece para z = 0 ou z = ).
Comentrios:
Suponha que y[n] = x[n n
0
]. Logo:

=
n
n
z n n x z Y ] [ ) (
0

Fazendo m = n n
0
:


=

=
+
= = =
m
m n
m
n m
m
n m
z m x z z z m x z m x z Y ] [ . . ] [ ] [ ) (
0 0 0
) (

) ( . ) (
0
z X z z Y
n
=


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 37
c) Multiplicao por uma exponencial discreta: a
n
x[n] X(z/a), ROC = |a|ROC
X

Comentrios:
Essa propriedade observvel substituindo a
n
x[n] na definio de TZ:


=

= =
n
n n
n
n
z n x a z n x z X ] [ ] [ ) (

Como conseqncia disso, todas as posies de plos e zeros so escalonadas
por um fator de a, j que, se X(z) tiver um plo em z = z
1
, X(a
-1
z) ter um plo
em z = a.z
1
. Se a for um nmero real, essa propriedade pode ser entendida
como uma compresso ou expanso do plano Z.

d) Convoluo no tempo: x
1
[n]*x
2
[n] X
1
(z).X
2
(z) , ROC contm ROC
x1
ROC
x2
Comentrios:
Seja:

=
=
k
k n x k x n y ] [ ] [ ] [
2 1

Tal que:

=
n
n
z n y z Y ] [ ) (


= )
`

=
n
n
k
z k n x k x ] [ ] [
2 1


Se mudarmos a ordem dos somatrios:

=
k n
n
z k n x k x z Y ] [ ] [ ) (
2 1


Fazendo no segundo somatrio m = n k, temos:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 38

)
`

=
k
k
m
m
z z m x k x z Y ] [ ] [ ) (
2 1

Assim, para valores de z dentro das regies de convergncia para X1(z) e X2(z),
podemos escrever:
) ( ) ( ) (
2 1
z X z X z Y =


e) Diferenciao no Domnio Z: n.x[n] -z.dX(z)/dz, ROC = ROC
x
(cuidado
deve ser tomado observando o que acontece para z = 0 ou z = ).
Comentrios:
Essa propriedade pode ser facilmente provada diferenciando a definio da TZ:

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

=

=
n
n
z n x n
z d
z dX
1
] [ ) (
) (
) (
. (-z)

=

=
n
n
z n x n z
z d
z dX
z
1
] [ ) (
) (
) (

= =
n
n
n nx Z z n nx
z d
z dX
z ]} [ { ] [
) (
) (


f) Reverso no tempo: x[-n] X(z
-1
), ROC = 1/ROC
X

Comentrios:
Novamente, a definio de TZ prova esta propriedade:

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

Fazendo m = -n, temos:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 39
) ( ) ]( [ ] [ ) (
1 1

=
= = =

z X z m x z m x z X
m
m
m
m


2.2 Pares de Transformadas Z
Segue um conjunto de pares de Transformadas Z mais teis:


2.3 Exemplos de Clculo da Transformada Z
A seguir, vamos apresentar alguns clculos de transformada Z e como definir a
ROC.


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 40
Exemplo 1: x[n] = a
n
u[n]

=

= = = =
n n n n
n n n n n n
az z a z n u a z n x z X
0 0
1
) ( ] [ ] [ ) (

ROC:
|az
-1
| < 1 |z| > |a|

| | | | ,
1
1
) ( ) (
1
0
1
a z
a z
z
az
az z X
n
n
>

= =


Para a = 1:
1 | | ,
1
1
) ( ] [ ] [
1
>

= =

z
z
z X n u n x
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 41
Exemplo 2: x[n] = -a
n
u[-n 1]


=

= = =
n
n n
n
n n
n
n
z n u a z n u a z n x z X ] 1 [ ] 1 [ ] [ ) (


=

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

ROC:
|a
-1
z|<1 |z|<|a|

| | | | ,
1
1
1 ) ( 1 ) (
1
0
1
a z
a z
z
z a
z a z X
n
n
<

= =



Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 42
Exemplo 3: x[n] = (1/2)
n
u[n] + (-1/3)
n
u[n]


=

\
|
+
|

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



=

\
|
+
|

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



=

\
|
+
|

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



=

\
|
+
|

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

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

1 1
3
1
1
1
2
1
1
1
) (

+
+

=
z z
z X

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 43
Exemplo 4: x[n] = (-1/3)
n
u[n] (1/2)
n
u[-n 1]


=

\
|

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



=

\
|

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



=

\
|

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



=

\
|

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



=

(
(

\
|
+
|

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

(i) (ii)
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
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 44
ROC
(i)


ROC(ii)

ROC:

z
z
z
z
z
z X
2 1
2
3
1
1
1
2 1
1
1
3
1
1
1
) (
1 1

+
=

+
+
=



Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 45
Exemplo 5:
Funo delta [n]: [n] = 0, n 0, e [n] = 1, n = 0

Transformada Z:

= = =
n
n
z z n x z X 1 . 1 ] [ ) (
0

ROC = Todo o Plano Z


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


=

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


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 + n
0
] z
n
0
.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 46
2 1
1
25 , 0 )
3
cos . 5 , 0 ( 2 1
)
3
cos . 5 , 0 ( 1
]] [ )
3
cos( ) 5 , 0 [(

=
z z
z
n u
n
z
n


2 1
1
25 , 0 5 , 0 1
25 , 0 1
]] [ )
3
cos( ) 5 , 0 [(

=
z z
z
n u
n
z
n

, ROC = |z| > 0,5
Assim:
)
`

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

4 3 2 1
5 4 3
0625 , 0 25 , 0 75 , 0 1
0625 , 0 5 , 0 25 , 0
) (


+ +
+
=
z z z z
z z z
z X
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 47
2.4 Propriedades da Regio de Convergncia
A 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 48
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 Inversa
O 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:

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

Suponha que multiplicamos ambos os lados da transformada por z
k-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 C
n
n k k
dz z n x dz z z X
1 1
] [ ) (
(1)
onde C denota o contorno fechado na ROC de X(z), tomado no sentido anti-
horrio. 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 49

=

=
C
n
C
n k k
dz z n x dz z z X
1 1
] [ ) (
(2)
Pelo teorema de integrao de Cauchy:

=
=


k n
k n
dz z
j
C
n k
, 0
, 1
2
1
1

(3)
onde C qualquer contorno que inclui a origem. Aplicando (3), o lado direito de
(2) reduz-se a 2j.x[k] e assim a frmula inversa alcanada:


=
C
k
dz z z X
j
k x
1
) (
2
1
] [

(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 50
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:
1
2
1
1
1
) (

=
z
z X
, |z|>
Por observao, sabemos que:
x[n] = -()
n
u[-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.,

=
N
k
k
k
M
k
k
k
z a
z b
z X
0
0
) (

Para calcular a transformada inversa, tentamos expressar X(z) da forma:


=

+ =
N
k
k
k
N M
r
r
r
z d
A
z B z X
1
1
0
1
) (



Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 51
Exemplo 8: Suponha:
) 1 )(
2
1
1 (
2 1
2
1
2
3
1
2 1
) (
1 1
2 1
2 1
2 1





+ +
=
+
+ +
=
z z
z z
z z
z z
z X

Vamos considerar que:
=

+ =

1
2
1
1
0
1
2
1
1
) (
z
A
z
A
B z X

) 1 )(
2
1
1 (
)
2
1
1 ( ) 1 ( ) 1 )(
2
1
1 (
1 1
1
2
1
1
1 1
0



+ +
=
z z
z A z A z z B

) 1 )(
2
1
1 (
)
2
1
1 ( ) 1 ( )
2
1
2
1
1 (
1 1
1
2
1
1
2 1 1
0



+ + +
=
z z
z A z A z z z B

Logo:
=

+ + + +
=


) 1 )(
2
1
1 (
)
2
1
( )
2
1
2
3
( ) (
) (
1 1
0
2
2 1 0
1
2 1 0
z z
B z A A B z A A B
z X

) 1 )(
2
1
1 (
2 1
1 1
2 1



+ +
=
z z
z z


Assim, temos:
1
2 1 0
= + + A A B

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 52
2
2
1
2
3
2 1 0
= A A B

2 1
2
1
0 0
= = B B

Com isso, ficamos com:

= +
= +

=
= + +
5
2
1
1
2
2
1
3
1 2
2 1
2 1
2 1
2 1
A A
A A
A A
A A

Resolvendo, temos:
A
1
= -9 e A
2
= 8
Logo:
1
1 1
8
2
1
1
9
2 ) (

+ =
z
z
z X

que corresponde Transformada Z da sequncia:
] [ . 8 ] [ )
2
1
.( 9 ] [ 2 ] [ n u n u n n x
n
+ =


A expanso em srie de potncias aplicada quando a transformada Z um
polinmio da forma:

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

Isso ocorre, principalmente, se a TZ uma seqncia finita.

Por exemplo, considere que a TZ de uma seqncia x[n] da forma:
) 1 )( 1 )(
2
1
1 ( ) (
1 1 1 2
+ = z z z z z X

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 53
Uma expanso em fraes parciais para esse caso no apropriada. No
entanto, efetuando os produtos, podemos reduzir a expresso a:
1 2
2
1
1
2
1
) (

+ = z z z z X

que equivale seqncia:
x[n] = [n + 2] .[n + 1] - [n] + .[n 1]


Exemplo 9: Considere a funo:
1 4 3
) (
2
+
=
z z
z
z X

Primeiro, vamos re-arranjar X(z) tal que ela se torne uma funo em potncias
de z
-1
:
2 1
1
2 1
1
4 3
0
4 3
) (

+
+
=
+
=
z z
z
z z
z
z X

Usando o MatLab, temos
1
:
>> 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 54

que corresponde a:
1
1
3
1
1
5 , 0
1
5 , 0
) (

=
z
z
z X

De maneira similar, podemos voltar forma anterior:

>> [b, a] = residuez(R, p, C)
b =
-0.0000 0.3333
a =
1.0000 -1.3333 0.3333

que corresponde a:
2 1
1
2 1
1
2 1
1
4 3
0
4 3
3
1
3
4
1
3
1
0
) (

+
+
=
+
=
+
+
=
z z
z
z z
z
z z
z
z X

como antes.

Exemplo 10: Calcule a transformada Z inversa de:
) 9 , 0 1 ( ) 9 , 0 1 (
1
) (
1 2 1
+
=
z z
z X
, |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 55
>> [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:
1 2 1 1
9 , 0 1
25 , 0
) 9 , 0 1 (
5 , 0
9 , 0 1
25 , 0
) (

+
+

=
z z z
z X
, |z| > 0,9
1 2 1
1
1
9 , 0 1
25 , 0
) 9 , 0 1 (
9 , 0
9 , 0
5 , 0
9 , 0 1
25 , 0
) (

+
+

=
z z
z
z
z
z X
, |z| > 0,9
que, de acordo com as propriedades da transformada Z e a tabela da Seo 2.2,
nos d:
] [ ) 9 , 0 ( 25 , 0 ] 1 [ ) 9 , 0 )( 1 (
9
5
] [ ) 9 , 0 .( 25 , 0 ] [
1
n u n u n n u n x
n n n
+ + + + =
+
Vamos tentar deixar todas as parcelas em funo de u[n]. Para tanto, vamos
trabalhar na segunda parcela:
] 1 [ ) 9 , 0 )( 1 (
9
5
1
+ +
+
n u n
n

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

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 56
] [ ) 9 , 0 )( 1 ( 5 , 0 ] [ ) 9 , 0 .( 9 , 0 ). 1 (
9
5
n u n n u n
n n
+ = + =

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

Logo:
] [ ) 9 , 0 ( 25 , 0 ] [ ) 9 , 0 .( 5 , 0 ] [ ) 9 , 0 .( 75 , 0 ] [ n u n u n n u n x
n n 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 = 1.0000 0.9000 1.6200 1.4580 1.9683 1.7715 2.1258 1.9132
>> x = 0.75*(0.9).^n+0.5*n.*(0.9).^n + 0.25*(-0.9).^n
x = 1.0000 0.9000 1.6200 1.4580 1.9683 1.7715 2.1258 1.9132

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 57
2.6 Exerccios

1. Calcule a transformada Z das sequncias:
a. x[n] = -(1/2)
n
u[-n 1]
b. y[n] = (-1/2)
n
u[n] + (1/3)
n
u[-n 1]
c. y[n] =2[n 3] + (-1/4)
n
u[-n - 1] + (1/2)
n
u[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)
n
u[n 2] + (0,9)
n-3
u[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. X
1
(z) = [(z 1)/z]X(z)
b. X
2
(z) = z.X(z
-1
)

4. Ache a transformada inversa de:
a.
1
2
1
1
1
) (

+
=
z
z X , ROC = |z| >
b.
1
2
1
1
1
) (

+
=
z
z X , ROC = |z| < 1/2
c.
2 1
1
8
1
4
3
1
2
1
1
) (

+ +

=
z z
z
z X , ROC = |z| > 1/2


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 58
5. Determine a transformada inversa usando o mtodo de expanso em fraes
parciais de:
3 2 1
3 2 1
1
4
1
8
13
4
11
1
4 4 1
) (


+
+
=
z z z
z z z
z X

sabendo que a sequncia causal.

6. Suponha que X(z) :
2 1
1
1
81 , 0 1
3 2
) (

+
+
=
z z
z
z X
, |z| > 0,9
Encontre as primeiras 20 amostras de x[n], usando o MatLab.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 59
2.7 Bibliografia Complementar

1. 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 60
3. Teoria da Amostragem
Sinais 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 x
c
(t) de
acordo com a relao:

x[n] = x
c
(nT), - < n < (Eq. 3.1)

Na Eq. 3.1, T chamado de perodo de amostragem e sua inversa, f
s
= 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 61
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 x
c
(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 x
s
(t) e x[n] que x
s
(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 62

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)
x
c
(t) (sinal original no tempo contnuo) e x
s
(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 63
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 64
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 65

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

3.1 Teorema de Shannon

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

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

=
=
n
Ts
nTs t t ) ( ) (

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

=
= =
n
Ts s
nTs t t f t t f t f ) ( ). ( ) ( ). ( ) (

Ento a funo amostrada contm apenas informaes acerca das amostras
f(nTs), n = 0, 1, 2, 3, ...., pois

=
=
n
s
nTs t nTs f t f ) ( ). ( ) (

Toda a informao de um sinal banda limitada em f
m
Hz est contida nas
amostras colhidas em intervalos uniformes menores que f
m
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 66

Fig. 3.4. (topo) Exemplo de um sinal e sua transformada banda limitada em w
m
.
(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:

=

n
S s T
nw w w w F t t f ) ( * ) (
2
1
) ( ) (


Se:
fs(t) Fs(w)
Ento, o espectro de fs(t) dado por:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 67


=

=
= =
n
S
s
n
S s s
nw w w F
w
nw w w w F w F ) ( ) (
2
) ( * ) (
2
1
) (

=
=
n
S
s
s
nw w w F
T
w F ) ( ) (
1
) (
, com ws = 2/T
s

e, finalmente,

=
=
n
S
s
s
nw w F
T
w F ) (
1
) (


Este espectro esboado para vrios valores de ws, isto , vrios valores para o
espaamento T
s
entre amostras.

A escolha do valor de T
s
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 w
s
maior, igual ou menor a w
m
(freqncia limite da
banda do sinal de entrada). Nesses trs casos, pode-se ver que no h
sobreposio quando w
s
2w
m
. 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 68

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 69

Fig. 3.6. Recuperao do sinal original com um filtro passa-baixa.

Para recuperao do sinal com um FPB sem distores, preciso que:
w
s
2w
m

ou seja
2/T
s
2.2f
m
T
s
1/(2f
m
) seg

O limite 1/T
s
= 2f
m
chamado de taxa de Nyquist. Valores de T
s
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 70

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 amostras
De acordo com o teorema de Shannon-Nyquist, se T
s
1/(2f
m
), 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) = T
s
. (w/(2w
m
))
ento
Fs(w).T
s
. (w/(2w
m
)) = F(w)
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 71
A seguir, vamos analisar o processo de re-obteno do sinal no domnio do
tempo:
f(t) F(w) = Fs(w).T
s
. (w/(2w
m
))
O uso do teorema da convoluo no tempo indica que
f(t) = F
-1
(Fs(w))*F
-1
(T
s
. (w/(2w
m
)))
Utilizando os pares de transformadas:
f
s
(t) F
s
(w)
(w
m
/) Sa(w
m
t) (w/(2w
m
))
onde sa(t) a chamada funo sample e tem a forma sen(x)/x, tem-se
f(t) = f
s
(t)*T
s
(w
m
/)Sa(w
m
t)
logo
) ( * ) ( ) ( ) ( t w Sa nT t nT f
w T
t f
m
n
s s
m s
(

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



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

=
=
n
s m s s m
nT t w Sa nT f T f t f )) ( ( ) ( . 2 ) (


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

=
=
n
m
m
n t w Sa
f
n
f t f ) ( )
2
( ) (


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 72

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 73
4. Filtros Digitais
Um 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 h
k
[n] a resposta do sistema a [n k]. Assim, como:

=
=
k
k n k x n x ] [ ] [ ] [

ento
} ] [ ] [ { ] [

=
=
k
k n k x T n y

Pelo princpio da superposio, podemos escrever:


=

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

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 74
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:

=
=
k
k n h k x n y ] [ ] [ ] [
(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
h
i
[n] definida pela relao:
h[n]*h
i
[n] = h
i
[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:

= =
=
N
k
M
k
k k
k n x b k n y a
0 0
] [ ] [
(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 75


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, a
0
= 1, a
1
= -1, M = 0 e b
0
= 1.

4.1 Filtros Digitais
Em 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 76

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] = a
1
.y[n 1] + a
2
.y[n 2] + b.x[n]

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 77
cuja transformada Z (ou funo de sistema) dada por:
2
2
1
1
1
) (


=
z a z a
b
z H



Fig. 4.4. Diagrama de blocos para uma equao de diferenas.

2) Uma equao de diferenas pode ser generalizada da forma:

= =
=
N
k
M
k
k k
k n x b k n y a n y
1 0
] [ ] [ ] [

com funo de sistema correspondente:
) (
) (
1
) (
1
0
z X
z Y
z a
z b
z H
N
k
k
k
M
k
k
k
=


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 78

= =
+ =
N
k
M
k
k k
k n x b k n y a n y
1 0
] [ ] [ ] [

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:

=
=
M
k
k
k n x b n v
0
] [ ] [

=
+ =
N
k
k
k n y a n v n y
1
] [ ] [ ] [

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 79

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 FIR
A 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 80

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 81
Ou, de forma geral:
y[n] = 0.5.x[n] + 0.5.x[n - 1]

Os filtros FIR so expressos como:

=
=
M
k
k
k n x b n y
0
] [ ] [


com funo de transferncia:

=
M
k
k
k
z b z H
0
) (

A resposta ao impulso h[n] dada por:


=
seno
M n b
n h
n
0
1 0
] [

e a representao em equao de diferenas :
y[n] = b
0
x[n] + b
1
x[n 1] + ... + b
N-1
x[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 82
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.x
1
[n] + b.x
2
[n]} = a.T{x
1
[n]} + b.T{x
2
[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 um filtro que tem
fendas profundas ou, idealmente, zeros perfeitos na sua resposta em frequncia.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 83
Filtros notch so bastante teis quando frequncias especficas devem ser
eliminadas. Isso acontece, por exemplo, quando precisamos eliminar a
frequncia de 60Hz (e seus harmnicos) da rede eltrica.

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).
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 84

Na prtica, tais filtros tm caractersticas um pouco diferentes. Podemos
observar ondulaes e uma banda de transio mais suave. Essas
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]
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 85

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.

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 notch 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
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 86
baixas frequncias) e enfatizar mudanas rpidas (como as relacionadas com as
altas frequncias).

Dois outros tipos de filtros so notch e passa-faixa. Filtros notch eliminam
frequncias especficas. 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);
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 87
>> plot(half/max(half), abs(Y2(half)), 'b');


>> 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 Linear

Em 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
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 88
magnitude desejada e resposta em fase do filtro. Em geral, uma resposta em
fase linear na banda de passagem desejada (Fig. 4.13).

Fig. 4.13. Exemplos de fases lineares e no-lineares.

Considere um sistema LTI cuja reposta em frequncia sobre um perodo :
H
id
(e
j
)=e
-j
, || <
onde um nmero real, no necessariamente um inteiro. Esse sistema tem
magnitude constante:
|H
id
(e
j
)| = 1,
fase linear
H
id
(e
j
) = -
e atraso de grupo constante
grd[H
id
(e
j
)] =

A transformada inversa de Fourier de H
id
(e
j
) dada por:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 89


= =

d e d e e n h
n j n j j
id
) (
2
1
2
1
] [

=



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

] [
) (
1
2
1
) ( ) ( n j n j
e e
n j

=



Sabendo que
2 / ) (

j j
e e sen

=
, temos:
)] ( [
) (
1
] [
) (
1
2
1
) ( ) (



n sen
n
e e
n j
n j n j

) (
)] ( [
] [

=
n
n sen
n h
id
, -< n < (Eq. 1)
Assim
) (
)] ( [
* ] [ ] [ * ] [ ] [

= =
n
n sen
n x n h n x n y
id

=


=
k
k n
k n sen
k x n y
) (
)] ( [
] [ ] [




Se = n
d
, n
d
inteiro, pela propriedade do deslocamento do tempo da
transformada de Fourier e lembrando que {[n]} = 1 :
H
id
(e
j
) = e
-jnd
h
id
[n] = [n n
d
]

Logo:
] [ * ] [ ] [
d
n n n x n y =

Ou seja, a mesma seqncia de entrada apenas deslocada de n
d
amostras.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 90

De forma geral, o sistema de fase linear se
H
id
(e
j
) = - , - < <

Por exemplo, considere uma resposta em freqncia com fase linear da forma
H(e
j
) = |H(e
j
)|e
-j
, || <
Suponha que H(e
j
) o filtro passa-baixa:

<
<
=

| | , 0
| | ,
) (
c
c
j
j
LP
e
e H

cuja resposta ao impulso , como vimos:
) (
)] ( [
] [

=
n
n sen
n h
c
LP

Se
c
= , temos a Eq. 1. Quando um inteiro, digamos = n
d
:
=


=
) 2 (
)] 2 ( [
] 2 [
d d
d d c
d LP
n n n
n n n sen
n n h


] [
) (
)] ( [
] 2 [ n h
n n
n n sen
n n h
LP
d
d c
d LP
=


Nesse caso, temos um sistema de fase zero (zero phase system). Se = -n
d
:
] [ ] [ | ) ( | ) ( ) (
^ ^ ^
n h n h e H e e H e H LP LP
j
LP
n j j
LP
j
LP
d
= = =



Assim, se 2 um inteiro (o que implica que um inteiro ou um inteiro mais
0.5), a resposta ao impulso correspondente tem simetria sobre , i.e.:
h[2 - n] = h[n]
Isso condio suficiente (mas no necessria) para termos um sistema de fase
linear.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 91
Fase Linear Generalizada

Um sistema dito de fase linear generalizada se sua resposta em freqncia
pode ser expressa na forma:
H(e
j
) = A(e
j
)e
-j+j
(Eq. 2)
onde e so constantes e A(e
j
) uma funo real . O sistema que
consideramos antes tinha = 0. Um sistema como o da Eq. 2 dito de fase
linear generalizada dado que a fase uma funo linear de -. Tal sistema
tambm se caracteriza por um atraso de grupo constante:
grd[H(e
j
)] =
De forma geral, a fase linear tem forma:
[H(ej)] = - , 0 < <
onde e so constantes reais. Lembramos que, como vimos antes, a resposta
ao impulso de sistemas de fase linear tem simetria sobre , se 2 um inteiro.
Temos que, se:
)] ( ) )[cos( ( ) (

+ = jsen e A e H
j j

ou
) ( ) ( ) cos( ) ( ) (

+ = sen e jA e A e H
j j j


Equivalentemente, por definio:


=

= =
n n n
n j j
n sen n h j n n h e n h e H

] [ cos ] [ ] [ ) (

com h[n] real.

Assim:
) ( ) ( ) cos( ) ( ) (

+ = sen e jA e A e H
j j j

e
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 92


=

= =
n n n
n j j
n sen n h j n n h e n h e H

] [ cos ] [ ] [ ) (

Logo, podemos considerar:

=
=
n
j
n n h e A

cos ] [ ) cos( ) (

e

=
=
n
j
n sen n h sen e A

] [ ) ( ) (

Com isso:

=
n
n
n n h
n sen n h
sen
tg




cos ] [
] [
) cos(
) (
) (

Fazendo uma multiplicao cruzada dos dois lados da igualdade acima, temos:


=

=
=
n n
n sen n h n n h sen ] [ ) cos( cos ] [ ). (

0 ] [ ) cos( cos ] [ ). ( = +


=

= n n
n sen n h n n h sen

0 ) cos( ] [ . cos ) ( ] [ = +


=

= n n
n sen n h n sen n h

0 ] ) cos( . cos ) ( ][ [ = +

= n
n sen n sen n h

0 ) ( ] [ = +

= n
n sen n h

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 93
0 ] ) ( [ ] [ = +

= n
n sen n h
(Eq. 3)
ou
0 } )] ( cos[ . cos )] ( [ ]{ [ = +

= n
sen n n sen n h
(Eq. 4)

para todo valor de . Assim, se = 0 ou , a Eq. 4 torna-se:
0 )] ( [ ] [ =

= n
n sen n h
(Eq. 5)

Se = /2 ou 3/2, a Eq. 4 torna-se:
0 )] ( cos[ ] [ =

= n
n n h
(Eq. 6)

Na Eq. 5, se h[n] = h[2 - n], com 2 inteiro:
0 )] 2 ( [ ] 2 [ 0 )] ( [ ] [ = =


=

= n n
n sen n h n sen n h

0 )] ( [ ] 2 [ =

= n
n sen n h
(Eq. 7)
A Eq. 7 tem as mesmas solues da Eq. 5, se 2 um inteiro (ou seja, um
inteiro ou um inteiro mais 0.5). Assim, se = 0 ou , 2 = M inteiro, podemos ter
h[2 - n] = h[n]. De forma similar, na Eq. 6, se = /2 ou 3/2, 2 = M inteiro,
podermos ter h[2 - n] = -h[n].

Com isso, temos dois conjuntos de condies para garantir um sistema de fase
linear generalizada:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 94
i)
= 0 ou
2 = M inteiro
h[2 - n] = h[n]

ii)
= /2 ou 3/2
2 = M inteiro
h[2 - n] = -h[n]

Sistemas Causais de Fase Linear Generalizada

Se o sistema for causal, a Eq.3 torna-se:
0 ] ) ( [ ] [
0
= +

= n
n sen n h

para todo valor de .

Causalidade implica h[n] = 0, para n < 0 e n > M (para um sistema FIR, j que a
resposta ao impulso finita), i.e., sistemas FIR causais tm fase linear
generalizada se eles tm resposta ao impulso de comprimento (M + 1) e
satisfaz:
h[2 - n] = h[n]
ou
h[2 - n] = -h[n]
No primeiro caso, temos, para = 0 ou :
] [
) (
) (
) (
) (
) 2 (
) 2 (
] 2 [ n h
n
n sen
n
n sen
n
n sen
n h =

=


=






O segundo caso acontece para = /2 ou 3/2.
Especificamente, se
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 95
h[n] = h[M n], 0 n M,
e 0, caso contrrio
ento pode ser mostrado que
H(e
j
) = A
P
(e
j
)e
-jM/2

onde A
P
(e
j
) uma funo real, par e peridica em w. De forma similar, se
h[n] = -h[M n], 0 n M,
e 0, caso contrrio
segue que:
H(e
j
) = jA
I
(e
j
)e
-jM/2
= A
I
(e
j
)e
-jM/2 + j/2
onde A
I
(e
j
) uma funo real, mpar e peridica em . Em ambos os casos, o
comprimento da resposta ao impulso (M + 1) amostras.

Dependendo da sua resposta ao impulso, os filtros FIR podem ser divididos em
quatro classes:

1. Sistemas FIR com fase linear do Tipo I
Um sistema do tipo I tem resposta ao impulso simtrica
h[n] = h[M n], 0 n M
com M um inteiro par (observe que isso gera um nmero mpar de amostras). O
atraso M/2 um inteiro. A resposta em frequncia :

=
M
n
n j j
e n h e H
0
] [ ) (


Considerando a condio de similaridade, essa resposta em frequncia pode ser
expressa como:

=
2 /
0
2 /
) cos( ] [ ) (
M
k
M j j
k k a e e H


onde a[0] = h[M/2],
a[k] = 2h[(M/2) k], k = 1, 2, 3, ..., M/2

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 96
Assim, H(e
jw
) tem a forma de A
P
(e
jw
)e
-jwM/2
.

2. Sistemas FIR com fase linear do Tipo II
Um sistema do tipo II tem uma resposta ao impulso simtrica como
h[n] = h[M n], 0 n M
mas com M um inteiro mpar. Nesse caso, H(e
jw
) pode ser expresso como:
} ]
2
1
( cos[ ] [ { ) (
2 / ) 1 (
1
2 /

+
=

=
M
k
M j j
k k b e e H


onde
b[k] = 2.h[(M + 1)/2 - k], k = 1, 2, ..., (M + 1)/2
Novamente H(e
jw
) tem a forma de A
P
(e
jw
)e
-jwM/2
.

3. Sistemas FIR com fase linear do Tipo III
Se o sistema tem uma resposta ao impulso assimtrica:
h[n] = -h[M - n], 0 n M
com M um inteiro par, ento H(e
jw
) tem a forma:

=
2 /
0
2 /
) sin( ] [ ) (
M
k
M j j
k k c je e H


onde
c[k] = 2h[(M/2) - k], k = 1, 2, ..., M/2
Nesse caso, H(e
jw
) tem a forma:
H(e
jw
) = A
I
(e
jw
)e
-jwM/2 + j/2


4. Sistemas FIR com fase linear do Tipo IV
Se o sistema tem uma resposta ao impulso assimtrica:
h[n] = -h[M - n], 0 n M
com M um inteiro mpar, ento H(e
jw
) tem a forma:
} ]
2
1
( sin[ ] [ { ) (
2 / ) 1 (
1
2 /

+
=

=
M
k
M j j
k k d je e H


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 97
onde
d[k] = 2h[(M+1)/2 - k], k = 1, 2, ..., (M + 1)/2
e H(e
jw
) tem a forma:
H(e
jw
) = A
I
(e
jw
)e
-jwM/2 + j/2



Exemplos:

a) Tipo I, resposta simtrica, M par
h[n] = 1, 0 n 4, e 0, caso contrrio

h[n] = h[M n]
A resposta em frequncia :
) 2 / sin(
) 2 / 5 sin(
1
1
) (
2
5 4
0
w
w
e
e
e
e e H
jw
jw
jw
n
jwn jw

= =

Magnitude e fase:


b) Tipo II, resposta simtrica, M mpar
h[n] = 1, 0 n 5, e 0, caso contrrio
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 98

h[n] = h[M n]
A resposta em frequncia :
) 2 / sin(
) 3 sin(
) (
) 2 / 5 (
w
w
e e H
jw jw
=

Magnitude e fase:


c) Tipo III, resposta assimtrica, M par
Se h[n] = [n] - [n 2]

Ento H(e
jw
) = 1 e
-2jw
= j[2.sin(w/2)]e
-jw


Magnitude e fase:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 99

d) Tipo IV, resposta assimtrica, M mpar
Se h[n] = [n] - [n 1]

Ento H(e
jw
) = 1 e
-jw
= j[2.sin(w/2)]e
-jw/2


Magnitude e fase:



Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 100
Exemplo: O seguinte cdigo implementa no MatLab um filtro FIR tipo I:
h = [3 4 5 6 5 4 3]/30; % Veja que vai de zero a seis
M = length(h);
N = (M-1)/2;
L = 512;
H = fft([h zeros(1,L-M)]);
k = 0:L-1;
W = exp(j*2*pi/L);
A = H.* W.^(N*k);
A = real(A);
figure(1)
w = [0:L-1]*2*pi/(L-1);
subplot(2,1,1)
plot(w/pi,abs(H))
ylabel('|H(\omega)| = |A(\omega)|')
xlabel('\omega/\pi')
subplot(2,1,2)
plot(w/pi,A)
ylabel('A(\omega)')
xlabel('\omega/\pi')



Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 101
Exemplo: O seguinte cdigo implementa no MatLab um filtro FIR tipo II:
h = [3 5 6 7 7 6 5 3]/42;
M = length(h);
N = (M-1)/2;
L = 512;
H = fft([h zeros(1,L-M)]);
k = 0:L-1;
W = exp(j*2*pi/L);
A = H.* W.^(N*k);
A = real(A);
figure(2)
w = [0:L-1]*2*pi/(L-1);
subplot(2,1,1)
plot(w/pi,abs(H))
ylabel('|H(\omega)| = |A(\omega)|')
xlabel('\omega/\pi')
subplot(2,1,2)
plot(w/pi,A)
ylabel('A(\omega)')
xlabel('\omega/\pi')





Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 102
4.3 Filtros IIR
Os filtros FIR usam apenas clculos feed forward. Se feedback permitido, a
resposta de um filtro ao impulso no ser necessariamente finita. Assim, filtros
com feedback so chamados de filtros com resposta ao Impulso Infinita (IIR
Infinite Impulse Response). Por exemplo, o filtro abaixo:

cuja equao que descreve sua sada dada por:

y[n] = 0,6.x[n] + 0,2.x[n-1] + 0,4.y[n 1]

Se um impulso passa por esse filtro teremos como resposta as seguintes sadas,
considerando o filtro causal:

Entrada Sada
0 0
1 0,6
0 0,44
0 0,176
.... ....

Ou seja, mesmo quando a entrada se anula, o filtro continua apresentando uma
sada. Essa sada diminui, mas no torna-se zero. Claro que, na prtica, a
resposta chega a zero em algum momento. Considere ento o filtro a seguir:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 103

Esse filtro tem sadas:

Entrada Sada
0 0
1 0,6
0 0,8
0 0,8
.... ....

Esse um filtro IIR. A sada ser sempre 0,8 mesmo a entrada permanecendo
0. Nesse prximo exemplo, a sada cresce mesmo com entrada zero.

Entrada Sada
0 0
1 0,6
0 0,86
0 0,946
.... ....
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 104
De uma maneira geral, os filtros IIR so expressos como:


= =
=
N
k
M
k
k k
k n x b k n y a n y
1 0
] [ ] [ ] [

com a seguinte funo de sistema:

=
N
k
k
k
M
k
k
k
z a
z b
z H
1
0
1
) (

Suas formas Direta I e Direta II so mostradas nas Figs. 4.14 e 4.15.


Fig. 4.14. Forma Direta I de um filtro IIR

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 105

Fig. 4.15. Forma Direta II de um filtro IIR.

Exemplo 1: Considere a funo de sistema:
2 1
2 1
125 . 0 75 . 0 1
2 1
) (


+
+ +
=
z z
z z
z H

A forma direta I e II podem ser desenhadas como:
Forma direta I:

e

Forma direta II:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 106


Exemplo 2: Conexo em cascata
Considere a funo de sistema:
1
1
1
1
2 1
2 1
25 . 0 1
1
.
5 . 0 1
1
125 . 0 75 . 0 1
2 1
) (

+
=
+
+ +
=
z
z
z
z
z z
z z
z H

Como os plos e zeros so reais, uma estrutura em cascata tem sees com
coeficientes reais. Duas estruturas em cascata equivalentes podem ser criadas
para essa funo:
i)

ii)


Exemplo 3: Conexo em paralelo:
Considere a funo de sistema (observe que a mesma funo anterior):
2 1
1
2 1
2 1
125 . 0 75 . 0 1
8 7
8
125 . 0 75 . 0 1
2 1
) (



+
+
+ =
+
+ +
=
z z
z
z z
z z
z H

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 107
A forma paralela para esse sistema com uma seo de segunda ordem :

Como os plos so reais, podemos obter ainda uma forma paralela alternativa
expandindo H(z) como:
1 1 2 1
1
25 . 0 1
25
5 . 0 1
18
8
125 . 0 75 . 0 1
8 7
8 ) (

+ =
+
+
+ =
z z z z
z
z H

que gera o diagrama abaixo apenas com sees de primeira ordem:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 108
4.4 Exerccios

1. Um filtro IIR definido por:
2
3 2
25 . 0 1
5 . 0 5 . 2 10
) (

+
=
z
z z
z H

Desenhe sua estrutura na Forma Direta I ou na Forma Direta II.

2. Um filtro causal e invariante no tempo definido por:
3 2 1
25 . 0 25 . 0 1 ) (

+ + + = z z z z H

Desenhe sua estrutura na Forma Direta I ou na Forma Direta II. Esse filtro FIR
ou IIR?

3. Um filtro IIR definido por:
2 1
2 1
8
1
4
3
1
2 1
) (


+
+ +
=
z z
z z
z H

Desenhe sua estrutura na Forma Direta I ou na Forma Direta II.

4. Modifique os cdigos das pginas 86 e 87 para implementar exemplos de
filtros FIR dos tipos III e IV.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 109
4.5 Bibliografia Complementar

1. 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 110
5. Tcnicas de projeto de filtros
Neste Captulo, tratamos ao problema de projetar um filtro a partir de
especificaes. Em processamento digital de sinais h dois importantes tipos de
sistemas: o primeiro tipo filtra os sinais no domnio do tempo e so chamados
filtros digitais. O segundo tipo prov a representao do sinal no domnio da
frequncia e so chamados de analisadores de espectro.

Os filtros so projetados como seletores de frequncia. H consideraes
diferentes se o projeto voltado para criao de filtros FIR ou IIR.

O projeto de um filtro digital tem trs passos:
Especificaes: determinada pela aplicao a qual o filtro est sendo
construdo;
Aproximaes: o projeto do filtro especificamente. Aqui, define-se H(z).
Implementaes: a transcrio da funo de transferncia para hardware
ou software.

Em 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, como vimos no
Captulo anterior, uma resposta em fase linear na banda de passagem
necessria (Fig. 4.13). No caso de filtros FIR, possvel encontrar um filtro de
fase exatamente linear. Para filtros IIR, uma fase linear na banda de passagem
no possvel. Assim, consideraremos especificaes em magnitude apenas.

As especificaes em magnitude podem ser dadas de duas maneiras:
Especificaes absolutas que provem um conjunto de requisitos na magnitude
da funo de transferncia, |H(e
jw
)|. Essas especificaes so comuns para
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 111
filtros FIR. A segunda forma chamada de especificaes relativas que prov os
requisitos em decibis (dB) e dada por:

escala dB =
0
| ) ( |
| ) ( |
log 20
max
10

j
j
e H
e H


Essa a forma mais comum na prtica e usada tanto para filtros FIR quanto
IIR. Vamos considerar o projeto de um filtro passa-baixa como exemplo.

Uma especificao absoluta de um filtro passa-baixa mostrada na Fig. 5.1 na
qual:
A banda [0, w
p
] chamada de banda de passagem, e
1
a tolerncia a
qual so permitidas ondulaes (ripples) na resposta ideal da banda de
passagem;
A banda [w
s
, ] chamada de banda de corte, e
2
a tolerncia a qual
so permitidas ondulaes;
A banda [w
s
, w
p
] chamada de banda de transio, e no h qualquer
restrio na resposta em magnitude nessa banda.


Fig. 5.1. Especificao absoluta de um filtro passa-baixa real: banda de
passagem, banda de transio e banda de corte.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 112
A especificao relativa de um filtro passa-baixa pode ser vista na Fig. 5.2 na
qual:
R
p
a ondulao na banda de passagem em dB, e
A
s
a atenuao na banda de corte em dB.


Fig. 5.2. Especificao relativa de um filtro passa-baixa real.

Os parmetros das duas especificaes so relacionados. Como |H(e
jw
)|
max
na
especificao absoluta igual a (1 +
1
), temos:
0
1
1
log 20
1
1
10
>
+

P
R
e
0
1
log 20
1
2
10
>
+
=

S
A


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
.
R
P
= 0,25 = -20 log10 [(1 -
1
)/(1 +
1
)]
1
= 0,0144
A
S
= 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 113
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, w
p
] com tolerncia
1
(ou R
P
in dB) e uma banda de corte [w
S
, ]
com tolerncia
2
(ou A
S
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 FIR
Tanto 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 114
Mtodo da amostragem em freqncia
Projeto equirriple timo
Projeto de mnimos quadrados
5.1.1 Projeto usando janelas
A 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 H
d
(e
jw
) 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 w
c
< dado por:

<

| | , 0
| | , . 1
) (
c
c
j
j
d
e
e H

onde w
c
chamado de frequncia de corte (cut-off) e chamado de atraso de
amostra (sample delay). A resposta ao impulso desse filtro de durao infinita
e dada por:

= =

d e e H e H n h
n j j
d
j
d d
) (
2
1
)] ( [ ] [
1

) (
)] ( [
. 1
2
1
] [

= =

n
n sen
d e e n h
c
n j j
d
C
C


Para obter um filtro FIR a partir de h
d
[n], precisamos truncar h
d
[n] em ambos os
lados. Para obter um filtro FIR causal de fase linear h[n] de comprimento M,
devemos ter:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 115


=
seno
M n n h
n h
d
, 0
1 0 ], [
] [

e
= (M 1)/2.

Essa operao chamada de janelamento. Em geral, h[n] pode ser pensado
como sendo formado pelo produto de h
d
[n] e uma janela w[n] tal que:
h[n] = h
d
[n].w[n]
onde w[n] alguma funo simtrica com respeito a no intervalo 0 n M 1
e 0 fora desse intervalo.

Dependendo de como obtivermos w[n] acima, temos diferentes projetos de
filtros. Por exemplo:


=
seno
M n
n w
, 0
1 0 , 1
] [

uma janela retangular.

No domnio da frequncia, a resposta H(e
jw
) do filtro FIR causal dada pela
convoluo de H
d
(e
jw
) e a resposta da janela W(e
jw
):

= =

d e H e W e W e H e H
w j
d
j jw jw
d
jw
) ( ) (
2
1
) ( * ) ( ) (
) (

Podemos ver essa convoluo na Fig. 5.3 para uma janela comum.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 116

Fig. 5.3. Operao de janelamento no domnio da frequncia.

Observaes:
1. Como a janela w[n] tem comprimento finito igual a M, sua resposta em
frequncia tem uma regio de pico central (lbulo principal) cuja largura
proporcional a 1/M e tem lbulos laterais com pesos menores.
2. A convoluo gera uma verso da resposta ideal H
d
(e
jw
), mas com algumas
distores (ondulaes).
3. A largura da banda de transio proporcional a 1/M.
4. Os lbulos laterais produzem ondulaes que tm forma similar tanto na
banda de passagem quanto na de corte.

Projeto usando janelas: Para uma dada especificao de filtro, escolha um
filtro de comprimento M e uma funo janela w[n] para a mais estreita largura do
lbulo principal e a menor atenuao nos lbulos laterais possvel.

Da observao 4 acima, podemos notar que a tolerncia
1
da banda de
passagem e a tolerncia
2
da banda de corte no podem ser especificadas de
forma independente. Geralmente, toma-se
1
=
2
.

Vamos descrever alguns tipos comuns de funes de janelamento.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 117
1) Janela Retangular
Essa a janela mais simples, mas que prov o pior desempenho em termos de
atenuao da banda de corte. Ela definida como:


=
seno
M n
n w
, 0
0 , 1
] [

sendo sua resposta em frequncia:

) 2 / (
] 2 / ) 1 ( [
1
1
) (
2 /
0
) 1 (
w sen
M w sen
e
e
e
e e W
jwM
M
n
jw
M jw
jwn jw
+
=

= =

=



A magnitude da funo sen[w(M + 1)/2]/sen(w/2) mostrada na Fig. 5.4 para o
caso de M = 7. Note que W(e
jw
) tem fase linear generalizada. medida que M
aumenta, a largura do lbulo principal diminui.


Fig. 5.4. Magnitude da transformada de Fourier de uma janela retangular (M =
7).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 118
Pode ser provado que a largura do lbulo central w
m
= 4/(M + 1) para uma
janela retangular. O primeiro zero de W(e
jw
) ocorre quando:

sen (w(M + 1)/2) = 0 w(M + 1)/2 = 2/(M + 1)

Assim, a largura do lbulo central o dobro desse valor (j que envolve os
valores negativos e positivos):

2w = 4/(M + 1)

Observa-se tambm que a magnitude do primeiro lbulo lateral
aproximadamente em w = 3/(M + 1) e dada por:

3
) 1 ( 2
) 1 ( 2
3
) 2 / 3 (
) 2 / (
)] 2 / ) 1 ( [( +

+
=
+ M
M
sen
sen
w sen
M w sen


medida que M cresce, a largura de cada lbulo lateral diminui, mas a rea
sobre cada um permanece constante. Assim, as amplitudes relativas dos picos
laterais vo permanecer constantes e a atenuao da banda de passagem
permanece em cerca de 21 dB. Isso significa que as ondulaes vo sofrer um
pico perto das bordas das bandas. Isso conhecido como fenmeno de Gibbs
(Fig. 5.5). Esse fenmeno ocorre por causa da transio brusca de 0 para 1 (e
de 1 para 0) da janela retangular.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 119

Fig. 5.5. Fenmeno de Gibbs: Pico das ondulaes nas fronteiras entre as
bandas.

2) Janela Triangular ou de Bartlett
Bartlett sugeriu uma transio mais suave para evitar o fenmeno de Gibbs. Isso
seria conseguido atravs de uma janela triangular da forma:

<

=
seno
M n M
M
n
M n
M
n
n w
, 0
2 / ,
2
2
2 / 0 ,
2
] [

Essa janela e sua resposta em frequncia podem ser vistas na Fig. 5.6

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 120

Fig. 5.6. Janela triangular.

3) Janela de Hanning (homenagem a Julius von Hann, meteorologista
austraco)


=
seno
M n M n
n w
, 0
0 ), / 2 cos( 5 , 0 5 , 0
] [



Fig. 5.7. Janela de Hanning

4) Janela de Hamming (Richard Hamming, matemtico americano)


=
seno
M n M n
n w
, 0
0 ), / 2 cos( 46 , 0 54 , 0
] [


Tem uma quantidade menor de descontinuidades em relao janela de
Hanning.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 121

Fig. 5.8. Janela de Hamming.
5) Janela de Blackman

+
=
seno
M n M n M n
n w
, 0
0 ), / 4 cos( 08 , 0 ) / 2 cos( 5 , 0 42 , 0
] [

Tambm similar s duas anteriores, mas tem um segundo harmnico o que faz
com que ela se aproxime de zero com mais suavidade.

Fig. 5.8. Janela de Blackman.

Tanto a janela de Bartlett, quanto Hamming, Hanning e Blackman tm lbulos
laterais menores do que os da janela retangular. No entanto, para o mesmo
valor de M, a largura do lbulo principal tambm mais larga para essas janelas
se comparadas janela retangular. Consequentemente, essas janelas
conseguem uma convoluo no domnio da frequncia mais suave e, como
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 122
resultado, a regio de transio na resposta do filtro FIR mais larga. Para
reduzir a largura da regio de transio podemos aumentar o comprimento da
janela, o que resulta em filtros mais largos. A tabela a seguir resume algumas
caractersticas no domnio da frequncia dessas janelas.

Tabela 5.1. Algumas caractersticas do domnio da frequncia de algumas
funes de janelamento
Tipo de
janela
Largura de transio
aproximada do lbulo
principal
Largura de
transio exata
Pico do
lbulo
lateral (dB)
Retangular 4/M 1,8/M -21
Bartlett 8/M 6,1/M -25
Hanning 8/M 6,2/M -44
Hamming 8/M 6,6/M -53
Blackman 12/M 11/M -74


6) Janela de Kaiser (James F. Kaiser)
Esta a melhor janela. Ela e considerada tima porque prov um lbulo
principal largo para a dada atenuao da banda de corte, o que implica a mais
brusca banda de transio. A funo foi definida por Kaiser e dada por:


(
(

\
|

=
seno
M n
I
M
n
I
n w
, 0
0 ,
] [
2
1 1
] [
0
2
0


I
0
(.) a funo de Bessel modificada de ordem zero:

=
(

+ =
1
2
0
!
) 2 / (
1 ) (
n
n
n
x
x I

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 123

Fig. 5.8. Variadas formas da Janela de Kaiser.
Na expresso de w[n], existem dois parmetros:
1. O comprimento M
2. O parmetro
Variando e M, possvel ajustar a amplitude dos lbulos laterais. Kaiser
encontrou duas frmulas que permitem achar M e de modo a atender s
especificaes do filtro. Assim, dado que
1
fixo (especificado), a frequncia de
corte w
P
da banda de passagem do filtro passa-baixa a maior frequncia tal
que:
|H(e
jw
)| 1 -
1

A frequncia da banda de corte tem tolerncia
2
, satisfazendo:
|H(e
jw
)|
2

A largura da banda de transio :
w = w
S
- w
P

Dado:
A = -20log
10
,
considerando
1
=
2
. Kaiser mostrou que:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 124

<
+
>
=
21 , 0
50 21 , ) 21 ( 07886 , 0 ) 21 ( 5842 , 0
50 , ) 7 , 8 ( 112 , 0
4 , 0
A
A A A
A A

(Eq. 5.1)
Alm disso, dados w e A, M aproximadamente:
w
A
M

=
285 , 2
8

O procedimento para projetar um filtro passa-baixa digital FIR usando a janela
de Kaiser consiste nos seguintes passos:
i) Estabelecer as especificaes w
P
, w
S
e .
ii) Estabelecer a frequncia de corte w
c
do filtro passa-baixa ideal ao qual se
aplicar a janela (w
c
= (w
P
+ w
S
)/2).
iii) Calcular A = 20log
10
e w = w
P
- w
S
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]=h
d
[n]w[n], onde w[n]
a janela de Kaiser e h
d
[n] =
-1
[H
d
(e
jw
)].

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.


Exemplo: Projetar, usando janelas de Kaiser, um filtro passa-baixa com as
seguintes especificaes: w
P
= 0,4, w
S
= 0,6 e = 0,001.
w
c
= (w
S
+ w
P
)/2 = 0,5
w = w
S
- w
P
= 0,2
A = -20log
10
= 60 dB

Como A > 50, pela Eq. 5.1:
= 0,1102(A 8,7) 5,633
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 125
M = (A - 8)/(2,285w) 36,219 M = 37 (M inteiro)

A resposta ao impulso :
] [
) 2 / (
)] 2 / ( [
] [ ] [ ] [ n w
M n
M n w sen
n w n h n h
c
d

= =


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 h
d
[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).
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);


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 126
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 w
P
= 0,2,
R
P
= 0,25 dB, w
S
= 0,3 e A
S
= 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;
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]');
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 127
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 128
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 129


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 130
Exemplo 3:
Vamos projetar o filtro com as seguintes especificaes (conforme a figura
abaixo):
Borda da banda de corte mais baixa: w
1s
= 0,2, A
s
= 60 dB
Borda da banda de passagem mais baixa: w
1p
= 0,35, A
s
= 1 dB
Borda da banda de corte mais alta: w
2s
= 0,65, A
s
= 1 dB
Borda da banda de passagem mais alta: w
2p
= 0,8, A
s
= 60 dB

Existem duas bandas de transio: w
1
= w
1P
w
1S
, w
2
= w
2S
w
2P
. Essas
duas larguras de banda devem ser a mesma no projeto da janela; i.e., no h
controle independente sobre w
1
e w
2
. Assim w
1
= w
2
= w
1
. 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 h
d
[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 a seguir:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 131

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)))
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]');
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 132
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 = 75
alpha = 37
Rp = 0,0030
As = 75


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 133
Exemplo 4:
A resposta em frequncia de um filtro passa-faixa ideal dada por:

<

<
=

| | 3 / 2 , 1
3 / 2 | | 3 / , 0
3 / | | 0 , 1
) (
w
w
w
e H
jw
e

Usando uma janela de Kaiser, projete um filtro passa-faixa de comprimento 45
com atenuao na banda de corte de 60 dB.

Observe que a largura da banda de transio no foi dada. Ela ser encontrada
a partir do comprimento M = 45 e do parmetro da janela de Kaiser. Das
equaes de projeto da janela de Kaiser, podemos determinar a partir de A
s
:
) 7 , 8 ( 1102 , 0 =
S
A

Vamos agora implementar a janela de Kaiser e observar a atenuao na banda
de corte.
M = 45; As = 60; n=[0:M-1];
beta = 0.1102*(As - 8.7)
w_kai = (kaiser(M, beta))';
wc1 = pi/3; wc2 = 2*pi/3;
hd = ideal_lp(wc1, M) + ideal_lp(pi, M) - ideal_lp(wc2, M);
h = hd.*w_kai;
[db, mag, pha, w] = freqz_m(h, [1]);
subplot (1, 1, 1);
subplot (2, 2, 1);
stem(n,hd); title('Resposta ao Impulso Ideal');
axis([0 M-1 -0.2 0.8]); 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.2 0.8]);xlabel('n');ylabel('h[n]');
subplot (2, 2, 4); plot(w/pi, db); title('Magnitude em dB');grid
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 134
axis([0 1 -80 10]);xlabel('frequencia em pi unidades');ylabel('Decibeis');

beta = 5,6533



Observe que, com esse valor, a mnima atenuao da banda de corte menor
que 60 dB (observe que h lbulos na banda de corte com pico acima de 60 na
escala negativa - ou seja, menor que 60 em mdulo resposta em magnitude
na figura acima, destacada em vermelho). Assim, precisamos aumentar BETA
para aumentar a atenuao para 60 dB. Vamos colocar um acrscimo no valor
calculado de BETA para conseguir uma atenuao maior. Observamos que,
assim, a atenuao fica maior que 60 dB na banda de corte.

M = 45; As = 60; n=[0:M - 1];
beta = 0.1102*(As - 8.7) + 0.3
w_kai = (kaiser(M, beta))';
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 135
wc1 = pi/3; wc2 = 2*pi/3;
hd = ideal_lp(wc1, M) + ideal_lp(pi, M) - ideal_lp(wc2, M);
h = hd.*w_kai;
[db, mag, pha, w] = freqz_m(h, [1]);
subplot (1, 1, 1);
subplot (2, 2, 1);
stem(n,hd); title('Resposta ao Impulso Ideal');
axis([0 M-1 -0.2 0.8]); 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.2 0.8]);xlabel('n');ylabel('h[n]');
subplot (2, 2, 4); plot(w/pi, db); title('Magnitude em dB');grid
axis([0 1 -80 10]);xlabel('frequencia em pi unidades');ylabel('Decibeis');

beta = 5,9533


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 136
Exemplo 5:
A resposta em frequncia de um filtro diferenciador digital ideal dada por:

< <
<
=
0 ,
0 ,
) (
w jw
w jw
e H
jw
d


Usando uma janela de Hamming de comprimento 21, projete um diferenciador
FIR. Plote as respostas no domnio do tempo e da frequncia.

A resposta ao impulso de um diferenciador ideal com fase linear dada por:


= =

dw e e e H e e H n h
jwn w j jw
d
w j jw
d d
) (
2
1
] ) ( [ ] [


+ =


0
0
) (
2
1
) (
2
1
dw e e jw dw e e jw
jwn w j jwn w j


n
n
n
n
, 0
,
) (
) ( cos

A resposta ao impulso acima pode ser implementada no MatLab atravs da
janela de Hamming para projetar o diferenciador requisitado. Note que se M
um nmero par, ento = (M - 1)/2 no um inteiro e h
d
[n] ser zero para todo
n. Assim, M deve ser um nmero mpar e teremos um filtro FIR de fase linear do
tipo III.

Para projetar um filtro FIR de fase linear (de qualquer tipo) usamos o cdigo
abaixo:
function [Hr, w, coef, L] = Hr_Type(h, type)
% Calcula a resposta em ampiltude Hr[w] para filtros FIR tipo I, II, III e IV
% type = tipo de filtro
M = length(h);
if ((type == 1) | (type == 2))
L = (M - mod(type, 2))/2;
if (type == 1)
coef = [h(L+1) 2*h(L:-1:1)];
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 137
n = [0:L];
w = [0:500]'*pi/500;
Hr = cos(w*n)*coef';
else
coef = 2*[h(L:-1:1)];
n = [1:L]; n = n - 0.5;
w = [0:500]'*pi/500;
Hr = cos(w*n)*coef';
end
else
L = (M - mod(type, 2))/2;
if (type == 3)
coef = 2*[h(L+1:-1:1)];
n = [0:L];
w = [0:500]'*pi/500;
Hr = sin(w*n)*coef';
else
coef = 2*[h(L:-1:1)];
n = [1:L]; n = n - 0.5;
w = [0:500]'*pi/500;
Hr = sin(w*n)*coef';
end
end

Assim, podemos resolver a questo da seguinte forma:

M = 21; alpha = (M - 1)/2;
n = 0:M-1;
hd = (cos(pi*(n - alpha)))./(n - alpha);
hd (alpha + 1) = 0;
w_ham = (hamming(M))';
h = hd.*w_ham;
[Hr, w, P, L] = Hr_Type(h, 3);
subplot(1, 1, 1)
subplot (2, 2, 1); stem(n, hd); title('Resposta ao Impulso Ideal');
axis([0 M-1 -1.2 1.2]);xlabel('n');ylabel('hd[n]');
subplot (2, 2, 2); stem(n, w_ham); title('Janela de Hamming');
axis([0 M-1 0 1.2]);xlabel('n');ylabel('w[n]');
subplot (2, 2, 3); stem(n, h); title('Resposta ao Impulso Atual');
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 138
axis([0 M-1 -1.2 1.2]);xlabel('n');ylabel('h[n]');
subplot (2, 2, 4); plot(w/pi, Hr/pi); title('Magnitude em dB');grid
axis([0 1 0 1]);xlabel('frequencia em pi unidades');ylabel('Slope in pi units');


Exemplo 6:
Projete um filtro transformador digital de Hilbert de comprimento 25 usando uma
janela de Hanning. A resposta em frequncia ideal de um transformador de
Hilbert de fase linear dada por:

< <
< <
=

0 ,
0 ,
) (
w je
w je
e H
w j
w j
jw
d



A resposta ao impulso ideal dada por:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 139

n
n
n
n sen
n h
d
, 0
,
) (
] 2 / ) ( [ 2
] [
2

que pode ser implementado no MatLab. Como M = 25, o projeto do filtro do
tipo III:
M = 25; alpha = (M - 1)/2; n = 0:M-1;
hd = (2/pi)*((sin((pi/2)*(n - alpha)).^2)./(n - alpha));
hd (alpha + 1) = 0;
w_han = (hanning(M))';
h = hd.*w_han;
[Hr, w, P, L] = Hr_Type(h, 3);
subplot (2, 2, 1); stem(n, hd); title('Resposta ao Impulso Ideal');
axis([0 M-1 -1.2 1.2]);xlabel('n');ylabel('hd[n]');
subplot (2, 2, 2); stem(n, w_han); title('Janela de Hamming');
axis([0 M-1 0 1.2]);xlabel('n');ylabel('w[n]');
subplot (2, 2, 3); stem(n, h); title('Resposta ao Impulso Atual');
axis([0 M-1 -1.2 1.2]);xlabel('n');ylabel('h[n]');
w = w'; Hr = Hr';
w = [-fliplr(w), w(2:501)]; Hr = [-fliplr(Hr), Hr(2:501)];
subplot (2, 2, 4); plot(w/pi, Hr); title('Resposta em Amplitude');grid
axis([-1 1 -1.1 1.1]);xlabel('frequencia em pi unidades');ylabel('Hr');
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 140


5.1.2 Tcnicas de Projeto por Amostragem em Frequncia
Nessa tcnica, usamos o fato de que a funo de sistema H(z) pode ser obtida a
partir de amostras H(k) da resposta em frequncia H(e
jw
). Seja h[n] a resposta
ao impulso de um filtro FIR com M amostras, H[k] sua transformada discreta
de Fourier com M-pontos (Captulo 6) e H(z) sua funo de sistema. Ento
temos:


=

= =
1
0
/ 2 1
1
0
1
] [ 1
] [ ) (
M
k
M k j
M M
n
n
e z
k H
M
z
z n h z H

e

=
1
0
/ 2
1
] [ 1
) (
M
k
M k j jw
jwM
jw
e e
k H
M
e
e H
(Eq. 5.2)
com
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 141

=
=
= =
1 ,..., 1 , ] [ *
0 , ] 0 [
) ( ] [
/ 2
M k k M H
k H
e H k H
M k j

Para um filtro FIR de fase linear temos:

h[n] = h[M 1 - n], n = 0, 1, ..., 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. Ento H[k] dado por:
] [
2
] [
k H j
r
e
M
k
H k H

|

\
|
=


onde

=
(


=
=
|

\
|
1 ,..., 1 ,
) ( 2
0 , ] 0 [
2
M k
M
k M
H
k H
M
k
H
r
r
r

+
(


=
|

\
|
|

\
|

+
(


=
|

\
|
|

\
|

=
1 ,..., 1
2
1
, ) (
2
2
1
2
1
,..., 0 ,
2
2
1
] [
M
M
k k M
M
M
M
k
M
k M
k H


(para tipos 1 e 2)
ou

+
(


=
|

\
|
|

\
|

+
|

\
|

(


=
|

\
|
|

\
|

\
|

=
1 ,..., 1
2
1
, ) (
2
2
1
2
2
1
,..., 0 ,
2
2
1
2
] [
M
M
k k M
M
M
M
k
M
k M
k H



(para tipos 3 e 4)

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 142
Dado um filtro passa-baixa ideal H
d
(e
jw
), escolha o filtro de comprimento M e
ento amostre H
d
(e
jw
) em M igualmente espaadas freqncias entre 0 e 2. A
resposta H(e
jw
) a interpolao das amostras H[k] dadas pela Eq. 5.2 (Fig. 5.9).
A resposta ao impulso dada por h[n] = TDF
-1
(H[k]).


Fig. 5.9. Exemplo da tcnica de amostragem em frequncia.

Da Fig. 5.9, podemos observar que:
1) O erro de aproximao a diferena entre a resposta ideal e a atual zero
nas freqncias amostradas.
2) O erro de aproximao nas outras freqncias depende da forma da resposta
ideal, ou seja, quanto mais sharp a resposta ideal, maior o erro de
aproximao.
3) O erro maior perto das fronteiras das bandas e menor dentro das bandas.
5.1.3 Projeto Equirriple timo
Os mtodos de janelamento e de amostragem na frequncia tm alguns
problemas:
1) No podemos especificar w
P
e w
S
precisamente nos projetos.
2) No podemos especificar
1
e
2
simultaneamente. Ou consideramos
1
=
2

(como no janelamento) ou otimizamos
2
(como na amostragem).
3) O erro de aproximao no distribudo uniformemente nas bandas. Ele
mais alto perto das fronteiras das bandas e menor quanto mais distante delas.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 143
O mtodo equirriple timo evita esses problemas. No entanto ele bastante
difcil de utilizar e requer computador na sua implementao. O objetivo
minimizar o erro mximo de aproximao (minimax do erro). Tais filtros so
chamados de equirriple porque o erro distribudo de maneira uniforme na
banda de passagem e de corte o que resulta em um filtro de menor ordem.

No MatLab, um projeto por equirriple feito usando a funo remez que
implementa o algoritmo Parks-McClellan.

Exemplo:
Vamos projetar um filtro passa-baixa usando o algoritmo de Parks-McClellan. Os
parmetros de projeto so:
w
P
= 0,2, R
P
= 0,25 dB
w
S
= 0,3, A
S
= 50 dB

wp = 0.2*pi; ws = 0.3*pi; Rp = 0.25; As = 50;
delta1 = (10^(Rp/20)-1)/(10^(Rp/20)+1);
delta2 = (1 + delta1)*(10^(-As/20));
deltaH = max(delta1, delta2);
deltaL = min(delta1, delta2);
weights = [delta2/delta1 1];
deltaf = (ws - wp)/(2*pi);
M = ceil((-20*log10(sqrt(delta1*delta2))-13)/(14.6*deltaf) + 1)
f = [0 wp/pi ws/pi 1];
m = [1 1 0 0];
h = remez(M - 1, f, m, weights);
[db, mag, pha, w] = freqz_m(h, [1]);
delta_w = 2*pi/1000;
wsi = ws/delta_w + 1;
Asd = -max(db(wsi:501))
while (Asd < As)
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 144
M = M + 1;
h = remez(M - 1, f, m, weights);
[db, mag, pha, w] = freqz_m(h, [1]);
delta_w = 2*pi/1000;
wsi = ws/delta_w + 1;
Asd = -max(db(wsi:501))
end
subplot (2, 1, 1); stem(h); title('Resposta ao Impulso Atual');
axis([0 M-1 -0.1 0.3]);xlabel('n');ylabel('h[n]');
subplot (2, 1, 2); plot(w/pi, db); title('Magnitude em dB');grid
axis([0 1 -100 10]);xlabel('frequencia em pi unidades');ylabel('Decibeis');

M = 43
Asd = 47.8404
M = 44
Asd = 48.2131
M = 45
Asd = 48.8689
M = 46
Asd = 49.8241
M = 47
Asd = 51.0857


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 145
5.2 Projeto de Filtros IIR
Filtros IIR tm resposta infinita ao impulso, assim eles podem ser igualados a
filtros analgicos, os quais, em geral, tm resposta ao impulso infinitamente
longa. Assim, a tcnica bsica de projeto de filtros IIR transforma filtros
analgicos bem conhecidos em filtros digitais. A vantagem dessa tcnica est no
fato que tanto tabelas de filtros analgicos quanto as converses esto
vastamente disponveis na literatura. Essa tcnica chamada de transformao
de filtro analgica-digital (A/D). No entanto, as tabelas de filtros s esto
disponveis para filtros passa-baixa. Para gerar outros filtros seletores de
frequncia, temos que aplicar transformaes a filtros passa-baixa. Essas
transformaes tambm esto disponveis na literatura. Existem duas formas de
projeto de filtros IIR:
1)

2)


Para projetar filtros IIR, vamos:
1) Projetar FPB analgicos;
2) Aplicar transformaes no filtro para obter FPB digitais;
3) Aplicar transformaes de frequncia nas bandas para obter outros filtros
digitais a partir do FPB.
O principal problema dessas tcnicas que no temos controle sobre a fase do
filtro. Assim, os projetos de filtros IIR sero apenas em magnitude. Tcnica mais
avanadas usam otimizao e no sero tratadas.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 146
5.2.1 Escala Relativa
Seja H
a
(j) a resposta em frequncia do filtro analgico. Ento as
especificaes do FPB quanto resposta quadrtica de magnitude so dadas
por:
1 | ) ( |
1
1
2
2

+
j H
a

, ||
P

2
2
1
| ) ( | 0
A
j H
a

,
S
||
onde o parmetro de ondulao da banda de passagem,
P
a frequncia
de corte da banda de passagem em rad/seg, A o parmetro de atenuao da
banda de corte e
S
a frequncia da banda de corte (Fig. 5.10).

Fig. 5.10. Especificaes de um filtro passa-baixa analgico.

Da Fig. 5.10, temos:
2
2
1
1
| ) ( |
+
= j H
a em =
P

2
2
1
| ) ( |
A
j H
a
=
em =
S

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 147
Os parmetros e A esto relacionados aos parmetros R
P
e A
S
na escala dB
como:
1 10
1
1
log 10
10 /
2
10
=
+
=
P
R
P
R

(Eq. 5.3)
e
20 /
2
10
10
1
log 10
S
A
S
A
A
A = =
(Eq. 5.4)
As tolerncias
1
e
2
da escala absoluta so relacionados a e A por:
1
1
2
1
1
1
2
1
1
1
1

=
+
=
+


e
2
1
1
2
1 1
1

+
= =
+
A
A

Especificaes de filtros analgicos no tm informao de fase. Para calcular a
funo de sistema H
a
(s) no domnio-s considere:
j s
a a
s H j H
/
) ( ) (
=
=

ento temos
=
= = =
j s
a a a a a a a
s H s H j H j H j H j H j H ) ( ) ( ) ( ). ( ) ( * ). ( | ) ( |
2
ou
j s
a a a
j H s H s H
/
2
| ) ( | ) ( ). (
=
=


Observao:
O domnio-s ou plano-s o nome do plano complexo no qual a transformada de
Laplace apresentada graficamente. A transformada de Laplace se relaciona
com a transformada de Fourier, mas enquanto a transformada de Fourier
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 148
mapeia um sinal ou funo em termos de vibraes (senides), a transformada
de Laplace mapeia uma funo em relao aos seus momentos:

= dt e t f t f L
st
) ( )} ( {

onde s = + j, com e nmeros reais.

A transformada de Fourier equivalente transformada bilateral de Laplace
com argumento complexo s = j.

Para um sinal amostrado x[n], a transformada de Laplace dada por:

=
0
] [ ) (
n
nsT
e n x s X
, onde T o perodo de amostragem.
Essa relao expressa exatamente a transformada Z quando z = e
sT
. O
mapeamento do plano-s no plano-z pode ser visto na Fig. 5.11. Nesse diagrama,
linhas verticais no plano-s so mapeadas em ngulos no plano-z, enquanto
linhas horizontais so mapeadas em raios.

Fig. 5.11. Mapeamento do plano-s no plano-z.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 149
5.2.2 Caractersticas de Prottipos Analgicos
O projeto de filtros IIR reside na existncia de filtros analgicos para obter filtros
digitais. Esses filtros analgicos so chamados de filtros prottipos. Trs
prottipos so largamente usados na prtica: Butterworth, Chebyshev (tipo I e II)
e Elptico. Vamos ver as caractersticas das verses passa-baixa desses filtros.

1) Filtro Passa-Baixa de Butterworth
A principal caracterstica desse filtro que a resposta em magnitude plana
(flat) na banda de passagem e de corte. A resposta quadrtica de magnitude de
um FPB de N-sima ordem dada por:
N
c
a
j H
2
2
1
1
| ) ( |
|
|

\
|

+
=

onde N a ordem do filtro e
c
a frequncia de corte. A plotagem de H
a
(j)
mostrada na Fig. 5.12.

Fig. 5.12. Caracterstica de um filtro Butterworth com variao de parmetros.

Desse grfico, podemos observar:
i) Em = 0, |H
a
(j0)|
2
= 1, para todo N.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 150
ii) Em =
c
, |H
a
(j
c
)|
2
= 0,5, para todo N, o que implica 3 dB de atenuao em

c
.
iii) |H
a
(j)|
2
uma funo monotonicamente decrescente em .
iv) |H
a
(j)|
2
se aproxima de um FPB ideal em N .
V) |H
a
(j)|
2
maximamente plano em = 0.

Sua funo de sistema H
a
(s) :
N
c
N
N
N
c
j s
a a a
j s
j
j
s
j H s H s H
2 2
2
2
/
2
) (
) (
1
1
| ) ( | ) ( ) (
+

=
|
|

\
|

+
= =
=

Para projetar o filtro, precisamos encontrar as razes e plos da funo do
sistema. Os plos so dados por p
k
= e
j(2k + 1)/2N
.e
j/2

c
, k = 0, 1, 2,..., 2N-1.
Assim, os plos esto em um crculo de raio
c
nos ngulos
k
= (/N)k + (/2N)
+ /2, k = 0, ..., 2N 1. E os zeros so s
k
= (-1)
1/2N
.j
c
=
c
e
j(2k+N+1)/2N
, k = 0, 1,
..., 2N 1.

O FPB analgico especificado pelos parmetros
P
,
S
, R
P
e A
S
. Assim, a
essncia do projeto no caso do filtro de Butterworth obter a ordem N e a
frequncia de corte dada
c
. Assim, dadas essas especificaes, queremos:

i) em =
P
,
P a
R j H =
2
10
| ) ( | log 10
ou
P
N
c P
R =
|
|

\
|
+

2
10
) / ( 1
1
log 10

e
ii) em =
S
,
S a
A j H =
2
10
| ) ( | log 10
ou
S
N
c S
A =
|
|

\
|
+

2
10
) / ( 1
1
log 10

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 151
Resolvendo as equaes para N =
c
, temos:
) / ( log 2
)] 1 10 /( ) 1 10 [( log
10
10 / 10 /
10
S P
A R
S P
N


=

Em geral, N no um inteiro e, por isso, deve ser truncado para o menor inteiro
maior que o valor calculado: N = N(. Obviamente, isso ir gerar um filtro com
ordem maior do que o necessrio. Para satisfazer exatamente as especificaes
do projeto em
P
:
N R
P
C
P
2 10 /
1 10

=

ou para satisfazer exatamente as especificaes em
S
:
N A
S
C
S
2 10 /
1 10

=


Exemplo: Projete um filtro Butterworth satisfazendo:
Ponto de corte na banda de passagem:
P
= 0,2
Ripple na banda de passagem: R
P
= 7 dB
Ponto de corte na banda de corte:
S
= 0,3
Ripple na banda de corte: A
S
= 16 dB

Soluo:
(
3 79 , 2
) 3 , 0 / 2 , 0 ( log 2
)] 1 10 /( ) 1 10 [( log
10
6 , 1 7 , 0
10
= =
(
(
(


=

N

Para satisfazer exatamente as especificaes em
P
temos:
4985 , 0
1 10
2 , 0
3 . 2 7 , 0
=

=

C

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 152
Para satisfazer exatamente as especificaes em
S
temos:
5122 , 0
1 10
3 , 0
3 . 2 6 , 1
=

=

C


Podemos escolher
c
entre esses dois valores, por exemplo
c
= 0,5. Temos
que projetar um filtro Butterworth com N = 3 e
c
= 0,5. Ou seja:
6
2
5 , 0
1
1
| ) ( |
|

\
|
+
= j H
a

Como = s/j, temos:
6 6 6 6
2
64 1
1
2 1
1
5 , 0
1
1
| ) ( |
s s
j
S
s H
a

=
|
|

\
|
+
=

cujos plos podem ser calculados no MatLab (ou calculando p
K
, como antes):
>> 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 153
Para termos um filtro causal e estvel, usamos os plos do semi-plano
esquerdo:
) 433 , 0 25 , 0 )( 433 , 0 25 , 0 )( 5 , 0 (
1
) (
j s j s s
s H
a
+ + + +
=

) 25 , 0 5 , 0 )( 5 , 0 (
1
) (
2
+ + +
=
s s s
s H
a
Vamos ajustar o numerador para que o ganho na frequncia zero seja unitrio.
Ou seja, no denominador, quando s = 0, temos:

(s + 0,5)(s
2
+ 0,5s + 0,25) = 0,5.0,25 = 0,125

Logo, o numerador multiplicado por um fator de 1/8 e temos:
) 25 , 0 5 , 0 )( 5 , 0 (
125 , 0
) 25 , 0 5 , 0 )( 5 , 0 (
8 / 1
) (
2 2
+ + +
=
+ + +
=
s s s s s s
s H
a

Para transformar o filtro em digital, podemos usar o mtodo de transformao
bilinear. Nele, consideramos:
2 / 1
2 / 1
1
1 2
1
1
sT
sT
z
z
z
T
s

+
=
+

(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
1
1
1
2
1
1
) ( ) (
1
1
2
z
z
s
a a
s H z H
z
z
s

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 154
(
(

+
|
|

\
|

+
|
|

\
|

25 , 0
1
1
2 5 , 0
1
1
2 5 , 0
1
1
2
125 , 0
) (
1
1
2
1
1
1
1
z
z
z
z
z
z
z H
a



A transformao bilinear pode ser ligada frmula trapezoidal para integrao
numrica. Por exemplo, considere um filtro linear analgico com funo de
transferncia:
a s
b
s H
+
= ) (
(Eq. 5.6)
Esse sistema pode ser caracterizado tambm pela equao de diferenas:
) ( . ) ( .
) (
t x b t y a
dt
t dy
= +

Ao invs de substituir uma diferena finita pela derivada, suponha que
integramos a derivada e aproximamos a integral pela frmula trapezoidal. Assim:

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


onde y(t) denota a derivada de y(t). A aproximao da integral anterior pela
frmula trapezoidal em t = nT e t
0
= nT T leva a:
[ ] ) ( ) ( ' ) ( '
2
) ( T nT y T nT y nT y
T
nt y + + =
(Eq. 5.7)
Agora, essa equao diferencial calculada em t = nT leva a:
) ( . ) ( . ) ( ' nT x b nT y a nT y + =
(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 155
( ) ) 1 ( ) (
2
) 1 (
2
1 ) (
2
1 + =
|

\
|

|

\
|
+ n x n x
bT
n y
aT
n y
aT

cuja transformada Z
( ) ) ( 1
2
) (
2
1 ) (
2
1
1 1
z X z
bT
z Y z
aT
z Y
aT

+ =
|

\
|

|

\
|
+

Consequentemente, a funo de transferncia do filtro digital equivalente :
1
1
) 2 / 1 ( 2 / 1
) 1 )( 2 / (
) (
) (
) (

+
+
= =
z aT aT
z bT
z X
z Y
z H

ou, equivalentemente:
a
z
z
T
b
z H
+
|
|

\
|
+

1
1
1
1 2
) (
(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:
|
|

\
|
+

1
1
1
1 2
z
z
T
s

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 156
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:
|
|

\
|

+
=
c
N
a
T
j H
2 2
2
1
1
| ) ( |


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

< <

=

x x
x x N
x T
N
1 , )) ( cosh(cosh
1 0 , )) ( cos . cos(
) (
1
1

Podemos considerar x = (/
c
).

Para um filtro de Chebyshev do tipo II:
1
2 2
2
1
1
| ) ( |

\
|

+
=
c
N
a
T
j H


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

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 157


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 158

A resposta quadrtica de magnitude dada por:
|
|

\
|

+
=
c
N
a
U
j H
2 2
2
1
1
| ) ( |


onde N a ordem do filtro, o fator de ondulao da banda de passagem (Eq.
5.3) e U
N
(x) a funo elptica Jacobiana de ordem N.

Apesar da anlise complexa, o clculo da ordem do filtro simples e dado por:
) 1 ( ) (
) 1 ( ) (
2
1
2
1
k K k K
k K k K
N

=

onde
S
P
k

=
,
1
2

=
A
k

e

=
2 /
0
2 2
1
1
) (

d
sen x
x K


5.3 Transformaes em Frequncia
Como 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 H
PB
(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:
) (
1 1
) ( ) (

=
=
z G Z
PB
Z H z H

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 159
Se H
PB
(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:
) (
jw j
e G e

=


) (
| ) ( |
jw
e G j jw j
e e G e

=


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 :

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


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

= =
z
z
z G Z


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 passa-
baixa (primeira converso da tabela). Isso feito para que se possa construir um
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 160
filtro passa-baixa que pode ser modificado apenas com a variao de um
parmetro: .

5.4 Comparao entre Filtros FIR e IIR
Seja 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:
3
N
M

Isso 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 161
Tabela 5.1. Transformaes em frequncia para filtros digitais (filtro passa-baixa
prottipo tem frequncia de corte em w
c
).


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 162
5.5 Exerccios

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

<
<
<
<
<
=



| | 6 , 0 , 1
6 , 0 | | 5 , 0 , 0
5 , 0 | | 4 , 0 , 1
4 , 0 | | 3 , 0 , 0
3 , 0 | | 0 , 1
) (
w
w
w
w
w
e H
jw
e

A
S
= 50 dB e R
P
= 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
A
S
= 60 dB e R
P
= 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:

<

<
=

| | 3 / 2 , 0
3 / 2 | | 3 / , 1
3 / | | 0 , 0
) (
w
w
w
e H
jw
e

Usando uma janela de Kaiser, projete um filtro passa-faixa de comprimento 45
com atenuao na banda de corte de 60 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.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 163
4. Projetar um filtro digital passa-baixas, a partir do filtro analgico de
Butterworth com as seguintes especificaes do filtro digital:
0,89125 |H(e
jw
)| 1, 0 |w| 0,2
|H(e
jw
)| 0,17783, 0,3 |w|



5.6 Bibliografia Complementar

1. 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

4. Tamal Bose, Digital Signal and Image Processing, John Wiley and Sons,
2004.



Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 164
6. Transformada Discreta de Fourier
O uso de transformadas serve para observar caractersticas de um sinal que j
estavam presentes nele, mas que podem no ser observveis em um domnio.
Assim, as transformadas conseguem levar o sinal para outro domnio e traz-lo
de volta ao domnio original. A mais conhecida das transformadas a
transformada de Fourier. Criada por Jean-Baptiste Fourier, a Transformada de
Fourier muda um sinal do domnio do tempo para o domnio da freqncia. Alm
da observao de outras caractersticas do sinal, a mudana de domnio
tambm traz outras vantagens. No caso da transformada de Fourier, mudamos
um sinal de um domnio o qual no temos controle (o tempo) para outro domnio
que pode ser facilmente modificado (a freqncia). Uma mudana de estao de
rdio nada mais que uma mudana de freqncia de um sinal.

A transformada de Fourier uma ferramenta muito utilizada em anlise e
processamento de sinais. Consiste de uma generalizao da srie complexa de
Fourier quando o perodo tende a infinito. A transformada de Fourier F(w) da
funo f (t) definida por:

= dt e t f t f w F
wt j 2
) ( )} ( { ) (

onde e
-jw
o kernel da transformada de Fourier.

A transformada inversa de Fourier definida como:

dw e w F w F t f
wt j

2 1
) (
2
1
)} ( { ) (

Existem algumas propriedades que caracterizam a transformada de Fourier.
Considere os pares de transformadas f(t)F(w) e g(t)G(w). As seguintes
principais propriedades so vlidas:
1) Linearidade: a.f(t) + b.g(t) a.F(w) + b.G(w), a e b constantes
2) Deslocamento no tempo: f(t - t
0
) e-
j2wt
0
.F(w)
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 165
3) Deslocamento na freqncia: f(t)e
j2w
0
t
F(w w
0
)
4) Escalonamento: f(a.t) (1/|a|)F(w/a)
5) Convoluo no tempo: f(t)*g(t) F(w).G(w)
6) Convoluo na freqncia: f(t).g(t) (1/2)F(w)*G(w)

6.1 A Srie Discreta de Fourier
Com o advento do computador digital, foi necessria uma adequao da
transformada para sinais de tempo discreto. Considere uma seqncia x[n] que
peridica com perodo N, tal que x[n] = x[n + k.N], para qualquer inteiro k, e N
o perodo fundamental da sequncia. Da anlise de Fourier, sabemos que
funes peridicas podem ser sintetizadas como uma combinao linear de
exponenciais complexas cujas freqncias so mltiplas (ou harmnicas) da
frequncia fundamental (no caso 2/N). Da periodicidade no domnio da
frequncia da transformada de Fourier discreta no tempo, conclumos que existe
um nmero finito de harmnicos; as frequncias {(2/N)k, k = 0, 1, 2, ...., N-1}.
Assim, a sequncia peridica x[n] pode ser expressa como:

=
=
1
0
2
] [
1
] [
N
k
kn
N
j
e k X
N
n x

, n = 0, 1, .... (Eq. 6.1)



onde {X[k], k = 0, 1, ....} so chamados de coeficientes da srie discreta de
Fourier, sendo dados por:

=
1
0
2
] [ ] [
N
n
kn
N
j
e n x k X

, k = 0, 1, .... (Eq. 6.2)



onde x[n] a seqncia discreta no domnio do tempo que descreve os valores
amostrados da varivel contnua x(t) e N o nmero de amostras da seqncia
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 166
da entrada. Observe que X[k] tambm uma sequncia peridica com perodo
fundamental igual a N. Ou seja, X[k + N] = X[k]. As equaes 6.1 e 6.2 so a
representao discreta em srie de Fourier de sequncias peridicas.

Por convenincia de notao, podemos chamar:
W
N
= e
-j(2/N)

e assim o par de equaes torna-se:
Equao de anlise:

=
=
1
0
] [ ] [
N
n
kn
N
W n x k X


Equao de sntese:

=
1
0
] [
1
] [
N
k
kn
N
W k X
N
n x


Tanto x[n] quanto X[k] so seqncias peridicas.

Exemplo:
Encontre a representao em srie de Fourier da sequncia:

x[n] = {...0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, ....}

O perodo fundamental da sequncia N = 4. Assim, W
4
= e
-j2/4
= e
-j/2
= cos(-
/2) + j.sen(-/2) = 0 + j.(-1) = -j
Agora

=
=
3
0
4
] [ ] [
n
kn
W n x k X

Assim:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 167

= =
= + + + = = =
3
0
3
0
. 0
4
6 ] 3 [ ] 2 [ ] 1 [ ] 0 [ ] [ ] [ ] 0 [
n n
n
x x x x n x W n x X
De forma similar:

= =
+ = = =
3
0
3
0
. 1
4
2 2 ) ]( [ ] [ ] 1 [
n
n
n
n
j j n x W n x X


= =
= = =
3
0
2
3
0
. 2
4
2 ) ]( [ ] [ ] 2 [
n
n
n
n
j n x W n x X


= =
= = =
3
0
3
3
0
. 3
4
2 2 ) ]( [ ] [ ] 3 [
n
n
n
n
j j n x W n x X


Uma outra forma de ver a transformada discreta de Fourier atravs de uma
representao em matrizes. Considere que x e X so vetores coluna
correspondendo aos perodos primrios das sequncias x[n] e X[k],
respectivamente. Ento as equaes de sntese e anlise podem ser vistas
como:
X = W
N
x
e
x = (1/N)W
*
N
X
onde W
N
dada por:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 168
A matriz W
N
chamada de matriz DFS. Essa forma de calcular os coeficientes
da srie discreta de Fourier pode ser implementado no MatLab da seguinte
forma:

function [Xk] = dfs (xn, N)
n = [0:1:N-1];
k = [0:1:N-1];
WN = exp(-j*2*pi/N);
nk = n'*k;
WNnk = WN.^nk;
Xk = xn*WNnk;

Por exemplo:
>> xn = [0 1 2 3]; N = 4;
>> Xk = dfs(xn, N)
Xk =6 -2 + 2i -2 - 0i -2 - 2i
Exatamente como calculamos anteriormente. A transformada inversa pode ser
obtida como:

function [xn] = idfs(Xk, N)
n = [0:1:N-1];
k = [0:1:N-1];
WN = exp(-j*2*pi/N);
nk = n'*k;
WNnk = WN.^(-nk);
xn = (Xk*WNnk)/N;

Para o Xk anterior, temos:
>> 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 169


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 170


6.2 A Transformada Discreta de Fourier
Na 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 x
~
[n] um sinal peridico de
perodo N, criado usando uma sequncia de N-pontos x[n]; isto :

=
=
r
rN n x n x ] [ ] [
~

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(e
jw
) da sequncia de N-pontos x[n] pode reconstruir
unicamente X(e
jw
). Essas N amostras ao redor do crculo unitrio so chamdas
de coeficientes da transformada discreta de Fourier. Seja X
~
[k] =DFSx
~
[n], que
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 171
so claras na seguinte definio. A Transformada Discreta de Fourier de uma
sequncia de N-pontos dada por:


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

ou

=
=
1
0
] [ ] [
N
n
kn
N
W n x k X
, 0 k N 1
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:
]) [ ( ] [ k X IDFT n x =

ou

=
1
0
] [
1
] [
N
k
kn
N
W k X
N
n x
, 0 n N 1
Novamente, x[n] no definida fora do intervalo 0 n N 1. A extenso de
x[n] fora desse intervalo x
~
[n].

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 = W
N
x
e
x = (1/N)W
*
N
X
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 172
onde W
N
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 e
j
=
cos + jsen . A DFT pode ser escrita ento da seguinte forma:

=
(

\
|

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



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 Fourier

1) Linearidade
Dadas duas seqncias peridicas com perodo N, x
1
[n] e x
2
[n], e suas
respectivas DFTs X
1
[k] e X
2
[k], ento:
a.x
1
[n] + b.x
2
[n] a.X
1
[k] + b.X
2
[k]
Obs: Se x
1
[n] e x
2
[n] so sequncias de duraes diferentes (N
1
-pontos e N
2
-
pontos, por exemplo), escolha N
3
= max(N
1
, N
2
). Se, por exemplo, N
1
< N
2
, ento
X
1
[k] a DFT de x
1
[n] aumentada de (N
2
N
1
) 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 173
x[n m] W
N
km
X[m]
3) Dualidade
Se x[n] X[k]
ento X[n] N.x[-k]

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:

=
1
0
2
] [ ] [
N
n
kn
N
j
e n x k X


Logo
*
1
0
2 2
*
1
0
) (
2
*
] [ ] [ ] [
)
`

=
)
`

=


=

=

N
n
nm
N
j nN
N
j
N
n
m N n
N
j
e e n x e n x m N X


*
1
0
2
2 *
] [ ] [
)
`

N
n
nm
N
j
n j
e e n x m N X


onde e
-j2k
= cos(2n) - jsen(2n) = 1 j.0 = 1. Assim:
*
1
0
2
*
] [ ] [
)
`

=
N
n
nm
N
j
e n x m N X


Se x[n] for real:
] [ ] [ ] [
1
0
2
*
m X e n x m N X
N
n
nm
N
j
= =




5) Convoluo Peridica

=

1
0
2 1 2 1
] [ ] [ ] [ ] [
N
m
k X k X m n x m x

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 174
onde o lado esquerdo da igualdade conhecido como convoluo, representado
por x
1
[n]*x
2
[n]. importante observar que o somatrio ocorre no intervalo 0 m
N-1. O valor de x
2
[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 175
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 Fourier
Para duas dimenses, a DFT e sua inversa podem ser vistas como:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 176
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 177


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.



6.5 O Espectrograma
O espectrograma apresenta a densidade espectral do sinal ao longo do tempo.
Em processamento de voz, o espectrograma usado para identificar fonemas
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 178
no sinal. A forma mais comum de representarmos um espectrograma atravs
de um grfico bi-dimensional onde a abscissa corresponde ao tempo e a
ordenada frequncia. Uma terceira dimenso indica a amplitude de cada
frequncia e normalmente associada a uma cor. Com isso, o espectrograma
pode ser visto como uma imagem. Normalmente, espectrogramas so gerados
atravs do clculo do quadrado da magnitude da STFT (Short-Time Fourier
Transform Transformada de Fourier de Tempo Curto) do sinal. Ou seja,

Espectrograma(t, ) = |STFT(t, )|
2


Exemplo:
Considere o sinal de voz abaixo. Nele est sendo dito: jessica brown. O som foi
gerado por uma voz feminina, com rudo de fundo. Arquivo phrase59_16k.wav,
da pasta Enroll_Session1 -> f16 -> female_list_4a (base TIMIT do MIT). Em
seguida, apresentamos seu espectrograma. No padro de cores do MatLab, as
cores vermelha e amarela correspondem a picos (o que indica alta densidade da
frequncia), enquanto os tons azuis correspondem a valores baixos. H um
rudo no incio da gravao.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 179


A funo usada para gerar esse espectrograma pode ser vista abaixo:
% read the signal
[y,fs]=wavread('phrase59_16k.wav');
% calculate the table of amplitudes
[B,f,t]=specgram(y,1024,fs,256,192);
% calculate amplitude 50dB down from maximum
bmin=max(max(abs(B)))/300;
% plot top 50dB as image
imagesc(t,f,20*log10(max(abs(B),bmin)/bmin));
% label plot
axis xy; xlabel('Time (s)'); ylabel('Frequency (Hz)');
colormap(jet);
(fonte: http://www.phon.ucl.ac.uk/courses/spsci/matlab/lect9.html)

As figuras a seguir mostram as mesmas palavras ditas pela mesma mulher, mas
com outro tipo de microfone. Observe as diferenas mais visveis no
espectrograma.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 180


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 181
6.6 Exerccios

1. Determine os coeficientes da DFS das seguintes sequncias peridicas,
usando a definio de DFS:
a) x
1
[n] = {2, 0, 2, 0}, N = 4
b) x
2
[n] = {0, 0, 1, 0, 0}, N = 5
c) x
3
[n] = {3, -3, 3, -3}, N = 4
d) x
4
[n] = {j, j, -j, -j}, N = 4

2. Determine as sequncias peridicas, dados os seguintes coeficientes DFS,
usando a definio de IDFS:
a) X
1
[k] = {5, -2j, 3, 2j}, N = 4
b) X
2
[k] = {4, -5, 3, -5}, N = 4
c) X
3
[k] = {1, 2, 3, 4, 5}, N = 5
d) X
4
[k] = {0, 0, 2, 0}, N = 4

3. Seja x1[n] peridica com perodo fundamental N = 50, onde um perodo
dado por:

49 26 , 0
25 0 ,
] [
3 , 0
1
n
n ne
n x
n

e seja x2[n] peridica com perodo fundamental N = 100, onde um perodo
dado por:

99 26 , 0
25 0 ,
] [
3 , 0
21
n
n ne
n x
n

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 182
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 183
6.7 Bibliografia Complementar

1. 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 184
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.,
nmero de multiplicaes ponto flutuante (respectivamente adies) necessrias
para calcul-la. Tradicionalmente tem-se usado apenas a complexidade
multiplicativa como o parmetro mais importante. A FFT foi implementada com o
objetivo de diminuir complexidade (temporal) necessria para calcular uma DFT
(Transformada Discreta de Fourier), visando aplicaes em tempo real.Para uma
seqncia de N pontos, o algoritmo comum para clculo da DFT realiza N
2

multiplicaes, enquanto o algoritmo FFT realiza apenas (N/2)log
2
N.

A FFT usa um nmero reduzido de operaes aritmticas para calcular a DFT
em relao ao seu clculo direto. As primeiras aplicaes prticas da FFT
usando computao digital foram resultantes de manipulaes da DFT.

7.1 Algoritmos Rpidos
Existem diversos algoritmos para executar computaes. Por exemplo, h
diversos algoritmos dedicados ordenao de uma seqncia. O que difere
esses algoritmos o tempo de resposta deles ou a chamada complexidade do
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 185
algoritmo. No entanto, a anlise de complexidade de um algoritmo no considera
detalhes de implementao. Nesse sentido, os algoritmos rpidos propem
modificaes na forma de resolver algum problema a fim de conseguir um ganho
de tempo de processamento. Isso pode no afetar a complexidade do algoritmo,
mas deve diminuir seu tempo de processamento. Claro, h condies
especficas para que isso ocorra. Casos onde essas condies no so
atendidas podem provocar at um aumento no tempo de processamento. A
busca por solues rpidas deve ser constante no desenvolvimento de um
algoritmo.

Por exemplo, considere a computao da varivel A dada por:
A = a.c + a.d + b.c + b.d

Esse clculo direto leva o programa a executar 4 multiplicaes e 3 adies.
Essa expresso, no entanto, pode ser simplificada para:
A = (a + b).(c + d)

provocando uma reduo das operaes para apenas 1 multiplicao e 2
adies. Em geral, a multiplicao o elemento de maior custo considerado.
Observamos que essa expresso equivalente primeira, apenas executando
menos operaes aritmticas.

Um outro exemplo menos trivial o clculo de uma multiplicao complexa. O
produto complexo:
(e + jf) = (a + jb).(c + jd)

definido por:
e = (ac bd)
f = (ad + bc)

exigindo 4 multiplicaes e duas adies. Um algoritmo mais eficiente calcula:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 186
e = (a b)d + a(c d)
f = (a b)d + b(c + d)

tendo 3 multiplicaes apenas. O aumento na quantidade de adies no
prejudica o desempenho do algoritmo j que a multiplicao o elemento mais
custoso.

7.2 Algoritmo de Cooley-Tukey ou Decimao no Tempo
J.W.Cooley (IBM) em colaborao com J.W.Tukey (Bell Labs) conseguiram uma
revoluo maior no tratamento digital de sinais em 1965 com a publicao da
transformada rpida de Fourier, a FFT. Trata-se de um mtodo engenhoso e
altamente eficiente de reagrupar os clculos dos coeficientes de uma DFT. A
idia representar uma DFT de tamanho arbitrrio N = N
1
.N
2
em termos de
DFTs menores de tamanhos N
1
e N
2
, procedendo recursivamente.

Lembrando que os coeficientes da DFT so definidos por:


=

= =
1
0
1
0
/ 2
] [ ) ]( [ ) (
N
n
kn
N
N
n
kn N j
W n x e n x k X

(Eq. 7.1)

onde k = 0, 1, 2, ...., N 1. Calculada assim diretamente, a DFT requer O(N
2
)
operaes.

A idia do algoritmo de Cooley-Tukey dividir a seqncia x[n] em duas
seqncias: uma com os coeficientes de ndice par e outra com os coeficientes
de ndice mpar. Como a quebra em duas seqncias, o algoritmo conhecido
tambm como Radix-2. Algoritmos no qual a seqncia decomposta
sucessivamente em seqncias menores so chamados de algoritmos de
decimao em tempo.

O princpio do algoritmo de decimao em tempo pode ser analisado
considerando que N um inteiro potncia de 2, i.e., N = 2
v
. Como N um inteiro
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 187
par, podemos considerar calcular X(k), separando x[n] em duas seqncias de
N/2 pontos, consistindo dos pontos de ndice par em x[n] e os pontos de ndice
mpar em x[n]. Como X(k) dado pela Eq. 7.1, separando x[n] no pontos de
ndice par e mpar:


+ =
par n mpar n
nk
N
nk
N
W n x W n x k X
_ _
] [ ] [ ) (


Substituindo as variveis n = 2r para n par e n = 2r + 1 para n mpar:



=
+

=
+ + =
1 2 /
0
) 1 2 (
1 2 /
0
2
] 1 2 [ ] 2 [ ) (
N
r
k r
N
N
r
rk
N
W r x W r x k X
(Eq. 7.2)



=

=
+ + =
1 2 /
0
2
1 2 /
0
2
) ]( 1 2 [ ) ]( 2 [ ) (
N
r
rk
N
k
N
N
r
rk
N
W r x W W r x k X
(Eq. 7.3)

Mas W
N
2
= W
N/2
j que:

W
N
2
= e
-2j(2/N)
= e
-2j(/(N/2))
= W
N/2


Consequentemente, a Eq. 7.3 pode ser escrita como:



=

=
+ + =
1 2 /
0
2 /
1 2 /
0
2 /
] 1 2 [ ] 2 [ ) (
N
r
rk
N
k
N
N
r
rk
N
W r x W W r x k X


] [ ] [ ) ( k H W k G k X
k
N
+ =
(Eq. 7.4)

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 188
Cada parcela na Eq. 7.4 reconhecida como uma DFT de N/2 pontos, sendo a
primeira parcela uma DFT de N/2 pontos dos pontos de ndice par da sequncia
original e o segundo termos uma DFT de N/2 pontos dos pontos de ndice mpar
da seqncia original. A Fig. 7.1 apresenta um diagrama de fluxo do clculo de
uma DFT de 8 pontos.


Fig. 7.1. Decimao no tempo de uma DFT de N-pontos (N = 8) computada em
duas DFTs de N/2 pontos.

Na Fig. 7.1 duas DFTs de 4 pontos so calculadas, 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. Na sada, X[0] obtido multiplicando H[0] por W
N
0
e
somando o produto com G[0]. X[1] obtido multiplicando H[1] por W
N
1
e
somando o resultado com G[1]. Para calcular X[4] deveramos multiplicar H[4]
por W
N
4
e somar o resultado com G[4]. Contudo, como G[k] e H[k] so
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 189
peridicas em k com perodo 4 (nesse caso), H[4] = H[0] e G[4] = G[0]. Assim,
H[4] obtido multiplicando h[0] por W
N
4
e somando o resultado com G[0]. Os
outros valores so obtidos de forma similar.

Com a computao re-estruturada de acordo com a Eq. 7.4, podemos analisar a
complexidade desse novo mtodo e comparar com o algoritmo clssico da DFT.
A computao direta da DFT requer N
2
multiplicaes complexas e adies. A
Eq. 4 requer o clculo de duas DFTs de N/2 pontos o que significa 2(N/2)
2

multiplicaes complexas e o mesmo nmero de adies, se usarmos o mtodo
clssico para calcular cada DFT dessas. Ento as duas DFTs de N/2 pontos
devem ser combinadas precisando N multiplicaes complexas, correspondendo
a multiplicar H[k] pelo twiddle e N adies complexas para somar G[k] com o
resultado desse produto. Assim, a computao da Eq. 6.4 para todos os valores
de k requer, no mximo:
N + 2(N/2)
2
= N + N
2
/2

multiplicaes complexas e adies. Para N> 2, esse valor menor que as N
2

operaes necessrias pela DFT clssica.

A Eq. 7.4 corresponde a quebrar a computao da DFT de N-pontos em duas
DFTs de N/2 pontos. Se N/2 par, o que acontece quando N igual a uma
potncia de 2, podemos considerar calcular cada DFT de N/2 pontos usando o
mesmo mtodo. Assim, cada uma ser quebrada em duas DFTs de N/4 pontos.
Com isso, G[k] e H[k] sero dados por:



=

=
+ + =
1 4 /
0
4 / 2 /
1 4 /
0
4 /
] 1 2 [ ] 2 [ ] [
N
l
lk
N
k
N
N
l
lk
N
W l g W W l g k G
(Eq. 7.5)



=

=
+ + =
1 4 /
0
4 / 2 /
1 4 /
0
4 /
] 1 2 [ ] 2 [ ] [
N
l
lk
N
k
N
N
l
lk
N
W l h W W l h k H
(Eq. 7.6)
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 190
Consequentemente, a DFT de N/2 pontos G[k] pode ser obtida combinando as
DFTs de N/4 pontos das sequncias g[2l] e g[2l + 1]. O mesmo acontecendo
com o clculo de H[k]. Assim, se as DFTs de 4 pontos da Fig. 7.1 forem
calculadas de acordo com as Eqs. 7.5 e 7.6, ento o clculo aconteceria como
na Fig. 7.2. Inserindo a computao da Fig. 7.2 no diagrama de fluxo da Fig. 7.1,
obtemos o diagrama completo da Fig. 7.3, onde expressamos os coeficientes
em termos de potncias de W
N
ao invs de W
N/2
, considerando que W
N/2
= W
N
2
.


Fig. 7.2. Grfico de fluxo da decimao em tempo de uma DFT de N/2 pontos
em duas DFTs de N/4 pontos (para N = 8).


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 191

Fig. 7.3. Fluxo completo do clculo da DFT de 8 pontos, sendo dividida em 4 de
N/4 pontos.

Para a DFT de 8 pontos que estamos usando como exemplo, a computao foi
reduzida a DFTs de 2 pontos. A DFT de 2 pontos para, por exemplo, x[0] e x[4]
detalhada na Fig. 7.4.

Fig. 7.4. Detalhe do clculo de uma DFT de 2 pontos.

Para o caso geral, mas ainda considerando N como potncia de 2, podemos
continuar com a decomposio da DFT de N/4 pontos em duas de N/8 pontos e
continuarmos at que s restem DFTs de 2 pontos. Como em uma rvore, esse
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 192
processo requer v estgios, onde v = log
2
N. Anteriormente, calculamos a
quantidade de operaes executadas para uma DFT usando uma nica
decimao em tempo (uma nica quebra) e chegamos a N + 2(N/2)
2
= N + N
2
/2.
Quando temos uma decomposio de uma DFT de N/2 pontos e duas de N/4
pontos, o fator (N/2)
2
substitudo por N/2 + 2(N/4)
2
, assim, a computao total
requer:
N + N + 4(N/4)
2


multiplicaes complexas e adies. Se N = 2
v
, isso pode ser feito no mximo v
= log
2
N vezes. Assim, se fizermos a decomposio o maior nmero de vezes
possvel, temos uma quantidade total de multiplicaes complexas e adies
igual a N.log
2
N.

Todo o processo ainda pode ser mais simplificado se explorarmos a simetria e
periodicidade dos coeficientes W
N
r
. Primeiro, podemos observar que a
passagem de um estgio para o outro na Fig. 7.3 tem uma computao bsica
como mostrada na Fig. 7.5. Ou seja, ela envolve a obteno de um par de
valores de um estgio a partir de um par de valores do estgio anterior, onde os
coeficientes so sempre potncias de W
N
e os expoentes so separados por
N/2. Por causa de sua forma, essa computao chamada de butterfly. Como:

W
N
N/2
= e
-j(2/N)N/2
= e
-j
= -1

o fator W
N
r+N/2
pode ser escrito como:

W
N
r+N/2
= W
N
N/2
.W
N
r
= -W
N
r


Com isso em mente, o clculo da butterfly da Fig. 7.5 pode ser simplificado para
a forma da Fig. 7.6 que requer apenas uma multiplicao complexa ao invs de
duas.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 193

Fig. 7.5. Grfico de fluxo de uma computao butterfly.


Fig. 7.6. Grfico de fluxo de uma computao butterfly simplificada.

Em termos prticos, para desenvolver o clculo apresentado na Fig. 7.3,
poderamos usar dois arrays: um para o array sendo computado e outro para o
array usado na computao. Vamos denotar a seqncia de nmeros
complexos resultante do m-simo estgio como X
m
[l], onde l = 0, 1, ..., N-1, e
m=1, 2, ...., v. Alm disso, vamos definir o conjunto de amostras de entrada
como X
0
[l]. Podemos pensar em X
m-1
[l] como o array de entrada e X
m
[l] como o
array de sada do m-simo estgio. Assim, para o caso de m = 8 como na Fig.
7.3:
X
0
[0] = x[0]
X
0
[1] = x[4]
X
0
[2] = x[2]
X
0
[3] = x[6]
X
0
[4] = x[1]
X
0
[5] = x[5]
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 194
X
0
[6] = x[3]
X
0
[7] = x[7]

Usando essa notao, podemos legendar a entrada e a sada do butterfly da Fig.
7.6, como indicado na Fig. 7.7, de acordo com as seguintes equaes:
(Eqs. 7.7)
que podem ser re-escritas como:

(Eqs. 7.8)


Fig. 7.7. Grfico de fluxo das Eqs. 7.8.

Pelas equaes 7.8 e pela Fig. 7.3, est claro que apenas o passo m-1
necessrio estar armazenado para poder calcular os valores do array no passo
m. Esse tipo de computao chamado de computao in-place.

importante observar tambm, pela Fig. 7.3, que a seqncia de entrada
acessada de uma maneira no-sequencial. De fato, a ordem no qual os dados
de entrada so armazenados e acessados chamada de ordem bit-reverso.
Para entendermos essa terminologia, a DFT de 8 pontos que vimos usando
como exemplo precisa de 3 bits para armazenar os ndices dos dados.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 195
Escrevendo esses ndices na forma binria, obtemos o seguinte conjunto de
equaes:
X
0
[000] = x[000]
X
0
[001] = x[100]
X
0
[010] = x[010]
X
0
[011] = x[110]
X
0
[100] = x[001]
X
0
[101] = x[101]
X
0
[110] = x[011]
X
0
[111] = x[111]

Se (n
2
, n
1
, n
0
) a representao binria do ndice da seqncia x[n], ento o
valor da seqncia x[n
2
, n
1
, n
0
] armazenado no array na posio X
0
[n
0
, n
1
, n
2
],
invertendo os bits do ndice n. Essa ordenao em subseqncias de ndices
pares e mpares apresentada no diagrama em rvore da Fig. 7.8.

Outra forma de melhorar o desempenho do clculo da DFT atravs da
subdiviso da seqncia de sada. Esses algoritmos so chamados de
algoritmos de decimao em freqncia. Todo o processo bem semelhante
decimao em tempo.




Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 196

Fig. 7.8. Diagrama em rvore apresentando a ordenao bit-reverso

Fig. 7.9. Diagrama final de uma DFT de 8 pontos

Fig. 7.10. Diagrama da DFT de 8 pontos usando computao butterfly

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 197
7.3 Outras FFTs
Existem diversas variaes no algoritmo da FFT. O algoritmo de Cooley-Tukey
ou de decimao no tempo re-arranja os elementos de entrada e depois constri
a sada em log
2
N iteraes. Tambm possvel derivar algoritmos de FFT que
primeiro desenvolvam um conjunto de log
2
N iteraes nos dados de entrada e
re-arranje os valores de sada em ordem reversa de bits. Tais algoritmos so
chamados de decimao em freqncia ou algoritmos de FFT de Sande-Tukey.
Para algumas aplicaes, como a convoluo, os dados so convertidos para o
domnio da freqncia e depois de volta ao domnio do tempo. Nesses casos,
possvel evitar todo o reverso dos bits.

Outra classe de FFTs sub-dividem o conjunto de dados inicial de comprimento N
em conjunto menores de tamanho proporcional a potncias de 2, por exemplo, N
= 4, FFTs de base 4, ou N = 8, FFTs de base 8. Essas transformaes so feitas
por sees de cdigos otimizadas que usam caractersticas de simetria desses
valores de N. Por exemplo, para N = 4, os senos e cossenos so todos 1 ou 0,
eliminando muitas multiplicaes, deixando mais adies e subtraes. A
melhoria de desempenho em relao a FFTs mais simples de cerca de 20 a
30%.

Existem tambm algoritmos de FFT que atuam em conjuntos de comprimento N
que no potncia de 2. Eles trabalham usando relaes anlogas ao lema de
Danielson-Lanczos para sub-dividir o problema inicial em problemas
sucessivamente menores, no por potncias de 2, mas por qualquer primo
pequeno que divida N. Quanto maior for o maior fator primo de N, pior o mtodo
funciona. Se N primo, ento nenhuma sub-diviso possvel e o usurio
termina usando uma FFT com complexidade O(N
2
) ao invs de O(N.log
2
N).
Deve-se ficar atento a esse tipo de implementao.

Algoritmos de Winograd so de certa forma anlogos s FFTs de base 4 e 8.
Winograd derivou cdigos altamente otimizados para atuar em DFTs de N
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 198
pequeno, e.g., para N = 2, 3, 4, 5, 7, 8, 11, 13, 16. Os algoritmos tambm usam
um mtodo mais eficiente para combinar os sub-fatores. O mtodo envolve uma
re-ordenao de dados antes e depois do processamento, conseguindo uma
grande reduo no nmero de multiplicaes do algoritmo. Para valores de N
da ordem de potncias de 2, o algoritmo de Winograd pode ser mais rpido que
algoritmos mais simples de FFT. Essa vantagem deve ser analisada com
cuidado j que o mtodo torna bastante mais complicada a indexao dos dados
envolvidos na transformada.

Finalmente, uma classe interessante de transformadas para gerar convolues
mais rpidas so as transformadas baseadas em teoria dos nmeros. Esses
esquemas substituem a aritmtica de ponto-flutuante por uma aritmtica de
inteiros mdulo algum valor primo grande N. De fato, esses mtodos no so
transformadas de Fourier em absoluto, mas suas propriedades so similares e a
velocidade computacional pode ser muito superior.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 199
7.4 Exerccios

1. Dada a equao abaixo para a transformada discreta do cosseno, apresente
como ficaria sua implementao usando o algoritmo rpido de decimao no
tempo.

=
|

\
|

=
N
n
N
k n
n x k w k y
1
2
) 1 )( 1 2 (
cos ) ( ) ( ) (

, k = 1, ...., N
Onde:


=
=
N k
N
k
k
k w
2
2
1
1
) (


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 200
7.5 Bibliografia Complementar

1. Michael Weeks, Digital Signal Processing Using MatLab and Wavelets,
Infinity Science Press, 2007.

2. Alan V. Oppenheim, Ronald Schafer, Discrete Time Signal Processing,
Prentice Hall, 1989
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 201
8. Anlise Wavelet
Em 1807, Joseph Fourier props sua anlise de freqncia em sinais. Atravs
dessa anlise, um sinal no domnio do tempo poderia ser convertido para o
domnio da freqncia e vice-versa. Dessa forma, caractersticas do sinal podem
ser observadas de uma maneira mais apropriadas.

A transformada de Fourier definida como:

= dt e t f F
t j

2
) ( ) (
(Eq. 8.1)
sendo a transformada inversa:

d e F t f
t j 2
) (
2
1
) (
(Eq. 8.2)

A Transformada de Fourier representa no domnio da freqncia uma funo do
domnio do tempo. A representao no domnio do tempo especifica uma
funo, em cada intervalo de tempo, enquanto que a representao no domnio
da freqncia especifica as amplitudes relativas das componentes de freqncia
da funo. Por exemplo, na Fig. 8.1, a transformada de Fourier da funo porta
a chamada funo sample (sen(x)/x).
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 202

Fig. 8.1. Exemplo de transformada de Fourier.

Lembrando que e
jw
= sen(w) + j.cos(w), a transformada de Fourier representa
um sinal como uma srie de senos e cossenos. O problema que a
transformada considera o sinal todo. A transformada no sensvel a mudanas
de freqncia no sinal. Assim, ela apropriada para os chamados sinais
estacionrios: sinais cuja freqncia no muda com o tempo. O problema que
os sinais reais so no-estacionrios. Assim, nesses casos, a transformada de
Fourier torna-se intil. A Fig. 8.2 apresenta a representao de dois sinais: um
estacionrio e outro no.

Uma soluo para esse problema foi sugerida por Gabor em 1946. Ao invs da
transformada de Fourier ser aplicada a todo o sinal, ela atuaria apenas em
partes dele. O sinal passaria a ser visto em janelas e a transformada seria
calculada em cada janela. A esse processo chamou-se de Transformada de
Fourier de Tempo Curto (Short-Time Fourier Transform). O sinal passa a ser
considerado apenas na poro que est sob a janela, sendo todo o restante
desconsiderado nesse momento. Dentro da janela, considera-se que o sinal tem
comportamento estacionrio (Fig. 8.3).
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 203

Fig. 8.2. Exemplo de um sinal estacionrio e um no-estacionrio.

Fig. 8.3. Transformada de Fourier de Tempo Curto

A aplicao de janelas a um sinal uma prtica comum, usada bastante em
processamento digital de voz. O problema associado ao uso dessa tcnica est
quanto ao tamanho da janela. No caso da Transformada de Fourier de Tempo
Curto, a janela tem tamanho invariante durante todo o processamento. Assim,
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 204
uma janela pequena pode trazer pouca informao sobre o sinal e exige muito
processamento. J uma janela grande pode aumentar o erro na considerao de
estacionaridade do sinal.

Nesse sentido, o prximo passo natural na evoluo das transformadas a
aplicao de uma transformada em uma janela de tamanho varivel. Essa a
idia bsica da Transformada Wavelet. As janelas podem atuar em intervalos
maiores quando queremos informaes mais precisas sobre baixas freqncias
ou em intervalos menores quando queremos informaes mais precisas sobre
altas freqncias (Fig. 8.4).

Fig. 8.4. Transformada Wavelet

8.1 A Transformada Wavelet
A funo da transformada Wavelet contnua dada por:
(Eq. 8.3)
Nessa equao, s atua como fator de escala e atua como fator de translao
(deslocamento) da janela; uma funo conhecida como a wavelet me. Essa
funo aplicada sobre a funo em anlise (x(t)), em janelas (cuja posio
definida pelo deslocamento ) e com dimenses diferentes (definidas pelo fator
de escala s). Variaes nessa funo criam as chamadas famlias de wavelets.
A primeira famlia de wavelets a Haar criada na tese de Alfred Haar ainda em
1909 sem o propsito atual das Wavelets.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 205
A Eq. 8.3 pode ser vista como uma forma geral da transformada que pode variar,
dependendo da funo assumida por . Dessa forma, podemos entender a
transformada de Fourier como um caso particular da transformada Wavelet com
a wavelet me sendo a funo exponencial. Existem condies que definem
uma funo como passvel de ser wavelet, como veremos posteriormente.

O nome wavelet a verso em ingls para o termo original ondeletteque
significa pequena onda como referncia ao deslocar da onda por todo o sinal
desde escalas pequenas. O termo tambm referencia o fato da janela ter
comprimento finito.

A wavelet me a funo que analisa o sinal, efetivamente. Todas as janelas
so verses expandidas ou comprimidas e deslocadas dessa funo. O fator de
escala afeta o sinal de forma que:
Se s>1, ento o sinal expandido;
Se s<1, ento o sinal comprimido.
Para anlises de baixas freqncias do sinal, usamos uma alta escala para ter
uma viso global no detalhada do sinal. Para anlise de altas freqncias usa-
se baixa escala para ter uma viso global detalhada do sinal. A Fig. 8.5
apresenta um exemplo de uma wavelet e o resultado da aplicao de um
elemento de escala nela. A Fig. 8.6 apresenta o resultado do deslocamento na
funo.

Fig. 8.5. Influncia da escala na wavelet me.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 206
A Fig. 8.7 representa o comportamento da wavelet me ao longo de toda a
anlise wavelet; medida que a escala vai sendo modificada, como a wavelet
me se comporta.

Fig. 8.6. Influncia do deslocamento na wavelet me.

Fig. 8.7. Comportamento da wavelet me medida que mudanas de escala
vo sendo impostas a ela durante a anlise.

H algumas propriedades que devem ser obedecidas para que uma funo
possa ser chamada de wavelet. Neste contexto, wavelets devem satisfazer
requisitos como:
possurem energia finita;
possurem certo grau de regularidade (suavidade);
serem nulas no infinito;
possurem um certo nmero de momentos nulos;
que sejam funes de classe C
k
(0<k<);
que tenham suporte compacto, no tempo e na freqncia.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 207

A anlise wavelet no contnuo acontece da seguinte forma:
1- Tome uma funo wavelet e compare-a com a regio no incio do sinal
original;
2- Calcule a correlao C entre a funo e a regio do sinal original (Fig. 8.8a);
3- Desloque a wavelet para a direita e repita os passos 1 e 2 at que todo o sinal
tenha sido coberto (Fig. 8.8b);
4 Aplique uma escala na wavelet e repita os passos 1 a 3 (Fig. 8.8c);
5 Repita os passos 1 a 4 para todas as escalas.


a) b)

c)
Fig. 8.8. Anlise de wavelet no contnuo: a) correlao entre a funo e a
wavelet me; b) novo clculo com a funo deslocada; c) re-incio do
processamento com uma nova escala aplicada wavelet me.

Quando o processo concludo, temos os coeficientes resultantes das
comparaes em cada escala da wavelet me. Esse resultado plotado em um
grfico tridimensional que apresenta o tempo versus a escala e o valor dos
coeficientes para cada escala.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 208
Para as wavelets discretas, tradicionalmente discretizam-se os parmetros s
(escala) e (deslocamento), variveis do sinal transformado F(a,b), os
coeficientes wavelet. Para s toma-se valores inteiros (positivos e negativos),
potncias de um parmetro fixo s
0
:
s = s
0
-j
, s
0
> 1 e jZ
A discretizao de b deve depender de j tal que wavelets estreitas (de alta
freqncia) sejam deslocadas por passos pequenos, e wavelets largas (de baixa
freqncia) sejam deslocadas por passos maiores. Assim, uma escolha natural
:
b= k.b
0
.s
0
-j
b
0
> 0, fixo, j,kZ

A wavelet discreta fica ento:
) ( ) (
0 0
2 /
0 ,
kb t s s t
j j
k j
=
(Eq. 8.3)

O fator s
0
no pode ser arbitrrio. Diferentes valores de s
0
levam a wavelets
diferentes, e bases ortonormais de wavelets s so conhecidas para valores
racionais de s
0
. A escolha mais natural s
0
=2. Fazendo-se b
0
=1, a wavelet da
equao 3 fica:
) 2 ( 2 ) (
2 /
,
k t t
j j
k j
=

A wavelet acima conhecida por wavelet didica.

8.2 Anlise em Multiresoluo
A implementao da anlise de wavelets um processo bastante custoso. Em
1988, Mallat props sua implementao com filtros. Observamos que a inteno
inicial da transformada wavelet poder observar um sinal em suas diferentes
freqncias. No entanto, na maioria dos casos prticos, as informaes de baixa
freqncia so as mais importantes. Assim, um sinal pode ser dividido em duas
partes:
Aproximaes: componentes de alta escala e baixa freqncia do sinal
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 209
Detalhes: componentes de pequena escala e alta freqncia do sinal.

Essa diviso nada mais do que a diviso de um sinal em baixas e altas
freqncias. Isso pode ser facilmente conseguido com o uso de filtros passa-
baixa e passa-alta (Fig. 8.9).


Fig. 8.9. Decomposio de um sinal em suas componentes de baixa
(aproximaes) e alta (detalhes) freqncias.

Um problema quanto a essa decomposio o aumento na quantidade de
amostras a serem armazenadas do sinal e processadas posteriormente. Se um
sinal tem, por exemplo, 1.000 amostras, a passagem desse sinal por um filtro
passa-baixa, por exemplo, gera um sinal com cerca de 1.000 amostras tambm,
embora as amostras de alta freqncia sejam suavizadas. Assim, cada
decomposio, aumentaria muito a quantidade de amostras. Para resolver esse
problema, a cada passo da decomposio, o sinal resultante novamente
amostrado em um processo chamado de downsampling. Dessa forma, a sada
dos filtros passa-baixa e passa-alta passam a ter aproximadamente a mesma
quantidade de amostras que o sinal original de entrada (Fig. 8.10).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 210
Todo esse processo pode ser repetido em cascata, tratando, como sugerido,
apenas os componentes de baixa freqncia do sinal (os mais importantes). Isso
pode ser visto na Fig. 8.11. A isso se chama anlise em multiresoluo.


a) b)
Fig. 8.10. a) Processamento sem uso de downsampling e b) com uso
(representado pelo bloco com a seta para baixo).

Fig. 8.11. Decomposio do sinal em baixas e altas freqncias com o mesmo
processo se repetindo para as componentes de baixa freqncia.

Para o processo inverso, usa-se o processo de upsampling para recuperar o
sinal (Fig. 8.12). Com o processo de downsampling, h perda de informao que
no se consegue recuperar com o upsampling.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 211

Fig. 8.12. Uso do upsampling (bloco com seta para cima) para reconstruo do
sinal.
8.3 Sobre os coeficientes das wavelets
Existem diversos tipos de wavelets como a Haar, Daubechies, Coiflets,
Shannon, etc.

Diversas so as aplicaes de wavelets em processamento de sinais ou de
imagens. Dentre elas, podemos citar remoo de rudo, compresso (j que o
downsampling j , naturalmente, um elemento de compresso com perda),
anlise de texturas, filtragem, etc. Por exemplo, por processarem as diferentes
freqncias de um sinal, a anlise wavelet apropriada para imagens que
tenham diferente iluminao ao longo dela.

Para demonstrar uma transformada geral, vamos usar o esquema apresentado
na Fig. 8.13. Nela, um sinal de entrada alimenta dois canais, cada qual com um
par de filtros FIR. Tal estrutura chamada de two-channel filter banks.


Fig. 8.13. Um two channel filter bank.

Anlise Sntese
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 212
A metade esquerda da Fig. 8.13 (filtros h
0
e h
1
) corresponde transformada
direta, chamada de anlise. A metade da direita a transformada inversa,
chamada de sntese. esperado que a sntese gere um sinal de sada que seja
igual ao sinal de entrada.

Os filtros complementares de banco de filtros (h
0
para h
1
e g
0
para g
1
) dividem o
sinal em sub-sinais de baixa e alta freqncia. Isso chamado de subband
coding.

Para a transformada inversa, as sadas dos filtros da parte de anlise (z[n] e
w[n]) passam por outros filtros FIR e, em seguida, so combinadas para gerar a
sada y[n]. A idia que w[n] e z[n] sejam verses transformadas de x[n] e que
y[n] o sinal aps a transformada inversa. Como dito anteriormente, espera-se
que y[n] seja igual a x[n].

Vamos considerar o filter bank da Fig. 8.14 e vamos ver como se comportam
w[n] e z[n].

Fig. 8.14. Exemplo de filter bank.

Na parte da anlise, w[n] e z[n] so definidos por:
w[n] = a.x[n] + b.x[n 1]
z[n] = b.x[n] a.x[n 1]

Precisamos saber tambm que so w[n 1] e z[n 1]:
w[n - 1] = a.x[n - 1] + b.x[n 2]
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 213
z[n - 1] = b.x[n - 1] a.x[n 2]

Assim, y[n] ser:
y[n] = -a.z[n] + b.z[n 1] + b.w[n] + a.w[n 1]

E, em relao ao sinal original:
y[n] = -a.( b.x[n] a.x[n 1]) + b.(b.x[n - 1] a.x[n 2]) + b.( a.x[n] +
b.x[n 1]) + a.(a.x[n - 1] + b.x[n 2])

y[n] = -ab.x[n] + aa.x[n 1] + b.b.x[n - 1] ba.x[n 2] + b.a.x[n] +
b.b.x[n 1] + a.a.x[n - 1] + ab.x[n 2]

y[n] = aa.x[n 1] + bb.x[n 1] + bb.x[n 1] + aa.x[n 1]

y[n] = (2aa + 2bb).x[n 1]

Essas operaes retratam o processamento da wavelet de Haar. Essa a mais
simples das wavelets. Se escolhermos com cuidado os coeficientes, teremos a
transformada de Haar. Por exemplo, se:
2aa + 2bb = 1
ento
y[n] = x[n 1]
ou seja, a sada a entrada com um retardo de 1. Se procurarmos a e b tal que:
aa + bb = 1
podemos ter aa = e bb = . Assim, se a = b = 1/2, teremos os coeficientes
da transformada de Haar. A busca por coeficientes que tornem aa + bb = 1 e
no 2(aa + bb) = 1 est relacionada ao processo de downsampling como
explicado anteriormente.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 214
Algumas vezes, um two channel filter bank chamado de quadrature mirror filter
(QMF). Um QMF um filter banks com condies especiais nos coeficientes dos
filtros para evitar aliasing e conseguir uma reconstruo perfeita. Ou seja, sua
nica diferena para filter banks a escolha dos coeficientes dos filtros.

Seja um dos filtros da anlise h
0
. Os outros filtros (h
1
, g
0
e g
1
) so gerados a
partir de h
0
. Especificamente, h
1
usa os mesmos coeficientes de h
0
, mas
negativa os coeficientes de ndice par. O filtro de reconstruo g
0
igual a h
0
e
g
1
= -h
1
.
O conjugate quadrature filter (CQF) especifica que h
1
deve ser o reverso de h
0

com os valores em ndices de ordem par negativados. Para a reconstruo, g
0
e
g
1
so os reversos de h
0
e h
1
, respectivamente.

As Figs. 8.15 e 8.16 mostram exemplos de QMF e CQF para a transformada de
Haar. Se a = b, ento QMF = CQF.


Fig. 8.15. QMF para a transformada de Haar.


Fig. 8.16. CQF para a transformada de Haar.

O termo quadratura quer dizer que as respostas dos filtros passa-baixa e
passa-alta so simtricas ao redor do ponto de quadratura /2. O termo
h
1
g
1

h
0
g
0

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 215
mirror vem do fato de que a magnitude da resposta em freqncia do filtro HPF
uma imagem espelhada da magnitude da resposta em freqncia do filtro LPF.

Um das famlias de wavelets mais utilizadas a famlia das Daubechies. Criada
por Ingrid Daubechies, a famlia das wavelets Daubechies (ou db) a nica
famlia de wavelets que tem suporte compacto e decaimento suave. O suporte
compacto impede que a wavelet se espalhe por todo o espectro. O decaimento
suave impede que a wavelet introduza artefatos de altas freqncias. Um
exemplo de uma wavelete de daubechies pode ser visto na Fig. 8.17.


Fig. 8.17. Forma de uma onda da famlia das Daubechies.

Vamos analisar o processamento de um sinal usando uma wavelet de 4
coeficientes e um conjugate quadrature filter conforme a Fig. 8.18.


Fig. 8.18. Um conjugate quadrature filter com quatro coeficientes.

Como foi feito anteriormente:

w[n] = a.x[n] + b.x[n 1] + c.x[ n 2] + d.x[n 3]
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 216
z[n] = d.x[n] - c.x[n 1] + b.x[ n 2] - a.x[n 3]

Considerando que:
w[n - k] = a.x[n - k] + b.x[n k - 1] + c.x[ n k - 2] + d.x[n k - 3]
z[n - k] = d.x[n - k] - c.x[n k - 1] + b.x[ n k - 2] - a.x[n k -3]
Se consideramos, nessas operaes, que ac = -bd, ento, chegamos
expresso final:
y[n] = 2(aa + bb + cc + dd).x[n 3]
Novamente, precisamos ter (aa + bb + cc + dd) = 1. Os coeficientes de
Daubechies obedecem a essas duas condies:
i) (aa + bb + cc + dd) = 1
ii) ac = -bd

8.4 Wavelets no MatLab
O MatLab traz uma srie de ferramentas para lidar com wavelets. A mais bsica
a funo swt (e swt2 para sinais bi-dimensionais como imagens) ou dwt. A
funo swt permite diversos parmetros de entrada (veja a documentao do
MatLab para ver todos), sendo os principais: o sinal de entrada, a quantidade de
nveis de decomposio e o tipo de wavelet (com o nmero de coeficientes
previamente calculados at certo ponto). J a funo dwt apresenta apenas a
decomposio do sinal nos componentes de aproximao e detalhes (como
apresentado na Fig. 8.11). A funo wavemenu abre uma janela com diversas
funcionalidades do MatLab relacionadas com wavelets (Fig. 8.19). Todas essas
funes podem ser ativadas por linha de comando no prprio MatLab.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 217

Fig. 8.19. Tela do ambiente de processamento por wavelets do MatLab.

Exemplos:
1. Sinal de voz:
>> [som, Fz] = wavread(a_casa.wav);
>> plot (som);
>> [cA1, cD1] = dwt(som, 'db1');
>> % reconstruo
>> l_s = length(som);
>> A1 = idwt(cA1,[ ],'db1',l_s);
>> D1 = idwt([ ],cD1,'db1',l_s);
>> subplot(2,1,1); plot(A1); title('Aproximacao A1');
>> subplot(2,1,2); plot(D1); title('Detalhes D1');
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 218
Plotagem do sinal de voz:

Plotagem das aproximaes e detalhes:

Recuperao do sinal:
>> A0 = idwt(cA1,cD1,'db1',l_s);
>> err = max(abs(som-A0))
err = 1.1102e-016
>> plot (A0);

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 219
No wavemenu, selecione Wavelet 1-D, carregue o arquivo a_casa.wav e clique
em analyze com uma wavelet haar e 5 nveis de decomposio. O resultado
est apresentado abaixo:


Podemos visualizar a rvore de decomposio e o resultado final da
reconstruo comparando com o arquivo original na prxima imagem:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 220


Para imagens, podemos usar o comando Wavelet 2-D do wavemenu.
Carregando a imagem lena.bmp e processando com uma db1 com 5 nveis de
decomposio, temos a janela apresentada na prxima figura e detalhada nas
seguintes.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 221


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 222

Imagem original Imagem sintetizada

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 223
8.5 Exerccios

1.
a) Verifique se os coeficientes
a = (1-3)/(42), b = (3-3)/(42), c = (3+3)/(42) e d = (1+3)/(42)
podem ser coeficientes de uma wavelet de Daubechies.

b) Use esses coeficientes para filtrar a sequncia:

x[n] = {8, 4, 0, 6, 3, 7, 2, 9}

de acordo com o filter banks da figura desta questo.

c) Agora, acrescente o downsampling antes das sadas z[n] e w[n] e um
upsampling aps o processamento dessas sadas (antes da soma que gera
y[n]). Qual o erro entre a resposta da letra anterior e desta em relao sada?



2. Para os coeficientes de filtros abaixo, use o MatLab para plotar a resposta em
frequncia. Determine se os coeficientes correspondem a filtros passa-baixa,
passa-alta ou passa-faixa:
a) {-0.0884, 0.08840, 0.7071, 0.7071, 0.0884, -0.0884}
b) {-0.1294, 0.2241, 0.8365, 0.4830}
c) {-0.4830, 0.8365, -0.2241, -0.1294}

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 224
3. No conjugate quadrature filter da Figura 8.16, se a = 3 e b = 1, temos uma
transformada de Haar? Justifique.

4. Use o QMF da Figura 8.15 e encontre z, w e y para a = b = , dada a entrada
x[n] = {6, 1, 3, 7, 2, 5, 8, 10}.

5. Apresente as condies e exemplo de coeficientes para outra famlia de
wavelets.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 225
8.6 Bibliografia Complementar

1. Stphane Mallat, A Wavelet Tour of Signal Processing, Academic Press,
2009.

2. Michael Weeks, Digital Signal Processing Using MatLab and Wavelets,
Infinity Science Press, 2007.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 226
9. Processamento Digital de Imagens
Ao longo dos anos, o interesse em tcnicas de processamento digital de
imagens (PDI) vem aumentando. Diversas so as aplicaes que precisam
utilizar algum algoritmo associado ao processamento digital de imagens. Na
prtica, os principais objetivos relacionados com PDI so: i) melhoria na
qualidade da imagem para observao humana ou para um mais
reconhecimento automtico por mquinas; e ii) compresso para transmisso ou
armazenamento de imagens. Cada um desses objetivos leva a um grande leque
de tcnicas e algoritmos.

No primeiro caso, podemos destacar aplicaes relacionadas com imagens via
satlite, onde, em geral, as imagens chegam com distores e rudos que
precisam ser filtrados para uma anlise humana. Da mesma forma, a quantidade
de estudos voltados para a viso computacional vm crescendo mundialmente
e, na maioria dos casos, o primeiro passo para um sistema de viso
computacional a aplicao de algoritmos de processamento de imagens para,
por exemplo, extrair a borda de objetos, permitindo uma melhor anlise da sua
forma.

No segundo caso, em termos de compresso e transmisso, podemos observar
aplicaes voltadas para a Internet que, cada vez mais, precisam usar imagens
para transmitir informaes. Algumas dessas aplicaes exigem imagens de alta
resoluo, como o sensoriamento remoto. Nesses casos, preciso usar
algoritmos que provoquem uma grande reduo na quantidade de dados, sem
perder informao. Esse o caso tambm de imagens mdicas, mas, nesse tipo
de aplicao, a preocupao maior o armazenamento das imagens. Por
exemplo, nos Estados Unidos, mamografia digitais precisam ser armazenadas
por 5 anos aps o exame. Cada exame gera diversas lminas que so imagens
de alta resoluo ocupando GigaBytes de espao de armazenamento. Nesse
caso tambm, essencial que a compresso seja feita sem perdas.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 227
Uma imagem digital pode ser entendida como uma funo f(x,y), onde x e y so
as coordenadas espaciais e a funo f o nvel de cinza (ou de brilho) naquele
ponto. Quando x, y e f esto numa escala finita e discreta, dizemos que temos
uma imagem digital.

A imagem digital pode ser gerada diretamente atravs de um dispositivo digital
ou pode ser digitalizada a partir de uma imagem real. Esse segundo caso o
mais clssico, onde dispositivos, como scanners, por exemplo, faziam a
transposio da imagem do meio real para o digital. Para tanto, alguns
processos so fundamentais como veremos posteriormente.

Em termos de pesquisa e desenvolvimento, processamento digital de imagens
est inserido na grande rea de processamento grfico. Nessa rea,
encontramos ainda elementos de computao grfica e de viso computacional.
[Gomes e Velho, 1995] relacionam essas reas de acordo com a representao
grfica da Fig. 9.1. Essa representao e essa relao esto associadas ao tipo
de dado que entra e que sai de um sistema especfico. Notadamente, essa
representao est relacionada com a percepo humana para os dados
inseridos e retornados pelos sistemas. Para os dispositivos, como
computadores, tudo apenas processamento de dados.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 228

Fig. 9.1. Relao entre processamento de imagens e outras reas correlatas.

Da Fig. 9.1, podemos definir os sistemas de processamento de imagens como
sistemas que recebem uma imagem de entrada e devolvem uma imagem de
sada. A computao grfica refere-se ao uso de dados de entrada para gerao
das imagens de sada. Por exemplo, uma imagem 3D de uma esfera gerada
por um conjunto de dados que definem o centro da esfera, seu raio, quantidade
de faces, etc. Esses dados so renderizados compondo a imagem final. J a
viso computacional corresponde ao oposto da computao grfica: uma
imagem inserida no sistema e dados so extrados dela. Um exemplo pode ser
uma contagem automtica de pessoas a partir de uma fotografia.

As primeiras aplicaes relacionadas a imagens datam do incio do sculo XX
com as primeiras transmisses de imagens para jornais. As imagens eram
transmitidas em 5 tons de cinza em cerca de uma semana. Com a inveno do
sistema Bartlane (dedicado para esse tipo de transmisso), o tempo de envio de
uma imagem passou a ser de apenas poucas horas. Em 1929, as imagens
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 229
comearam a ser geradas em 15 tons de cinza. A partir da, o tratamento de
imagens comeou a ter um maior desenvolvimento junto com o desenvolvimento
de tecnologias digitais, de uma maneira geral. Na dcada de 60, registra-se o
primeiro uso de computador para tratamento de imagens. No caso, procurava-se
corrigir distores nas imagens transmitidas pela sonda Ranger 7.

9.1 Digitalizao
Um sistema de processamento digital de imagens necessita de um dispositivo
de digitalizao (cmera digital, scanner, etc), um meio para processar e
armazenar a imagem (como o computador) e uma forma de visualizao da
imagem. Em geral, a grande dificuldade est relacionada com a digitalizao
que pode gerar imagens com grande quantidade de dados a serem
processados.

Detalhando as principais funes relativas ao processamento digital de imagens,
comecemos com o processo de gerao de uma imagem digital a partir de uma
imagem real: a digitalizao.

Dada uma imagem real, a digitalizao consiste em colher amostras dessa
imagem para represent-la em um meio discreto. O processo de coleta de
amostras o mesmo que a digitalizao de uma funo como pode ser visto na
Fig. 9.2. Nela, vemos uma funo no contnuo. Para ser representada em algum
domnio discreto, preciso adaptar a funo a esse domnio. Ou seja, partes
dela sero perdidas porque no podem ser representadas. Assim, amostras da
funo so coletadas por impulsos separados por intervalos definidos de tempo
de forma que representem da melhor forma possvel a funo original.
Notadamente, em muitos casos reais, essa representao perde elementos que
no podem ser recuperados. Mas espera-se que a perda no seja significativa.
De qualquer forma, a reconstruo do sinal leva a uma forma aproximada do
sinal original. Isso est representado na Fig. 9.3. O sinal original discretizado.
Cada amostra ento codificada e armazenada. A decodificao feita sem
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 230
perda, recuperando o sinal discreto correto. A reconstruo que seria o processo
inverso da discretizao que ocorre de forma aproximada. O nmero de
amostras que deve ser colhido de um sinal para poder recuper-lo definido
pela taxa de Nyquist.


Fig. 9.2. Em azul (linha contnua) o sinal original e em vermelho (linha
pontilhada) as amostras colhidas do sinal para represent-lo em um domnio
discreto.


Fig. 9.3. Discretizao e codificao em oposio decodificao e
reconstruo do sinal contnuo original.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 231
Tanto para sinais quanto para imagens, o processo de digitalizao ocorre da
mesma forma. Em imagens, porm, ainda h outros elementos a serem
cuidados como ser descrito posteriormente. Para gerao do sinal (ou imagem)
discretizado, preciso ter definido todo o modelo conceitual dos objetos em
estudo. Nesse caso, temos o que se chama [Gomes e Velho, 1995] do
Paradigma dos Quatro Universos (Fig. 9.4). Nele, temos o Universo Fsico (que
so os objetos reais, como eles existem na natureza), o Universo Matemtico
(que uma descrio abstrata desses objetos), o Universo de Representao
(com descries simblicas dos objetos) e, por fim, o Universo de
Implementao (onde so associadas s descries abstratas e simblicas com
estruturas de dados implementveis no computador). No caso, a imagem digital
representada no computador atravs de uma matriz.

A matriz imagem tem suas dimenses definidas durante o processo de
digitalizao. A coleta de amostras define qual ser a dimenso da matriz. Essa
medida define a resoluo da imagem e especificada em dpi (dots per inch ou
pontos por polegada). A resoluo da imagem no pode ser alterada aps o
processo de digitalizao a no ser por uma nova digitalizao. Definida as
dimenses da matriz, define-se cada elemento dessa matriz. Em uma imagem
digital, o seu menor elemento, ou seja, a clula da matriz, chamado de pixel.
Seu valor definido tambm durante a digitalizao em um processo
semelhante ao de amostragem chamado de quantizao. Em uma analogia com
sinais, como fizemos na Fig. 9.2, a quantizao responsvel por discretizar o
sinal em sua amplitude. Isso pode ser visto na Fig. 9.4. Nas imagens, a
amplitude de cada clula da matriz corresponde sua cor. Assim, atravs da
quantizao definimos quantas cores a imagem ter. A essa definio de cores
chama-se de resoluo de cor da imagem. Diferente da resoluo da imagem, a
resoluo de cor, em alguns casos, pode ser alterada aps a digitalizao.

Dessa forma, uma imagem digital est completamente definida: suas dimenses
e a cor de cada pixel. Como est claro, ento, uma imagem nada mais do que
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 232
uma matriz onde cada clula tem uma cor especfica. O conjunto e a disposio
dessas cores percebida pelo sistema visual humano e interpretado pelo nosso
crebro como uma imagem.


Fig. 9.4. Como antes (Fig. 9.3), em azul (linha contnua) temos o sinal original,
em vermelho (linha pontilhada vertical) as amostras colhidas do sinal durante a
amostragem e em pontilhado na horizontal temos a discretizao das amplitudes
durante a quantizao.

Dada a importncia das cores na formao e percepo da imagem,
descreveremos a seguir o sistema computacional de cores desde sua definio.

9.2 Sistema Computacional de Cores
A cor tida como um fenmeno psicofsico. Ou seja, por um lado, ela deriva de
um fenmeno fsico relacionado com a luz. No entanto, nossa percepo da cor
depende de sua interao com nosso sistema visual. Percebemos uma parede
como branca se uma luz branca incidir sobre ela. Se a nica fonte de luz no
ambiente for uma luz vermelha, perceberemos a parede como um tom de
vermelho e no conseguiremos distingui-lo de outra cor.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 233
No incio do estudo sobre cores, o fenmeno que mais chamava a ateno era a
decomposio da luz branca em todas as cores do espectro ao passar por um
prisma. Acreditava-se que o prisma tinha essa propriedade mgica de
decompor a luz. Foi Sir Isaac Newton, fsico, matemtico e astrnomo ingls, no
sculo XVII, que derrubou essa idia com um experimento simples: Newton
colocou um prisma na frente de outro e a decomposio da luz branca
provocada pelo primeiro prisma incidia sobre o segundo prisma retornando luz
branca novamente (Fig. 9.5). Newton acreditava que o olho humano era
composto por infinitas clulas fotossensveis, cada uma responsvel pela
percepo de uma cor.


Fig. 9.5. Experimento de Newton sobre a decomposio da luz branca.

No sculo XIX, Young props o modelo tricromtico: nele, o sistema visual
humano era composto apenas de trs clulas que seriam responsveis pela
percepo de altas, mdias e baixas freqncias. A idia do modelo tricromtico
foi comprovada por Helmholtz na dcada de 60, mas o modelo de Young no
explicava alguns fenmenos do sistema visual. No entanto, com seu trabalho,
Young mostrou que com apenas essas trs cores primrias (de alta, mdia e
baixa freqncias) todas as cores do espectro poderiam ser geradas atravs de
um processo aditivo.

Atualmente, teoria da percepo das cores usa o modelo de Young-Helmholtz e
o modelo de Hering. De fato, nosso sistema visual no sensvel s freqncias
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 234
de forma separada, mas, sim, composio delas. Seja L a componente de
baixa freqncia, M a mdia freqncia e H a alta freqncia, temos clulas
fotossensveis s combinaes:
L - M
H (L + M)
L + M
As altas freqncias (baixo comprimento de onda) correspondem ao tom de azul
(B), as mdias aos tons de verde (G) e as altas freqncias ao vermelho (R).
Assim, percebemos as combinaes:
i) R G
ii) B (R + G)
iii) R + G
A combinao (iii) corresponde ao amarelo ou luminosidade da cor. As
combinaes (i) e (ii) formam a componente de crominncia.

Em 1931, a Companhia Internacional de Iluminao definiu o modelo RGB
baseado na teoria de Young, onde a soma de diferentes intensidades de cada
uma dessas cores primrias corresponderia a uma cor do sistema. Esse o
modelo adotado pelos sistemas computacionais, por televisores, projetores,
monitores, etc.

Alm do sistema RGB, outros sistemas surgiram ao longo dos tempos para
aplicaes especficas como o HSV, HSL, CMYK, CieLab, Pantone, etc. A
mudana de um sistema para outro pode trazer diversas vantagens dependendo
da aplicao.

No sistema computacional de cores, cada cor representada pela trplice (R, G,
B), onde cada componente de cor tem seu valor inteiro variando de 0 a 255, ou
seja, 1 byte. Assim, 3 bytes so necessrios para representar uma cor. Com
isso, a quantidade mxima de cores que uma imagem pode ter em um
computador comum cerca de 16 milhes.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 235
No sistema padro do Windows, adotado pela maioria dos sistemas
computacionais, as imagens podem ser armazenadas em 4 diferentes formatos,
baseado na quantidade de bits necessria 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 milhes 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 tambm
em uma paleta pr-definida, contendo apenas o nvel de brilho de cada cor,
tambm chamado de tom de cinza. Essa paleta contm 256 entradas (cores),
precisando, assim, de 8 bits para cada pixel da imagem codificar a entrada da
paleta. O nvel 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 contribuio do componente B pequena em relao aos outros
componentes.

Existem diferentes formas de representar as cores de um sistema. A mais
comum atravs de um slido como o cubo de cor, ou o cilindro ou o cone.
Essas so trs representaes comuns para o sistema RGB.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 236
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). Variaes nesses valores geram as outras cores do sistema
computacional de cores.

9.3 Histograma
Em uma imagem, o histograma um grfico que mostra a distribuio das cores
na imagem. No eixo x, encontramos todos os valores possveis 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 no diz como as cores esto distribudas na
imagem; apenas quantas vezes cada componente aparece.

No entanto, existem outras informaes agregadas ao histograma de uma
imagem que permitem alterar algumas de suas caractersticas. 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
prximo ao 0 indica uma imagem escura, assim como um histograma
concentrado prximo ao 255 indica uma imagem clara. Um histograma com uma
pequena variao de cores (Fig. 9.6) indica uma imagem com baixo contraste (o
contraste est associado separao das cores na imagem).


Fig. 9.6. Histograma de uma imagem de baixo contraste.

Por no conter informao sobre a distribuio das cores em uma imagem,
diferentes imagens podem ter o mesmo histograma (Fig. 9.7)

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 237

Fig. 9.7. Imagens completamente opostas, mas que tm o mesmo histograma.

As imagens podem ser manipuladas atravs de mudanas em seus
histogramas. As operaes mais bsicas so de equalizao, stretch e
especificao. Na equalizao, 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 no estiver presente na imagem
original, ele dever estar na imagem final aps a aplicao dessa operao. J a
especificao faz com que uma imagem passe a ter o histograma como definido
em outra imagem.

Por outro lado, mudanas na imagem trazem conseqncias em seu
histograma. Por exemplo, se cada pixel da imagem somado com um valor
positivo X, as cores dessa imagem tornar-se-o mais prximas 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
expanso do histograma, aumentando seu contraste. J o produto por um valor
entre 0 e 1 provocar a compresso do histograma, diminuindo seu contraste.
Nesse caso, valores negativos, claro, no fazem sentido j que as cores so
positivas entre 0 e 255.

Assim, atravs do histograma podemos obter algumas informaes 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 caractersticas so vistas a seguir.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 238
9.4 Filtragem de Imagens Digitais
A forma mais comum de manipular uma imagem (mudar suas caractersticas)
atravs 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 Estatsticos ou Determinsticos: onde os estatsticos so os que usam
alguma propriedade estatstica da imagem. Exs: filtro da moda, da mediana.
2) Filtros lineares ou no-lineares: os filtros lineares no geram novas
freqncias na imagem, enquanto os lineares geram. Exs: Lineares: passa-
baixa, passa-alta, passa-faixa; No-Lineares: filtros polinomiais com base de
polinmios de ordem maior que 2.
3) Filtros Topolgicos ou de Amplitude: filtros topolgicos so os que afetam a
estrutura da imagem (como os filtros de warping) e os filtros de amplitude atuam
apenas no espao de cores da imagem.

Uma das formas de executar o processo de filtragem de uma imagem atravs
da convoluo. A convoluo uma operao comum em processamento de
sinais, resultante do seguinte clculo:


= d t h f t h t f ) ( ). ( ) ( * ) (
(Eq. 9.2)

A Eq. 9.2 representa a convoluo de uma funo f(t) por uma funo g(t). Em
termos grficos, a convoluo pode ser representada como na Fig. 9.8 (onde as
funes esto representadas como retngulos apenas para facilitar o
entendimento). Uma das funes, h, rebatida e desloca-se pelo espao das
funes. No momento que ela comea a ter alguma interseo com a funo f a
rea dessa interseo calculada (resultado da integrao). Enquanto as
funes tiverem rea comum ao longo do deslocamento de h, o resultado
avaliado. A integrao feita de - a +, mas, claro, a rea s diferente de
zero enquanto h rea em comum.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 239
Para imagens, a convoluo aplicada de forma discreta. Ou seja, no caso das
imagens, as funes que convoluem so matrizes. Da mesma forma, a
integrao substituda por somatrio. Na sua execuo, como na verso
contnua, uma matriz fixa e a outra desloca-se sobre ela. A rea (resultado da
integrao) a regio em comum entre as funes. Podemos ver esse processo
com as matrizes apresentadas na Fig. 9.10.


Fig. 9.8. Representao grfica da convoluo da funo f pela funo h.


Fig. 9.10. Convoluo discreta aplicada a matrizes.

Uma caracterstica da convoluo discreta no desejvel na filtragem de
imagens. Por exemplo, considere na Fig. 9.9 que f a imagem e h o filtro. A
imagem de entrada tem dimenses 2x3, enquanto o resultado da operao
uma matriz 3x4. Na prtica, o processo de filtragem no pode acrescentar linhas
ou colunas imagem. Assim, para aplicao em imagens digitais, a convoluo
digital ocorre de maneira um pouco diferente.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 240
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
somatrio do produto de cada valor da mscara pelo valor da imagem sob a
mscara.

Fig. 9.10. Processo de convoluo aplicado em imagens.

Por exemplo, suponha que a matriz de um filtro tem os valores:
9 8 7
6 5 4
3 2 1
w w w
w w w
w w w


Quando o ponto w5 casar no pixel p1, suponha que os valores abaixo da matriz
do filtro tenham valores:
9 8 7
6 5 4
3 2 1
z z z
z z z
z z z


O resultado da filtragem ser: w
1
.z
1
+ w
2
.z
2
+ .... + w
10.
z
10.
Assim, a matriz do
filtro (chamada de mscara) atua como uma matriz de pesos. Para evitar perda
das caractersticas do filtro, a mscara deve ser sempre multiplicada por 1/
i
w.

Se o centro da mscara estiver numa posio (x,y) na imagem, o tom do pixel
posicionado em (x,y) ser substitudo por R. A mscara ento movida para a
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 241
prxima posio de pixel na imagem e o processo se repete. prtica criar uma
nova imagem para armazenar os valores de R em vez de mudar os valores de
pixel no lugar. Isso evita o uso de pixels que tenham sido alterados na operao
anterior.

preciso observar que essa operao exige algumas alteraes na matriz
imagem para fins de processamento. Suponha um filtro formado por uma matriz
3x3. No momento que o ponto central dessa matriz processa o primeiro pixel da
imagem (pixel do canto superior esquerdo), parte da mscara no estar sobre
nenhum elemento da imagem. No entanto, essa parte como todo o resto da
imagem precisa ser processado. Para garantir que o processamento ocorra,
comum provocar uma extenso da imagem. Ou seja, a matriz imagem
estendida, ganhando novos elementos em sua borda externa de forma que a
operao de convoluo possa ser executada. importante ressaltar que esses
novos elementos so inseridos apenas para fins de processamento. Eles no
faro parte da imagem original e nem da imagem de sada. Para um filtro 3x3
precisa-se estender a imagem de uma linha para cima, uma linha para baixo e
uma coluna para cada lado. A Fig. 9.11 retrata essa situao, estando em cinza
a imagem original e em branco a rea estendida da imagem. Nessa figura, o
filtro est sendo aplicado exatamente no primeiro pixel da imagem. Essa
extenso necessria para o processamento de toda a borda interna da
imagem. A quantidade de elementos a ser estendidos depende da dimenso do
filtro. Os elementos inseridos na extenso dependem do tipo de extenso. A
extenso mais simples a fixa que preenche toda a borda externa com um valor
fixo. Se esse valor zero, a extenso chamada de nula. O prefervel que a
extenso seja preenchida com os valores da borda interna da imagem para
diminuir os efeitos de borda (pixels com cores no relacionadas com as cores
presentes no restante da imagem).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 242

Fig. 9.11. A imagem original (em cinza) estendida (parte em branco) para
poder ser processada pelo filtro (em destaque no canto superior esquerdo).

Dentre os filtros baseados em mscaras, os filtros lineares so os que tm as
maiores aplicaes prticas. Como definido, os filtros lineares no acrescentam
novas freqncias imagem. Vamos descrever esses filtros, exemplific-los e
discutir a funo deles em imagens. So eles: filtro passa-baixa, passa-alta e
passa-faixa.

1) Filtro Passa-Baixa
Teoricamente, esse filtro gerado por uma funo que tem valor 1 entre w e w
e zero fora desse intervalo (Fig. 9.12a). O filtro Box um exemplo de um filtro
passa baixa (Fig 9.12b). Como um filtro passa-baixa, sua funo deixar passar
as baixas freqncias (freqncias entre w e w) e eliminar as altas freqncias.
Na prtica, esse filtro tem um comportamento como o da Fig. 9.12c, onde ele, na
verdade, no elimina completamente as altas freqncias, mas as atenua.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 243



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 aplicao de um filtro passa-baixa em uma imagem seu
embaamento. Em imagens, as freqncias esto associadas a regies de
mudanas bruscas entre tons (como, por exemplo, uma passagem de branco
para preto). A atenuao dessas mudanas interpretada por nosso sistema
visual como um embaamento na imagem. A Fig. 9.13 ilustra essa idia. A Fig.
9.13a mostra uma regio de alta freqncia da imagem e a Fig. 9.13b apresenta
o resultado de uma filtragem passa-baixa.


a) b)
Fig. 9.13. Ilustrao 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
funo que tem valor zero entre w e w e 1 fora desse intervalo (Fig. 9.14a). O
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 244
filtro Laplaciano um exemplo de um filtro passa-alta (Fig 9.14b). Como um filtro
passa-alta, sua funo deixar passar as altas freqncias e eliminar as baixas
freqncias. Na prtica, esse filtro tem um comportamento como o da Fig. 9.14c,
onde ele, na verdade, no elimina completamente as baixas freqncias, 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 aplicao de um filtro passa-alta em uma imagem o destaque
de seus contornos. A atenuao das baixas freqncias e intensificao das
altas provoca um realce nas regies de fronteiras da imagem (regies que h
mudanas bruscas entre tons claros e escuros). Uma ilustrao do efeito da
aplicao desse filtro em uma imagem pode ser visto na Fig. 9.15.


a) b)
Fig. 9.15. Ilustrao do efeito de um filtro passa-alta: a) imagem original e b)
imagem resultante.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 245
3) Filtro Passa-Faixa
Esse filtro permite a passagem de freqncias dentro de um intervalo e cortam
as freqncias 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 funo deixar
passar freqncias especficas da imagem. Na prtica, 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 aplicao 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.

Alm da extenso da imagem, na implementao de uma filtragem digital deve-
se considerar questes relacionadas a cores no-realizveis. O processo de
filtragem pode, por exemplo, gerar uma cor negativa ou maior que 255. Esse
fenmeno chamado de cor no-realizvel. 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 Mello Pgina 246
possvel tambm aplicar uma filtragem no domnio da frequncia. Considere a
funo 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 cdigo 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 Compresso de Imagens
Como uma imagem apenas uma matriz de dados, qualquer algoritmo de
compresso de dados pode ser usado para gerar compresso no arquivo
imagem. No entanto, podemos usar caractersticas da prpria imagem para
alcanar mais altas taxas de compresso.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 247
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, regies 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 no funciona bem, podendo at expandir o
espao de armazenamento necessrio para a imagem. No entanto, esse
algoritmo de compresso encontra-se implementado em uma variao do
formato BMP, o BMP_RLE (Run-Length Encoding).

Outro algoritmo que sofreu uma variao e foi implementado para imagens o
Lempel-Ziv. O LZ77 foi criado por Abraham Lempel e Jacob Ziv em 1977, sendo
um algoritmo de compresso dinmico. Ou seja, ele gera a codificao medida
que l o arquivo de entrada. Isso diferente de outros algoritmos clssicos de
compresso de dados como o cdigo de Huffman que, em sua verso clssica,
primeiro l todo o arquivo, gerando a codificao. Somente depois, outra
varredura feita para gerar a compactao.

Em 1984, Terry Welch props uma modificao no LZ77 (a qual foi chamada de
LZW) que o tornou mais eficiente. Essa modificao , por exemplo,
implementada no formato GIF (Graphic Interchange Format) para
armazenamento de imagens de at 256 cores. O LZW inicializado com um
dicionrio bsico de codificao e esse dicionrio vai ganhando novos cdigos
medida que o arquivo vai sendo lido. Na transmisso ou armazenamento,
apenas o dicionrio bsico enviado com o arquivo. Durante a
descompactao, o mesmo dicionrio formado automaticamente.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 248
Uma forma mais nova para gerar compresso atravs do uso de wavelets. A
decomposio wavelet gera um downsampling em cada nvel que, por definio,
j diminui a quantidade de dados. Assim, bastante natural que ela seja usada
como mecanismo para gerar compresso.

9.6 Processamento de Imagens no MatLab
O MatLab possui uma toolbox especfica para o tratamento de imagens digitais.
Essa toolbox possui diversos comandos para as diversas tcnicas de
processamento de imagens. Pelas prprias caractersticas do MatLab, ele se
torna bastante apropriado para trabalhar com imagens. Por exemplo, a estrutura
bsica 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 no podem ser usados com operadores de nmeros do tipo
double como adio, subtrao, multiplicao e diviso. Para tanto, preciso
primeiro converter a matriz imagem para o tipo double.

O seguinte cdigo apresenta diversas funes do MatLab para imagens na
prtica:
>> im = imread (lena.jpg); % Leitura da imagem em tons de cinza
>> [lin, col] = size(im); % l o nmero de linhas e colunas de uma imagem
% e armazena nas variveis lin e col (variveis quaisquer)
>> imshow (im); % visualizao de imagens
>> im2 = double(im); % converso da imagem para tipo numrico
>> 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 cdigo acima apresenta apenas um exemplo de trabalho com imagens. No
caso, uma imagem em tons de cinza carregada e armazenada na varivel im.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 249
No h necessidade de indicar o tipo da imagem j que isso lido direto do
cabealho da mesma. O MatLab aceita imagens do tipo bmp, jpg, tif, pcx e
alguns outros. A principal funo desse cdigo a leitura do arquivo da imagem
com o comando imread. possvel esse comando ter dois argumentos de sada
quando queremos armazenar em uma varivel a paleta de cores de uma
imagem (no caso de imagens com at 256 cores). Isso pode ser feito da forma:
[im, map] = imread(lena.bmp);

Para imagens armazenadas no formato true color (24 bits) no h paleta de
cores. As matrizes R, G, B so armazenadas assim na imagem. Isso tratado
no MatLab como uma matriz 3 dimensional. Cada dimens contm uma matriz
mxn que corresponde matriz de um dos tons (exatamente na ordem RGB).
Para separar cada componente, o seguinte cdigo pode ser utilizado:
>> im = imread(flowers.bmp); % imagem 24 bits
>> r = im(:, :, 1); % atribui todas as linhas e todas as colunas do primeiro plano
% de im varivel r
>> g = im(:, :, 2); % matriz do segundo plano
>> b = im(:, :, 3); % matriz do terceiro plano
Nesse caso, observe que a leitura das dimenses da imagem deve ser feita
como:
>> [lin, col, plano] = size(im);
Ou seja, um terceiro parmetro de sada deve ser usado. Podemos criar uma
nova imagem 24 bits fazendo:
>> im2 = uint8(zeros(lin, col, 3)); % criada uma imagem s de zeros
Cada plano dessa nova imagem pode receber os planos da outra imagem, por
exemplo:
>> im2(:, :, 1) = r;
>> im2(:, :, 2) = g;
>> im2(:, :, 3) = b;

Recorte de cores pode ser feito com os comandos:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 250
rgb2grey: converso de 24 bits para tons de cinza
im2bw: converso para preto-e-branco (dado um ponto de corte)
rgb2ind: converso de 24 bits para 256 cores

As dimenses de uma imagem podem ser alteradas com o comando imresize:
B = imresize(A, M, method)
% Retorna uma matriz que M vezes maior (ou menor) que a imagem A
% onde method =
% nearest = vizinho mais prximo
% bilinear = interpolao bilinear
% bicubic = interpolao bicbica
% Exemplo: >> B = imresize (A, 0.5, nearest);

O comando imrotate rotaciona uma imagem:
B = imrotate(A, ngulo, method);
onde method = nearest, bilinear ou bicubic.
Exemplo:
>> A = imread (eight, tif);
>> B = imrotate (A, 45, nearest);

imhist calcula o histograma de uma imagem: >> h = imhist(im). Quanto a
histograma, as funes histeq e imadjust provocam a equalizao e a
especificao do histograma de uma imagem, respectivamente.

A filtragem de uma imagem pode ser conseguida com a funo filter2. Observa-
se que a funo devolve uma matriz de valores reais. Assim, eles precisam ser
arredondados e convertidos para uint8 para poderem ser visualizados e
armazenados como uma imagem:
>> im = imread(lena.bmp);
>> h = fspecial (average, 5); % cria um filtro da mdia (box)
>> im2 = uint8(round(filter2(h, im)));
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 251
>> imshow (im2);

No cdigo acima, usamos a funo fspecial para criar o filtro da mdia. O
parmetro 5 indica a ordem do filtro (dimenses da matriz quadrada). A funo
permite ainda a criao de filtros: gaussian, sobel, prewitt, laplacian, log,
average e unsharp. Cada um com sua particularidade quanto ordem.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 252
9.7 Exerccios

1. Diferencie os processos de amostragem e quantizao.

2. Sobre filtros digitais:

a. Como os filtros se classificam de maneira geral?

b. Como se classificam os filtros lineares? Explique o resultado da aplicao
de cada um desses tipos a uma imagem.

3. O que representa o histograma de uma imagem e cite, pelo menos, duas
caractersticas diferentes que podemos inferir de uma imagem olhando
apenas para seu histograma (ou seja, sem precisar visualizar a imagem).
4. Considere a imagem abaixo:

1 2 3
1 0 2
2 2 0

Qual a imagem resultante aps a aplicao de um filtro Box 3x3?

5. No MatLab, aplique um mesmo filtro passa-baixa de ordens diferentes nas
imagens cameraman.bmp e lena.bmp. Compare os resultados encontrados e
analise as diferenas medida que as ordens se diferenciam mais e mais.
Explique os motivos das diferenas encontradas nos resultados.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 253
9.8 Bibliografia Complementar

1. Rafael Gonzalez, Richard Woods, Digital Image Processing, Ed. Prentice-
Hall, 2007.

2. Jonas Gomes, Luiz Velho, Computao Grfica: Imagem, Sociedade
Brasileira de Matemtica, 1996.

3. Hlio Pedrini, Anlise de Imagens Digitais, Ed. Thomson, 2007.


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 254
10. Tcnicas de Codificao de udio e Vdeo
Com a melhoria dos dispositivos digitalizadores, tem sido constante o aumento
na quantidade de dados a serem armazenados. Isso mais sensvel quando
falamos de dados relacionados com udio ou imagens. Para imagens, o
problema agrava-se com vdeos que nada mais so do que seqncias de
imagens. Para reduzir o espao necessrio para armazenar tais arquivos (seja
para fins de preservao ou transmisso dos mesmos), algoritmos de
compresso de dados so usados. A compresso de dados uma forma de
codificao que visa a reduzir o tamanho dos dados com ou sem perda de
informao. Caso haja perda, essa perda pode ser relevante ou no. Assim,
antes de comearmos a falar de codificao de udio e vdeo, precisamos
entender os conceitos associados teoria dos cdigos.

10.1 Teoria dos Cdigos
Codificao consiste no mapeamento de um alfabeto (alfabeto fonte) em outro
(alfabeto cdigo). Cada smbolo ou palavra da fonte deve ser mapeada de forma
nica ou no em um cdigo. O cdigo pode ser formado por uma seqncia de
smbolos do alfabeto fonte. Por exemplo, seja o alfabeto fonte S = {A, B, C, D}
que se deseja codificar usando bits (ou seja, o alfabeto cdigo apenas {0, 1}).
Uma codificao possvel seria:
A = 00
B = 01
C = 10
D = 11

Os cdigos podem ser classificados da seguinte maneira:

Cdigos de comprimento varivel ou de bloco
Os cdigos de comprimento varivel so aqueles que tm atribudos cdigos de
comprimento diferente a uma mesma palavra. Por exemplo, se A codificado
como 0 ou como 01, temos um cdigo de comprimento varivel. Pode haver
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 255
diferentes comprimentos entre diferentes palavras de um cdigo. Por exemplo,
se:
A = 0
B = 01
temos um cdigo de bloco.

Os cdigos de bloco, por sua vez, podem ser divididos em singulares ou no-
singulares. Nos cdigos no-singulares todas as palavras cdigo so distintas.
Por exemplo:
A = 10
B = 11
Se h repetio, nas palavras cdigo, temos um cdigo singular. Por exemplo:
A = 10
B = 10
C = 01
Os cdigos no-singulares so divididos em unicamente decodificveis ou no
unicamente decodificveis. Os cdigos unicamente decodificveis no geram
ambigidades na decodificao; o mapeamento de volta ao alfabeto fonte feito
de forma nica. J os no-unicamente decodificveis geram ambigidades. Por
exemplo:
A = 10
B = 11
C = 01
um cdigo unicamente decodificvel, enquanto:
A = 0
B = 1
C = 01
no . Se o receptor recebe a seqncia 01, ela pode ser decodificada em AB
ou C.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 256
Por ltimo, os cdigos unicamente decodificveis podem ser divididos em
instantneos ou no-instantneos. Os cdigos so ditos instantneos se sua
decodificao no precisa de informao futura. Por exemplo, o cdigo:
A = 10
B = 100
C = 1000
no instantneo. Para decodificar uma seqncia de bits, precisamos ler o
prximo bit para saber se ele zero ou um, denotando o encerramento ou no
da seqncia. J o cdigo:
A = 01
B = 001
C = 0001
instantneo; ao encontrarmos um bit 1 sabemos que o cdigo acabou.

Essa classificao pode ser vista em resumo na figura abaixo:


Uma condio necessria e suficiente para um cdigo ser unicamente
decodificvel que nenhuma palavra completa do cdigo seja prefixo de outra
palavra qualquer.


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 257
Por exemplo, se:
A = 10
B = 01
C = ?
C no pode receber nenhum cdigo que comece com 10 ou 01 para garantir que
o cdigo seja unicamente decodificvel.

A desigualdade de Kraft garante que um cdigo instantneo. Se, para um
cdigo de base r, com q palavras, cada palavra com comprimento Li, a
desigualdade

satisfeita, ento o cdigo dito instantneo. Por exemplo, considere o cdigo:
A = 0 comprimento Li=1
B = 01 comprimento Li=2
C = 11 comprimento Li=2
Nmero binrio base r=2
Ou seja,
2
-1
+ 2
-2
+ 2
-2
= 1
Isso garante que o cdigo instantneo.

McMillan mostrou que, se um cdigo satisfaz a mesma desigualdade, ele
tambm unicamente decodificvel.

Para um cdigo, o comprimento mdio calculado como:

onde Li o comprimento de cada uma das q palavras do cdigo e Pi a
probabilidade de cada palavra. Um cdigo dito compacto para uma fonte S,
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 258
se seu comprimento mdio menor ou igual ao comprimento mdio de todos os
outros cdigos unicamente decodificveis para a mesma fonte S. J a taxa de
compresso, C, para arquivos em geral, medida como:
Compactado Arquivo do o Compriment
Original Arquivo do o Compriment
C
_ _ _
_ _ _
=


10.2 Algoritmos de Compresso
Os algoritmos de compresso dividem-se em:
- Algoritmos com perda ou sem perda
- Algoritmos estticos ou dinmicos
O termo perda relaciona-se com perda de informao. Algum smbolo que
havia no arquivo original e foi perdido no arquivo compactado. Dependendo da
fonte e do nvel de perda, essa perda pode no ser sensvel ao ser humano. Por
exemplo, em termos de imagens, no percebemos a diferena entre tons muito
prximos, principalmente, se colocados em posies adjacentes em uma
imagem. Assim, se o ponto (i, j) em uma imagem tem tom de cinza 130 e o
ponto (i, j + 1) tem tom 131, ns no conseguimos ver essa diferena. Assim, os
dois pontos podem passar a ter o valor 130 sem que nosso sistema visual
perceba. No entanto, isso pode provocar um aumento na taxa de compresso de
um arquivo de imagem. Algoritmos baseados em wavelets e em quantizao
vetorial so algoritmos de compresso com perda. J algoritmos sem perda,
temos o cdigo de Huffman, o Run-length e o Lempel-Ziv-Welch.

Algoritmos estticos so algoritmos que geram toda a tabela de codificao
antes de, efetivamente, codificar o arquivo. Em geral, tais algoritmos so ditos
de dois passos: primeiro, eles lem todo o arquivo a fim de gerar a tabela de
codificao e, em seguida, eles precisam ler o arquivo de novo para codificar o
arquivo. Algoritmos dinmicos geram a codificao e codificam medida que
eles lem o arquivo de entrada. Assim, todo o processo feito em um passo
apenas.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 259
Vamos ver o exemplo de funcionamento de alguns algoritmos, comeando com
algoritmos de compresso sem perdas.
10.2.1 Cdigo de Huffman
Definido por David Huffman em 1952, uma variao do algoritmo de Shannon-
Fano. O cdigo de Huffman divide o conjunto de entrada em dois subconjuntos,
atribuindo 0 a um deles e 1 ao outro. Prossegue com a codificao da mesma
forma. O algoritmo completo pode ser resumido da seguinte forma:
Organizam-se os smbolos em ordem decrescente de suas
probabilidades;
Uma fonte reduzida formada a partir dos 2 smbolos de menor
probabilidade;
Continua o passo anterior at que s restem 2 smbolos;
Atribui-se 0 a um dos smbolos e 1 ao outro, aleatoriamente;
Continua atribuindo 0s e 1s at chegar aos smbolos iniciais.

Por exemplo, considere um arquivo com apenas 5 smbolos (a, b, c, d, e)
dispostos na mensagem M da seguinte forma:

M = a a a b b b c e c d

Primeiro, deve-se calcular a probabilidade de cada smbolo. Assim, temos a com
probabilidade de 0,3; b com probabilidade de 0,3; c com 0,2; d com 0,1; e e com
0,1. Esses smbolos so listados em ordem decrescente de probabilidade. Os
smbolos de menor probabilidade vo sendo agrupados, gerando smbolos cuja
probabilidade dada pela soma das probabilidades dos smbolos que os gerou
e criando, assim, as chamadas fontes reduzidas. O processo continua at que
s reste uma quantidade de smbolos igual base a que se deseja gerar a
codificao (por exemplo, para uma codificao binria base 2 o processo
continua at que s restem dois smbolos). A figura abaixo representa o
processo:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 260


A partir dos smbolos da ltima fonte reduzida, atribui-se 0 para um smbolo e 1
para o outro, aleatoriamente. Esse processo vai se repetindo pelas outras fontes
reduzidas at chegar aos smbolos da fonte. A partir da penltima fonte, as
atribuies de 0s e 1s so feitas direita dos smbolos, garantindo que
nenhuma palavra do cdigo ser prefixo de outra (tornando o cdigo unicamente
decodificvel):

No caso desse exemplo, a seguinte codificao gerada:
a 10 (2 bits)
b 11 (2 bits)
c 00 (2 bits)
d 010 (3 bits)
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 261
e 011 (3 bits)
Assim, se no arquivo original, cada smbolo ocupava 8 bits, tnhamos uma
mensagem com 80 bits. Agora, apenas 16 bits so necessrios para codificar a
mensagem (sem contar o espao necessrio para armazenar a tabela de
codificao). O comprimento mdio desse cdigo 1,6.

Nesse exemplo, podemos observar algumas caractersticas do cdigo de
Huffman:
1) O cdigo gerado unicamente decodificvel e instantneo.
2) A codificao atribuiu para os smbolos de maior probabilidade os menores
cdigos (claro, observando, as condies para garantir o item 1 acima).

O cdigo de Huffman um algoritmo de compresso sem perda e esttico. Sua
codificao dita bottom-up j que podemos comparar a estrutura montada
como uma rvore invertida (a raiz embaixo) cuja codificao iria da raiz s
folhas. Existem algumas variaes do cdigo de Huffman como a verso para
multi-smbolos, o cdigo de Huffman adaptativo, o truncado e a verso
modificada.

O problema do cdigo de Huffman que, dependendo da quantidade de
smbolos no cdigo fonte, sua codificao pode atingir rapidamente grandes
quantidades de bits. Uma tabela de codificao deve ser anexada ao arquivo,
permitindo sua decodificao.

Uma variao no cdigo de Huffman a Codificao Aritmtica. Ela funciona
basicamente da mesma forma que o cdigo de Huffman, mas gera a codificao
baseando-se em intervalos ao invs de probabilidades. Cada smbolo da fonte
ser representado por um intervalo, onde, medida que o intervalo se torna
menor, o nmero de bits necessrio para especific-lo aumenta.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 262
A codificao aritmtica utilizada em parte da compactao do formato JPEG
para imagens.
10.2.2 Run-length
O algoritmo de run-length um dos mais simples. Ele apropriado para alguns
tipos de arquivos em condies especficas. Por exemplo, imagens em preto-e-
branco com grandes quantidades de um dos tons, como uma imagem de um
documento onde a maior parte o branco do papel. O run-length armazena,
como o nome diz, comprimentos de carreiras. Sua codificao da forma:

<contador, smbolo>

onde o contador diz quantas vezes o smbolo se repete em seqncia. Por
exemplo, para a seqncia:

120 120 120 30 45 45 45 60

o resultado da codificao seria:
<3, 120> <1, 30> <3, 45> <1, 60>

Como dito antes, se o arquivo tem grandes repeties de um mesmo valor, essa
codificao pode se mostrar bastante eficiente. O run-length implementado em
uma verso do formato BMP para armazenamento de imagens (o BMP_RLE).
10.2.3 Algoritmo de Lempel-Ziv-Welch
Criado por Abraham Lempel e Jacob Ziv, o LZ-77 um algoritmo de compresso
dinmico e sem perda. Em 1984, Terry Welch modificou o algoritmo, criando
uma verso mais eficiente que a utilizada hoje em dia, o LZW.

No LZW, a codificao comea com um dicionrio base o qual contm a
codificao dos smbolos da fonte. Esse dicionrio vai ganhando novos smbolos
medida que o arquivo original vai sendo lido e codificado.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 263
Por exemplo, considere o dicionrio base abaixo (sem nos preocuparmos com o
cdigo que foi atribudo a cada smbolo da fonte):
X #1
Y #2
Z #3
W #4

e a seguinte mensagem M:
M = XYXZXYXW

Ao ler o primeiro smbolo da mensagem (X), o algoritmo verifica se esse smbolo
est no dicionrio. Se estiver, atribui a codificao (#1). Em seguida, o prximo
smbolo (Y) lido e codificado de acordo com o dicionrio (#2). Agora, o
algoritmo verifica se XY (o smbolo anterior completo concatenado com o atual)
faz parte do dicionrio. Se no faz parte, ele acrescentado com uma nova
codificao (por exemplo, #5). O dicionrio agora passa a ter essa entrada. O
processo prossegue, acrescentando novas entradas que passam a poderem ser
usadas na codificao. No entanto, apenas o dicionrio base armazenado
junto com a mensagem codificada. Ao decodificar, o dicionrio base utilizado e
estendido da mesma forma que foi feito na codificao.

10.3 Algoritmos de codificao multimdia
Os algoritmos de compresso com perdas mais conhecidos utilizados em
multimdia so:

MPEG-1 MPEG a sigla de Moving Pictures Experts Group, que um grupo
de pesquisadores que desenvolvem padres para compresso de udio e vdeo.
O MPEG-1 o padro original do MPEG e capaz de codificar udio e vdeo a
uma taxa de 1,5 Mbps.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 264
O MPEG define trs nveis ou camadas de compresso para udio. Em cada
camada o nvel de compresso mais complexo e exige mais poder
computacional. A terceira camada (layer 3) se tornou bastante popular para a
compresso de udio e atualmente o que conhecemos como MP3, ou melhor,
MPEG Layer 3.

MPEG-2 um padro de compactao de maior qualidade utilizado em
radiodifuso por satlite, por exemplo. Pode ser utilizado em transmisses a
taxas de 4 a 9 Mbps. Uma verso modificada do MPEG-2 usada pelo padro
HDTV e tambm nos DVDs.

MPEG-4 e derivados - O padro MPEG 4 e seus derivados (DiVX, XViD, etc.)
um dos mais usados atualmente. Devido melhoria dos recursos
computacionais, principalmente, eles podem oferecer qualidade semelhante
MPEG-2 sem ocupar tanto espao.

Vamos detalhar mais sobre compresso de udio e vdeo a seguir:
10.3.1 Codificao de Vdeo
A fim de avaliar sistemas de compresso de vdeo, os seguintes parmetros
devem ser considerados quanto ao desempenho da compresso:

Quantidade ou grau da compresso
Qualidade da Imagem
Velocidade da compresso e descompresso

preciso analisar tambm a implementao em hardware ou software.

O grau da compresso , geralmente, avaliado como uma razo entre os dados
de sada e os de entrada. Essa medida, no entanto, pode trazer problemas para
imagens (estticas ou dinmicas) quando temos uma matriz m versus n com
ainda uma quantidade de bits por pixel para representar a cor. Uma maneira
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 265
mais eficiente de especificar o total de compresso determinar o nmero de
bits por pixel apresentado (displayed) necessrio no bitstream
2
comprimido. Por
exemplo, se estamos reproduzindo uma imagem 256x240 pixels de um
bitstream de 15.000-byte, estamos comprimindo:
(bits)/(pixels) = (15.000x8 bits)/(256x240 pixels) = 2 bits por pixel

A taxa de compresso apenas, no entanto, no medida suficiente para avaliar
um sistema. Outro fator igualmente importante a qualidade da imagem gerada.
Nesse sentido, podemos dividir os algoritmos de compresso, de uma maneira
geral, em com perda ou sem perda. Nos algoritmos de compresso sem perda,
no h necessidade de avaliar a qualidade da imagem j que ela exatamente
igual imagem original. Nesse caso, porm, deve ser feita a transmisso de
todos os pixels da imagem. Algoritmos de compresso sem perda, normalmente,
geram uma quantidade maior de dados a serem transmitidos.

Algoritmos de compresso com perda provocam alguma mudana na imagem.
O objetivo, porm, fazer com que essa mudana no seja perceptvel pelo
usurio. Algoritmos de compresso com perda podem inserir diversos artefatos
na imagem e no fcil quantificar o desempenho desses algoritmos.
Normalmente, essa avaliao feita com algum critrio subjetivo. Tais
algoritmos ainda trazem um outro problema a ser tratado: a velocidade de
compactao e descompactao. Para vdeo, esse um problema fundamental,
pois so milhares de imagens (quadros ou frames) que so
compactados/descompactados. Se, para imagens, uma
compactao/descompactao de 1 segundo considerada rpida, para vdeos
essa uma taxa inaceitvel. Uma taxa mais rpida est associada ao algoritmo
utilizado e a como esse algoritmo implementado (hardware ou software). Na
maioria dos casos, hardware especfico necessrio para conseguir
implementar os algoritmos com a mxima eficincia.


2
Sada do compactador.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 266
Os algoritmos de compresso buscam reduzir a quantidade de elementos
redundantes no arquivo. Em imagens de vdeo digital essa redundncia pode ser
encontrada de diferentes formas:

Algumas reas do frame possuem a mesma cor que se espalha por mais de
um pixel (redundncia espacial);

Quando a cena ou parte dela contm predominantemente objetos orientados
verticalmente existe grande probabilidade que duas linhas adjacentes sejam
as mesmas (redundncia espacial);

Imagens onde alguns pixels se repetem por diversos frames (redundncia
temporal).

Algoritmos de compresso podem explorar essas caractersticas de redundncia
a fim de conseguirem uma melhor taxa de compresso.

Outros elementos podem ser considerados pelo algoritmo de compresso. Por
exemplo, quanto resoluo de cor, o sistema visual humano tem certas
limitaes quanto percepo de cores. No conseguimos diferenciar cores que
esto muito prximas no espectro. Necessitamos de uma diferena de at 10
tons (em termos de sistema computacional de cores) para perceber duas cores
adjacentes diferentes. Assim, podemos converter duas cores adjacentes que
tenham uma distncia menor do que 10 entre elas para que se tornem uma
mesma cor. Com isso, inserimos elementos redundantes que melhoram os
resultados de algoritmos de compresso (observamos que essa mudana
provoca perdas na imagem mesmo elas no sendo perceptveis, so
mudanas na imagem original).

As principais tcnicas de compresso de vdeo so baseadas em:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 267
Color Look-Up Table: o pixel na matriz da imagem corresponde na
verdade a um ndice para uma tabela que aloca as cores reais.

Codificao Run-length: j explicada anteriormente.

Tcnicas de interpolao: compresso atravs de interpolao atua a
nvel de pixel e consiste de transmitir um subconjunto de pixels, usando
tcnicas de interpolao para reconstruir os pixels intermedirios.
Interpolao sugerida para ser usada em sistemas baseados no modelo
YIQ (como o NTSC) ou YUV (como o Pal).

Tcnicas preditivas: tcnicas de compresso preditivas so baseadas no
fato que podemos armazenar um elemento anterior (como um frame, por
exemplo) e usar essa informao para predizer qual o prximo elemento.

o DPCM: a forma mais simples de compresso preditiva chamada
de PCM diferencial (ou DPCM, onde PCM = pulse code
modulation). Em DPCM, pixels adjacentes so comparados e
apenas a diferena entre eles transmitida. H uma grande
probabilidade de alta compresso por esse mtodo porque pixels
adjacentes, em geral, tm cores muito prximas. Assim, espera-se
uma diferena pequena que pode ser transmitida em uma
quantidade menor de bits. Um problema de DPCM ocorre quando
a diferena entre os pixels ultrapassa o limite de representao da
quantidade de bits adotada pelo sistema. Por exemplo, suponha
um sistema que use apenas 4 bits para armazenar/transmitir a
diferena entre tons. Se h uma regio de mudana de preto para
branco, essa mudana no poder acontecer entre pixels
adjacentes, pois no haveria como represent-la. Seria necessrio
um certo nmero de pixels intermedirios para conseguir a
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 268
representao. Esse efeito chamado de slope overload. Esse
efeito pode provocar um embaamento na imagem.

o ADPCM: O slope overload pode ser reduzido tornando o DPCM
adaptativo (ADPCM). Uma forma simples de implement-lo
tornando adaptativa a quantidade de bits necessria para
armazenar a diferena entre os pixels. O uso de ADPCM pode
provocar rudos nas regies de alta freqncia.

Tcnicas de codificao por transformadas: uma transformada uma
tcnica que converte um conjunto de dados de um domnio para outro
mais apropriado para a aplicao. As transformadas, em geral, so
reversveis. Uma das transformadas mais utilizadas para compresso de
imagem e vdeo a Transformada Discreta do Cosseno (DCT).
o DCT: A DCT executada em blocos adjacentes de pixels (em
geral, 8x8). Assim, 64 pixels por vez so processados pela DCT. A
DCT calculada como:

onde

Sendo a inversa calculada como:

A DCT est relacionada com a DFT; a DFT, de fato, um passo no
clculo da DCT para uma seqncia. A DCT, no entanto, tem
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 269
propriedades de compactao de energia, com apenas uns poucos
coeficientes da transformada representando a maior parte da
energia da seqncia. Essas propriedades fazem a DCT bem
apropriada para compresso de dados. Por causa dessa
compresso, possvel reconstruir um sinal a partir de apenas
alguns coeficientes da DCT.

Apesar de serem relativamente fceis de implementar em qualquer
linguagem de computador, a compresso de imagens demanda um
grande poder de processamento e por isso precisa ser otimizada
ao mximo. O uso da DCT em imagens grandes, apesar de
apresentar timos resultados, exige um processamento muito
grande. Por isso na prtica a estratgia que se adota de dividir a
imagem em blocos de tamanho menor (em geral de tamanho 8x8
pixels, como no JPEG), levando a nossa primeira otimizao:

Otimizao 1: a imagem a ser tratada deve ser dividida em
blocos menores facilitando a computao das
transformadas. Outra justificativa para esta abordagem
que apesar de terem bastante correlao com os vizinhos
prximos, existe pouca ou nenhuma correlao entre pontos
distantes de uma mesma imagem. Os ganhos de
processamento com esta abordagem suplantam em muito
as perdas em termos de compresso.

O clculo das funes de cosseno, por ser uma funo
transcendental, tambm exige bastante poder de processamento.
Se verificarmos a frmula da transformada discreta de cosseno
veremos que podemos pr-calcular todos os valores de cosseno a
serem utilizados, e depois disto apenas realizar operaes
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 270
aritmticas de soma e multiplicao. Isso nos leva a segunda
regra:
Otimizao 2: os cossenos utilizados devem ser pr-
calculados e armazenados, realizando-se assim apenas
operaes aritmticas ao se calcular a frmula da
transformada.

Ao aplicar a transformada discreta de cosseno, os coeficientes
mais significativos se acumulam no incio do vetor (ou matriz) dos
dados, ficando o restante com valores muito pequenos e
carregando pouca informao. Este tipo de distribuio j
suficiente para que uma tcnica de reduo de redundncia (como
os algoritmos LZ77, LZ78 ou LZW) ou uma codificao otimizada
(como codificao de Huffman ou codificao aritmtica) produzam
melhores resultados do que na imagem ou nos dados originais.
Entretanto, por trabalharmos sempre com uma preciso finita nas
representaes numricas utilizadas, acabamos por ter uma perda
nos dados. Portanto, mesmo sem aplicar nenhuma forma de
quantizao, a compresso usando transformada discreta de
cosseno uma compresso com perdas.

Entretanto, a forma mais comum e que gera melhores resultados,
a aplicao de uma operao de quantizao nos dados gerados
pela transformada, e armazenar apenas os dados quantizados.
Essa quantizao permite uma maior eficincia das tcnicas de
codificao e eliminao de redundncia utilizadas. Algumas
formas de quantizao normalmente utilizadas com a transformada
discreta de cosseno so:
Eliminao dos componentes menos significativos
(determina-se um patamar de valor ou mesmo de posio
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 271
na matriz de resultados da transformada, e elimina-se ou
substitui-se esses valores por 0).
Diviso inteira dos valores por um coeficiente de
quantizao fixo (assim pode-se usar menos dgitos, ou bits,
para se representar os valores).
Diviso inteira por uma matriz de coeficientes de
quantizao (Esta tcnica a empregada pela maioria dos
padres de compresso de dados, pois mais flexvel e
permite que se ajuste a matriz a qualidade desejada da
imagem).

Codificao estatstica: como o cdigo de Huffman ou a codificao
aritmtica.

Dentre os formatos mais utilizados para compresso de udio e vdeo, temos:
MPEG (Moving Picture Expert Groups)
DiVX

Vamos detalhar cada um desses.

MPEG
Na dcada de 80, ficou claro a necessidade de aliar imagem com tecnologia
digital. Nesse sentido, em 1988 ISO esquematizou o MPEG (Moving Picture
Experts Groups), para desenvolver padres para o vdeo digital. Foram definidos
trs itens a serem desenvolvidos:

1. Vdeo e udio associados a uma taxa de 1.5 Mbps (mais tarde chamado de
MPEG-1);
2. Imagens em movimento e udio associados a uma taxa de 10 Mbps (mais
tarde chamado de MPEG-2);
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 272
3. Imagens em movimento e udio associados a uma taxa de 60 Mbps (mais
tarde reduzido para 40 Mbps e ento cancelado).

MPEG 1 era orientado como imagem digital armazenada em Mdia de
armazenagem digital (DSM - Digital Storage Media). MPEG-2 foi orientado como
broadcast. MPEG-3 para televiso de alta-definio (HDTV). Enquanto os
padres se desenvolviam ficou claro que as tcnicas empregadas nos padres
poderiam ser usados em qualquer bit-rate (quantidade de bits necessrios para
codificar um segundo de informao, seja esta vdeo, udio ou ambos). Assim,
os ttulos dos que incluam a taxa de transmisso foram alterados para MPEG-1
e MPEG-2 e ficou claro que MPEG-2 poderia satisfazer as necessidades do
HDTV, assim, o MPEG-3 foi descartado.

O vdeo, udio, ou qualquer outra informao para um servio codificado em
MPEG deve ser multiplexado num nico fluxo de bits. Essa a principal tarefa
do MPEG-2 Systems. Quando o multiplexador est recebendo um fluxo de bits
de vdeo e udio comprimidos, como eles devem ser multiplexados para que o
decodificador possa obt-los sincronizados? Uma outra tarefa do sistema
fornecer meios para essa sincronizao.

Apesar de que um fluxo MPEG representa um fluxo constante de bits, os bits
precisam ser organizados em grupos (pacotes) para que erros de bit no se
propaguem alm das fronteiras de um nico pacote. Geralmente, quanto maior o
pacote, mais suscetvel ele aos erros de bit. Por outro lado, agrupando os bits
em pacotes cria um maior trfego para acomodar os cabealhos dos pacotes.
Geralmente quanto menores os pacotes, maior o trfego. Assim, existe um
trade-off entre escolher o tamanho do pacote e sua resilincia e eficincia. Pode-
se considerar, portanto, que formar pacotes uma terceira funo para os
MPEG Systems.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 273
Na maioria dos casos, decodificadores necessitam de Informaes Especficas
do Programa (PSI - Program Specific Information) para decodificar o os dados
que chegam. Fornecer estas PSIs a quarta tarefa do MPEG Systems. Um
MPEG Systems deve:

1) Multiplexar fluxos de bits individuais num nico fluxo de bits.
2) Prover maneiras para sincronizar os fluxos de bits que compem um servio
de udio e/ou vdeo.
3) Empacota os bits em grupos.
4) Prov informaes especficas chamadas PSI.

Nos MPEG-2 Systems, um programa definido como o conjunto de Fluxos
Elementares significativos, como udio e vdeo, que tm a mesma base de
tempo.

Um arquivo MPEG um arquivo digital contendo vdeo e udio digitais
codificados seguindo determinados padres de compresso e armazenados em
um dado formato especfico. O comit ISO especifica separadamente o
tratamento de udio e de vdeo, permitindo streams sem udio, por exemplo.

Um filme uma seqncia de blocos. Cada bloco do filme contm sees
individuais para o vdeo e para o udio. A sincronizao entre o vdeo e o udio
feita atravs de marcadores de tempo que so fixados durante a codificao
nos identificadores de blocos.

O padro MPEG especifica 3 tipos de quadros comprimidos no arquivo de sada.
Nos quadros I (Intraframe) somente se aplicam algoritmos de reduo de
redundncia espacial. Nos quadros P (Predicted) e B (Bidirectionally Predicted)
tambm se aplicam algoritmos de reduo de redundncia temporal. No caso
dos quadros B a predio de movimento bidirecional, ou seja, feita com
quadros no passado e no futuro em relao ao quadro sendo codificado.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 274
Os quadros apresentam diferentes taxas de compresso, sendo que os quadros
B apresentam a maior taxa, seguidos dos P e dos I (Tabela 10.1). Isto se deve
ao fato de que nos quadros I eliminamos apenas a redundncia espacial.
Quanto maior a compresso, maiores as perdas de qualidade sofridas nos
quadros, por isso h a necessidade de intercalar quadros I de tempos em
tempos para permitir a restaurao da qualidade do sinal e tambm acesso
aleatrio aos quadros do filme (Fig. 10.1). Uma anlise bilateral (observando
frames passados e futuros) importante para permitir que frames futuros sejam
usados em uma predio mais correta.

Tabela 10.1. Taxa de compresso de cada tipo de quadro no MPEG.
Quadro Taxa de Compresso
I 10-20:1
P 20-30:1
B 30-50:1


Fig. 10.1. Disposio dos quadros no formato MPEG.

O padro publicado pela ISO especifica o formato final do arquivo comprimido,
deixando margem para que diferentes abordagens possam ser utilizadas, com
diferentes compromissos entre compresso e complexidade computacional.
Alm disso, tambm fazem parte do padro:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 275
Uso da Transformada Discreta do Cosseno (DCT), seguida de
Quantizao e Run Length Encoding (RLE) para reduo da redundncia
espacial de cada quadro do filme;
Uso de Motion Estimation e Motion Compensation (MEC) preditiva e
interpolativa para reduo de redundncia temporal entre quadros e
Uso de Codificao de Huffman ao final do processo, gerando a
compresso efetiva.

A DCT faz uma transformao na imagem, mudando o domnio de
representao da mesma. Este processo no introduz perdas de qualidade na
imagem, sua utilizao se d porque ela permite uma representao mais
compacta da imagem, facilitando a compresso.

O uso da DCT faz com que as maiores frequncias se concentrem no canto
superior esquerdo da matriz (Fig. 10.2-direita, quadro em vermelho). Por
exemplo, considere que na Fig. 10.2-esquerda temos o resultado da converso
de uma imagem do formato RGB para o formato YCbCr (mais indicado para
vdeo). Aps a aplicao da DCT nesse bloco da imagem, temos como resultado
a matriz apresentada na Fig. 10.2-direita.

Fig. 10.2. Aplicao da DCT: (esquerda) regio 8x8 da imagem em YCbCr e
(direita) o resultado da aplicao da DCT nessa regio.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 276
Aps a aplicao da DCT, uma quantizao feita tomando uma matriz de
quantizao fixa (Fig. 10.3-esquerda). Cada valor da matriz gerada pela DCT
dividido pelo valor correspondente na mscara de quantizao e arredondado
para um inteiro. O resultado para a matriz DCT da Fig. 10.2-direita
apresentado na Fig. 10.3-esquerda.


Fig. 10.3. (esquerda) Matriz de quantizao e (direita) resultado da quantizao
da matriz DCT da Fig. 10.2-direita.

Observamos nessa matriz quantizada uma grande presena de valores zero.
Assim, podemos agrup-los, usando, por exemplo, uma codificao run-length.
Para t-los agrupados de forma mais adjacente, uma leitura em zig-zag (Fig.
10.4) feita nessa matriz.

Fig. 10.4. Leitura em zig-zag da matriz DCT para aplicao da codificao Run-
Length.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 277
Existem diferentes formas de se detectar movimento de objetos numa seqncia
de imagens. O padro MPEG adota algoritmos de MEC baseados em
casamento de blocos. Este algoritmo consiste na procura de um bloco de
tamanho fixo (16x16 pixels no padro MPEG) de um quadro em uma janela de
busca em um quadro seguinte (ou anterior). Esta janela pode ser de tamanho
varivel, mas o tamanho usual de 30x30 pixels. A Fig. 10.5 mostra um
exemplo de tal tcnica.

Fig. 10.5. Aplicao de Motion Estimation.

O padro MPEG usa uma variao da DCT chamada MDCT (Modified DCT):

= + + + =

=
1
0
1
2
,..., 1 , 0 )), 1 2 ](
2
1 2 [
2
cos(
n
k
k i
n
i i
n
k
n
x S


E a sua inversa, conhecida como IMDCT dada por:
1 ,..., 1 , 0 , )) 1 2 ](
2
1 2 [
2
cos(
1 2 /
0
= + + + =

=
n k i
n
k
n
S x
n
i
i k



DivX
O DivX um codec de vdeo criado pela DivX, Inc. Ele foi produzido para ser
usado em compactao de vdeo digital, deixando os vdeos com qualidade,
apesar da alta compactao, utilizada para ocupar menos espao no Disco
rgido. Para alcanar tal compactao necessrio muito processamento, o que
pode fazer com que um computador tecnologicamente defasado demore para
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 278
realizar a operao ou tenha dificuldades para realizar a exibio. O DivX
compatvel com Windows, Linux, Solaris e Mac OS X.

Atualmente, os arquivos DivX esto amplamente presentes nas redes dos
programas de P2P, devido ao seu reduzido tamanho e tima qualidade.

O mtodo de compactao DIVX funciona como um MP3 para vdeo. Mas, ao
contrrio do MP3, que apaga sons sobrepostos que nosso crebro no
conseguiria reconhecer, o DIVX torna repetitivas as imagens que no se
modificam no decorrer dos frames (quadros) que formam o vdeo. Simplificando:
tomando-se uma cena onde a cmera esttica e fundo no se modifica, o
codec DIVX grava um nico frame dessa imagem e repete-o at a imagem
sofrer alguma alterao. Na mesma cena, caso haja uma pessoa andando,
somente os pixels em que sua imagem se sobrepe so modificados. O resto da
cena pode ser considerado, grosseiramente, como uma foto esttica ao fundo do
vdeo. Desta forma, so guardados muito menos dados pelo vdeo compactado,
resultando um arquivo de tamanho reduzido com uma perda de qualidade
pequena.

Assim como que em outros programas e plug-ins encontrados na Internet, para
se converter um arquivo de vdeo em formato no compactado para um em DivX
preciso comprar o DivX Codec que o software responsvel por esta tarefa,
porm, se seu objetivo apenas o de assistir os vdeos j compactados em
DivX, possvel se fazer o download gratuito do tocador (player) no site oficial
da DivX, Inc ou em quaisquer sites de downloads.
10.3.2 Codificao de udio
Um dos primeiros sistemas desenvolvidos para compresso de udio usa
mtodos parecidos com o algoritmo de run-length. A idia da compresso usada
em arquivos VOC a reduo dos chamados blocos de silncio. A vantagem
a reduo do tamanho a at um quarto do tamanho original. No entanto, como
desvantagens tm a degradao no som, no possvel uma converso para
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 279
outro formato e s aplicado a arquivos amostrados com baixas taxas. Blocos
de silncio so marcadores que contm um valor de durao do tempo que
representa a extenso do silncio ou quase silncio.



Silncio definido como a amplitude da forma de onda que no ultrapassa a
janela de silncio. Uma extenso de silncio menor que a janela considerada
muito curta para merecer a converso para bloco de silncio. Os Blocos de
silncio no existem na maioria dos formatos de arquivos de udio. Outro
problema que pode haver uma confuso do silncio com o incio de um som
(como um fricativo inaudvel - /f/, /s/, /sh/) (Fig. 10.6).


Fig. 10.6. Som fricativo inaudvel que pode ser confundido com um silncio por
ter baixas amplitudes em parte dele.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 280
MP3
MP3 uma abreviao de MPEG 1 Layer-3 (camada 3). Trata-se de um padro
de arquivos digitais de udio estabelecido pelo Moving Picture Experts Group
(MPEG), grupo de trabalho de especialistas de Tecnologias da Informao
vinculado ao ISO e CEI. As camadas referem-se ao esquema de compresso
de udio do MPEG-1. Foram projetadas em nmero de 3, cada uma com
finalidades e capacidades diferentes. Enquanto a camada 1, que d menor
compresso, se destina a utilizao em ambientes de udio profissional
(estdios, emissoras de TV, etc) onde o nvel de perda de qualidade deve ser
mnimo devido necessidade de pr-processamento, a 3 se destina ao udio
que ser usado pelo cliente final. Como se espera que esse udio no sofrer
novos ciclos de processamento, a compresso pode ser menos conservadora e
aproveitar melhor as caractersticas psicoacsticas do som limitando-se apenas
pela qualidade desejada para o ouvido humano.

A compresso tpica da camada 1 de 2:1 enquanto a da 3 de 10:1.
importante lembrar que essa diferena da compresso no tem nada a ver com
uma camada ser mais avanado que o outro tecnologicamente, mas sim com o
objetivo da aplicao do udio ser processado.

Um erro comum confundir o MP3 com MPEG-3. MPEG-3 um formato morto,
pois o formato MPEG-4 o suplantou com muitas vantagens. Enquanto o MPEG-3
deveria ter sido um formato para compresso tanto de udio como de vdeo o
MP3 responde apenas pela compresso de udio do MPEG-1.

As taxas de compresso alcanadas pelo MP3 chegam a at 12 vezes,
dependendo da qualidade desejada. Para fazer isso o MP3 utiliza-se, alm das
tcnicas habituais de compresso, de estudos de psico-acstica, sendo que
estes permitem aproveitar-se das limitaes e imperfeies da audio humana.

A utilizao dos limites da audio humana baseia-se em trs princpios bsicos:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 281
Faixa de freqncia audvel dos seres humanos;
Faixa de freqncia audvel humana: O ouvido humano, devido s suas
limitaes fsicas, capaz de detectar sons em uma faixa de freqncia
que varia de 20 Hz a 20 KHz, sendo que estes valores podem variar de
indivduo para indivduo e tambm com a idade (com o envelhecimento
perdemos a capacidade de ouvir freqncias mais altas). Assim, no faz
sentido armazenar dados referentes a sons fora desta faixa de
freqncia, pois ao serem reproduzidos, os mesmos no sero
percebidos por um ser humano. Esta a primeira limitao da audio
humana do qual o sistema MP3 faz uso para alcanar altas taxas de
compresso. De acordo com o Teorema de Nyquist, para garantir a
reproduo de um sinal, temos de amostr-lo pelo menos a duas vezes
sua freqncia mxima. Ou seja, neste caso, como a freqncia mxima
de interesse 20 KHz, basta amostrar a 40 KHz. Utiliza-se 44.100 Hz
como taxa de amostragem, pois leva-se em considerao 10% de
tolerncia e busca-se um valor produto dos quatro primeiros nmeros
primos (Obs: (2x3x5x7)^2 = 44100). Dessa forma, esta taxa de
amostragem funciona como um filtro passa-baixa, que remove todos os
componentes de freqncia fora da faixa de interesse, neste caso, acima
de 20 Khz.

Limiar de audio na faixa de freqncia audvel;
Limiar de audio na faixa de freqncia audvel: Outro fator utilizado pela
codificao MP3 a curva de percepo da audio humana dentro da
faixa de freqncias audveis, ou Limiar de Audio. Apesar da faixa de
audio humana variar entre 20Hz e 20KHz, a sensibilidade para sons
dentro desta faixa no uniforme. Ou seja, a percepo da intensidade
de um som varia com a freqncia em que este se encontra. Assim, o
MP3 utiliza-se desta propriedade para obter compresso em arquivos de
udios. Esta abordagem bastante intuitiva, sendo que o que se faz
descartar amostras que se encontrem abaixo deste limiar.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 282
Mascaramento em freqncia e mascaramento temporal.
Mascaramento em freqncia e mascaramento temporal: Por fim, uma
ltima propriedade da audio humana ainda utilizada pelo mtodo o
chamado mascaramento auditivo, ou audiabilidade diminuda de um som
devido presena de outro, podendo este ser em freqncia ou no
tempo. O mascaramento em freqncia ocorre quando um som que
normalmente poderia ser ouvido mascarado por outro, de maior
intensidade, que se encontra em uma freqncia prxima. Ou seja, o
limiar de audio modificado (aumentado) na regio prxima
freqncia do som que causa a ocorrncia do mascaramento, sendo que
isto se deve limitao da percepo de freqncias do ouvido humano.
O mascaramento em freqncia depende da freqncia em que o sinal se
encontra, podendo variar de 100 Hz a 4 KHz. Em funo deste
comportamento, o que o mtodo de compresso do MP3 faz identificar
casos de mascaramento em freqncia e descartar sinais que no sero
audveis devido a este fenmeno. Alm do mascaramento em freqncia,
temos ainda o mascaramento no tempo, sendo que este ocorre quando
um som forte precedido por um mais fraco que se encontra em uma
freqncia prxima do primeiro. Se o intervalo de tempo entre os dois
for suficientemente pequeno, este som mais fraco no ser percebido
pela audio humana. Se um som mascarado aps um som mais forte,
temos o chamado ps-mascaramento. No caso de um som ser
mascarado antes do som mais forte, temos o que chamamos de pr-
mascaramento. O pr-mascaramento existe s por um curto momento,
cerca de 20ms, enquanto que o ps-mascaramento tem efeito por at 200
ms. O mtodo de compresso do MP3 utiliza-se, portanto, deste
fenmeno, identificando casos onde o mesmo ocorre e descartando sons
que seriam mascarados, o que permite reduzir a informao de udio
consideravelmente sem mudana audvel.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 283
A Thomson Consumer Electronics controla o licenciamento da patente do
MPEG-1/2 Layer 3 nos poucos pases que reconhecem patentes de software,
tais como Estados Unidos da Amrica e Japo.

Em setembro de 1998, o Instituto Fraunhofer enviou um comunicado a diversos
desenvolvedores de programas MP3, exigindo cobrana de royalties por essa
patente. O comunicado informava que o licenciamento era necessrio para
"distribuir e/ou vender decodificadores e/ou codificadores", e que os produtos
no licenciados infringiam os "direitos sobre a patente do Instituto Fraunhofer e
da Thomson. Para produzir, vender e/ou distribuir produtos que se utilizem do
padro MPEG-1/2 Audio Layer 3 e, portanto, de suas respectivas patentes,
necessrio obter uma licena".

O sistema empregado pelo MP3 tambm possibilita transmisses por streaming,
onde o arquivo pode ser interpretado na medida em que feito o download ou
em que baixado (no necessrio que o arquivo chegue inteiro para iniciar a
reproduo).

10.4 Implementaes no MatLab

10.4.1 Processamento de Vdeo no MatLab
O MatLab tem algumas funes para processamento de vdeo, trabalhando mais
facilmnte com arquivos do tipo AVI (Audio Vdeo Interleave), aceitando alguns
CODECs (codificadores/decodificadores) mais conhecidos como o XViD.
possvel abrir arquivos MPEG tambm.

Funes de Video file import/export:
aviread L arquivo de vdeo (AVI)
aviinfo - Retorna informao sobre o arquivo AVI
avifile - Cria um novo arquivo AVI
mmreader L frames de vdeo de um arquivo multimdia (como MPEG)
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 284
mmfileinfo - Retorna informao sobre o arquivo multimdia
movie2avi Cria filme AVI a partir de um filme MATLAB (.mov no do
Quicktime)

Exemplo:
>> info = aviinfo('video1.avi')

info =
Filename: 'D:\MATLABR2008b\work\video1.avi'
FileSize: 2997760
FileModDate: '03-mai-2010 19:53:44'
NumFrames: 13
FramesPerSecond: 15
Width: 320
Height: 240
ImageType: 'truecolor'
VideoCompression: 'none'
Quality: 4.2950e+007
NumColormapEntries: 0

Para acessar as informaes:
>> info.NumFrames
ans =
13
>> h = info.Height;
>> w = info.Width;

A leitura do arquivo de vdeo feita pelo comando aviread (arquivo AVI):
>> mov = aviread('video1.avi');

possvel acessar um frame especfico do arquivo de vdeo:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 285
>> mov = aviread('video1.avi', 3);

No caso, o 3 frame est sendo lido. Mas o arquivo de sada continua sendo um
arquivo de vdeo:

>> whos
Name Size Bytes Class Attributes
mov 1x1 230648 struct

Observe que a sada mov do tipo struct.
>> mov
mov =
cdata: [240x320x3 uint8]
colormap: [ ]

>> mov1 = mov.cdata;

Agora, temos um arquivo de imagem que pode ser exibido como tal:

>> imshow (mov1)

Para exibio do vdeo podemos usar o comando movie:

>> movie(mov, repeties, info.FramesPerSecond);

O parmetro repeties indica quantas vezes o vdeo ser repetido.

A converso de imagens para frame feita com o comando im2frame:
>> mov1(i) = im2frame(imagem, map);

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 286
Isso faz com que imagem seja inserida como frame i do arquivo de vdeo mov1
com mapa de cores especificado em map. Variando i criamos o arquivo de vdeo
a partir de diversas imagens.

O MatLab permite tambm o processamento de vdeo usando o mdulo
Simulink. As funes (para imagem e vdeo) podem ser acessadas atravs do
munu Vdeo and Image Processing Blockset conforme a Fig. 10.7.


Fig. 10.7. Acesso aos blocos de processamento de imagem e vdeo pelo
Simulink.

As possveis entradas para o sistema so acessadas pelo item sources
enquanto as sadas podem ser geradas pelos blocos sinks (Fig. 10.8).
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 287


Fig. 10.8. Entrada e sada de dados multimdia via Simulink.

A Fig. 10.9 apresenta um esquema simples com um vdeo exemplo do MatLab
inserido e apresentado. Para executar a simulao, basta clicar em Simulation-
>Start (tecla de atalho: CTRL+T).
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 288

Fig. 10.10. Sequncia de blocos do Simulink para apresentar um vdeo.

Outros blocos podem ser colocados entre a entrada e sada para gerar
processamento do vdeo como na Fig. 10.11 (uma rotao) e na Fig. 10.12 (uma
transformao geomtrica).


Fig. 10.11. Execuo de uma rotao em um vdeo
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 289

Fig. 10.12. Execuo de uma transformao geomtrica em um vdeo

10.4.2 Processamento de udio no MatLab
Um som pode ser gravado com a funo wavrecord que gera um arquivo do tipo
wav:

>> som = wavrecord (16000, 8000, 1, double);

Esse comando grava 16000 amostras com uma taxa de amostragem de 8 kHz e
o armazena no vetor som do tipo double. O parmetro 1 indica que a gravao
feita em apenas um canal (mono) e no em estreo. Para tocar o som, basta
usar o comando soundsc:

>> soundsc (som);

s vezes, importante informar a frequncia de amostragem:

>> soundsc (som, 8000);

O arquivo de som pode ser plotado em um grfico como um vetor comum:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 290
>> plot (som);

comum precisarmos trabalhar com o arquivo de som normalizado. Para tanto,
usamos:

>> som = som/max(abs(som));

Isso no muda o sinal apenas o apresenta com amplitude entre -1 e 1.

A leitura de um arquivo wav pode ser feita com o comando wavread:

>> som = wavread (teste.wav);

ou

>> [som, fs] = wavread (teste.wav);

Nesse segundo caso, a frequncia de amostragem do sinal salva na varivel
fs. O comando wavread no permite que o parmetro de entrada seja uma
varivel com o nome do arquivo. A entrada precisa ser especificamente o nome
do arquivo de som.

O processamento do sinal de udio pode ser feito atravs de filtros como o
processamento de sinais, usando a funo filter:

>> y = filter (b, a, som);

onde a e b so os coeficientes do filtro a ser aplicado (para filtros FIR, a = 1).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 291
Exemplo 1:
>> som = wavread(a_casa.wav);
>> plot (som);


Calculando a transformada de Fourier:

>> som_spec = fft (som, 256);
>> plot (abs(som_spec));

Um grfico em formato mais padro pode ser obtido com as baixas freqncias
centralizadas:
>> plot (abs(fftshift(som_spec)));

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 292
Suponha um filtro IIR com funo de transferncia: H(z) = 1 0,9375z
-1
:
>> h = [1 -0.9375];
>> y = filter(h, 1, som);
>> soundsc(y, 22000);

Ouviremos um som mais nasal. Vamos fazer o mesmo processamento, mas
dividindo o som em amostras de 240 frames cada que sero filtradas
individualmente e re-agrupadas depois:

>> w = 240;
>> n = floor(length(som)/w);
>> for k=1:n
seg = som(1+(k - 1)*w:k*w);
segf = filter(h, 1, seg);
outsp(1+(k-1)*w:k*w) = segf;
end
>> soundsc(outsp, 22000);

Observem, a seguir (Fig. 10.13), a plotagem do sinal original (som) e filtrado
(outsp), assim como suas transformadas de Fourier:

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 293


Fig. 10.13. (coluna da esquerda) Sinal original e sua transformada e (coluna da
direita) sinal filtrado e sua transformada.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 294
Exemplo 2: Como um exemplo da dificuldade de analisar um sinal que muda
constantemente, vamos construir um sinal gil na frequncia (um que muda
rapidamente suas caractersticas de frequncia):

>> y = chirp([0:0.001:5],0,5,500);
>> soundsc (y); % Escute o som para entende-lo!!
>> z = [y, y(length(y):-1:1), y];
>> f = abs(fft(z, 8192));
>> plot(f(1:4096));

Mas esse grfico representa mesmo o sinal que criamos? Vamos observar
melhor o sinal quebrando ele em janelas e plotando-as como uma queda
dgua (waterfall) para ver como as freqncias mudam pelo tempo.

>> s = spectrogram(z, 1024);
>> waterfall(abs(s)');
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 295


A plotagem em queda dgua mostra cerca de 30 pedaos no tempo, cada um
correspondendo a uma FFT-512 e indicando claramente que diferentes
componentes de frequncia esto presentes durante cada perodo de tempo.
Veja o resultado para diferentes FFTs de N-Pontos:

>> s = spectrogram(z, 256);
>> waterfall(abs(s)');
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 296

>> s = spectrogram(z, 8192);
>> figure, waterfall(abs(s)');

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 297
Exemplo 3: Criando msica no MatLab:
Primeiro, vamos crier uma onda senoidal de amplitude A = 1, com uma
frequncia de 523,25 Hz (correspondente a um pitch C em um piano; uma oitava
acima do C mdio):

cnote = sin(2*pi*523.25*(0:0.000125:0.5));

Esse vetor cnote contm amostras da onda senoidal de t = 0s a t = 0.5s, as
amostras so separadas de 0.000125s (que o intervalo de amostragem Ts).
Note que esse intervalo de amostragem corresponde frequncia de
amostragem de 8 kHz (1/Ts = fs).

Podemos graver esse som com o comando wavwrite:

wavwrite(cnote, c.wav);

E temos a primeira nota.

O seguinte site apresenta a frequncia de diferentes notas (apresentadas na
tabela a seguir): http://www.dolmetsch.com/musictheory27.htm.



Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 298
Usando essa informao, podemos criar diferentes notas no MatLab. Observe
que existem diferentes oitavas da mesma forma que existem diferentes teclas
em um piano. Aqui esto algumas no MatLab:

f = sin(2*pi*174.61*(0:0.000125:0.5));
g = sin(2*pi*195.99*(0:0.000125:0.5));
a = sin(2*pi*220*(0:0.000125:0.5));
b = sin(2*pi*246.94*(0:0.000125:0.5));

Pas de msica faa:

line1 = [a,b,c,d,e,f];
line2 = [a,b,c,d,e,f];

As letras correspodem s notas que voc cria no MatLab de acordo com a
tabela anterior. Coloque as notas na ordem que voc quiser toc-las. Para crier
uma msica use:

song = [line1, line2];

e toque com sound() ou soundsc().


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 299
10.5 Exerccios

1. Implemente no MatLab o Cdigo de Huffman e aplique-o para compresso
do arquivo de voz sentence.wav.

2. Como podemos avaliar a qualidade de um algoritmo de compresso para
imagens estticas ou dinmicas (vdeos)?

3. No mesmo arquivo de voz, implemente a tcnica DPCM e apresente qual a
maior diferena entre tons adjacentes que ela possui. Nesse caso, voc acha
que o algoritmo seria eficiente para compresso ou no?

4. No MatLab, capture dois frames prximos do arquivo vipmen.avi e calcule
com PSNR a diferena entre os frames.

5. Usando o MatLab (funes dct2.m e idct2.m), calcule atravs do uso do
PSNR a perda provocada pelo uso da DCT na imagem lena.bmp.

6. Cite os princpios bsicos de funcionamento da compresso MP3, definidos
pela psicoacstica.


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 300
10.6 Bibliografia Complementar

1. A.C.Bovik, The Essential Guide to Video Processing, Academic Press, 2009.
2. C.Wootton,A Practical Guide to Video and Audio Compression, Focal Press,
2005.
3. D.Hankersson ,Introduction to Information Theory and Data Compression,
CRC Press, 2003.



Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 301
11. Processamento de Voz
O som uma vibrao que propaga pelas molculas do ar at nossos ouvidos.
De uma forma geral, os sons so variaes na presso do ar ao longo do tempo
em freqncias que podemos ouvir. A voz um tipo especfico de som. Logo,
um som pode ser uma voz ou no. A voz consiste de um conjunto de sons que
podem ser gerados pelo ser humano. O sinal de voz pode ser plotado (Fig.11.1)
como uma forma de onda na qual podemos observar valores positivos e
negativos. Isso acontece porque a radiao de voz da boca faz com que a
presso do ar seja temporariamente maior ou menor que a presso do ar do
ambiente.


Fig. 11.1. Exemplo de plotagem de um sinal de voz.

O propsito primrio da voz comunicao. De acordo com a Teoria da
Informao conforme definida por Claude Shannon [Shannon, 1945], a voz pode
ser representada em termos de contedo ou informao. Outra maneira de
caracterizar o sinal de voz como sendo uma onda acstica que carrega a
informao. Para o processamento de voz, o mais comum entendermos o sinal
de voz como sendo uma onda ou algum modelo paramtrico como discutiremos
posteriormente.

A Informao gerada no crebro convertida em um conjunto de sinais neurais
os quais controlam o mecanismo articulatrio (movimentos da lngua, lbios,
cordas vocais, etc). As articulaes movem-se em resposta a estes sinais
neurais para desempenhar uma seqncia de gestos os quais resultam em uma
forma de onda acstica que contm a informao da mensagem original.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 302
A informao que comunicada atravs do sinal de voz intrinsicamente
discreta, ou seja, pode ser representada como uma concatenao de um
conjunto finito de smbolos fonemas. Um fonema uma unidade de voz, o
conjunto que define todos os sons dos quais palavras podem ser construdas em
uma linguagem particular: as lnguas possuem cerca de 30 a 50 fonemas
distintos (por exemplo, o ingls possui 42 fonemas). Assim, um cdigo de 6 bits
pode representar todos os fonemas. Na fala usamos cerca de 10 fonemas por
segundo o que leva a uma taxa mdia de informao de 60 bits/seg. Ou seja, o
equivalente escrito da voz contm informao equivalente a 60 bits/seg para
uma taxa normal de fala.

A voz transmitida, armazenada e processada de maneiras diferentes de modo
a preservar o seu contedo. O interesse em qualquer sistema :
- Preservao do contedo da mensagem no sinal de voz;
- Representao do sinal de voz em uma forma que seja conveniente para
transmisso ou armazenamento ou numa forma flexvel tal que modificaes
possam ser feitas sem degradar o contedo do sinal de voz.

A Fig. 11.2 mostra onde o processamento de sinais, de uma forma geral, se
encaixa em todo o universo do sinal de voz. Nela, vemos a figura humana como
sendo a fonte de informao, ou seja, de onde a voz gerada. Essa informao
convertida para algum meio observvel (a forma de onda) o qual pode sofrer
diferentes representaes (como a mudana para o domnio da freqncia) e
transformaes. Por fim, o sinal transformado utilizado novamente pelo
homem ou por algum dispositivo.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 303

Fig. 11.2. Viso geral da manipulao e processamento da informao.

O processamento do Sinal de Voz o veculo para obteno de uma
representao geral do sinal tanto como forma de onda ou na forma paramtrica
Ele serve como funo auxiliar no processo de transformar a representao do
sinal em formas alternativas que sejam mais gerais em natureza, mas mais
apropriadas para aplicaes especficas.

O processamento digital de sinais (PDS) tem interesse na obteno de
representaes discretas dos sinais e no design e implementao de
procedimentos numricos para processar essa representao. As tcnicas
digitais surgiram, primeiramente, para simular sistemas analgicos. Em meados
da dcada de 60, PDS tornou-se vivel devido criao de processadores mais
rpidos e a avanos tericos quanto ao tema.

H diversas vantagens dos sistemas digitais para os analgicos:
- Sistemas digitais so mais confiveis;
- Grande capacidade de integrao, podendo ser implementados em um nico
chip;
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 304
- Baixo custo;
- Permitem comunicao em canais ruidosos;
- Maior segurana de informao (permite incluso de elementos de
criptografia).

O propsito do processamento digital pode ser:
Saber se determinado sinal corresponde a um sinal de voz ou no
Classificar uma seo de um sinal de voz como:
o voz audvel (voiced speech)
o voz inaudvel (unvoiced speech)
o silncio ou rudo de fundo
Reduo de rudo

Para reduo de rudo, por exemplo, a filtragem digital do sinal usando filtros FIR
ou IIR pode trazer bons resultados. Vejamos o exemplo a seguir. Dado o sinal
de voz abaixo:

Trata-se de um sinal de voz ruidoso contendo a expresso a casa com um
rudo de fundo. Esse sinal pode ser filtrado com a reduo do rudo atravs do
uso de uma janela de Hanning conforme o cdigo:

[y, fs] = wavread('casa1.wav');
b = fir1(98, 31/80, hanning(99));
filt_sp=filter(b,1,y);
f = 0:8000/(127):8000;
subplot(2,1,1)
spect=fft(y, 256);
plot(f, abs(spect(1:128)))/max(abs(spect(1:128)));
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 305
xlabel ('frequencia');
subplot(2,1,2);
filt_spect=fft(filt_sp, 256);
plot(f, abs(filt_spect(1:128))/max(abs(filt_spect(1:128))));
wavwrite (filt_sp, fs, 'casa1_firfilt.wav');

Gerando como resposta o seguinte sinal:


Os sonogramas abaixo mostram o resultado da aplicao do filtro no domnio da
frequncia, sendo esse o sinal original:

e esse o sinal filtrado:


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 306
Considerando a aplicao de tcnicas de processamento digital de sinais a
problemas de comunicao por voz, interessante observar trs aspectos
principais: a representao do sinal de voz na forma digital, a implementao
das tcnicas de processamento e a classe de aplicaes.

A representao do sinal de voz na forma discreta , claro, de fundamental
importncia para todo o processo. Essa converso 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). Assim, o processo de
amostragem o passo inicial de toda a teoria e aplicaes do processamento
digital da voz.

Existem muitas formas de representar um sinal de voz. Essas representaes
podem ser classificadas em dois grandes grupos (Fig. 11.3): representaes em
forma de onda e representaes paramtricas. A representao em forma de
onda est preocupada com a preservao da forma de onda do sinal analgico
atravs de um processo de amostragem e quantizao. J a representao
paramtrica est preocupada com a representao do sinal de voz como a sada
de um modelo para produo de voz. A obteno de uma representao
paramtrica, em geral, comea com a forma de onda (ou seja, o sinal amostrado
e quantizado). A seguir, o sinal tratado para obteno dos parmetros
necessrios para sua representao. Esses parmetros so classificados em
parmetros de excitao (relativos fonte da voz) e parmetros do trato vocal
(relativos a sons de voz individuais).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 307

Fig. 11.3. Representaes do sinal de voz.

Existem diversas aplicaes relacionadas com processamento do sinal de voz. A
Fig. 11.4 exemplifica algumas delas. A transmisso e o armazenamento digital
relacionam-se com tcnicas de compresso do sinal de voz. A produo de voz
humana para, por exemplo, leitura de textos a preocupao em mtodos de
sntese de voz, onde os maiores problemas esto relacionados com a criao
automtica de elementos como entonao da voz e a produo de um texto que
soe natural ao nosso sistema auditivo. O reconhecimento de interlocutor pode
estar associado a questes de segurana; onde um dado sistema s se torna
acessvel se padres de voz permitidos forem reconhecidos. O reconhecimento
da fala pode permitir que o computador atenda a comandos vocais. O sinal de
voz pode ser melhorado com eliminao de rudo ou eco como um pr-
processamento para quaisquer das aplicaes anteriores. Muitas dessas
aplicaes so naturalmente indicadas para ajudar pessoas com necessidades
especiais como deficientes visuais.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 308

Fig. 11.4. Aplicaes relacionadas com processamento de voz.

11.1 Amostragem e Quantizao
Dada a relao direta entre processamento de voz e processamento de sinais,
vamos fazer uma breve reviso de alguns conceitos bsicos de processamento
de sinais.

Um sinal geralmente representado por um padro que varia no tempo. A voz
produzida pelo ser humano desta natureza: x(t). possvel representar um
sinal como uma seqncia de nmeros: x(n). Esta seqncia pode ser vista
como uma seqncia de amostras de um sinal analgico feitas com perodo de
amostragem T: x
a
(nT). A Fig. 11.5 ilustra essa representao.


Fig. 11.5. Representao de um sinal de voz na forma de onda e amostrado.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 309
As funes bsicas para o processamento digital de sinais so o impulso e o
degrau unitrio. Elas podem ser definidas como:

Impulso: (n) = 1, para n = 0, e (n) = 0, caso contrrio
Degrau Unitrio: u(n) = 1, para n 0, u(n) = 0, caso contrrio

No caso, podemos afirmar que: (n) = u(n) - u(n 1)

atravs da funo impulso que podemos representar as amostras de um sinal
digitalizado (Fig. 11.6).


Fig. 11.6. Seqncia de impulsos representando uma funo exponencial
discreta.

A discretizao do sinal um passo fundamental para que o processamento
posterior acontea de forma adequada. A Fig. 11.7 ilustra os possveis
resultados da discretizao de uma funo com diferentes taxas de
amostragem, resultando em um sinal de boa ou de m qualidade.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 310

a) b)
Fig. 11.7. a) Sinal amostrado com uma taxa apropriada para sua recuperao e
b) o mesmo sinal amostrado de forma incorreta (baixa taxa de amostragem)
tornando impossvel uma recuperao fiel ao original.

Alm da amostragem, o sinal de voz passa por outro processo para ser
digitalizado: a quantizao. Na Fig. 11.8, podemos ver o sinal de entrada
contnuo, sendo inserido em um amostrador que cuida da discretizao do sinal
no tempo. O quantizador responsvel ento pela discretizao do sinal em
amplitude.

Fig. 11.8. Amostragem e quantizao, gerando o sinal discreto final.

Se um sinal analgico for banda limitado e amostrado na taxa de Nyquist pode-
se reconstruir o sinal original. O sinal de voz no banda limitado, embora o
espectro tenda a cair rapidamente para freqncias mais altas. Uma
representao fiel da voz exige uma taxa de amostragem de, pelo menos, 20
kHz. As freqncias que mais contribuem para o sinal de voz esto abaixo de
3,5 kHz. por isso que h uma certa dificuldade em reconhecer uma voz ao
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 311
telefone. Se passarmos o sinal de voz por um filtro passa-baixa, podemos, para
a maioria das aplicaes, utilizar uma taxa de Nyquist de 8 kHz.

conveniente separar os processos de amostragem e quantizao. Na prtica
geralmente impossvel distinguir entre eles. Nmeros binrios so usados para
representarmos os nveis de quantizao. Podemos representar a quantizao
como na Fig. 11.9. O sinal amostrado, x(n), quantizado com um passo ,
gerando o sinal codificado c(n). Esse sinal transmitido e decodificado. Se no
houve erros na transmisso, o sinal recebido c(n) dever ser igual a c(n).


Fig. 11.9. Processo de quantizao, codificao e envio do sinal. Na
transmisso, o sinal decodificado. Se a transmisso foi sem erro, c(n) = c(n).

A quantizao pode ser:
a) Quantizao Instannea;
b) Quantizao Uniforme;
c) Companding Instanneo;
d) Quantizao Adaptativa.

Na quantizao instantnea as amplitudes das amostras so quantizadas
dividindo-se a amplitude em um conjunto finito de pequenas variaes de
amplitude. D-se o mesmo valor a todas as amostras dentro de um mesmo
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 312
patamar de amplitude. Para uma representao em 3 bits h 8 possveis rtulos
(Fig. 11.10) e conseqentemente o nmero de diferentes seqncias de
rotulao o fatorial de 8.

Fig. 11.10. Quantizao instantnea com 3 bits.

Q quantizao uniforme exige uma mesma distncia entre x
i
e x
i-1
. Existem duas
classes de quantizadores uniformes: mid-riser e mid-tread. No mid-riser, a
origem aparece no ponto mdio da parte crescente de uma funo escada. O
quantizador mid-riser conveniente quando temos o nmero de nveis uma
potncia de 2. O mid-riser possui o mesmo nmero de nveis positivos e
negativos que esto simetricamente posicionados em relao origem. O
quantizador mid-tread possui um nvel negativo a mais que positivo. O
quantizador mid-tread possui o zero (000) no meio da escala o que til em
diversas aplicaes. O quantizador mid-riser no possui o nvel zero. Pode-se
ter desde a codificao direta a escolhas que tentem manter equilibrada a
potncia utilizada entre os bits da amostra em relao a origem, etc. A Fig. 11.11
apresenta esses dois quantizadores para uma quantizao de 3 bits como na
Fig. 11.11.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 313


a)

b)
Fig. 11.11. Quantizadores de 3 bits: a) mid-riser e b) mid-tread.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 314
Companding uma expresso que significa compress + expand. Para tornar a
porcentagem de erro constante os nveis de quantizao devem ser espaados
logaritmicamente. Para tanto, o logaritmo da entrada quantizado ao invs da
prpria entrada:
y(n) = ln|x(n)|
Cujo inverso :
x(n) = exp[y(n)]sgn[x(n)]

Dessa maneira, pode-se mostrar que o nvel sinal-rudo independente da
varincia do sinal. Problemas acontecem com pequenas amplitudes (x[n] 0). A
Fig. 11.12 apresenta em diagrama de blocos como se desenvolve a codificao
e a decodificao do sinal.

Fig. 11.12. Representao da tcnica de companding.

O problema da quantizao quanto a quantidade de degraus. Desejamos fazer
essa quantidade suficientemente grande para termos uma varredura pico-a-pico
do sinal. Mas isso implica mais nveis de quantizao. Porm, mais nveis de
quantizao implica em uma cpdificao com mais bits o que implica em maior
tempo de processamento/espao de armazenamento; o que no interessante.
Esse o grande dilema.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 315
Uma soluo est em utilizar um quantizador no-uniforme. Alternativamente,
pode-se adaptar as propriedades do quantizador aos nveis do sinal de entrada.
O tamanho do degrau varia casadamente com a varincia do sinal de entrada.
A Fig. 11.13 apresenta o comportamento de um tal quantizador.

Fig. 11.13. Quantizao adaptativa.

11.2 Tcnicas Temporais para Processamento de Voz
Tcnicas temporais para processamento de voz envolvem a forma de onda do
sinal diretamente (em contraste com mtodos do domnio da freqncia). So
simples de implementar e ricas em informao. As tcnicas mais difundidas so:
a) Taxa de passagem pelo Zero (zero-crossing rate);
b) Energia do Sinal;
c) Magnitude do Sinal;
d) Auto-Correlao.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 316
As propriedades do sinal de voz variam com o tempo: a excitao muda entre a
voz audvel e no audvel; a amplitude do sinal varia; h uma variao
significativa da freqncia fundamental para a voz audvel. Essas propriedades
so nitidamente observveis na forma de onda. Por isso, os mtodos podem ser
aplicados no domnio do tempo, diferente de outros tipos de sinais que so
preferivelmente tratados no domnio da freqncia.

A maioria dos sistemas de processamento de voz assume que as propriedades
da fala mudam relativamente devagar com o tempo. Afinal, no h variaes
bruscas num fonema ou entre fonemas. Assim, podem-se utilizar mtodos de
processamento em tempo curto (short-time), nos quais analisam-se amostras de
curta durao do sinal. Cada segmento curto de voz visto como um som
estvel com propriedades fixas. s vezes, esses segmentos se sobrepem.
Essas amostras de curta durao so geralmente chamadas de moldura de
anlise (analysis frames). O resultado da anlise de uma moldura pode ser um
nmero ou um conjunto de nmeros. A seqncia gerada pode ser tomada
como uma nova representao no tempo do sinal original.

geralmente assumido que o sinal de voz foi limitado em faixa e que foi
amostrado em taxa no inferior a taxa de Nyquist (pelo menos 8.000
amostras/segundo). tambm considerado que o sinal foi quantizado e que o
erro de quantizao desprezvel.

A maioria das tcnicas de processamento em tempo curto pode ser
representada pela equao:

=
=
m
n
m n w m x T Q ) ( )] ( [
(Eq. 11.1)

o sinal de voz, x(.), submetido a transformao T[ ], linear ou no, a qual pode
depender de um conjunto ajustvel de parmetros.

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 317
Observando a Eq. 11.1, podemos v-la como uma operao de convoluo da
transformao do sinal de entrada x() por uma funo w. Aqui, podemos
entender w como uma seqncia 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 durao finita, mas
pode ser infinita.


Fig. 11.14. Processamento de um sinal de voz em uma janela w.
11.2.1 Energia de Curta Durao
Das tcnicas temporais para processamento de voz a mais simples a Energia
de Curta-Durao. A amplitude do sinal de voz varia apreciavelmente com o
tempo. A voz audvel apresenta amplitude maior que a voz inaudvel ou o
silncio (rudo de fundo), assim, a energia de curta durao de um sinal prov
uma representao conveniente que reflete as variaes de amplitude. A
energia de um sinal discreto no tempo pode ser definida como:

=
=
m
m x E ) (
2

Em relao equao de Q
n
(Eq. 11.1), temos:
T[ ] = quadrado
w(n) = 1, 0 n N 1 e 0, caso contrrio.
A energia de tempo curto de um sinal de voz pode ser definida como:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 318

=
=
m
n
m n w m x E
2
)] ( ). ( [

que pode ser re-escrita como:

=
=
m
n
m n h m x E ) ( . ) (
2

com h(n) = w
2
(n). Observamos que E
n
um nmero e no uma funo.

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 relao ao tempo. Essa janela
seria equivalente a um filtro de passa-baixa de banda (muito) estreita. Uma
janela estreita demais no consegue produzir uma funo suave de energia. Se
a janela for muito estreita, no prover medies suficientes para produzir uma
funo de energia suave. Se a janela for da ordem de vrios picos do sinal, E
n

no vai refletir as variaes do sinal. Esse conflito de grande importncia na
representao 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 criana;
b) 250 amostras para uma voz grave de homem.

Na prtica, para uma freqncia 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 significncia de E
n
est em conseguir distinguir entre segmentos com
voz audvel e voz inaudvel. Os valores de E
n
so significativamente maiores
para sinais audveis. E
n
pode ser usada para determinar o tempo onde um sinal
audvel torna-se inaudvel e vice-versa; se o sinal for de boa qualidade pode-se
distinguir a voz do silncio.
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 319
11.2.2 Magnitude de Curta Durao
Outra tcnica de processamento em tempo curto a Magnitude de Curta
Durao. O clculo da energia muito sensvel a nveis altos de sinal (devido
potenciao na computao de E
n
). Uma maneira de aliviar este problema
utilizar-se uma funo de magnitude mdia:

=
=
m
n
m n w m x M ) ( | ) ( |

Essa funo de aritmtica mais simples que a energia, porm tem menor
capacidade de diferenciao entre voz audvel e inaudvel.

Tanto para a Energia quanto para a Magnitude de Curta Durao para uma
janela de 20ms uma taxa de amostragem de 100 amostras/seg. adequada. A
janela no precisa ser restrita a qualquer funo comumente utilizada como
filtro. Ela tambm no precisa ser retangular; necessrio apenas que o filtro
seja suave e passa-baixa. Pode ser um filtro FIR ou IIR; sugere-se FIR, pois a
sada mais fcil de ser computada a uma baixa taxa de amostragem. A janela
no precisa ter dimenso finita; basta que a Transformada-Z seja uma funo
racional.

Por exemplo, se:
h(n) = a
n
, n 0
= 0 , n < 0
ou seja, h(n) = a
n
u(n)

Um valor de 0 < a < 1 d uma janela cuja durao 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:
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 320

1
1
1
) (

=
az
z H
, ROC = |z|>|a|
Que possui as propriedades de um filtro passa-baixa. A Energia e a Magnitude
devem ser calculadas para cada amostra do sinal de entrada, correspondendo a
filtros causais com fase linear.


Fig. 11.15. Um valor de a entre 0 e 1 pode produzir janelas de maior ou menor
banda-passante.
11.2.3. Taxa de Passagem pelo Zero
Diz-se que houve uma passagem pelo zero quando duas amostras sucessivas
possuem sinais diferentes. A taxa com que h a passagem pelo zero apenas
uma medida do contedo de freqncia do sinal. Este fato particularmente
verdadeiro para sinais faixa-estreita. Esse conceito define a tcnica de
processamento de Passagem pelo Zero em Tempo Curto.

Um sinal senoidal de freqncia F
0
, amostrado numa taxa F
s
, possui F
s
/F
0

amostras por ciclo de senide. Cada ciclo possui duas passagens pelo zero (Fig.
11.16), ou seja, a taxa mdia de passagens pelo zero :
Z = 2.F
0
/F
s
passagens/amostra
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 321

Fig. 11.16. Uma senide tem duas passagens pelo zero em um ciclo.

Os sinais de voz so sinais faixa-larga e, portanto, a interpretao da taxa mdia
de passagem pelo zero menos precisa. Estimativas grosseiras das
propriedades espectrais podem ser obtidas baseadas na taxa de passagem pelo
zero mdia em tempo curto.

Pode-se definir:

=
=
m
n
m n w m x m x z ) ( | )] 1 ( sgn[ )] ( sgn[ |

onde
sgn[x(m)] = 1, se x(n) 0
= -1, se x(n) < 0
e
w(n) = 1/(2N), para 0 n N-1
= 0, caso contrrio

O modelo para a produo 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. A maior parte da energia para sinais de voz no
audveis de alta-freqncia: altas freqncias implicam uma taxa alta de
passagem pelo zero e baixas freqncias implicam numa taxa baixa de
passagem pelo zero. Assim, h uma correlao forte entre taxa de passagem
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 322
pelo zero e a distribuio de energia com a freqncia: se a taxa de passagem
pelo zero alta, o sinal inaudvel; do contrrio, o sinal audvel.

A taxa mdia de passagem pelo zero em tempo curto de:
i) 49 vezes por 10 ms para sinais no-audveis.
ii) 14 vezes por 10 ms para sinais audveis.

H uma sobreposio das distribuies de sinais audveis e no-audveis de
forma que esta diviso no pode ser tomada somente com a informao da taxa
de passagem pelo zero. Isso dificulta a deciso entre voz audvel e inaudvel.
A taxa de passagem pelo zero fortemente afetada por:
a) sinal de rede eltrica;
b) qualquer rudo no processo de digitalizao.

Cuidado extremo deve ser tomado no processo analgico antes da digitalizao;
prefervel utilizar-se um filtro passa-faixa ao invs de passa-baixa. Para
eliminar a freqncia de 60 Hz da rede eltrica que pode corromper o sinal
original.

O problema de rudo de fundo de grande importncia no reconhecimento de
voz. essencial saber onde cada palavra inicia e termina. A separao
Voz/Silncio no simples exceto no caso de gravaes de alta-fidelidade em
cmaras de gravao. Em gravaes com alta relao sinal/rudo os sons da
voz de menor intensidade so mais fortes que o rudo de fundo.
11.2.4. Funo de Autocorrelao
A ltima tcnica de processamento de sinal de voz a Funo de
Autocorrelao de Tempo Curto. A autocorrelao de um sinal determinstico
discreto no tempo dada por:

=
+ =
m
k m x m x k ) ( ) ( ) (

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 323
A representao em funo de autocorrelao de um sinal um modo
conveniente de apresentar algumas propriedades do sinal. Por exemplo, se o
sinal peridico com perodo de P amostras, ento:
(k) = (k+P)
Ou seja, a autocorrelao de uma funo peridica tambm peridica com o
mesmo perodo. Outras propriedades importantes da funo de autocorrelao
so:
1) Ela uma funo par: (k) = (-k);
2) Ela alcana seu valor mximo quando k = 0; i.e.; |(k)|0, para todo k;
3) O valor de (0) igual Energia para sinais determinsticos ou potncia
mdia para sinais peridicos.

A funo de autocorrelao para tempo curto definida como:

=
+ =
m
n
m k n w k m x m n w m x k R ) ( ) ( ) ( ) ( ) (

Ou seja, primeiro, um segmento de voz selecionado pelo produto com a janela;
em seguida, a autocorrelao aplicada ao segmento de voz sob a janela. A
tcnica de autocorrelao pode ser usada para estimativa do pitch (frequncia
fundamental) de um sinal de voz. O seguinte cdigo do MatLab pode ser usado
para estimar a frequncia fundamental de um sinal usando a funo de
autocorrelao:

[x,fs]=wavread('casa1.wav');
ms20=fs/50; % minimum speech Fx at 50Hz
%
% plot waveform
t=(0:length(x)-1)/fs; % times of sampling instants
subplot(2,1,1);
plot(t,x);
legend('Waveform');
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 324
xlabel('Time (s)');
ylabel('Amplitude');
%
% calculate autocorrelation
r=xcorr(x,ms20,'coeff');
%
% plot autocorrelation
d=(-ms20:ms20)/fs; % times of delays
subplot(2,1,2);
plot(d,r);
legend('Autocorrelation');
xlabel('Delay (s)');
ylabel('Correlation coeff.');

% Estimativa da frequencia fundamental

ms2=fs/1000; % maximum speech Fx at 1000Hz
ms20=fs/50; % minimum speech Fx at 50Hz
% just look at region corresponding to positive delays
r=r(ms20+1:2*ms20+1);
[rmax,tx]=max(r(ms2:ms20));
fprintf('rmax=%g Fx=%gHz\n',rmax,fs/(ms2+tx-1));

Podemos ver a aplicao desse cdigo no sinal de voz correspondente ao som
a casa. Nesse caso, a frequncia fundametal estimada :

Fx=512.195Hz
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 325


11.3 Anlise Cepstral
O nome cepstrum vem do inverso da primeira metade da palavra spectrum
(espectro) e plota a amplitude de um sinal versus sua quefrncia (que seria o
inverso da frequncia). Essa tcnica til para separar componentes de um
sinal complexo formado por diversos simultneos, mas diferentes elementos
combinados.

O cepstrum gerado pela transformada de Fourier de logaritmo da transformada
de Fourier. So duas transformadas de Fourier calculadas, mas, de fato, na
prtica, a segunda transformada pode ser a transformada inversa.

A utilidade da anlise do cepstrum deriva do fato que ele corresponde
transformada inversa de Fourier do logaritmo da transformada de Fourier. Isso
significa que os componentes de frequncia foram ordenados logaritmicamente.
Na matemtica, um dos princpios do logaritmo que, se alguma expresso a
combinao multiplicativa de dois elementos, ento, no domnio logartmico,
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 326
esses elementos so combinados aditivamente. Colocando de outra forma, se o
sinal sob anlise y(t) igual a h(t) vezes x(t):
y(t) = h(t).x(t)
ento:
log[y(t)) = log[h(t)] + log[x(t)]
No domnio do processamento digital de voz, x(t) pode ser o pitch enquanto h(t)
o componente do trato vocal.

A quefrncia uma medida de tempo, embora no no sentido de um sinal no
domnio do tempo. Por exemplo, se a taxa de amostragem de um sinal de udio
44100 Hz e existe um pico no grfico do cepstrum cuja quefrncia 100
amostras, o pico indica a presena de um pitch que 44100/100 = 441 Hz. Esse
pico ocorre no cepstrum porque os harmnicos no espectro so peridicos e o
perodo corresponde ao pitch. O cdigo de MatLab abaixo estima a frequncia
fundamental do arquivo casa1.wav:

[x,fs]=wavread('casa1.wav');
ms1=fs/1000; % mxima frequncia de voz Fx em 1000Hz
ms20=fs/50; % mnima frequncia de voz Fx em 50Hz
%
% plotagem da forma de onda
t=(0:length(x)-1)/fs;
subplot(3,1,1);
plot(t,x);
legend('Waveform');
xlabel('Time (s)');
ylabel('Amplitude');
Y = fft(x);
% plotagem do espectro abaixo de 5000Hz
hz5000=5000*length(Y)/fs;
f=(0:hz5000)*fs/length(Y);
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 327
subplot(3,1,2);
plot(f,20*log10(abs(Y(1:length(f)))+eps));
legend('Spectrum');
xlabel('Frequency (Hz)');
ylabel('Magnitude (dB)');
% cepstrum
C=fft(log(abs(Y)+eps));
% plotagem entre 1ms (=1000Hz) e 20ms (=50Hz)
q=(ms1:ms20)/fs;
subplot(3,1,3);
plot(q,abs(C(ms1:ms20)));
legend('Cepstrum');
xlabel('Quefrency (s)');
ylabel('Amplitude');
[c,fx]=max(abs(C(ms1:ms20)));
fprintf('Fx=%gHz\n',fs/(ms1+fx-1));


Frequncia estimada: 667.171Hz
Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 328
Outra aplicao do cepstrum a extrao da informao de envelope para
anlise da voz. Em geral, o envelope espectral uma forma mais suave do
grfico da frequncia, onde o processo de suavizao ignora os componentes
de mais alta frequncia. No domnio cepstral, isso corresponde ao descarte de
todos os coeficientes cepstrais relacionados s frequncias maiores que o
envelope da frequncia. Isso pode ser conseguido no MatLab com o cdigo
abaixo:

[som, fs] = wavread('casa1.wav');
ps = log(abs(fft(som)));
len = length(som);
cep = ifft(ps);
% Filtragem
cut = 30;
cep2 = zeros(1, len);
cep2(1:cut-1) = cep(1:cut-1)*2;
cep2(1) = cep(1);
cep2(cut) = cep(cut);
% Converte para o dominio da frequencia
env = real(fft(cep2));
act = real(fft(cep));
pl1 = 20*log10(env(1:len/2));
pl2 = 20*log10(act(1:len/2));
span = [1:fs/len:fs/2];
pl1(length(pl1)) = [];
pl2(length(pl2)) = [];
plot (span, pl1, 'k-.'); figure, plot(span, pl2, 'g');

Na figura a seguir temos o cepstrum (em verde) e o envelope (em preto).

Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 329


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 330
11.4 Exerccios

1. Explique a tcnica temporal de processamento de voz de Energia de Curta
Durao, seguindo os seguintes passos:
a) Defina a equao

=
=
m
n
m n w m x T Q ) ( )] ( [


b) Cite quais os cuidados que devem ser tomados na definio da
janela w(n).

2. Diferencie Quantizao e Amostragem, relacionando as duas tcnicas com o
processo de Digitalizao de um sinal. correto afirmar que a quantizao
de um sinal pode compact-lo? Essa compactao seria com ou sem perda
de informao?

3. Construa o grfico da funo caracterstica do quantizador de 2 bits definido
pela seguinte relao entre as amostras quantizadas e a palavra cdigo:

2 / * ) 1 ) ( ( * )) ( (
^
+ = n c n c sign x

onde a funo sign(c(n)) igual a +1, se o primeiro bit de c(n) for igual a
zero, e igual a 1, se o primeiro bit de c(n) for 1. Para c(n) usada uma
representao em sinal-magnitude. Tal quantizador possui caractersticas de
um quantizador mid-riser? E mid-tread?


Processamento Digital de Sinais - Prof. Carlos Alexandre Mello Pgina 331
11.5 Bibliografia Complementar

1. Lawrence Rabiner, Ronald W. Schafer, Digital Processing of Speech Signals,
Prentice Hall, 1978.

2. Vilay K. Madisetti, The Digital Signal Processing Handbook, CRC Press,
2010.

3. VOICEBOX (a MATLAB toolbox for speech processing):
http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html