Escolar Documentos
Profissional Documentos
Cultura Documentos
Notas de Aula
TEORIA
(a) x[n] = n , − 6 ≤ n ≤ 6
2
sinal:
stem(-6:6, (-6:6).^2);
1
Processamento Digital de Sinais – Aula 1T – Professor Marcio Eisencraft – fevereiro 2007
A segunda amostra deste sinal é x[−5] = 25 . Este sinal tem 6 − (−6) + 1 = 13 amos-
tras.
(b) y[n] = (0,9) n , n ∈ N
As amostras deste sinal são { y[ n]] = {1;0,9;0,81;0,729;0,6561;...} . A figura a seguir
mostra as 50 primeiras amostras deste sinal.
Repare que este é um sinal com infinitas amostras e, por exemplo, y[0] = 1 .
stem (0:50, (0.9).^(0:50))
• Os exemplos acima mostram que um sinal de tempo discreto pode ser uma
seqüência de comprimento finito ou infinito. Além disso, um sinal de compri-
mento finito definido no intervalo N1 ≤ n ≤ N 2 tem comprimento ou duração:
N = N 2− N1 + 1 .
Exercício
1. (CARLSON, 1998; p. 44) Um sinal é chamado de simplesmente definido
(“simply-defined”) se ele é representado por uma única equação e é chamado
2
Processamento Digital de Sinais – Aula 1T – Professor Marcio Eisencraft – fevereiro 2007
(n + 1)
(c) x[n] = 2 , −∞ ≤ n ≤ ∞
⎧n 2 − 1, n ≥ 0
(d) x[n] = ⎨
n +1 ⎩0, n < 0
⎧1 (1 + n ), n ≥ 0
(e) x[n] = ⎨
⎩1 (1 − n ), n < 0
3
Processamento Digital de Sinais – Aula 1T – Professor Marcio Eisencraft – fevereiro 2007
1.1.1. Produto
• A operação produto entre duas seqüências x[ n] e y[n] , representada por
w1 [n] = x[n] ⋅ y[n] , consiste em multiplicar, para cada valor de n as amostras das
seqüências x[ n] e y[n] .
• Esquematicamente, esta operação é representada pelo símbolo mostrado a se-
guir. Esta operação também é chamada de modulação na área de telecomuni-
cações.
1.1.2. Soma
• A operação soma entre duas seqüências x[ n] e y[n] , representada por
w2 [n] = x[n] + y[n] , consiste em somar, para cada valor de n as amostras das se-
qüências x[ n] e y[n] .
• Esquematicamente, esta operação é representada pelo símbolo mostrado a se-
guir que é chamado de somador.
4
Processamento Digital de Sinais – Aula 1T – Professor Marcio Eisencraft – fevereiro 2007
• Esquematicamente temos:
Exercício
2. (MITRA, 2001; p. 106) Considere as seguintes seqüências de comprimento 7
definidas para − 3 ≤ n ≤ 3 :
x[n] = {3; − 2; 0; 1; 4; 5; 2}
y[n] = {0; 7; 1; − 3; 4; 9; − 2} .
w[n] = {− 5; 4; 3; 6; − 5; 0; 1}
5
Processamento Digital de Sinais – Aula 1T – Professor Marcio Eisencraft – fevereiro 2007
• A explicação do por que deste símbolo será dada mais tarde quando estudar-
mos Transformadas z.
Exercícios
3. Um sinal de tempo discreto x[ n] , definido para todo n inteiro é dado por
x[n] = 2n + 1 . Ele é passado por um atrasador, obtendo-se o sinal w[n] = x[n − 1] .
5. (MITRA, 2001; p. 47) Descreva uma formula para o sinal y[n] obtido do fil-
tro mostrado em diagrama de blocos na figura a seguir:
6
Processamento Digital de Sinais – Aula 2T – Professor Marcio Eisencraft – fevereiro 2007
• Assim, os sinais pares são simétricos com relação ao eixo vertical ou origem
dos tempos enquanto que os sinais ímpares são antisimétricos em relação à o-
rigem dos tempos.
• Os sinais x(t ) = t 2 e x(t ) = t 3 são exemplos de sinal par e ímpar respectivamen-
te. O gráfico destes sinais está mostrado a seguir.
1
Processamento Digital de Sinais – Aula 2T – Professor Marcio Eisencraft – fevereiro 2007
• Qualquer sinal x(t ) pode ser decomposto numa soma de dois outros sinais, um
par x p (t ) e outro ímpar xi (t ) , ou seja,
x(t ) = x p (t ) + xi (t ) , (1)
com x p (− t ) = x p (t ) e xi (− t ) = − xi (t )
• Trocando t por − t na expressão (1), temos:
x(− t ) = x p (− t ) + xi (− t ) = x p (t ) − xi (t ) (2)
1
xp ( t ) = ( x( t ) +x( −t ) )
2
1
xi ( t ) = ( x( t ) −x( −t ) )
2
Sinal ímpar:
x[− n] = − x[n] para todo n .
• Demonstra-se também, de forma análoga ao que foi feito antes, que qualquer
sinal pode ser decomposto em uma componente par e numa componente ím-
par.
x p [n ] = (x[n ] + x[− n ])
1
2
xi [n ] = ( x[n ] − x[− n ])
1
2
• A figura seguinte mostra exemplos de sinais de tempo discreto par e ímpar.
2
Processamento Digital de Sinais – Aula 2T – Professor Marcio Eisencraft – fevereiro 2007
Exercícios
1. (1041) (MITRA, 2001; p.106) Determine a componente par e ímpar das se-
qüências a seguir definidas no intervalo − 3 ≤ n ≤ 3 :
(a) x[n] = {3; − 2; 0; 1; 4; 5; 2}
(b) y[n] = {0; 7; 1; − 3; 4; 9; − 2}
(c) w[n] = {− 5; 4; 3; 6; − 5; 0; 1}
1
f =
T
• Também definimos a freqüência angular do sinal, medida em radianos por
segundo como:
2π
ω=
T
3
Processamento Digital de Sinais – Aula 2T – Professor Marcio Eisencraft – fevereiro 2007
Exercício
2. (HAYKIN, 2000; p. 37) A figura a seguir mostra uma onda triangular. Qual é
a freqüência fundamental desta onda? Expresse a freqüência fundamental em
unidades de Hz ou rad/s.
2π
Ω=
N ,
4
Processamento Digital de Sinais – Aula 2T – Professor Marcio Eisencraft – fevereiro 2007
Exercício
3. (HAYKIN, 2000; p. 78) Determine se os seguintes sinais são periódicos. Se
forem periódicos, encontre o período fundamental.
(a) x[n] = (− 1)n
(b) x[n] descrito na figura a seguir.
v 2 (t )
p(t ) = ou p (t ) = Ri (t )
2
R
• Vemos assim que a potência instantânea p(t ) é proporcional à amplitude do
sinal elevada ao quadrado. Além do mais, para R = 1Ω , vemos que a potência
p(t ) é exatamente igual à amplitude ao quadrado do sinal.
5
Processamento Digital de Sinais – Aula 2T – Professor Marcio Eisencraft – fevereiro 2007
p(t ) = x 2 (t )
• Lembrando que a energia é o produto da potência pelo tempo, costuma-se de-
finir a energia total do sinal x(t ) como:
∞
x (t )dt = ∫ x 2 (t )dt .
T
E = lim ∫ 2 2
T →∞ −T 2 −∞
P = lim ∫ T x (t )dt .
1 T2 2
T →∞ T − 2
P = ∫ T x (t )dt .
1 T2 2
T − 2
• A raiz quadrada da potência média P é chamada de valor médio quadrático
(rms – root-mean-square) do sinal x(t ) .
6
Processamento Digital de Sinais – Aula 2T – Professor Marcio Eisencraft – fevereiro 2007
N
x 2 [n] .
1
P = lim
N →∞ 2 N + 1
∑
n=− N
∑ x [n] .
1
P= 2
N n =0
0 < P < ∞.
• Pode-se mostrar que as classificações de energia e potência de sinais são mu-
tuamente exclusivas. Em especial, um sinal de energia tem potência média ze-
ro enquanto que um sinal de potência tem energia infinita.
Exercícios
4. (HAYKIN, 2000; p. 39) Qual a energia total do pulso retangular mostrado na
figura a seguir?
Resposta: A 2T1
7
Processamento Digital de Sinais – Aula 2T – Professor Marcio Eisencraft – fevereiro 2007
Resposta: 1
Resposta: 1/3
7. (HAYKIN, 2000; p. 40) Qual a energia total do sinal de tempo discreto mos-
trado a seguir?
8
Processamento Digital de Sinais - Aula 3T – Professor Marcio Eisencraft – julho 2006
1
Processamento Digital de Sinais - Aula 3T – Professor Marcio Eisencraft – julho 2006
Exercício
1. Esboce os seguintes sinais:
(a) a[n] = 2δ [n] (b) b [ n ] = 2δ [ n ] + 3δ [ n − 1 ] + 0, 5δ [ n − 2 ]
• Um sinal de tempo discreto arbitrário pode ser representado como uma soma
ponderada de impulsos. Por exemplo, o sinal a seguir:
2
Processamento Digital de Sinais - Aula 3T – Professor Marcio Eisencraft – julho 2006
Exercício
2. Expresse os seguintes sinais como somas ponderadas de funções impulsivas.
3
Processamento Digital de Sinais - Aula 3T – Professor Marcio Eisencraft – julho 2006
Exercícios
3. (1022) Esboce o seguinte sinal:
w[n] = u[n] − u[n − 3]
4
Processamento Digital de Sinais - Aula 3T – Professor Marcio Eisencraft – julho 2006
Exercícios
5. (1021) Calcule a energia e a potência do sinal x[n] = (0,8)n u[n] e verifique se
ele é um sinal de energia ou de potência.
5
Processamento Digital de Sinais - Aula 3T – Professor Marcio Eisencraft – julho 2006
creto descrito na Eq. (1) seja periódico, a freqüência angular Ω deve ser um
múltiplo na forma de razão de 2π, como indica a Eq. (3).
π
• A figura a seguir ilustra o sinal senoidal x[n] = cos⎛⎜ n ⎞⎟ . Tente calcular o perí-
⎝6 ⎠
Exercícios
6. (1021) Determine se os seguintes sinais de tempo discreto são periódicos. Se
o forem, determine o seu período fundamental:
6
Processamento Digital de Sinais – Aula 4T – Professor Marcio Eisencraft – março 2007
Classificação
Bibliografia
HAYKIN, Simon S.; VAN VEEN, Barry. Sinais e sistemas. Porto Alegre: Bookman, 2001. 668 p. ISBN
8573077417. Páginas 59-70.
LATHI, Bhagwandas Pannalal. Signal processing and linear systems. California: Berkeley, c1998. 734 p.
ISBN 0941413357. Páginas 562-572.
y[n] = H [x[n]]
Em diagrama de blocos:
x[n] y[n]
H
Exercícios
1. (LATHI, 1998; p. 572) Uma média móvel é usada para detectar a tendência
de uma variável que flutua muito rapidamente como as médias do mercado
de ações. Uma variável pode flutuar (para cima ou para baixo) diariamente,
mascarando a sua tendência de longo prazo.
1
Processamento Digital de Sinais – Aula 4T – Professor Marcio Eisencraft – março 2007
(b) Usando elementos de atraso, faça um diagrama de blocos deste filtro de mé-
dia móvel.
2
Processamento Digital de Sinais – Aula 4T – Professor Marcio Eisencraft – março 2007
2.1.1 Memória
• Diz-se que um sistema possui memória se sua saída depende de valores pas-
sados ou futuros do sinal de entrada. A extensão temporal de valores passados
dos quais a saída depende define quão longe a memória se estende no passado.
y[n] =
1
(x[n] + x[n − 1] + x[n − 2])
3
tem memória, uma vez que o valor do sinal de saída y[n] no instante n depende
do valor atual e de dois valores passados do sinal de entrada x[n] .
y[n ] = x 2 [n]
é sem memória uma vez que o valor do sinal de saída y[n] no tempo n depende
apenas do valor atual do sinal de entrada x[n] .
2.1.2 Causalidade
3
Processamento Digital de Sinais – Aula 4T – Professor Marcio Eisencraft – março 2007
y[n] =
1
(x[n] + x[n − 1] + x[n − 2])
3
y[n] =
1
(x[n + 1] + x[n] + x[n − 1])
3
é não-causal uma vez que o sinal de saída y[n] depende de um valor futuro do
sinal de entrada, a saber, x[n + 1] .
2.1.4 Linearidade
4
Processamento Digital de Sinais – Aula 4T – Professor Marcio Eisencraft – março 2007
A. Princípio da superposição
Seja um sistema y[n] = H [x[n]] e sejam y1 [n] a resposta à entrada x1 [n] e y 2 [n] a
resposta à entrada x2 [n]. Um sistema satisfaz o princípio da superposição se,
quando aplicamos a ele a entrada x S [n] = x1 [n] + x 2 [n] sua saída é y S = y1 [n] + y 2 [n].
B. Princípio da homogeneidade
Seja um sistema y[n] = H [x[n]] e seja y1 [n] a resposta à entrada x1 [n] . Um sistema
satisfaz ao princípio da homogeneidade se quando aplicamos a ele a entrada
x H [n] = ax1 [n] , a ∈ R * , sua saída é y H [n] = ay1 [n] .
Exercícios
5
Processamento Digital de Sinais – Aula 4T – Professor Marcio Eisencraft – março 2007
6
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
Exercício
1. (1021) Um sistema linear e invariante no tempo tem a seguinte resposta à en-
trada x[n] = δ [n] (resposta impulsiva):
(b) x[n] = δ [n − 2]
(c) x[n] = 2δ [n] + 0,5δ [n − 1]
• Resumindo, como qualquer sinal x[n] pode ser descrito como uma soma pon-
derada de impulsos, sendo o sistema LIT e conhecendo a resposta a um im-
pulso, poderemos determinar a saída devida a qualquer entrada x[n] .
• Se a entrada de um sistema linear for expressa como uma superposição pon-
derada de impulsos deslocados no tempo, a saída será uma superposição
ponderada da resposta do sistema a cada impulso deslocado no tempo. Se o
sistema for também invariante no tempo, a resposta do sistema a um impulso
deslocado no tempo será uma versão deslocada no tempo da resposta do sis-
tema a um impulso. Por isso, a saída de um sistema LIT é dada por uma su-
perposição ponderada de respostas ao impulso deslocadas no tempo.
• Essa superposição é chamada de soma de convolução.
• Na aula de hoje analisaremos este fato e suas conseqüências em detalhes.
2
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
Exercícios
2. Escreva o sinal x[n] da figura anterior como uma soma ponderada de impul-
sos.
• Vamos analisar agora a saída de um sistema LIT a uma entrada x[n] descrita
pela equação (1) acima.
x[n] y[n]
H
y[n] = H [x[n ]]
h[n] = H [δ [n]] (2)
• Sendo assim, para uma entrada qualquer x[n] podemos escrever usando as
Equações (1) e (2):
3
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
⎡ ∞ ⎤
y[n] = H [x[n]] = H ⎢ ∑ x[k ]δ [n − k ]⎥
⎣ k = −∞ ⎦
• Levando-se em conta que o sistema é linear, podemos aplicar a superposição
e a homogeneidade para aplicar o operador a cada uma das parcelas da soma-
tória. Obtemos assim:
∞ ∞
y[n] = ∑ H [x[k ]δ [n − k ]] = ∑ x[k ]H [δ [n − k ]]
k = −∞ k = −∞
4
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
5
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
Exercício
4. (HAYKIN; VEEN, 2001; p. 88) Suponha que um sistema H LIT tenha a
resposta ao impulso:
⎧1, n = ±1
⎪
h[n] = ⎨2 n=0
⎪0,
⎩ caso contrário
6
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
e imaginarmos que n está fixo. Desta forma, para calcularmos a saída num certo
instante n0 precisaríamos calcular:
∞ ∞
y[n0 ] = ∑ x[k ]h[n 0 − k] = ∑ x[k ]h[− (k − n )]
0 (4)
k = −∞ k = −∞
Exercícios
5. Encontre a resposta nos instantes n = 1 e n = 2 para o sistema e para a entrada
do Exercício 4 usando a abordagem discutida acima.
7. Escreva uma fórmula para wn [k ] para o Exercício anterior e encontre y[n] pa-
ra todo n .
⎧⎛ 3 ⎞ k − n ⎧ ⎛ ⎛ 3 ⎞ n +1 ⎞
RESP:
⎪⎜ ⎟ , 0 ≤ k ≤ n ⎪4⎜1 − ⎜ ⎟ ⎟, n ≥ 0
wn [k ] = ⎨⎝ 4 ⎠ , y[n] = ⎨ ⎜⎝ ⎝ 4 ⎠ ⎟⎠
⎪0 ⎪
⎩ , caso contrário ⎩0, caso contrário
• Este último exercício sugere que, em geral, podemos determinar y[n] para to-
do n sem avaliarmos a Eq. (4) para um número infinito de deslocamentos
distintos no tempo n . Isto é realizado identificando-se os intervalos de n nos
quais wn [k ] tem a mesma forma funcional. Depois, precisamos somente ava-
liar a Eq. (4) usando o wn [k ] associado com cada intervalo. Muitas vezes é
7
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
muito útil traçarmos graficamente tanto x[k ] como h[n − k ] quando determi-
namos wn [k ] e identificamos os intervalos apropriados de deslocamento no
tempo. Resumindo:
1. Trace graficamente x[k ] e h[n − k ] como uma função da variável independente
k . Para determinar h[n − k ] , primeiramente reflita h[k ] em torno de k = 0 para
Exercícios
8. (HAYKIN; VEEN, 2001, p. 93) Um sistema LIT tem a resposta ao impulso
dada por:
h[n] = u[n] − u[n − 10]
Determine a saída deste sistema quando a entrada for o pulso retangular definido
como
x[n] = u[n − 2] − u[n − 7]
8
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
⎧0, n<2
RESP: ⎪n − 1, 2≤n≤6
⎪⎪
[ ]
y n = ⎨5, 6 < n ≤ 11
⎪16 − n, 12 ≤ n ≤ 16
⎪
⎪⎩0, n > 16
9. (HAYKIN; VEEN, 2001, p. 95) Admitamos que a entrada x[n] para um sis-
tema H do tipo LIT seja dada por x[n] = α n {u[n] − u[n − 10]} e que a resposta ao
impulso do sistema seja dada por h[n] = β n u[n] em que 0 < β < 1 . Encontre a
saída deste sistema.
⎧
⎪
⎪
⎪
RESP: ⎪
⎪0, n<0
⎪ n +1
⎪ 1 - ⎛⎜ α ⎞⎟
⎪⎪ ⎜β ⎟
y[n] = ⎨β n ⎝ ⎠ , 0≤n≤9
⎪ ⎛α ⎞
1 - ⎜⎜ ⎟⎟
⎪ ⎝β ⎠
⎪
⎪ ⎛α ⎞
10
⎪ 1 - ⎜⎜ ⎟⎟
⎪β n ⎝ β ⎠ , n>9
⎪ ⎛α ⎞
⎪ 1 - ⎜⎜ ⎟⎟
⎪⎩ ⎝β ⎠
10. (HAYKIN; VEEN, 2001, p. 96) Admitamos que a entrada de um sistema LIT
com resposta ao impulso h[n] = α n {u[n − 2] − u[n − 13]} seja
x[n] = 2{u[n + 2] − u[n − 12]}. Encontre a saída y[n] .
⎧0, n<0
RESP:
⎪ n+2
⎪ 2α 1 - α(- n -1
,
) 0 ≤ n ≤ 10 .
⎪ 1 - α -1
⎪ 12
⎪ 2α 1 - α
y[n] = ⎨
( -11
), 11 ≤ n ≤ 13
⎪ 1-α
-1
(
⎪ 2α 12 1 - α n - 24 ) 14 ≤ n ≤ 23
⎪ ,
⎪ 1 - α -1
⎪⎩0, n ≥ 24
9
Processamento Digital de Sinais – Aula 5T – Professor Marcio Eisencraft – agosto 2007
11. (HAYKIN; VEEN, 2001, p. 97) Suponha que a entrada x[n] e a resposta ao
impulso h[n] de um sistema H do tipo LIT sejam dadas por:
x[n] = −u[n] + 2u[n − 3] − u[n − 6]
h[n] = u[n + 1] − u[n − 10]
12. (HAYKIN; VEEN, 2001, p. 97) Considere um sistema LIT com resposta ao
impulso:
⎧1
⎪ , 0≤n≤3
h[n] = ⎨ 4
⎪⎩0, caso contrário
Encontre uma expressão que relacione diretamente uma entrada arbitrária x[n] à
saída deste sistema, y[n] .
1
RESP: y [n ] = ( x [ n ] + x [ n − 1 ] + x [ n − 2 ] + x [ n − 3 ]) .
4
10
Processamento Digital de Sinais – Aula 7T – Professor Marcio Eisencraft – julho 2006
• A saída desta conexão de sistemas y[n] é a soma das saídas de cada sistema:
1
Processamento Digital de Sinais – Aula 7T – Professor Marcio Eisencraft – julho 2006
∞ ∞
y[n] = ∑ x[k ]h [n − k ] + ∑ x[k ]h [n − k ] ⇒
1 2
k = −∞ k = −∞
∞ ∞
y[n] = ∑ x[k ](h [n − k ] + h [n − k ]) = ∑ x[k ]h[n − k ]
1 2
k = −∞ k = −∞
sendo h[n] =h1 [n] + h2 [n] . Ou seja, tudo se passa como se a resposta impulsiva do
sistema equivalente ao da Figura 1 fosse o da Figura 2 a seguir:
2
Processamento Digital de Sinais – Aula 7T – Professor Marcio Eisencraft – julho 2006
∞
y[n ] = z[n]∗ h2 [n] = ∑ z[k ]h [n − k ]
2 (1)
k = −∞
∑ h [m]h [n − l − m] = h[n − l]
m = −∞
1 2 (4)
3
Processamento Digital de Sinais – Aula 7T – Professor Marcio Eisencraft – julho 2006
Exercício
1. (HAYKIN; VEEN, 2001; p.110) Considere a interconexão de sistemas LIT
descrita na figura a seguir. A resposta de cada sistema é dada por
h1 [n] = u[n]
h2 [n] = u[n + 2] − u[n]
h3 [n] = δ [n − 2]
h4 [n] = α n u[n]
• Para que este sistema seja sem memória, y[n] deve depender somente de x[n]
e não de x[n − k ] para k ≠ 0 . Conseqüentemente, um sistema LIT de tempo
4
Processamento Digital de Sinais – Aula 7T – Professor Marcio Eisencraft – julho 2006
discreto é sem memória se, e somente se, h[k ] = cδ [k ] , em que c é uma cons-
tante arbitrária.
• Assim, a condição de ausência de memória impõe fortes restrições na forma
da resposta ao impulso. Todos os sistemas LIT sem memória realizam multi-
plicação escalar com a entrada.
• Os valores passados e atuais da entrada x[n] , x[n − 1] , x[n − 2] ,..., são associa-
dos com índices k ≥ 0 na soma de convolução, enquanto que os valores futu-
ros da entrada x[n + 1] , x[n + 2],... são associados com índices k < 0 .
• Conseqüentemente, para um sistema causal, teremos h[k ] = 0 para k < 0 .
Exercício
2. (HAYKIN; VEEN, 2001, p. 113) Um sistema de tempo discreto tem a res-
posta ao impulso:
h[n] = a n u[n + 2]
5
Processamento Digital de Sinais – Aula 7T – Professor Marcio Eisencraft – julho 2006
Exercício
3. (HAYKIN; VEEN, 2001, p. 116) Encontre a resposta ao degrau de um siste-
ma de tempo discreto com resposta ao impulso:
h[n ] = (− a ) u[n ]
n
6
Processamento Digital de Sinais – Aula 7T – Professor Marcio Eisencraft – julho 2006
7
Processamento Digital de Sinais – Aula 7T – Professor Marcio Eisencraft – julho 2006
Exercício
4. (HAYKIN; VEEN, 2001, p. 114) Considere projetar um sistema de tempo
discreto para eliminar a distorção associada com um eco indesejável num
problema de transmissão de dados. Suponha que o eco seja representado co-
mo atenuação por uma constante a e um retardo correspondente a uma uni-
dade de tempo na seqüência de entrada. Daí, o sinal recebido distorcido, y[n] ,
ser expresso em termos do sinal transmitido x[n] como:
y[n] = x[n] + ax[n − 1]
8
Processamento Digital de Sinais – Aula 8T – Professor Marcio Eisencraft – abril 2007
∑a k +1 y [ n − k ] = ∑ bk +1 x [ n − k ] (1)
k =0 k =0
1
Processamento Digital de Sinais – Aula 8T – Professor Marcio Eisencraft – abril 2007
2
Processamento Digital de Sinais – Aula 8T – Professor Marcio Eisencraft – abril 2007
ou
⎛ 1 −1 1 − 2 ⎞
⎜1 + z + z ⎟ y[n ] = x[n ]
⎝ 4 16 ⎠
ou
[ ]
Q z −1 y[n ] = P z −1 x[n ] [ ]
em que Q[z −1 ] e P[z −1 ] são os operadores polinomiais de grau N e M
[ ]
Q z −1 = a1 + a 2 z −1 + a3 z −2 + K + a N +1 z − N
P[z ] = b
−1
1 + b2 z −1 + b3 z − 2 + K + bN +1 z − N
Exercícios
1. (LATHI, 1998, p. 611) Resolva iterativamente (apenas os primeiros três ter-
mos) e escreva as seguintes equações com a notação operacional:
(a) y[n] − 0,5 y[n − 1] = 0 , com y[− 1] = 10
(b) y[n] + 2 y[n − 1] = x[n] com x[n] = e − n u[n] e y[− 1] = 0 .
3
Processamento Digital de Sinais – Aula 8T – Professor Marcio Eisencraft – abril 2007
• Assim, temos
[ ]
Q z −1 y0 [n] = 0
ou
(a1 )
+ a 2 z −1 + a 3 z −2 + K + a N +1 z − N y 0 [n ] = 0
ou
a1 y 0 [n] + a 2 y 0 [n − 1] + K + a N +1 y 0 [n − N ] = 0 (2)
γ n−m = γ − mγ n
Esta equação mostra que uma versão atrasada de γ n é a própria γ n multiplicada
por uma constante.
• Assim, uma solução da equação (2) deve ser da forma:
y 0 [n ] = cγ n (3)
4
Processamento Digital de Sinais – Aula 8T – Professor Marcio Eisencraft – abril 2007
z −1 y 0 [n] = y 0 [n − 1] = cγ n −1
z − 2 y 0 [n] = y 0 [n − 2] = cγ n − 2
L
z − N y 0 [n] = y 0 [n − N ] = cγ n − N
• Substituindo estes resultados na Equação (2) temos:
a1 y 0 [n] + a 2 y 0 [n − 1] + K + a N +1 y 0 [n − N ] = 0 ⇔
a1cγ n + a 2 cγ n −1 + K + a N +1cγ n − N = 0 ⇔
(
c a1 + a 2 γ −1 + K + a N +1γ − N γ n = 0 ) (4)
a1 + a2γ −1 + K + a N +1γ − N = 0
[ ]
Q γ −1 = 0 (5)
• A solução proposta cγ n (Eq. (3)) está correta desde que γ satisfaça a Equa-
ção (5). Para resolvê-la, multiplicamos os dois membros por γ N obtendo:
y0 [n ] = c1γ 1n + c2γ 2n + L + c N γ Nn
em que γ 1 , γ 2 ,..., γ N são as soluções da Eq. (5) e c1 , c2 ,..., c N são constantes ar-
bitrárias determinadas a partir de N condições auxiliares, geralmente dadas na
forma de condições iniciais.
• O polinômio Q[γ −1 ] é chamado de polinômio característico do sistema e a
equação Q γ
−1
[ ]
= 0 é chamada de equação característica do sistema.
5
Processamento Digital de Sinais – Aula 8T – Professor Marcio Eisencraft – abril 2007
c1γ 1 ,
n
tes γ 1 , γ 2 ,..., γ N com correspondentes modos característicos
c2γ 2 ,..., cN γ N .
n n
• Se duas ou mais raízes coincidirem (raízes repetidas), a forma dos modos ca-
racterísticos é modificada.
• Da mesma forma como em equações diferenciais, se uma raiz γ se repete r
vezes (raiz de multiplicidade r ), os modos característicos correspondente a
estas raízes são γ n , nγ n , n 2 γ n ,..., n r −1γ n .
• Assim, se um sistema tem raízes características γ 1 , γ 2 ,..., γ N sendo que γ 1
tem multiplicidade r , sua resposta natural é:
y 0 [n ] = c1γ 1n + c 2 nγ 1n + c3 n 2 γ 1n + K + c r n r γ rn + c r +1γ rn+1 + c r + 2 γ rn+ 2 + K + c n γ nn
• Outro problema que não foi abordado é o que acontece quando as raízes ca-
racterísticas são complexas.
• Logicamente, se a equação de diferenças tem coeficientes reais, as raízes
complexas só podem aparecer em pares conjugados. As raízes complexas
podem ser tratadas exatamente como raízes reais, no entanto é possível eli-
minar os números complexos trabalhando com soluções reais.
γ = γ e jβ e γ * = γ e − jβ
• A resposta à entrada nula é então dada por
6
Processamento Digital de Sinais – Aula 8T – Professor Marcio Eisencraft – abril 2007
y 0 [n] = c1γ n + c 2 γ * ( ) n
= c1 γ e jβn + c 2 γ e − jβn
n n
y 0 [n] =
c
2
γ
n
[e (
j βn +θ )
+ e − j ( βn +θ ) ]
= c γ cos(β n + θ )
n
Exercício
2. (2022) Encontre a resposta natural para a seguinte equação de diferenças:
y[n + 2] − 1,3 y[n + 1] + 0,4 y[n] = x[n] + x[n − 1]
7
Processamento Digital de Sinais – Aula 8T – Professor Marcio Eisencraft – abril 2007
∞
y[n] = x[n] ∗ h[n] = ∑ x[k ]h[n − k ]
k = −∞
Exercício
5. (2022) Dado o sistema:
y[n] − 0,9 y[n − 1] = x[n] − x[n − 1]
8
Processamento Digital de Sinais – Aula 9T – Professor Marcio Eisencraft – abril 2007
z n → H ( z )z n
em que o fator de amplitude complexa H (z ) será em geral uma função da variá-
vel complexa z .
1
Processamento Digital de Sinais – Aula 9T – Professor Marcio Eisencraft – abril 2007
x[n] = z n , (1)
em que z é um número complexo.
• A saída do sistema pode ser determinada através da soma de convolução
∞ ∞ ∞
y[n ] = ∑ h[k ]x[n − k ] = ∑ h[k ]z n−k
=z n
∑ h[k ]z −k
(2)
k = −∞ k = −∞ k = −∞
y[n] = H ( z )z n (3)
em que
∞
H (z ) = ∑ h[k ]z −k
. (4)
k = −∞
x[n ] = a1 z1n + a 2 z 2n + a 3 z 3n .
2
Processamento Digital de Sinais – Aula 9T – Professor Marcio Eisencraft – abril 2007
3
Processamento Digital de Sinais – Aula 9T – Professor Marcio Eisencraft – abril 2007
Exercícios
1. (OPPENHEIM; WILLSKY; NAWAB, 1997, p.185 modificado) Considere
um sistema LIT cuja saída seja a entrada atrasada de três amostras, ou seja,
y[n ] = x[n − 3] .
Pede-se:
n
3. (MITRA, 2001, p. 277) Mostre que a função a[n] = z n em que z é uma cons-
tante complexa é uma autofunção de um sistema LIT de tempo discreto. Seria
v[n] = z n u[n] também uma autofunção de um sistema LIT?
4
Processamento Digital de Sinais – Aula 11T – Professor Marcio Eisencraft – abril 2007
1
Processamento Digital de Sinais – Aula 11T – Professor Marcio Eisencraft – abril 2007
e ± j 3ω0t ,...
po discreto com período N 0 pode ser representado por uma série de Fourier
2π
de tempo discreto com freqüência fundamental Ω 0 = e suas harmônicas.
N0
g k = g k + N 0 = g k + 2 N 0 = L = g k + rN 0
2
Processamento Digital de Sinais – Aula 11T – Professor Marcio Eisencraft – abril 2007
em que
N 0 −1
1
ak =
N0
∑ x[n]e
n =0
− jkΩ 0 n
e Ω0 =
2π
N0
. (3)
3
Processamento Digital de Sinais – Aula 11T – Professor Marcio Eisencraft – abril 2007
ak = ak e j∠ak
O gráfico de ak por Ω é chamado de espectro de amplitude e o de ∠a k por
Ω é chamado de espectro de ângulo (ou fase). Estes dois gráficos juntos são
4
Processamento Digital de Sinais – Aula 11T – Professor Marcio Eisencraft – abril 2007
∑ φ [r ] = ∑ φ [r ]
r =0 r = N0
(4)
• Isto ocorre porque o lado direito da Equação (4) é a soma de todos os N 0 va-
lores consecutivos de φ [r ]. Como φ [r ] é periódica, esta soma precisa ser a
mesma independentemente de onde a começamos.
• Por outro lado, e − jkΩ n é periódica com período N 0 por que:
0
ca de período N 0 .
1
e ak =
N0
∑ x[n]e
n= N0
− jkΩ 0 n
(6)
5
Processamento Digital de Sinais – Aula 11T – Professor Marcio Eisencraft – abril 2007
• Mesmo assim, precisamos lembrar que para sintetizar x[n] precisamos adi-
cionar apenas N 0 componentes sucessivas.
2π
• As componentes espectrais a k estão separadas pela freqüência Ω 0 = e e-
N0
• As equações (7) e (8) mostram que tanto x[n] quanto seu espectro a k são pe-
riódicos e ambos têm exatamente o mesmo número de componentes ( N 0 ) em
um período. O período de x[n] é N 0 e o de a k é 2π radianos.
ak = a− k e ∠ak = −∠a− k
sendo assim, ak é uma função par e ∠a k é uma função ímpar de k .
Exercícios
1. (3022) Seja o seguinte sinal de tempo discreto periódico:
6
Processamento Digital de Sinais – Aula 11T – Professor Marcio Eisencraft – abril 2007
para 0 ≤ k ≤ N 0 − 1 .
7
Processamento Digital de Sinais – Aula 12T – Professor Marcio Eisencraft – julho 2006
x[n] = ∑ k
a e jkΩ 0 n
k = N0
em que
∑ x[n]e
1 − jkΩ0 n
ak = e Ω0 =
2π
.
N0 n= N0 N0
ak = a− k e ∠ak = −∠a− k
sendo assim, ak é uma função par e ∠a k é uma função ímpar de k .
1
Processamento Digital de Sinais – Aula 12T – Professor Marcio Eisencraft – julho 2006
x[n] =
1
∑ ∑ ak
2 2
N n= N k= N
2
Processamento Digital de Sinais – Aula 12T – Professor Marcio Eisencraft – julho 2006
Exercícios
1. (OPPENHEIM; WILLSKY; NAWAB, 1997, p. 216) Considere o sinal:
⎛ 2π ⎞ ⎛ 2π ⎞ ⎛ 4π π⎞
x[n] = 1 + sin ⎜ n ⎟ + 3 cos⎜ n ⎟ + cos⎜ n+ ⎟.
⎝ 9 ⎠ ⎝ 9 ⎠ ⎝ 9 2⎠
2π π
Neste caso N 0 = 32 e Ω 0 = = . Desta forma,
32 16
π
x[n] = ∑a e
jk n
16
k
k = 32
em que
π
[ ]
1 − jk n
ak = ∑
32 n= 32
x n e 16
(*)
3
Processamento Digital de Sinais – Aula 12T – Professor Marcio Eisencraft – julho 2006
π
1 4 − jk 16 n
ak = ∑e
32 n=−4
π
−j k
Esta é uma progressão geométrica com razão e 16
. Assim,
πk 9
⎡ 4πk −j ⎤ ⎡ j 416πk −j
πk 5
⎤
1 ⎢ 16 1 − e
j 16
⎥ 1 ⎢e − e 16 ⎥
ak = e = =
32 ⎢ −j
πk ⎥
32 ⎢ −j
πk ⎥
⎢⎣ 1− e 16 ⎥⎦ ⎢⎣ 1 − e 16 ⎥⎦
0 , 5πk
−j ⎡ j 4,165πk −j
πk 4 , 5
⎤ ⎛ 4,5πk ⎞
e 16
⎢e − e 16 ⎥ sin ⎜ ⎟
1 ⎣ ⎦ 1 ⎝ 16 ⎠
= =
32 − j 0,165πk ⎡ j 0,165πk −j
0 , 5πk
⎤ 32 ⎛ 0,5πk ⎞
e ⎢ e − e 16
⎥ sin ⎜ ⎟
⎣ ⎦ ⎝ 16 ⎠
⎛ 1 ⎞ sin (4,5kΩ 0 )
=⎜ ⎟
⎝ 32 ⎠ sin (0,5kΩ 0 )
π
com Ω 0 = .
16
Este resultado é mostrado na figura a seguir. Repare que neste exemplo a k é
real o que é esperado já que x[n] é par (ver tabela da Figura 1).
ak
7
c. ∑ (− 1) x[n] = 1
n=2
n
4
Processamento Digital de Sinais – Aula 12T – Professor Marcio Eisencraft – julho 2006
determine os valores de a 0 , a −1 , a −2 e a −3 .
5
Processamento Digital de Sinais – Aula 13T – Professor Marcio Eisencraft – julho 2006
1
Processamento Digital de Sinais – Aula 13T – Professor Marcio Eisencraft – julho 2006
2
Processamento Digital de Sinais – Aula 13T – Professor Marcio Eisencraft – julho 2006
Figura 1 – Magnitudes das respostas em freqüência de circuitos equalizadores para uma série
particular de alto-falantes, mostrado numa escala de 20 log H que é conhecida como escala
decibel (dB). (a) Filtro de baixas-freqüências controlado por uma chave de duas posições; (b)
limites de freqüência superiores e inferiores de um filtro de freqüência continuamente ajustá-
vel; (c) resposta em freqüência fixa do estágio de equalização (OPPENHEIM; WILLSKY;
NAWAB, 1997).
3
Processamento Digital de Sinais – Aula 13T – Professor Marcio Eisencraft – julho 2006
4
Processamento Digital de Sinais – Aula 13T – Professor Marcio Eisencraft – julho 2006
Exercícios
1. Considere o seguinte sistema média móvel já analisado em aulas anteriores:
5
Processamento Digital de Sinais – Aula 14T – Professor Marcio Eisencraft – abril 2007
1
Processamento Digital de Sinais – Aula 14T – Professor Marcio Eisencraft – abril 2007
Sistemas com esta forma podem ser usados para cumprir um grande número
de objetivos de filtragem, incluindo filtragem seletiva em freqüência.
Um exemplo freqüentemente usado deste tipo de filtro é o filtro média móvel
em que a saída y[n] para qualquer n - por exemplo, n0 - é a média dos valo-
res de x[n] nas vizinhanças de n0 .
A idéia básica é que tomando a média dos valores localmente, componentes
de alta freqüência (rápidas) da entrada serão amenizadas e as variações de al-
ta freqüência permanecerão. Assim, este filtro corresponde a uma suavização
ou filtragem passa-baixas da seqüência original. Um exemplo simples com
dois pontos foi visto na aula passada.
Um exemplo um pouco mais complexo é o filtro média móvel com três pon-
tos que tem a seguinte relação entrada-saída:
2
Processamento Digital de Sinais – Aula 14T – Professor Marcio Eisencraft – abril 2007
Mostre que se a entrada x[n] para este sistema tiver período N = 3 , a saída y[n]
só tem um coeficiente da série de Fourier não nulo por período.
3
Processamento Digital de Sinais – Aula 15T – Professor Marcio Eisencraft – novembro 2007
• O par (1) e (2) pode ser aplicado a seqüências quaisquer, desde que:
∞
∑ h[n] < ∞
n = −∞
• O par (1) e (2) é conhecido por par DTFT em que (1) é a análise e (2) é a sín-
tese.
Exercícios
1. (HAYKIN; VEEN, 2001, p. 191) Encontre a TFTD da seqüência x[n] = α n u[n]
com α real e sendo α < 1 .
1
Processamento Digital de Sinais – Aula 15T – Professor Marcio Eisencraft – novembro 2007
⎪1, Ω ≤ W
⎧
H (e j Ω ) = ⎪
⎨
⎪
⎪ 0, W < Ω <π
⎩
−π < Ω < π .
⎧1, n = ±2
Resposta: x[n] = ⎨ .
⎩0, caso contrário
⎧2 n , 0≤n≤9
6. Encontre a TFTD de x[n] = ⎨ .
⎩0, caso contrário
1 − 210 e − j 10Ω
Resposta: X (e j Ω ) = .
1 − 2e − jΩ
Y (e j Ω ) = X (e j Ω ) H (e j Ω ) .
2
Processamento Digital de Sinais – Aula 15T – Professor Marcio Eisencraft – novembro 2007
3
Universidade Presbiteriana Mackenzie
Curso de Engenharia Elétrica
PRÁTICA
1
Processamento Digital de Sinais – Aula 1P – Professor Marcio Eisencraft – agosto 2007
(f) Número de e-mails que chegaram à sua caixa de entrada verificada a cada meia hora.
2
Processamento Digital de Sinais – Aula 1P – Professor Marcio Eisencraft – agosto 2007
3
Processamento Digital de Sinais – Aula 1P – Professor Marcio Eisencraft – agosto 2007
Exercício
1. Classifique todos os sinais mostrados nas figuras anteriores em sinais de tempo discreto
ou tempo contínuo; analógicos ou digitais.
o Sensoriamento remoto;
http://www.ltid.inpe.br
4
Processamento Digital de Sinais – Aula 1P – Professor Marcio Eisencraft – agosto 2007
Exercícios
2. Classifique os seguintes sinais em:
• Tempo discreto ou tempo contínuo
• Analógico ou digital
5
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
1. Introdução
O Matlab é uma ferramenta muito útil no estudo de problemas e no desenvolvimento
de projetos em Engenharia sendo utilizado em universidades e empresas ao redor do mundo.
Na área de Engenharia Elétrica e, mais precisamente, em Processamento de Sinais
vem adquirindo um caráter quase fundamental.
O principal motivo deste sucesso é a utilização maciça de vetores e matrizes para re-
presentar dados de uma forma simples (Matlab = Matrix Laboratory). Esta forma de repre-
sentação praticamente elimina a necessidade de utilização de laços FOR ou WHILE simplifi-
cando e acelerando muito os programas. EM OUTRAS PALAVRAS, EM MATLAB, SEM-
PRE QUE POSSÍVEL (OU SEJA, QUASE SEMPRE!) NÃO UTILIZE LAÇOS FOR OU
WHILE!
O objetivo desta aula é (re) ver alguns conceitos básicos de programação em Matlab.
Durante o curso veremos muitos outros detalhes técnicos.
Lembre-se: sempre que você ficar na dúvida sobre a utilização de um comando, a fun-
ção <help comando> pode lhe ajudar.
2. Gerando vetores
2.1. O operador :
O operador : é utilizado para gerar e acessar elementos de um vetor.
Vetor = valor inicial: passo: valor final
Quando o passo é unitário, ele pode ser omitido.
• Exemplos de utilização
A. gerar um vetor x com os números inteiros de zero a cinco
>> x = 0:5
x =
0 1 2 3 4 5
1
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
>> y = 0:0.1:1
y =
0 0.1000 0.2000 0.3000 0.4000 0.5000
0.6000 0.7000 0.8000 0.9000 1.0000
Exercício
1. Gerar um vetor x de números pares de 0 a 50.
Comandos:
>> x = zeros(1,10)
x =
0 0 0 0 0 0 0 0 0 0
Exercício
3. Gere uma matriz 2x2 constituída por zeros.
Comandos:
Exercício
4. Construa um vetor constituído pelos números pares de 0 a 10 seguido pelos números ím-
pares de 0 a 10.
Comandos:
3
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
• Exemplos de aplicação
I) x + y [2 2 10]
ii) x – y [2 4 4]
iii) x.*y [0 -3 21]
Exercício
5. Sendo x = [2.1 -2 3] e y = [0 -1 3], escreva o vetor resultante das seguintes
operações:
i) x+y ii) x-y iii) 3*x iv) x.*y
3. Gráficos
Uma outra característica muito interessante do Matlab para um engenheiro é a facili-
dade de se construir gráficos complicados com ele de uma maneira muito simples. Os dois
comandos mais utilizados são:
4
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
• Exemplos de aplicação
a. Faça um gráfico da função y = sin(x) para x ∈ [0,4π ]
>> x = linspace(0,4*pi,5000);
>> y = sin(x);
>> plot(x,y)
5
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
Exercícios
π π
( ) ( )
2 2
6. Faça um gráfico de y [ n ] = sin n e z [ n ] = cos n para −30 ≤ n ≤ 30 na
12 12
mesma figura. O gráfico de y [ n ] deverá ficar em azul e o de z [ n ] em vermelho.
Comandos:
4. Scripts
Até este ponto, todas as nossas interações com o Matlab têm sido através da linha de co-
mando. Entramos comandos ou funções na linha de comando e o Matlab interpreta nossa
entrada e toma a ação apropriada. Este é o modo de operação preferencial quando nossa
sessão de trabalho é curta e não repetitiva.
No entanto, o real poder do Matlab para análise e projeto de sistemas vêm da sua habili-
dade de executar uma longa seqüência de comandos armazenados num arquivo. Estes ar-
quivos são chamados de arquivos-M porque seus nomes têm a forma nomearq.m.
Um script é um tipo de arquivo-M. Scripts são arquivos-textos comuns e podem ser cria-
dos usando um editor de texto.
Um script é uma seqüência de comandos e funções comuns usados na linha de comando.
Um script é invocado na linha de comando digitando-se o nome do arquivo. Scripts po-
dem invocar outros scripts. Quando um script é invocado, o Matlab executa os comandos
e funções no arquivo como se eles tivessem sido digitados diretamente na linha de co-
mando.
6
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
7
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
Ao escrever scripts é sempre interessante utilizar comentários, linhas que começam com
%. Se você escrever linhas de comentário antes do começo das instruções do script Ao
utilizar o comando help nomearq o Matlab apresenta estas linhas na tela. Por exem-
plo,
>> help plotdata
Este e um script para fazer um grafico da funcao y = sin(alfa*t)
O valor de alfa precisa existir no espaco de trabalho antes
de se chamar este script
5. Funções
Assim como os scripts, as funções definidas pelo usuário estão entre os recursos mais im-
portantes e utilizados do Matlab. Uma função é um script que recebe um ou mais parâme-
tros do teclado e pode devolver um ou mais parâmetros ou executar uma tarefa.
O formato de uma função no Matlab é o seguinte
function [outarg1, outarg2,...] = fname(inarg1, inarg2,...)
% Um comentário
% Mais um comentário
....
(código executável)
....
fname é o nome da função criada e deve ser o nome do arquivo m em que foi gravado o
arquivo. inarg1, inarg2,... são os argumentos de entrada e outarg1, ou-
targ2,... são os argumentos de saída.
A seguir damos um exemplo bastante simples de função. A função somateste recebe
dois argumentos a, b e retorna a soma deles.
function res = somateste(a,b);
%Funcao para somar dois numeros a e b
res = a+b;
Uma vez que você tenha salvado este arquivo como somateste no diretório corrente,
você pode usá-lo como nos exemplos a seguir:
>> somateste(2, 4)
ans =
6
>> a = 5;
>> b = -3;
>> res = somateste(a,b)
8
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
res =
2
Exercícios
7. (a) Digite o script plotdata da página 7 e gere os gráficos dos exemplos subseqüentes.
(b) Reescreva o script plotdata visto acima de forma que ele seja uma função que re-
cebe a variável alfa. Ou seja, escreva uma função que faça um gráfico da função
y (t ) = sin αt no intervalo 0 ≤ t ≤ 1 e α é um parâmetro escolhido pelo usuário. Por e-
xemplo, o comando:
>> plotdada(50)
deve gerar o gráfico
Resposta (listagem):
8. Gere um vetor de 100 valores aleatórios com distribuição uniforme no intervalo [0,1] .
Dica: use a função rand (não sabe como usar? Para que serve o help?).
Comandos:
9. (1022) Escreva uma seqüência de comandos do Matlab que forneça um vetor contendo
100 valores aleatórios uniformemente distribuídos no intervalo -1 a 1 e que faça um gráfi-
co deste sinal.
Comandos:
9
Processamento Digital de Sinais – Aula 2P – Professor Marcio Eisencraft –agosto 2007
10. (1031) Escreva uma seqüência de comandos Matlab que gere um gráfico do sinal
⎛π ⎞
x[n] = cos⎜ n ⎟ + 0,2r [n] onde r [n ] é um vetor de números aleatórios com distribuição
⎝8 ⎠
uniforme entre -1 e 1. Faça 0 ≤ n ≤ 99 . (Dica: use o comando rand).
Comandos:
11. (1032) Escreva uma função Matlab chamada pulso2graf cujas entradas sejam dois
números inteiros a e b com a < b . A função deverá fazer o gráfico de um pulso com
amplitude 2 no intervalo a ≤ n ≤ b . O gráfico deve começar em a − 2 e terminar em
b+2.
Por exemplo, ao digitarmos:
>> pulso2graf(2,8);
devemos obter a figura
Listagem da função:
10
Processamento Digital de Sinais – Aula 3P – Professores Marcio Eisencraft – agosto 2007
1. Introdução
• Foi visto nas aulas teóricas que os objetos sobre os quais trabalhamos na área de Proces-
samento Digital de Sinais são os sinais de tempo discreto. Estes sinais podem ser vistos
como uma simples seqüência de números.
• Na Aula 2P, por outro lado, foi visto que um dos principais recursos do Matlab é trabalhar
de forma muito simples e intuitiva com seqüências (ou vetores).
• Na aula de hoje, são estudados alguns exemplos de como gerar seqüências (especialmente
as seqüências básicas vistas na Aula 3T) usando o Matlab. Em outras aulas de prática será
explorado o que se pode fazer com essas seqüências no Matlab.
• Sinais degrau deslocados no tempo podem ser utilizados para descrever pulsos retangula-
res. Por exemplo, a seguinte seqüência de comandos gera um pulso retangular centralizado
na origem.
>> n = -50:50;
>> u1 = [zeros(1,40) ones(1,61)];
>> u2 = [zeros(1,61) ones(1,40)];
>> pulso = u1-u2;
>> subplot(3,1,1); stem(n,u1);
>> subplot(3,1,2); stem(n,u2);
>> subplot(3,1,3); stem(n,pulso);
2
Processamento Digital de Sinais – Aula 3P – Professores Marcio Eisencraft – agosto 2007
Exercício
1. Um pulso retangular x[n] é definido por
⎧8, 0 ≤ n ≤ 10
x[n] = ⎨
⎩0, caso contrário
2. (INGLE; PROAKIS, 2000, p.13) (1041) Escreva comandos Matlab para gerar gráficos de
cada um dos seguintes sinais nos intervalos indicados:
(a) x[n] = 2δ [n + 2] − δ [n − 4] , − 5 ≤ n ≤ 5 .
(b) x[n] = n(u[n] − u[n − 10]) + 10e −0,3(n −10 ) (u[n − 10] − u[n − 20]) , 0 ≤ n ≤ 20 .
RESOLUÇÃO (comandos Matlab utilizados):
3
Processamento Digital de Sinais – Aula 3P – Professores Marcio Eisencraft – agosto 2007
>> n = -20:20;
>> x = (0.85).^n;
>> stem(n,x);
Exercício
3. Faça uma rotina (arquivo .m) chamado expgraf em Matlab cuja entrada seja um núme-
ro real a. Este programa deverá fazer o gráfico de x[n] = a n , para 0 ≤ n ≤ 10 . Por exem-
plo, ao digitarmos:
>> expgraf(0.5);
deveremos obter o gráfico
RESOLUÇÃO:
4
Processamento Digital de Sinais – Aula 3P – Professores Marcio Eisencraft – agosto 2007
• Lembrando do que Foi visto na Aula 3T, um sinal senoidal de tempo discreto
x[n] = A sin(Ωn + φ ) é periódico de período fundamental N se existir um N inteiro posi-
2πm
tivo tal que Ω = , com m inteiro. Aplicando esta condição ao exemplo anterior, ve-
N
mos que ele é periódico de período N = 12 o que é confirmado pelo gráfico acima.
Exercícios
4. Faça em uma mesma figura (use subplot) os gráficos dos sinais x[n] = cos(0,75πn ) e
y[n] = cos(1,25πn ) . Compare os gráficos obtidos. O gráfico deve conter dois períodos dos
sinais.
RESOLUÇÃO (comandos Matlab utilizados e comentários):
5
Processamento Digital de Sinais – Aula 3P – Professores Marcio Eisencraft – agosto 2007
5. Faça uma rotina (arquivo .m) cosgraf em Matlab cuja entrada seja os números reais A
⎢ 6π ⎥
e Ω . Este programa deverá fazer o gráfico de x[n] = A cos(Ωn ) , para 0 ≤ n ≤ ⎢ ⎥ . Por
⎣Ω⎦
exemplo, ao se digitar:
>> cosgraf(1,pi/6);
deve-se obter o gráfico
7. Modifique o programa do exercício anterior para que ele calcule a energia de um sinal
x[n].
RESPOSTAS (Programa e resultados)
6
Processamento Digital de Sinais – Aula 4P – Professor Marcio Eisencraft - agosto 2007
¾ O objetivo desta aula é reforçar o conteúdo visto na Aula 4T, ou seja, sistemas (ou filtros)
de tempo discreto e sua classificação. Além disso, veremos uma maneira de implementar
estes filtros no Matlab usando o pacote simulink. Em aulas futuras, veremos formas
mais eficientes de implementações de filtros digitais no Matlab.
¾ Através dos exemplos, ilustraremos um conceito muito importante em PDS: filtros FIR
(resposta impulsiva finita) e IIR (resposta impulsiva infinita). Um filtro é dito FIR se sua
resposta ao impulso unitário tem um número finito de amostras não nulas. Um filtro é dito
IIR se sua resposta ao impulso unitário possui um número infinito de amostras.
Exercícios
1. (Um multiplicador) Dado o filtro a seguir:
(d) Rode o filtro no Matlab usando como entrada um impulso x[n] = δ [n] . Faça 0 ≤ n ≤ 50 e
obtenha um gráfico de y[n] . Este filtro tem resposta impulsiva finita (FIR) ou infinita (IIR)?
1
Processamento Digital de Sinais – Aula 4P – Professor Marcio Eisencraft - agosto 2007
(d) Rode o filtro no Matlab usando como entrada um impulso x[n] = δ [n] . Faça 0 ≤ n ≤ 50 e
obtenha um gráfico de y[n] . Este filtro tem resposta impulsiva finita (FIR) ou infinita (IIR)?
2
Processamento Digital de Sinais – Aula 4P – Professor Marcio Eisencraft - agosto 2007
(d) Rode o filtro no Matlab usando como entrada um impulso x[n] = δ [n] . Faça 0 ≤ n ≤ 50 e
obtenha um gráfico de y[n] . Este filtro tem resposta impulsiva finita (FIR) ou infinita (IIR)?
4. Implemente o seguinte diagrama de blocos que utiliza o arquivo voz.wav que está dis-
ponível na pasta da disciplina. Descreva o resultado da simulação e verifique o que ocorre
ao se alterar os parâmetros do diagrama de blocos.
3
Processamento Digital de Sinais – Aula 5P – Professor Marcio Eisencraft – agosto 2007
Aula 5P – Amostragem
Senóides de tempo discreto
Bibliografia
HAYKIN, Simon; VAN VEEN, Barry. Sinais e sistemas. Porto alegre: Bookman, 2001. 668 p. : il. (algu-
mas ISBN 8573077417). Páginas 283-309.
LATHI, B. P. Signal processing and linear systems. New York: Oxford University Press, c1998. 850 p. :
il. ; 27 cm ISBN 0195219171. Páginas 546-559.
1. Introdução
• Uma senóide de tempo discreto genérica pode ser expressa como C cos(Ωn + θ ) , em que
C é sua amplitude, Ω é sua freqüência (em radianos por amostras) e θ é sua fase (em ra-
⎛π π⎞
dianos). A figura a seguir mostra senóide de tempo discreto cos⎜ n + ⎟ .
⎝ 12 4⎠
cos(− Ωn + θ ) = cos(Ωn − θ )
Assim, tanto cos(− Ωn + θ ) quanto cos(Ωn − θ ) tem a mesma freqüência ( Ω ). Assim, a fre-
qüência de cos(Ωn + θ ) é Ω .
1
Processamento Digital de Sinais – Aula 5P – Professor Marcio Eisencraft – agosto 2007
Exercício
1. Use o Matlab para fazer a figura anterior. Ou seja, escreva uma seqüência de comandos
⎛π π⎞
que gere o gráfico de cos⎜ n + ⎟ .
⎝ 12 4⎠
RESPOSTA: (Comandos e comentários)
Exercício
⎛π ⎞
2. Seja o sinal de tempo contínuo x(t ) = cos⎜ t ⎟ .
⎝6 ⎠
(a) Qual o período deste sinal? Faça um gráfico deste sinal para − 30 ≤ t ≤ 30 usando o
Matlab.
2
Processamento Digital de Sinais – Aula 5P – Professor Marcio Eisencraft – agosto 2007
(b) Agora suponha que você amostre este sinal com um período de amostragem T = 1 .
Escreva o sinal de tempo discreto resultante y[n] . Qual o período deste sinal? Usando o
Matlab faça um gráfico deste sinal sem apagar o anterior (use o comando hold).
RESPOSTA: (Resolução, comandos e comentários).
3
Processamento Digital de Sinais – Aula 5P – Professor Marcio Eisencraft – agosto 2007
Exercício
⎛π ⎞
4. Usando o comando subplot faça os gráficos de x1 [n] = cos⎜ n + 0,1⎟ ,
⎝8 ⎠
⎛⎛ π ⎞ ⎞ ⎛ 17 ⎞
x 2 [n] = cos⎜⎜ ⎜ + 2π ⎟n + 0,1⎟⎟ = cos⎜ πn + 0,1⎟ e
⎝⎝ 8 ⎠ ⎠ ⎝8 ⎠
⎛⎛ π ⎞ ⎞ ⎛ 15 ⎞
x3 [n] = cos⎜⎜ ⎜ − 2π ⎟n + 0,1⎟⎟ = cos⎜ − πn + 0,1⎟ . Calcule os períodos dos 3 sinais e
⎝⎝ 8 ⎠ ⎠ ⎝ 8 ⎠
compare.
RESPOSTA: (Resolução, comandos e comentários):
x[n] = x[n + N 0 ]
para algum inteiro positivo N 0 . O menor N 0 que satisfaz esta equação é o período de x[n] .
A figura a seguir mostra um exemplo de sinal periódico de período 6.
cos Ωn = cos(Ω(n + N 0 ))
= cos(Ωn + ΩN 0 )
4
Processamento Digital de Sinais – Aula 5P – Professor Marcio Eisencraft – agosto 2007
ΩN 0 = 2πm m inteiro
ou
Ω m
=
2π N 0
• Como tanto m quanto N 0 são inteiros, a equação acima implica que a senóide cos Ωn é
Ω
periódica apenas se for um número racional. Neste caso, o período N 0 é dado por:
2π
⎛ 2π ⎞
N 0 = m⎜ ⎟ (1)
⎝Ω⎠
⎛ 2π ⎞
• Para calcular N 0 , precisamos escolher o menor valor de m que fará m⎜ ⎟ um intei-
⎝Ω⎠
4π ⎛ 2π ⎞ 17
ro. Por exemplo, se Ω = , então o menor valor de m que fará m⎜ ⎟=m um
17 ⎝Ω⎠ 2
inteiro é 2. Assim,
2π 17
N0 = m = 2 = 17 .
Ω 2
• Usando um argumento similar, podemos mostrar que esta discussão também se aplica
à exponencial de tempo discreto e jΩn . Assim, a exponencial de tempo discreto e jΩn é pe-
Ω
riódica apenas se é um número racional. †
2π
†
Podemos também demonstrar este ponto observando que se e jΩn é periódico de período N 0 , então:
e jΩn = e jΩ (n + N 0 ) = e jΩn e jΩN 0 .
Este resultado só é possível se ΩN 0 = 2πm ( m inteiro) Esta equação leva à Equação (1).
5
Processamento Digital de Sinais – Aula 5P – Professor Marcio Eisencraft – agosto 2007
2π
xistem amostras (elementos) de cos Ωn em um ciclo desta envoltória. Este número
Ω
pode ser inteiro ou não.
⎛π ⎞ ⎛ 4π ⎞
• A figura seguinte mostra três senóides cos⎜ n ⎟ , cos⎜ n ⎟ e cos(0,8n ) .
⎝4 ⎠ ⎝ 17 ⎠
⎛π ⎞
• O primeiro gráfico mostra cos⎜ n ⎟ para o qual cabem exatamente 8 amostras em ca-
⎝4 ⎠
⎛ 2π ⎞ ⎛π ⎞
da período de sua envoltória ⎜ = 8 ⎟ . Assim, cos⎜ n ⎟ repete-se a cada ciclo de sua
⎝Ω ⎠ ⎝4 ⎠
⎛π ⎞
envoltória. Claramente cos⎜ n ⎟ é periódica com período 8.
⎝4 ⎠
⎛ 4π ⎞
• Por outro lado, o segundo gráfico, que mostra cos⎜ n ⎟ , tem uma média de
⎝ 17 ⎠
2π
= 8,5 amostras (um número não inteiro) em um ciclo de sua envoltória. Portanto, o
Ω
segundo ciclo da envoltória não será idêntico ao primeiro ciclo. Mas existem 17 amostras
(um número inteiro) em dois ciclos da envoltória. Assim, o padrão torna-se repetitivo a
⎛ 4π ⎞
cada dois ciclos da envoltória. Portanto, cos⎜ n ⎟ também é periódico, mas seu período
⎝ 17 ⎠
é 17 (dois ciclos de sua envoltória).
6
Processamento Digital de Sinais – Aula 5P – Professor Marcio Eisencraft – agosto 2007
• Esta observação indica que um sinal cos Ωn é periódico somente se podemos encaixar
um número inteiro ( N 0 ) de amostras em m número inteiro de ciclos de sua envoltória.
2π
Como o período da envoltória é concluímos que
Ω
⎛ 2π ⎞
N 0 = m⎜ ⎟
⎝ Ω ⎠
que é exatamente a equação a que tínhamos chegado.
Ω
• Se é irracional, é impossível encaixar um número inteiro ( N 0 ) de amostras em um
2π
número inteiro ( m ) de ciclos da envoltória e o padrão nunca se torna repetitivo. Por e-
xemplo, a senóide cos(0,8n ) no terceiro gráfico da figura acima tem uma média de 2,5π
amostras (um número irracional) por ciclo da envoltória e o padrão não pode ser feito re-
petitivo sobre um número inteiro ( m ) de ciclos da envoltória; assim cos(0,8n ) não é peri-
ódico.
Exercícios
7
Processamento Digital de Sinais – Aula 6P – Professor Marcio Eisencraft – setembro 2007
RESOLUÇÃO
1
Processamento Digital de Sinais – Aula 6P – Professor Marcio Eisencraft – setembro 2007
Aplicações
4. Um sistema de média móvel é um sistema que calcula a média dos P últimos valores da
entrada com o objetivo de “suavizar” o sinal de saída, ou seja, diminuir suas variações.
Ele pode ser expresso por:
1
{[p ] = (z[p] + z[p − 1] + z[p − 2] + … + z[p − P ])
P +1
(a) Calcule a resposta impulsiva para o sistema média móvel com P = 4 , ou seja, para:
1
{[p] = (z[p] + z[p − 1] + z[p − 2] + z[p − 3] + z[p − 4])
5
RESOLUÇÃO
2
Processamento Digital de Sinais – Aula 6P – Professor Marcio Eisencraft – setembro 2007
(b) Utilizando convolução, calcule a resposta deste sistema à entrada z[p] = w[p] − w[p − 3] .
RESOLUÇÃO
(d) Utilize agora como a entrada uma senóide de tempo discreto com período P = 15 e
definida de 0 a 100 somada a um ruído branco gaussiano com desvio-padrão 0,3 (use o
comando r = 0.3*randn(1,101)). Verifique e interprete a saída utilizando o comando
conv. (Coloque numa mesma figura a entrada e a saída. Use subplot).
COMANDOS UTILIZADOS E INTERPRETAÇÃO
3
Processamento Digital de Sinais – Aula 6P – Professor Marcio Eisencraft – setembro 2007
(a) Verifique o comprimento do vetor x1 utilizando o comando whos e faça um gráfico deste
sinal.
(b) Obtenha a resposta impulsiva de um filtro média móvel do Exercício 1 para P = 49 .
(c) Utilize o comando conv e a resposta impulsiva da letra (b) para obter uma versão
“suavizada” do sinal visto na letra (a). Usando subplot, obtenha um gráfico do sinal
original e de sua versão suavizada na mesma figura. Comente sobre os resultados obtidos.
COMANDOS UTILIZADOS E RESPOSTAS (USE O VERSO TAMBÉM).
4
Processamento Digital de Sinais – Aula 7P – Professor Marcio Eisencraft – setembro 2006
1. (HSU, 2004, p. 31) (2,0) Um sinal de tempo discreto x [ n ] é mostrado na figura a seguir. Faça
2.5
2
x[n]
1.5
0.5
0
-2 -1 0 1 2 3 4 5 6
n
2. (HAYKIN; VEEN, 2001, p. 81) Determine se os seguintes sinais são periódicos. Se o forem,
encontre o período fundamental:
(c) (0,5) x n =
[ ]
∑ { δ [ n − 3k ] + δ [ n − k 2 ]}
k =−∞
3. (HSU, 2004, p. 43) Calcule a energia e a potência dos seguintes sinais e classifique-os em
sinal de energia, sinal de potência ou nenhum dos dois.
1
Processamento Digital de Sinais – Aula 7P – Professor Marcio Eisencraft – setembro 2006
(b) (1,0) x [ n ] = u [ n ] .
{ }↔ { 1; 2 ; − 1; }
H
x 1 [n ] = − 1; 2; 1 y 1 [n ] = 0; 1
↑ ↑
{ 1; − 1 }↔ = { − 1; 1; 0 ; }
H
x 2 [n ] = −1 y 2 [n ] 2
↑ ↑
{ 0; 1} = { 1; 2 ; 1 }
H
x 3 [n ] = 1; ↔ y 3 [n ]
↑ ↑
{
5. (INGLE; PROAKIS, 2000, p. 35) Seja x[n] = 1; − 2; 4; 6; − 5; 8; 10 . Obtenha e
↑
}
faça um gráfico das seguintes seqüências no intervalo −10 ≤ n ≤ 10 .
(a) (1,0) x1 [n] = 3 x[n + 2] + x[n − 4] − 2 x[n ]
2
Processamento Digital de Sinais – Aula 8P – Professores Marcio Eisencraft – setembro 2007
Primeiramente, vamos considerar que as condições iniciais são nulas. Neste caso, para resol-
vê-la no Matlab, usamos o comando:
y = filter(B, A, x);
O vetor B contém os elementos d1 , d2 , … dO +1 e o vetor A contém os elementos c1 , c 2 , … c O +1 .
O vetor x contém os pontos do sinal de entrada.
Por exemplo, para encontrar os 20 primeiros pontos de {[p] , solução da equação de diferen-
ças {[p ] − 0,5 {[p − 1] = z[p] para z[p] = w[p] e condições iniciais nulas, usamos a seguinte se-
qüência de comandos:
>> n = 0:19;
>> x = ones(1,20);
>> B = [1];
>> A = [1 -0.5];
>> y = filter(B,A,x);
>> stem(n,y);
No caso de condições iniciais não nulas, usamos o comando filtic para transformar as
condições [ {[− 1], {[− 2], … , {[− P ]] nas condições iniciais usadas pelo comando filter.
Seja por exemplo, resolver o mesmo problema proposto anteriormente só que com condição
inicial {[− 1] = 2 . Usamos o seguinte conjunto de instruções:
>> n = 0:19;
>> x = ones(1,20);
>> B = [1];
>> A = [1 -0.5];
>> zi = filtic(B,A,[2]);
>> y = filter(B,A,x, zi);
1
Processamento Digital de Sinais – Aula 8P – Professores Marcio Eisencraft – setembro 2007
>> stem(n,y);
Exercícios
1. Seja a equação de diferenças
{[p ] − 0,5 {[p − 1] = z[p]
Para 0 ≤ p ≤ 19
(a) Calcule a resposta impulsiva deste sistema (use iterações).
RESOLUÇÃO:
⎛π ⎞
(e) Calcule a resposta deste sistema para a entrada z[p] = sin ⎜ p ⎟ e condições inicias nulas
⎝3 ⎠
usando o comando conv do Matlab.
COMANDOS E COMENTÁRIOS:
2
Processamento Digital de Sinais – Aula 8P – Professores Marcio Eisencraft – setembro 2007
2. No p -ésimo semestre, z[p] estudantes matriculam-se num curso que requer certo livro
texto. A editora vende {[p] cópias novas do livro no semestre p . Em média, um quarto
dos estudantes com livros em condições de vendas revende seus livros ao final do semes-
tre e a vida útil do livro é três semestres.
(a) Escreva a equação de diferenças relacionando {[p] , os novos livros vendidos pela editora
com z[p] , o número de estudantes matriculados no p -ésimo semestre, assumindo que cada
estudante compra um livro.
(b) Sendo o número de alunos num semestre sempre igual a 48 ( z[p] = 48w[p] ) quantos livros
esta editora deverá vender por semestre, depois de passado o transitório?
RESOLUÇÃO:
3
Processamento Digital de Sinais – Aula 8P – Professores Marcio Eisencraft – setembro 2007
clf;
‘N = 40;
B = [2.2403 2.4908 2.2403];
A = [1 -0.4 0.75];
h = impz(B,A,N);
%Faz um grafico da resposta impulsiva
stem(0:N-1,h);
xlabel('indice temporal n'); ylabel('Amplitude');
title('Resposta impulsiva');grid;
3. (MITRA, 1999, p.26) Rode o programa acima e gere a resposta impulsiva para o sistema
de tempo discreto da equação dada acima.
COMANDOS E COMENTÁRIOS:
4. (MITRA, 1999, p.26) Modifique o programa acima para gerar as primeiras 45 amostras da
resposta impulsiva do seguinte sistema LIT causal:
{[p ] + 0,71 {[p − 1] − 0,46 {[p − 2] − 0,62 {[p − 3] = 0,9 z[p ] − 0,45 z[p − 1] + 0,35 z[p − 2] + 0,002 z[p − 3]
COMANDOS E COMENTÁRIOS:
.
5. (MITRA, 1999, p.27) Escreva um programa Matlab que gere a resposta impulsiva do sis-
tema LIT do exercício anterior usando o comando filter; compute e faça um gráfico
das primeiras 40 amostras. Compare com o resultado obtido no Exercício 4.
COMANDOS E COMENTÁRIOS:
4
Processamento Digital de Sinais – Aula 9P – Professores Marcio Eisencraft – setembro 2007
Vamos ver agora uma possível aplicação dos conhecimentos que obtivemos até agora num
caso mais prático. O processamento de sinais de voz.
Para isso, serão disponibilizados para os alunos os arquivos de áudio voz.wav e tes-
te.wav.
Começaremos carregando o sinal no Matlab. Estando no diretório correto, fazemos:
>> [voz, fs, nbits] = wavread('voz.wav');
>> voz = voz';
Com estes comandos, o vetor voz conterá as amostras do arquivo voz.wav. A variável fs
contém a freqüência em que o sinal foi amostrado (Hz ou amostras/s) e a variável nbits
contém o número de bits utilizado para representar cada amostra.
Digitando whos podemos ver que o vetor voz é composto por 60000 amostras. Para “to-
carmos” o sinal no alto-falante do PC usamos o comando sound(<variável>,
<freqüência de amostragem>). Por exemplo, podemos fazer:
>> sound(voz,fs)
2. Se ele é composto por 60000 amostras, qual a duração em segundos deste sinal?
Resposta e comentários:
3. Utilizando o comando sound tente tocá-lo com um valor de fs diferente. O que aconte-
ce? Explique o que você ouviu.
Resposta e comentários:
1
Processamento Digital de Sinais – Aula 9P – Professores Marcio Eisencraft – setembro 2007
5. Obtenha um vetor vozmet contendo apenas os 30000 primeiros pontos de voz. Faça um
gráfico e toque o sinal vozmet.
Resposta e comentários:
6. Obtenha um vetor (chame-o, por exemplo, de vozinvert) que contenha as amostras do ve-
tor voz só que de traz pra frente. Toque-o usando sound. Faça um gráfico deste sinal.
Resposta e comentários:
7. Vimos que a potência de um sinal pode ser obtida fazendo-se uma média dos valores da
potência instantânea r[p] = z 2 [p] . Isto pode ser obtido no Matlab com o comando:
>> p = sum(voz.^2)/length(voz)
Qual a potência do sinal voz?
Resposta e comentários:
8. Para gerar um ruído com 60000 pontos e potência Pruido, pode ser usado o comando:
>> ruido = sqrt(Pruido)*randn(1,60000);
Gere um ruído com potência Pruido = 1 e ouça o resultado. Modifique a potência do ruí-
do e observe o que ocorre.
Resposta e comentários:
2
Processamento Digital de Sinais – Aula 9P – Professores Marcio Eisencraft – setembro 2007
"
"
10. Um filtro FIR pode ser utilizado para obtermos um efeito de eco acústico. Se o sinal é
amostrado a 8kHz, por exemplo, o seguinte filtro gera um eco de 0,5s.
{ [ p ] = z [ p ] + 0, 7 z [ p − 4000] .
Este filtro pode ser utilizando o comando filter. Obtenha e ouça o resultado da aplicação
deste filtro ao sinal teste.wav. Para lê-lo no Matlab, use o comando:
>> [x, fs] = wavread(‘teste.wav’);
Resposta e comentários:
3
Processamento Digital de Sinais– Aula 10P – Professor Marcio Eisencraft – setembro 2007
Uqpu"pçq/xqeânkequ: são produzidos usando ruído branco como entrada. Estes sons geralmen-
te são gerados por um fluxo turbulento de ar pela boca, por exemplo, quando se pronuncia
“sh”.
Assim, o modelo em tempo discreto da produção de voz é mostrado na Figura 4.
Um modelo em equações de diferenças para o trato vocal pode ser desenvolvido como se se-
gue.
Como cada amostra de sinal de voz é muito relacionada com as anteriores, o valor da amostra
atual de voz pode ser estimado como uma combinação linear das anteriores.
2
Processamento Digital de Sinais– Aula 10P – Professor Marcio Eisencraft – setembro 2007
Figura 4 – Modelo em diagrama de blocos da geração da fala humana (BURRUS et al., 1998).
r
uˆ[p] = ∑ α k u[p − k ]
(1)
k =1
O sinal û[p] é a estimação do sinal de voz u[p] para a p -ésima amostra. O erro entre o sinal
original e o estimado é:
3
Processamento Digital de Sinais– Aula 10P – Professor Marcio Eisencraft – setembro 2007
4 Modelo de predição
A combinação das duas equações acima leva a um modelo por equações de diferenças da pre-
dição do processo de fala:
r
u[p] − ∑ α k u[p − k ] = g[p] (3)
k =1
precisa ser transmitido e o sinal de voz pode ser tgeqpuvtwîfq no receptor utilizando a equa-
ção de diferenças acima.
No transmissor u[p] é a entrada do filtro de predição e g[p] é a saída. No receptor a situação é
a inversa.
A transmissão do sinal de erro resulta em economia substancial da banda de transmissão.
A Figura 5 mostra um exemplo de sinal predito, o erro e a reconstrução para um sinal de voz
u[p] .
1
original
-1
0 1 2 3 4 5 6 7 8
1 x 10
4
Predicao
-1
0 1 2 3 4 5 6 7 8
1 x 10
4
Erro de predicao
-1
0 1 2 3 4 5 6 7 8
1 x 10
4
Reconstruido
-1
0 1 2 3 4 5 6 7 8
4
x 10
5 Modelo de síntese
Pode-se modificar o mesmo modelo básico de predição de voz para usar em síntese de voz.
u [p] que imita o sinal de voz original, podemos substituir o
Se o objetivo for criar um sinal ~
erro g[p] por um sinal de entrada z[p] multiplicado por um ganho I .
Usando a mesma forma da equação de diferenças do modelo de predição, Eq. (3), resulta o
seguinte modelo de síntese:
r
u [p] − ∑α k ~
~ u [p − k ] = Iz[p] . (4)
k =1
Tipicamente, os coeficientes α k mudam a cada 10-20ms conforme o trato vocal muda para
Na síntese aplica-se uma seqüência de excitação conveniente para que naquele intervalo de
tempo seja gerada uma seqüência de sons adequada.
6 Transmissão de voz
Uma linha telefônica normal opera simplesmente amostrando a voz de uma pessoa, digitali-
zando as amostras com 8 bits e transmitindo estes bits para o receptor, onde novamente é
convertido em voz.
5
Processamento Digital de Sinais– Aula 10P – Professor Marcio Eisencraft – setembro 2007
7 Atividades
1. Assuma que você tem um sinal de voz digitalizado com uma amostragem de 8kHz. Se este
sinal for quebrado em segmentos de 20ms, quantas amostras NS existem por bloco?
2. Se 1 segundo deste sinal estiver num vetor Matlab, quantos blocos de 20ms NBLKS podem
ser obtidos?
3. Suponha que se deseje usar como entrada para seu modelo de voz sintética um trem de impul-
sos unitários igualmente espaçados e que gostaríamos que o pitch fosse 200Hz. Se a voz foi
amostrada a 8kHz, quantas amostras devem ser colocadas por período, ou seja, quanto vale
P em:
∞
z[p ] = ∑ δ [p − kP ] , 0 ≤ p < PU .
k =0
6
Processamento Digital de Sinais– Aula 10P – Professor Marcio Eisencraft – setembro 2007
4. Como devem ser definidos os vetores a e b usados como entrada do filter em termos de
α k e I para criar equações de diferenças que realizem as seguintes operações:
(a) fornecer û[p] como saída quando u[p] é a entrada. (predição)
(b) fornecer g[p] como saída quando u[p] é a entrada. (erro de predição)
u [p] como saída quando x [ n ] é a entrada. (síntese)
(c) fornecer ~
5. A função sintetizavoz2 gera uma voz sintética a partir dos coeficientes α k e um trem
de impulsos com freqüência fundamental dada por pitch ou um ruído branco gaussiano.
Seu formato é:
%[SYNTHimp, SYNTHnoise] = sintetizavoz2(nomarq,NS,pitch, NP);
% Sintetiza voz com sequencia de impulsos e ruido gaussiano
% nomarq - nome do arquivo .wav (entre aspas simples)
% NS - numero de amostras por bloco
% pitch - frequencia fundamental da sequencia de impulsos
% NP - numero de coeficientes utilizados na predicao
% SYNTHimp - voz sintetizada com impulsos
% SYNTHnoise - voz sintetizada com ruído
Teste este programa utilizando o arquivo aula5.wav. Utilize NS=160, NP = 10 e um pitch
de 50Hz. Verifique o que ocorre ao se mudar estes parâmetros.
7
Processamento Digital de Sinais– Aula 10P – Professor Marcio Eisencraft – setembro 2007
Em seguida, repita para o arquivo teste.wav. Tente encontrar um valor de pitch mais adequa-
do para este sinal. Repita para os arquivos show.wav e chinelo.wav que possuem muitos
fricativos.
Grave um sinal de voz e tente gerar uma voz sintética com o pitch mais adequando para a sua
voz.
8
Processamento Digital de Sinais– Aula 11P – Professor Marcio Eisencraft – setembro 2007
1. Introdução
Imagens digitais são formadas por “pontos” ou rkzgnu (Rkevwtg" gngogpvu). Colocando estes
pontos suficientemente próximos uns dos outros, as imagens são vistas na tela do computador
ou impressas como se fossem contínuas.
Em um computador digital, o brilho e a informação de cor de cada pixel são codificados por
um número ou, equivalentemente, um elemento de uma matriz. A localização de cada ponto
da matriz é indexada por dois inteiros, isto é, Z (3,4 ) identifica o valor do pixel localizado na
matriz Z na terceira linha e na quarta coluna.
Usualmente os valores nas matrizes são inteiros de 0 a 2 p − 1 , em que p é o número de bits
usado para representar o brilho de cada pixel. Por exemplo, considere uma imagem preta e
branca em que a luminância, ou brilho, para cada pixel é armazenada usando 8 bits. Neste ca-
so, o brilho relativo de cada pixel pode ser representado por um de 256 níveis possíveis, cha-
mados de níveis de cinza. Usualmente o preto é codificado como 0 e o branco como 255.
A informação de cores para os pixels de uma imagem é codificada como inteiros armazena-
dos em matrizes separadas. No Matlab, as imagens são armazenadas como matrizes de intei-
ros e a informação de cor – como cada valor de pixel é mapeado para certa cor – é armazena-
da separadamente.
1
Processamento Digital de Sinais– Aula 11P – Professor Marcio Eisencraft – setembro 2007
A equação (1) representa um filtro FIR e pode ser implementado utilizando-se o comando
filter como feito nas aulas anteriores.
A representação de imagens no Matlab e o seu processamento são ilustrados nas atividades
seguintes.
Atividades
A. Trabalhando com uma imagem
Nesta atividade exploraremos como imagens são mostradas e representadas como matrizes no
Matlab. A informação de cores é codificada em uma eqnqtocr (tabela de cores a ser usada). Ima-
gens podem ser armazenadas em arquivos imagen_name.mat e carregadas usando o comando
load image_name.
O Matlab tem uma série de imagens padrões disponível.
1. Digite load clown e verifique as variáveis carregadas digitando whos
>> whos
Name Size Bytes Class
X 200x320 512000 double array
caption 2x1 4 char array
map 81x3 1944 double array
Foram criadas três variáveis: caption (guarda as informações de cabeçalho da imagem), map
(informação de cores), x (guarda a informações de intensidade da imagem).
2. Olhe alguns elementos do vetor x (por exemplo, digite x(65:75, 100:110)). Os valores
na matriz devem ser inteiros. Quantos bits estão sendo usados na codificação?
RESPOSTA:
3. Para mostrar a imagem, digite image(X). Você deve ver o palhaço numa janela, apesar de
sua cor parecer não-natural.
2
Processamento Digital de Sinais– Aula 11P – Professor Marcio Eisencraft – setembro 2007
20
40
60
80
100
120
140
160
180
200
50 100 150 200 250 300
4. Para obter as cores corretas, digite colormap(map). Agora o palhaço deve aparecer nas
cores corretas.
20
40
60
80
100
120
140
160
180
200
50 100 150 200 250 300
20
40
60
80
100
120
140
160
180
200
50 100 150 200 250 300
3
Processamento Digital de Sinais– Aula 11P – Professor Marcio Eisencraft – setembro 2007
6. Podem-se utilizar operações matriciais normalmente para trabalhar com imagens. Por exem-
plo, transpor a matriz implica na transposição da imagem. Para colocar a imagem de ponta
cabeça, basta inverter a ordem das linhas da matriz.
X1 = X';
X2 = X(end:-1:1,:);
figure(1);
subplot(221); image(X1);
subplot(222); image(X2);
colormap(map);image(X(end:-1:1, :))
colormap(map);
COMANDOS UTILIZADOS:
8. Podemos selecionar um pedaço da imagem, pegando algumas linhas e colunas da matriz. Por
exemplo, o olho esquerdo do palhaço pode ser obtido usando:
Xolho = X(50:100, 150:250);
image(Xolho);
colormap(map);
4
Processamento Digital de Sinais– Aula 11P – Professor Marcio Eisencraft – setembro 2007
10
15
20
25
30
35
40
45
50
10 20 30 40 50 60 70 80 90 100
5
Processamento Digital de Sinais– Aula 11P – Professor Marcio Eisencraft – setembro 2007
10. A imagem pode ser aproximadamente recuperada utilizando um filtro inverso. Por exemplo,
para desfazer o borrão vertical, usamos:
Yvolta = filter(1, ones(1,N)/N, Yvert);
subplot(223);image(Yvolta);colormap(map);
6
Processamento Digital de Sinais– Aula 11P – Professor Marcio Eisencraft – setembro 2007
Xgreen = X(:,:,2);
Xblue = X(:,:,3);
subplot(221);image(X); title('moinho.jpg');
subplot(222);image(Xred); title('Componente red');
subplot(223);image(Xgreen); title('Componente green');
subplot(224);image(Xblue); title('Componente blue');
200 200
400 400
600 600
800 800
1000 1000
1200 1200
200 400 600 800 200 400 600 800
200 200
400 400
600 600
800 800
1000 1000
1200 1200
200 400 600 800 200 400 600 800
Num arquivo jpeg, as cores podem ser trabalhadas separadamente. Por exemplo, os seguintes
comandos aumentam a intensidade do verde da imagem. Tente outras configurações de cores.
X = imread('moinho.jpg','jpeg');
Xred = X(:,:,1);
Xgreen = X(:,:,2);
Xblue = X(:,:,3);
Xgreennovo = double(Xgreen)*3;
Xrednovo = double(Xred);
Xbluenovo = double(X(:,:,3));
Xnovo(:,:,1) = uint8(Xrednovo);
Xnovo(:,:,2) = uint8(Xgreennovo);
Xnovo(:,:,3) = uint8(Xbluenovo);
subplot(221);image(X); title('moinho.jpg');
subplot(222);image(Xnovo); title('Cores modificadas');
7
Processamento Digital de Sinais– Aula 11P – Professor Marcio Eisencraft – setembro 2007
50
100
150
200
250
300
350
400
450
500
200 400 600 800 1000 1200
Carregue esta imagem e, usando as técnicas aprendidas, identifique o que está escrito na placa.
RESPOSTA E COMANDOS UTILIZADOS:
8
Processamento Digital de Sinais – Aula 12P – Professor Marcio Eisencraft – outubro 2007
h2 [ n ]
x [n ] + y [n ]
h1 n
[ ] + +
-
h3 [ n ] h4 [ n ]
h5 [ n ]
h1 [ n ] = 4
2()
1 n
{ u [ n ] − u [ n − 3 ]}
h2 [ n ] = h3 [ n ] = ( n + 1 ) u [ n ]
h4 [ n ] = δ [ n − 1 ]
h5 [ n ] = δ [ n ] − 4δ [ n − 3 ]
(c) (0,5) Esboce a resposta do sistema da parte (b) se x [ n ] for o sinal mostrado a seguir.
1
Processamento Digital de Sinais – Aula 12P – Professor Marcio Eisencraft – outubro 2007
2.5
1.5
x[n]
0.5
-0.5
-1
-1.5
-6 -4 -2 0 2 4 6 8
n
3. (OPPENHEIM; WILLSKY; YOUNG; 1983, p. 148) (1,5) Considere o sistema LIT inicial-
mente em repouso (condições iniciais nulas) e descrito pela equação de diferenças:
y[n ] + 2 y[n − 1] = x[n] + 2 x[n − 2] .
Encontre a resposta deste sistema à entrada mostrada na figura a seguir resolvendo a equação de
diferenças recursivamente para − 2 ≤ n ≤ 7 .
( )un
n
1
h n =
[ ] [ ]
2
2
Processamento Digital de Sinais – Aula 12P – Professor Marcio Eisencraft – outubro 2007
n
jπ
quando sua entrada é a seqüência exponencial complexa x n = Ae [ ] 2 .
5. Considere um sistema LTI com a resposta impulsiva dada por h1[n] = (0.9) n u[n] .
a) (0,5) Escreva os comandos para fazer um gráfico da resposta impulsiva no intervalo
0 ≤ n ≤ 40
b) (0,5) Escreva os comandos para calcular e fazer um gráfico da resposta do sistema para a
entrada degrau unitário x[n] = u[n] no intervalo 0 ≤ n ≤ 20
c) (0,5) Escreva os comandos para calcular a resposta do sistema para o pulso retangular
x[n] = u[n] − u[n − 10] e fazer um gráfico no intervalo 0 ≤ n ≤ 20
d) (0,5) Considerando o sistema anterior em cascata com o sistema 2, descrito por
⎧⎪ x [n / 2], se n par
y[n ] = ⎪⎨ ,
⎪⎪ 0, se n ímpar
⎩
conforme figura a seguir, escreva comandos para calcular e fazer gráfico da saída global do
sistema para entrada pulso retangular x[n] = u[n] − u[n − 10] no intervalo 0 ≤ n ≤ 20 .
x [n ] y [n ]
Sistema 1 Sistema 2
3
Processamento Digital de Sinais – Aula 13P – Professor Marcio Eisencraft – abril 2007
• A série de Fourier de tempo discreto (SFTD) é a única representação de Fourier que tem
valores discretos tanto no tempo como em freqüência e, consequentemente, é adequada
para implementação direta no Matlab. Os comandos fft e ifft podem ser usados para
avaliar a SFTD.
• Dado um vetor x de comprimento P que representa um período de um sinal com período
P , z[p] , o comando:
>> a = fft(x)/N
produz um vetor a de tamanho P que contém os coeficientes da SFTD, c m .
• O Matlab supõe que os somatórios nas equações que definem a SFTD vão de 0 a P − 1 ,
de forma que os primeiros elementos de x e a correspondem a z[0] e c 0 , respectivamen-
Exercícios
1. Considere o seguinte sinal periódico:
1
Processamento Digital de Sinais – Aula 13P – Professor Marcio Eisencraft – abril 2007
(a) Calcule, usando as fórmulas vistas em aula, os coeficientes da série de Fourier deste sinal
c m para 0 ≤ m ≤ P 0 − 1 .
RESOLUÇÃO:
2
Processamento Digital de Sinais – Aula 13P – Professor Marcio Eisencraft – abril 2007
RESOLUÇÃO:
4. (HAYKIN; VEEN, 2000, p.241) Determine os coeficientes da SFTD para o sinal periódi-
co descrito a seguir. Utilize o Matlab para conferir seus resultados.
RESOLUÇÃO:
3
Processamento Digital de Sinais – Aula 14P – Professor Marcio Eisencraft – setembro 2007
e a tgurquvc"go"htgs°ípekc"como
( ) = ∑ j[m ]g
∞
lΩ − l Ωm
J g .
m = −∞
O comando freqz do Matlab pode ser utilizado para se obter a resposta em freqüência de
um dado sistema definido pela equação de diferenças:
a 1 y[n] + a 2 y[n - 1] + … + a N +1 y[n - N ] = b1 x[n] + b 2 x[n - 1] + ... + b O +1 x[n - M] .
Definindo os vetores B=[b1 b2 ... bM+1] e A=[a1 a2 ... aN+1] da mesma for-
ma como foi feito para o comando filter, o comando
>>[H,W] = freqz(B,A,N);
1
Processamento Digital de Sinais – Aula 14P – Professor Marcio Eisencraft – setembro 2007
Exercícios
1. Considere o seguinte sistema de tempo discreto conhecido como fkhgtgpekcfqt de 1ª or-
dem:
1
{[p] = (z[p] − z[p − 1]) .
2
Para este sistema, pede-se:
(a) a resposta impulsiva j[p] ;
( )
(c) a resposta em freqüência J g lΩ .
( )
(d) faça um gráfico do módulo e da fase de J g lΩ para − π ≤ Ω ≤ π .
2
Processamento Digital de Sinais – Aula 14P – Professor Marcio Eisencraft – setembro 2007
(e) este filtro é passa-altas ou passa-baixas?
(f) utilizando o comando freqz faça um gráfico no Matlab do módulo da resposta em fre-
qüência deste filtro e compare com o resultado do item (a).
(b) Qual a sua freqüência de corte? Ou seja, a partir de qual freqüência a resposta em freqüên-
cia deste filtro cai abruptamente?
(c) Digite e execute o seguinte uetkrv. Explique os gráficos obtidos e os sons ouvidos.
%Exemplo de Filtro Passa-Baixas Chebyshev
%Coeficientes do filtro
B = [0.0322 0.1608 0.3217 0.3217 0.1608 0.0322];
A = [1.0000 -0.7820 1.2872 -0.7822 0.4297 -0.1234];
3
Processamento Digital de Sinais – Aula 14P – Professor Marcio Eisencraft – setembro 2007
y1 = filter(B,A,x1); %Filtragem
y2 = filter(B,A,x2); %Filtragem
%Graficos
figure(1); title('Senoide de 200Hz)');
subplot(211); plot(0:100,x1(1:101)); ylabel('x_1[n]');%Sinal de entrada
subplot(212); plot(0:100,y1(1:101)); ylabel('y_1[n]');%Sinal de saida
figure(2); title('Senoide de 800Hz)');
subplot(211); plot(0:100,x2(1:101)); ylabel('x_2[n]');%Sinal de entrada
subplot(212); plot(0:100,y2(1:101)); ylabel('y_2[n]');%Sinal de saida