Você está na página 1de 46

Francisco José de Oliveira Restivo

Aníbal João de Sousa Ferreira


Departamento de Engenharia Electrotécnica e de Computadores
Faculdade de Engenharia da Universidade do Porto

Processamento Digital de Sinal


Aulas Práticas
Ano Lectivo 2004/05

Outubro de 2004
Processamento Digital de Sinal 2004/05

Este conjunto de problemas foi utilizado nas aulas práticas da disciplina de Processamento Digital de Sinal da
FEUP ao longo dos últimos anos.
Em cada ano, foram acrescentados novos problemas, de acordo com a evolução do programa da disciplina, e
mantidos a maioria dos anteriores, para facilitar aos alunos o estudo.
Estão assinalados com um * os problemas resolvidos na turma prática de um dos autores no ano lectivo de
2004/05.

Os autores

 2004 F. J. Restivo / A. J. Ferreira 2 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 1

* Problema 1
Considere o sistema discreto
x( n) + 2 x( n − 1) + x( n − 2)
y( n) = .
4
a. Determine a sua resposta impulsional h(n).
b. Determine a sua resposta em frequência H(e jω ).
c. Determine a sua resposta y(n) à entrada x(n) = [0.5, 1, 1, 0.5].
π 1
d. Determine a sua resposta y(n) à entrada x ( n ) = cos( n + ).
2 3
Solução:
a. h(n) = [0.25, 0.5, 0.25]
1 + cos ω − j ω
b. H(e jω ) = e
2
c. y(n) = [0.5, 1, 1, 0.5] * [0.25, 0.5, 0.25]=[0.125, 0.5, 0.875, 0.875, 0.5, 0.125]
π π
j 1 −j 2
d. H( e 2
e )=
2
1 π 1 π 1 π 1
y( n) = cos( n + − ) = cos( ( n − 1) + )
2 2 3 2 2 2 3

* Problema 2
A resposta impulsional de um sistema discreto H é

h(n) = 2-n u(n) .

Determine e represente graficamente a sua resposta y(n) à entrada


x(n) = u(n) - u(n-10) .

Solução:
+∞ min(n ,9 )
y( n) = ∑ x (k ) h( n − k ) = ∑ 2 − ( n −k ) = ∑ 2− n 2k
k =−∞ 0 ≤k ≤9 k =0
n − k ≥0

y(n)= 0, n < 0
2-2-n, 0 ≤ n ≤ 9
(2-2-10)2-(n-10), n > 9
Um programa Matlab muito simples
n=[0:20];
h=2.^(-n);
x=[ones(1,10) zeros(1,11)];
y=conv(h,x);
subplot(2,1,1); stem(n,y(1:21))
permite obter uma representação gráfica deste sinal discreto

 2004 F. J. Restivo / A. J. Ferreira 3 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

1.5

0.5

0
0 2 4 6 8 10 12 14 16 18 20

Problema 3
Determine a resposta impulsional do sistema discreto
y(n) = 0.3x(n) + 0.7y(n-1) .
Solução:
h(n) = 0.3.0.7nu(n) .

Problema 4
Considere os seguintes sistemas discretos
a. y(n) = 0.1x(n) + 0.1x(n-1)+0.1x(n-2)+…+0.1x(n-9)
b. y(n)=0.1x(n)-0.1x(n-10)+y(n-1).
Detemine a sua resposta impulsional e classifique-os quanto à recursividade e ao comprimento da resposta
impulsional.
Solução:
Ambos os sistemas têm a resposta impulsional (porquê?)
h(n) = 0.1[u(n)-u(n-10)].
Assim, são ambos do tipo FIR, sendo o primeiro um sistema não recursivo e o segundo um sistema recursivo.

* Problema 5
Uma escola ensina um único curso com a duração de um ano.
Sejam x(n) o número de alunos admitidos no ano n e y(n) o número de alunos que frequenta o ano n, e
suponha que todos os anos 20% dos alunos reprovam e que um aluno prescreve ao fim de três inscrições.
a. Escreva a equação às diferenças que regula este sistema discreto.
b. Determine e interprete a sua resposta impulsional h(n).
Solução:
a. Frequentam o ano n os alunos admitidos, mais 20% dos alunos que frequentaram o ano anterior, menos
os admitidos há três anos e que reprovaram três vezes
y(n) = x(n) + 0.2y(n-1) – 0.23x(n-3)
ou então os admitidos no ano n mais 20% dos admitidos no ano n-1 mais 20% de 20% dos admitidos
no ano n-2
y(n) = x(n) + 0.2x(n-1) + 0.04x(n-2).
b. A resposta impulsional deste sistema é
h(n) = [1 0.2 0.04].

 2004 F. J. Restivo / A. J. Ferreira 4 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Se num determinado ano entrarem os primeiros 1000 alunos, e não entrarem mais nos anos seguintes (a
entrada é um impulso), frequentarão a escola nesse ano, 1000 alunos, no ano seguinte, 200, no terceiro
ano, 40, e os oito que reprovam, prescrevem (e a escola encerra...).

Problema 6 (O&S, 2.3)


Classifique os sistemas seguintes no que respeita à estabilidade, causalidade, linearidade e invariância à
translacção:
a. y(n) = g(n)x(n) , em que g(n) é conhecido d. y(n) = x(n – n 0)
n e. y(n)=e x(n)
b. y(n ) = ∑ x (k ) f. y(n) = ax(n) + b
k= n0
g. y(n) = x(-n)
n +n 0
c. y( n) = ∑ x( k) h. y(n) = x(n) + 3u(n+1)
k =n − n 0

Solução:
Estabilidade Causalidade Linearidade Invariância à translacção
a. sim, se |g(n)| for limitado sim sim não
b. não não sim não
c. sim não sim sim
d. sim não sim sim
e. sim sim não sim
f. sim, se a e b finitos sim não não
g. sim não sim não
h. sim sim não não

Problema 7 (O&S, 2.11)


Determine a resposta ao degrau unitário do sistema com resposta impulsional

h(n) = a -n u(-n), 0 < a < 1 .

Solução:
+∞ min(n ,0 )
y( n) = ∑ h ( k ) x ( n − k ) = ∑ a −k = ∑ a −k
k =−∞ k ≤0 k = −∞
n −k ≥ 0

a −n
y(n)= ,n ≤ 0
1 −a
1
,n > 0
1 −a

 2004 F. J. Restivo / A. J. Ferreira 5 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 2

* Problema 1
a. Determine a resposta impulsional h(n) e a resposta em frequencia H(e jω ) de um filtro de média de
comprimento 5
x( n) + x( n − 1) + x (n − 2) + x ( n − 3) + x( n − 4)
y( n) =
5
b. Escreva um programa em Matlab que represente graficamente o módulo e a fase de H(ejω).
Solução:
a. h(n) = [0.2, 0.2, 0.2, 0.2, 0.2]
5ω 5ω
sen senc
jω 1 + e − jω + e −2 jω + e − 3jω + e − 4 jω 1 1 − e − 5jω 2 e − 2 jω = 2π e − 2 j ω ,
H( e ) = = =
5 5 1 − e − jω ω ω
5sen senc
2 2π
ou, de outro modo,

1 + e − jω + e −2 jω + e −3j ω + e −4 j ω 1 + 2 cos(ω) + 2 cos(2ω) −2 j ω


H( e jω ) = = e
5 5
b. w=0:2*pi/256:2*pi-2*pi/256;
H=(sinc(5*w/(2*pi))./sinc(w/(2*pi))).*exp(-2*j.*w);
subplot(2,1,1); plot(w,abs(H)); axis([0 2*pi 0 1]);
subplot(2,1,2); plot(w,angle(H)); axis([0 2*pi -pi pi]);

0.8

0.6

0.4

0.2

0
0 1 2 3 4 5 6

-2

0 1 2 3 4 5 6

* Problema 2
Determine e represente graficamente a resposta impulsional h(n) de um filtro passa baixo ideal com frequencia
superior de corte ω = 0.5 rad .
Solução:
0 .5


1 1 1 j0.5n 2 jsen( 0. 5n ) 0.5 0.5n
h ( n) = e jω n dω = (e − e − j 0. 5n ) = = senc
2π 2π jn 2 jπn π π
− 0 .5

em que

 2004 F. J. Restivo / A. J. Ferreira 6 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

sen ( πx)
senc( x) =
πx

0.2

0.15

0.1

0.05

-0.05
-20 -15 -10 -5 0 5 10 15 20

Problema 3
a. Se a transformada de Fourier de h(n) for H(ejω), qual é a transformada de Fourier de (-1)nh(n)?
b. Determine a resposta impulsional h(n) de um filtro passa alto ideal com frequência inferior de corte
0.75π rad.
Solução:
+∞ +∞ +∞
a. ∑
n = −∞
(− 1) n h( n) e− j ωn = ∑
n = −∞
e jπn h( n) e− jω n = ∑ h( n) e
n = −∞
− j( ω− π) n
= H ( e j( ω− π ) )

há uma translacção de π rad


b. três possibilidades:
i) a partir da definição
1. 25π
( −1) n

1 1 1 j1.25πn 1 1 j 0. 25πn n
h ( n) = e j ωn dω = (e − e j0.75πn ) = (e − e − j0.25πn ) e j πn = senc
2π 2π jn 2π jn 4 4
0 .75 π

ii) verificando que o filtro pedido se obtem por uma translacção de π da resposta em frequência de um
filtro passa baixo ideal com frequência superior de corte 0.25π rad, e utilizando o resultado da alínea
anterior, obtem-se directamente

( −1) n n
h ( n) = senc
4 4
iii) ou ainda notando que o filtro pedido se obtem subtraindo do filtro ‘identidade’ um filtro passa baixo
ideal com frequência superior de corte 0.75π rad
3 3n
h ( n) = δ( n) − senc .
4 4
Podemos verificar facilmente que se trata da mesma solução. No grafico a seguir representam-se as
t 3 3t
funções senc e − senc cuja amo stragem em t=n, a menos do factor (−1) n na primeira e da
4 4 4
parcela δ ( n) na segunda, coincide

0.5

-0.5

-1
-10 -8 -6 -4 -2 0 2 4 6 8 10

O programa Matlab utilizado foi

 2004 F. J. Restivo / A. J. Ferreira 7 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

clf
n=-10:10; t=-10:0.1:10;
h1=((-1).^n).*sinc(n/4)/4; ha1=sinc(t/4)/4;
subplot(2,1,1); stem(n,h1);
hold on; subplot(2,1,1); plot(t,ha1); grid on
h2=-3*sinc(3*n/4)/4 + [zeros(1,10) ones(1,1) zeros(1,10)];
ha2=-3*sinc(3*t/4)/4;
subplot(2,1,1); stem(n,h2);
hold on; subplot(2,1,1); plot(t,ha2); grid on

* Problema 4

π π
a. Determine a resposta impulsional do filtro passa banda ideal com banda de passagem  ,  rad.
 4 2
b. Usando Matlab, e considerando apenas os 128 termos mais significativos de h(n), represente
graficamente a magnitude da resposta em frequência do filtro.
Solução:
a. Usando o resultado do problema 2., e atendendo a que o filtro pedido se pode obter subtraindo a um
filtro passa baixo com frequência superior de corte π/2 um filtro passa baixo com frequência superior de
corte π/4
1 n 1 n
h ( n) = senc − senc .
2 2 4 4
b. A representação grafica poder-se-ia fazer do seguinte modo
n=-64:1:63;
h=0.5*sinc(n/2)-0.25*sinc(n/4);
[H,F]=freqz(h,[1],256);
subplot(2,1,1); plot(F/pi,abs(H)); % frequencia normalizada

1.5

0.5

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Problema 5
A parte real da transformada de Fourier de um sinal discreto x(n) real e causal é
XR(e jω ) = 1 + cos(ω) .
Determine a sua parte imaginária.
Solução:

e jω + e − jω
1 + cos(ω) = 1 + ⇔ [0.5, 1, 0.5] parte par de x(n)
2
x(n) = [1, 1] ⇒ [-0.5, 0, 0.5] parte ímpar de x(n) ⇒ XI(e jω ) = -jsen(ω)

Problema 6
Considere a seguinte associação de sistemas discretos

 2004 F. J. Restivo / A. J. Ferreira 8 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

x(n) h 2(n)=αnu(n) y(n)


+

h 1(n)=βδ(n-1)

a. Determine a resposta impulsional h(n) e a resposta em frrequência H(e jω ) do sistema global.


b. Determine a equação às diferenças que relaciona y(n) com x(n).
c. Determine quantas operações de adição e multiplicação reais são necessárias para produzir uma
amostra à saída.
Solução:
a. h(n)=[δ(n)+ βδ(n-1)]* αnu(n)= αnu(n)+β αn-1u(n-1)

[
H(e jω )= 1+ βe − j ω ]1− α1e − jω
=
1 + β e − jω
1 − α e − jω
b. y(n)=x(n)+βx(n-1)+αy(n-1)
c. 2 multiplicações, 2 adições e duas posições de memória.

Problema 7 (O&S, 2.51)

A resposta impulsional de um sistema discreto LI é dada por h(n) = α n u(n), com |α|<1.

π
j n
a. Determine y1 (n) , a resposta do sistema à entrada x1 (n) = e 2 .

π
b. Com base na alínea anterior, determine y 2 (n) , a resposta do sistema à entrada x 2 (n) = cos( n) .
2
π
j n
c. Determine y 3 (n) , a resposta do sistema à entrada x 3 (n) = e 2 u( n) .

d. Como se comparam y 3 (n) e y1 (n) para valores elevados de n?

Solução:
+∞

∑α
jω n − jω n 1
a. H(e )= e =
n =0 1 − α e − jω
π
π π π j ( n − jarctgα)
− jarctgα
1 j n 1 j n e j n e 2
y1 ( n) = e 2 = e 2 = e 2 =
−j
π 1 + jα 1+α2 1+ α2
1 − αe 2
π π
1 j 2 n 1 −j 2 n
b. x 2 ( n) = e + e
2 2
π π π π
1 1 j n 1 1 −j n 1 1 j n 1 1 −j n
y 2 ( n) = e 2 + e 2 = e 2 + e 2
2 −j
π 2 j
π 2 1+ jα 2 1 − jα
1 − αe 2 1 − αe 2

 2004 F. J. Restivo / A. J. Ferreira 9 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

π π π
π π j ( n − arctgα ) − j ( n − jarctgα) cos( n − jarctgα )
1 e − jarctgα j 2 n 1 e jarctgα − j 2 n 1 e 2 1e 2
2
y 2 ( n) = e + e = + =
2 1+α2 2 1+ α 2 2 1+α2 2 1+ α 2 1+ α2
(poderíamos ter escrito este resultado imediatamente, usando a noção de resposta em frequência)
c. (aqui, não podemos usar esta noção... porquê?)

0, n<0
π n π π
j ( n− k) j ( n −k ) − j ( n +1 )
∑ ∑α
π π
y 3 ( n) = αke 2 = k
e 2 = j n 1 − α n +1 e 2 1 − ( − jα ) n +1 j 2 n
e 2 = e , n≥0
k≥ 0
n− k≥ 0
k= 0
−j
π 1 + jα
1 − αe 2
π
1− ( − jα ) n +1 j 2 n
y 3 ( n) = e u (n )
1 + jα

d. Para valores elevados de n, as duas respostas confundem-se (após terminar o fenómeno transitório)

 2004 F. J. Restivo / A. J. Ferreira 10 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 3

* Problema 1
Crie um ficheiro .m de comandos Matlab que execute as seguintes operações:
- solicita que o utilizador forneça um valor inteiro N através do teclado (comprimento de um sinal),
- constrói o vector linha, n , com os inteiros 0, 1, …, N-1,

- cria o vector linha h = α n com α = 0.95 exp( jπ / 3 ) ,

- representa graficamente o valor absoluto do vector h , usando para graduar o eixo das abcissas o
vector n ; acrescente também os comandos seguintes:
xlabel('n \rightarrow');
ylabel('Magnitude \rightarrow');
legend('Envolvente')
title('Exponencial Complexa');
(Obs: use sempre um comando pause; depois de um comando plot ou stem )
- inicializa uma nova janela gráfica através do comando figure(2); esta figura será posteriormente
dividida para representar três gráficos na horizontal (i.e. dividir-se-á numa matriz 3×1),
- usa o comando stem para representar na faixa superior da figura 2, a parte imaginária do vector h ,
usando para graduar o eixo das abcissas o vector n ;
- cria o vector linha x ,com N elementos e cujos valores não-nulos são dados pela sequência discreta
u(n-20)-u(n-30),
- usa o comando stem para representar na faixa intermédia da figura 2, o vector x , usando para graduar
o eixo das abcissas o vector n ;
- usa o comando conv para colocar no vector y o resultado da convolução discreta entre a parte
imaginária do vector h e o vector x ;
- imprime a mensagem “Convolução já efectuada!”,
- mostra o resultado dos comandos size(y) e length(y) (critique a diferença),
- usa o comando stem para representar na faixa inferior da figura 2, os primeiros 100 elementos do
vector y através do símbolo ‘pentagram’, e usando para graduar o eixo das abcissas o vector n ;
- coloca etiquetas adequadas no eixo das abcissas e no das ordenadas da figura 2.
Solução:
%
% Processamento Digital de Sinal
% EEC4162 2004/2005
% Problema 3.1
% Convoluçao discreta
% ajf/fjr
%
N=input('Forneça um valor inteiro: ');
n=[0:1:N-1];
alpha=0.95*exp(j*pi/3);
h=alpha.^n; % produz um vector
figure(1);
plot(n,abs(h));
xlabel('n \rightarrow');
ylabel('Magnitude \rightarrow');

 2004 F. J. Restivo / A. J. Ferreira 11 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

legend('Envolvente');
title('Exponencial complexa');
disp ('Prima uma tecla'); pause;
figure(2); subplot(3,1,1);
stem(n,imag(h));
x=[zeros(1, 20) ones(1,10) zeros(1,N-30)];
subplot(3,1,2); stem(n,x);
y=conv(imag(h),x);
disp('Convoluçao ja efectuada !');
disp('size(y):'); disp(size(y));
disp('length(y):'); disp(length(y));
len=min(N,100);
subplot(3,1,3); stem(n(1:len),y(1:len),'p');

* Problema 2
Com referência ao problema anterior, esclareça:
a. Os comandos sum(h.*conj(h)) e h*h' produzem o mesmo resultado, porquê ?
b. Qual é a diferenças entre os comandos h*h' e h*h.' ?
c. Onde atrás se usou o comando conv, poder-se-ia ter utilizado o comando filter ?
d. Qual é a diferença entre os comandos who e whos ?

 2004 F. J. Restivo / A. J. Ferreira 12 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 4

Problema 1
Considere um filtro analógico passa baixo elementar do tipo RC, com R = 10 kΩ e C = 2 µF.
a. Determine a sua resposta em frequência Hc (jΩ).
b. Determine a sua resposta impulsional h c (t).
c. Determine a resposta em frequência do sistema discreto cuja resposta impulsional é uma amostragem
de h c (t) a uma frequência igual a 10 vezes a frequência de corte do filtro analógico.
d. Determine a respectiva equação às diferenças.
Solução:

( jΩC) −1 1
a. H c ( jΩ) = =
R + ( jΩC) −1 1 + jΩRC

frequência angular de corte (RC)-1


t
1 − RC
b. h c (t ) = e u( t )
RC
c. frequência angular de amostragem 10(RC)-1; período de amostragem T = πRC/5
n πRC / 5 π
π RC / 5 − RC π − n
h ( n) = Th c ( nT) = e u( n) = e 5 u( n)
RC 5

(faz-se normalmente h ( n) = Th c ( nT ) para que a amplitude de H( e jω ) seja independente da


frequência de amostragem)
+∞ π
π − n π

jω 1
H (e ) = e 5 e − j ωn = π
5 n =0 5 −
1− e 5 e − jω

π
π −
d. y( n) = x( n) + e 5 y( n − 1) = 0.628 x( n ) + 0.533 y( n − 1)
5

* Problema 2
Repita o problema anterior, mas admitindo que o que agora pretende é que a resposta ao degrau unitário do
sistema discreto seja uma amostragem com período T da resposta ao degrau unitário do sistema contínuo.
Solução:
t

d c ( t) = (1 − e RC )u ( t)
nT π
− − n
d( n) = u( n) − e RC u( n) u( n) − e 5 u (n )

pelo que podemos saber a transformada em z de uma entrada, u(n), e da respectiva saída d(n)
1
U(z ) = , | z |> 1
1 − z −1

 2004 F. J. Restivo / A. J. Ferreira 13 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

1 1
D ( z) = −1
− π
, | z |> 1
1− z −
−1
1−e 5 z
e então
1 1
−1
− π π
1−z − − π
1−e 5 z −1 1 − z −1 (1 − e 5 ) z −1 −
D ( z) = = 1− π
= π
, | z |> e 5 (porquê?)
1 − −
−1 −1
1 − z −1 1−e 5 z 1−e 5 z

A equação às diferenças é
y(n) = 0.4665 x(n-1) + 0.5335 y(n-1)
e o diagrama zero-polar pode obter-se através de
zplane([0 0.4665][1 -0.5335]);

0.8

0.6

0.4

0.2

-0.2
Imaginary Part
-0.4

-0.6

-0.8

-1

-1 -0.5 0 0.5 1
Real Part

Problema 3
Determine a frequência mínima a que deve amostrar o sinal contínuo de banda limitada xc (t) = senc2(10t) de
modo a evitar a ocorrência de aliasing.
Solução:
O sinal contínuo cuja transformada de Fourier é um pedestal de largura 2Ω M centrado em 0 é
ΩM
Ω Ω

1 1 1 j ΩM t
x( t) = e jΩt dΩ = (e − e − j ΩM t ) = M senc( M t ) .
2π 2π jt π π
−Ω M

Se a transformada de Fourier de senc(10t) é um pedestal de largura 20π, a transformada de Fourier de


senc 2(10t) será um triangulo de largura 40π, que deve ser amostrado à frequência angular de amostragem
mínima de 40π rad/s.

Problema 4
Considere os sinais contínuos x1(t) e x2(t), de banda limitada a, respectivamente, Ω 1 e Ω 2 rad/s.
Determine a frequência mínima de amostragem dos sinais
a. x1(t) + x2(t) ,
b. x1(t) x x2(t) ,

 2004 F. J. Restivo / A. J. Ferreira 14 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

c. x1(t) * x2(t) .
Solução:
a. max(Ω 1, Ω 2)
b. Ω1 + Ω2
c. min(Ω 1, Ω 2)

* Problema 5
O sinal discreto x(n), obtido por amostragem com período T de um sinal analógico xc (t), tem espectro não nulo
só para |ω| < π/2.
Especifique o filtro de reconstrução ideal e compensado que recupera o sinal analógico, usando reconstrução
de ordem zero, com pedestal de largura T.
Solução:
Reconstrução do impulso unitário discreto:
h(t) = u(n) – u(n – T)
Efeito da reconstrução:

 T
− j ΩT
jΩ
T
− jΩ
T
T 2 jsen Ω  T T
1−e e 2 −e 2 − jΩ
 2  − jΩ 2  T  − jΩ 2
H( jΩ ) = = e 2 = e = Tsenc Ω  e
jΩ jΩ jΩ  2π 
que se representa a seguir para T=1

1.5

0.5

0
-6 -4 -2 0 2 4 6

Filtro de reconstrução ideal e compensado:


π
H r ( jΩ) = H −1( jΩ ) , se | Ω |≤
T
0, se não
que igualmente se representa para T=1

1.5

0.5

0
-6 -4 -2 0 2 4 6

* Problema 6
O sinal discreto x(n), obtido por amostragem com período T de um sinal analógico xc (t), tem espectro não nulo
só para |ω| < π/2.
Suponha que realiza uma interpolação de 1 para 4 do sinal x(n), obtendo o sinal xi(n).

 2004 F. J. Restivo / A. J. Ferreira 15 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

a. Esboce um possível espectro do sinal xi(n).


b. Especifique o filtro de reconstrução ideal e compensado que recupera o sinal analógico a partir de
xi(n), usando reconstrução de ordem zero (com pedestal de largura T/4).
c. Comparando este filtro de reconstrução com o obtido no problema anterior, explique porque os leitores
de discos compactos fazem, em geral, uso de filtros digitais dedicados para fazer interpolação digital?
(um valor comum é "8 times oversampling").
Solução:
A fornecer mais tarde.

Problema 7
Repita a alínea b. do problema anterior, supondo que utiliza a reconstrução de primeira ordem (interpolação
linear).
Solução:
A fornecer mais tarde.

Problema 8
Considere um sinal dis creto h(n) e a sua transformada em z, H(z).
Determine o sinal discreto cuja transformada em z é
a. H(-z) .
b. H(z2) .
Solução:
+∞ +∞
a. H ( − z) = ∑ h( n)( − z) − n = ∑ (−1)n h (n)z− n ⇔ (−1)n h(n)
n =−∞ n =−∞

+∞ +∞
b. H( z 2 ) = ∑ h(n)(z 2 )− n = ∑ h(n)z −2n ⇔ h (n / 2), se n par ∨ 0, se não
n =−∞ n =−∞

Problema 9

z -2
Determine o sinal discreto causal cuja transformada em z é H (z ) = .
1 − z −5
Solução:
Basta seguir o seguinte raciocínio

u(n) 1
1 − z −1

u(n/5), se n múltiplo de 5 1
0, se não 1 − z−5

 2004 F. J. Restivo / A. J. Ferreira 16 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

u((n-2)/5, se n-2 múltiplo de 5 z −2


0, se não 1 − z−5

Problema 10
Considere o sistema discreto causal
y(n) = 2x(n) + 0.7y(n-1) - 0.1y(n-2) .
a. Determine a sua função de transferência H(z).
b. Represente graficamente, de modo aproximado, a amplitude da sua resposta em frequência |H(e jω )|.
c. Calcule a sua resposta impulsional h(n).
Solução:

2 2 z2
a. H ( z) = = , | z |> 0.5
1 − 0. 7z−1 + 0. 2z −2 ( z − 0. 2)( z − 0. 5)

2
b. | H (e jω ) = jω
|e − 0.2 | . | e jω − 0. 5 |

|H(0)| = 2/(0.8x0.5) = 5 ; |H(1)| = 2/(1.2x1.5) = 1.11…

0
-3 -2 -1 0 1 2 3

−4z / 3 10 z / 3 4 10
c. H ( z) = + ⇒ h (n ) = − 0.2n u( n) + 0.5n u( n )
z − 0. 2 z − 0.5 3 3
(será interessante repetir a resolução usando o método geral, e verificá-la determinando os primeiros
termos de h(n) pelo método da divisão dos polinómios)

Problema 11
Considere o sistema discreto causal com função de transferência

1 − 0.4 z −1
H (z ) = .
1 − 0.8z −1 + 0.64z −2
a. Localize no plano z os polos e zeros deste sistema e a região de convergência de H(z).
b. Calcule a sua resposta impulsional h(n).
c. Determine a equação às diferenças que rege o sistema.
Solução:

 2004 F. J. Restivo / A. J. Ferreira 17 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

0.8

0.6

0.4

0.2

-0.2
Imaginary Part
-0.4

-0.6

-0.8

-1

-1 -0.5 0 0.5 1
Real Part
a.
π
j
b. α = 0. 8e 3

3 n 3 * n
j α −j (α )
zn (z − 0.4) α n (α − 0.4) (α * ) n (α * − 0.4) π
h ( n) = ∫ (z − α)(z − α*) dz = α − α*
+
α* − α
= 2
j 3
2 = 0.8n cos( n) u( n)
3
C

c. y(n) = x(n) – 0.4x(n-1) + 0.8y(n-1) – 0.64y(n-2)

Problema 12
Os sinais discretos x(n) = 2-nu(n) e w(n) = 3-nu(n) tem transformada em z respectivamente
1 1
X ( z) = , | z |>
1 −1 2
1− z
2
e
1 1
W ( z) = , | z |>
1 −1 3
1− z
3
e o seu produto x(n)w(n) = 6-nu(n) tem transformada em z
1 1
, | z |>
1 −1 6
1− z
6
Derive este resultado utilizando a propriedade da convolução complexa da transformada z.
Solução:
Temos de calcular no plano v o integral

∫ 1− 1 v
1 1 1 1 z 1
v -1dv , | v |> e | |> ,
2πj −1 1 z −1 2 v 3
C 1− ( )
2 3 v
com o contorno C satisfazendo as condições impostas pelas regiões de convergência de X(z) e W(z), isto é,
1
<| v |< 3 | z | .
2
Um contorno nessas condições só existirá evidentemente se

 2004 F. J. Restivo / A. J. Ferreira 18 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

1 1
3 | z |> ⇔ | z |>
2 6
que será a região de convergência da transformada em z de x(n)w(n).
O integral pode ser calculado pelo método dos resíduos, para o que se torna necessário determinar os polos
da função integranda
−3z
∫ (v − 1 )(v − 3z) dv , | z |> 6 ∧ 2 <| v |< 3 | z | ,
1 1 1
2πj
C
2
que são 1/2 e 3z.
Como apenas o polo 1/2 se encontra no interior do contorno C, o resíduo nesse polo é a transformada em z
procurada
−3z 1 1
= , | z |> .
1 1 −1 6
− 3z 1− z
2 6

 2004 F. J. Restivo / A. J. Ferreira 19 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 5

* Problema 1
O sinal contínuo x c ( t) = sin (20πt) + cos(40 πt) é amostrado com período de amostragem T. Crie um ficheiro
.m de comandos Matlab que execute as seguintes operações:
- cria um vector n com os inteiros entre 0 e 49, e cria dois vectores: x1( n) = x c ( nT) com T=1/200, e
x2( n) = x c ( nT) com T=21/200,

- representa os vectores x1(n) e x2(n) em duas faixas da mesma figura, como se ilustra.

Que conclui ? É possível encontrar um outro valor de T que origine um sinal idêntico aos obtidos ?
Solução:
%
% Processamento Digital de Sinal
% EEC4162 2004/2005
% Problema 5.1
% Aliasing
% {ajf,fjr}@fe.up.pt
%
close all;
clear all;

T1=1/200;
T2=21/200;
t=[0:49];
x1 = sin(20*pi*t*T1)+cos(40*pi*t*T1);
x2 = sin(20*pi*t*T2)+cos(40*pi*t*T2);

subplot(2,1,1);
stem(t, x1,'.');
xlabel('n \rightarrow');
ylabel('Amplitude \rightarrow');
subplot(2,1,2);
stem(t, x1,'.');
xlabel('n \rightarrow');
ylabel('Amplitude \rightarrow');
% sao iguais !
% qualquer T=(20*k+1)/200, k inteiro, produz o mesmo resultado

 2004 F. J. Restivo / A. J. Ferreira 20 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

* Problema 2
Considere um sistema discreto e causal, do tipo FIR, e com zeros em z0=0.3+j0.4, z0*, 1/z0, e 1/z0*., e também em
z1=0.6+j0.8, z1*, e z2=−1. Crie um ficheiro .m de comandos Matlab que execute as seguintes operações:
- cria um vector coluna Z com os zeros do sistema, e um outro vector coluna P com os polos do sistema,
- usa o comando Matlab zp2tf para converter os zeros e polos do sistema para polinómios numerador
e denominador da função de transferência do sistema (i.e. a transformada Z):
[num den]=zp2tf(Z, P, 1.0);
- usa o comando Matlab zplane com os vectores num e den para representar os polos e zeros do
sistema no plano Z (introduza o comando pause imediatamente a seguir). De que modo é que esta
representação denota a característica de fase linear do sistema ?
- usa o comando Matlab impz com os vectores num e den para colocar no vector h a resposta
impulsional do sistema, e usa de seguida o comando stem para representar esta resposta (introduza o
comando pause imediatamente a seguir). De que modo é que esta representação denota a
característica de fase linear do sistema ?
- usa os seguintes comandos:
figure(2)
subplot(2,1,1);
[H, W]=freqz(num, den);
plot(W/pi, 20*log10(abs(H)));
xlabel('Frequencia Normalizada');
ylabel('Amplitude (dB)');
subplot(2,1,2);
plot(W/pi, grpdelay(num, den));
xlabel('Frequencia Normalizada');
ylabel('Atraso de Grupo (amostras)');
pause;
a. O que é que estes comandos permitem representar? De que modo é que as duas representações
gráficas anteriores permitem já antecipar a representação de atraso de grupo obtida ?
b. Critique a afirmação: o seguinte comando Matlab não decompõe o sistema discreto anterior, em sub-
sistemas preservando a característica de fase linear:
[sos, g]=zp2sos(Z, P, 1.0);
Solução:
%
% Processamento Digital de Sinal
% EEC4162 2004/2005
% Problema 5.2
% Filtro FIR com fase linear
% {ajf,fjr}@fe.up.pt
%
close all;
clear all;

z0=0.3+j*0.4;
z1=0.6+j*0.8;
z2=-1;
Z=[z0 z0' 1/z0 1/z0' z1 z1' z2].';
P=[0 0 0 0 0 0 0].';
[num den]=zp2tf(Z, P, 1.0);

zplane(num, den);

 2004 F. J. Restivo / A. J. Ferreira 21 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

pause;

[h, t]=impz(num, den);


stem(t, h);
xlabel('Amostras');
ylabel('Amplitude');
pause;

figure(2)
subplot(2,1,1);
[H, W]=freqz(num, den);
plot(W/pi, 20*log10(abs(H)));
xlabel('Frequencia Normalizada');
ylabel('Amplitude (dB)');
subplot(2,1,2);
plot(W/pi, grpdelay(num, den));
xlabel('Frequencia Normalizada');
ylabel('Atraso de Grupo (amostras)');
% fase linear
% atraso de grupo constante: (N-1)/2
pause;

[sos, g]=zp2sos(Z, P, 1.0);


sos

% desfaz grupo de quatro zeros


% impossivel ter seccoes de segunda ordem com fase linear

Problema 3
Seja um sistema discreto em que x(n) representa o número de novos alunos que, no início do ano n, se
inscreve a uma disciplina e y(n) representa o número total de alunos que frequenta essa disciplina no ano n.
Dos alunos que frequentam a disciplina em cada ano, 70% têm aproveitamento.
a. Obtenha a equação às diferenças que caracteriza o sistema.
b. Sendo x(n)=100u(n), para que valor é que tende o número de alunos a frequentar a disciplina?
c. Repita b., supondo agora que existe um regime de prescrições e que um aluno que reprova três vezes
fica impedido de se inscrever novamente.
Solução:
a. y( n) = x (n ) + (1 − 0. 7) y(n − 1)

1
b. H ( z) = , |z|>0.3
1− 0.3z −1
100 1
Y ( z) = −1
, |z|>1
1− z 1− 0.3z −1
100
O teorema do valor final permitir-nos-ia concluir imediatamente que y(n) tende para ≅ 143 .
0. 7
Podemos evidentemente calcular y(n)

1 100 z n +1 100 100 . 0. 3n +1 100


y( n) = ∫
2πj ( z − 1)( z − 0.3)
dz = (
0.7
+
− 0.7
) u( n) =
0.7
(1 − 0.3 n+1 ) u( n)

c. Agora, a equação às diferenças é outra:

 2004 F. J. Restivo / A. J. Ferreira 22 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

y( n) = x (n ) + 0.3y( n − 1) − 0.33 x( n − 3)

ou

y( n) = x( n) + 0.3x( n − 1) + 0.32 x( n − 2)

que tende para 100 + 30 + 9 = 139.

Problema 4
A série de Fibonacci obtem-se calculando cada termo como a soma dos dois termos anteriores. Os dois
primeiros termos da série são f(0) = 1 e f(1) = 1. Determine uma expressão geral para o termo de ordem n, f(n),
da série de Fibonacci.
Solução:
A série de Fibonacci é a resposta impulsional do sistema causal y(n) = x(n) + y(n-1) + y(n-2) (porquê?).
Usando a transformada z
1
H ( z) = −1
1− z − z −2
com polos em

1 ± 1+ 4 1 ± 5
=
2 2
e, usando a fórmula integral,
1 1
h ( n) = ((1 + 5 ) n+1 − (1 − 5 ) n+1 ) u( n) .
5 2 n+1
A seguir, temos os 40 primeiros termos desta série

n f(n) n f(n) n f(n) n f(n)


0 1 10 89 20 10946 30 1346269
1 1 11 144 21 17711 31 2178309
2 2 12 233 22 28657 32 3524578
3 3 13 377 23 46368 33 5702887
4 5 14 610 24 75025 34 9227465
5 8 15 987 25 121393 35 14930352
6 13 16 1597 26 196418 36 24157817
7 21 17 2584 27 317811 37 39088169
8 34 18 4181 28 514229 38 63245986
9 55 19 6765 29 832040 39 102334155

Problema 5
O parque informático numa dada escola é expresso por y(n) computadores utilizáveis no final do ano n.
Ao longo de cada ano o número de computadores decresce devido a avarias, sendo a taxa anual de avarias de
5% e devido ao abatimento de todos os computadores que completam 3 anos de utilização.
No início de cada ano n são adquiridos x(n) computadores novos.
a. Obtenha, justificando, a equação às diferenças que exprime y(n), o número de computadores utilizáveis
no final do ano n, de acordo com o enunciado.

 2004 F. J. Restivo / A. J. Ferreira 23 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

b. Suponha que o parque informático é criado a partir do ano zero com a compra de N computadores
novos no início de cada ano, obtenha a expressão que exprime y(n) em função de N e n.
c. Qual deverá ser N para que o número de computadores utilizáveis estabilize em 1000?
Solução:
a. y(n) = 0.95y(n-1) + x(n) – 0.953x(n – 3)
ou então
y(n) = x(n) + 0.95x(n – 1) + 0.952x(n – 2)
(esta segunda forma evidencia a resposta impulsional finita do sistema: um computador é abatido ao
fim de três anos)
b. x(n) = Nu(n)
y(n) = Nu(n) + 0.95Nu(n – 1) + 0.952Nu(n – 2)
c. N + 0.95N + 0.952N = 1000 → N = 351

Problema 6
Um modelo simplificado de um banco poderia ser o seguinte:
− x(n) representa uma transacção mensal, de depósito ou de levantamento, [x(n) é positivo se for
depósito e só há uma transacção por mês],
− y(n) representa o saldo depois da operação mensal,
− mensalmente, há lugar ao pagamento de um juro Ty(n-1), com 0 < T << 1 (do cliente ao banco ou do
banco ao cliente, conforme o saldo for devedor ou credor).
a. Represente por uma equação às diferenças o modelo de funcionamento deste banco. Justifique.
b. Suponha que o seu saldo no mês –1 é nulo, que no mês 0 o banco lhe concede um crédito de 100 000 €,
e que a partir do mês 1 deposita regularmente P € neste banco, com o objectivo de saldar a dívida ao
fim de 20 anos. Calcule, através de uma análise em z, qual o valor da prestação P a pagar, sabendo que
a taxa de juro mensal é de 0.5%.
Solução:
a. A equação às diferenças será y(n) = x(n) + (1 + T)y(n-1).
Ao saldo do mês anterior, acresce o juro pago pelo banco e o valor do depósito efectuado.
b. A entrada do sistema (depósito) será
x(n) = - 100 000δ(n) + Pu(n-1).
A transformada z permite-nos resolver o problema facilmente:
1
H (z ) = , |z| > 1.005 (o sistema é instável!)
1 − 1.005 z −1

Pz −1 − 100000 + (100000 + P) z −1
X ( z ) = −100000 + = , |z| > 1
1 − z −1 1 − z −1

− 100000 + (100000 + P )z ¬1
Y (z ) = , |z| > 1.005
(1 − z −1 )(1 − 1.005 z −1 )

1 − 100000 z n +1 + (100000 + P) z n
2πj ∫
y( n) = dz
( z − 1)( z − 1. 005)

 2004 F. J. Restivo / A. J. Ferreira 24 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

− 100000 + (100000 + P) −100000 . 1. 005 n+1 + (100000 + P )1.005 n


y( n) = ( + ) u( n)
1 − 1.005 1. 005 − 1

P (1 − 1.005 n )
y( n) = ( −100000 x1.005 n + ) u( n)
0.005
(esta expressão mostra em separado os efeitos da dívida e da sua amortização).
Para o saldo ser nulo ao fim de 20 anos, y(240)=0, o que dá P=716.43 €.
Obter-se-ia exactamente este valor usando a função do Excel PMT(0.5%,240,100000).

* Problema 7
Um banco remunera os seus depósitos à taxa de juro de 3% ao ano.
Determine o pagamento mensal que lhe garante que ao fim de 20 anos (240 pagamentos) terá um saldo
acumulado de 100 000 €.
Solução:

 0.03 
A equação às diferenças será y( n) = x (n ) + 1 +  y( n − 1) , em que n é um índice que representa o mês.
 12 

A resposta à entrada P.u(n), em que P é a prestação mensal, pode calcular-se através de


P 1 − 400 P 401P
Y( z ) = −1
. −1
= −1
+
1−z 1 − 1.0025 z 1− z 1 − 1. 0025 z −1

y( n) = (1.0025n .401P − 400P )u (n )

Para ao fim de 20 anos o saldo acumulado ser 100 000

100000 = (1.0025240. 401P − 400P ) ⇒ P = 302.92 .

Por curiosidade, podemos ver como evolui o dinheiro entregue e o saldo acumulado ao longo dos 240 meses
4
x 10
10

0
0 50 100 150 200

 2004 F. J. Restivo / A. J. Ferreira 25 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 6

* Problema 1
Crie um ficheiro .m de comandos Matlab que execute as seguintes operações:
- usando o comando wavread(), lê o ficheiro de áudio vega.wav, do tipo .wav (amostrado à
frequência de 44100 Hz),
- desnormaliza as amostra do sinal multiplicando-as pela constante 5000,
- lê os valores dos índices inicial e final da parte do sinal que irá ser processada,
- toca o sinal retido,
- soma ao sinal uma sinusoide pura com a frequência de 3125 Hz e amplitude 20000,
- mostra e toca o sinal obtido,
- define os coeficientes de um filtro notch de 2ª ordem, com polos a 0.95 da origem do plano z e zeros
coincidentes com os polos da sinusoide acrescentada,
- usa o comando zplane para representar os polos e zeros do sistema, e o comando freqz para
representar a resposta em frequência do sistema,
- aplica o filtro ao sinal corrompido programando explicitamente a equação às diferenças,
- toca o sinal obtido.
Agora esclareça: Os comandos
x = sin(2*pi*[0:999]/100); e
for i=0:999, x(i+1) = sin(2*pi*i/100);end
produzem o mesmo resultado. Qual deles deve ser utilizado? Porquê ?
Solução:
%
% Processamento Digital de Sinal
% EEC4162 2004/2005
% Problema 5.3
% filtro digital simples para melhorar a qualidade
% de uma sinal de audio corrompido por uma sinusoide
% {ajf,fjr}@fe.up.pt
%
close all;
clear all;

% le o ficheiro audio e mostra o seu comprimento


inpfile='vega.wav';
[data, Fs, nbits]=wavread(inpfile);
data = data*5000;
length(data)
% mostra para seleccionar segmento a processar
plot(data)
end1=input('end1? ')
end2=input('end2? ')
% mostra e toca o segmento seleccionado
datar=data(end1:end2);
dsize=length(datar);
plot(datar)
disp('Prima uma tecla para ouvir o sinal'); pause

 2004 F. J. Restivo / A. J. Ferreira 26 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

sound(datar/(1.2*max(abs(datar))),Fs)
% adiciona ruido e mostra e toca sinal corrompido
omega0=2*pi*3125/Fs;
nc=1:dsize;
x=datar+20000*cos(omega0*nc)';
plot(x)
disp('Prima uma tecla para ouvir o sinal com ruido'); pause
sound(x/(2.0*max(abs(x))),Fs)
% define coeficientes do filtro notch de segunda ordem
% e mostra resposta em frequencia
r=0.95; c0=2*cos(omega0); rs=r^2; c0r=r*c0;
zplane([1 -c0 1], [1 -c0r rs])
freqz([1 -c0 1], [1 -c0r rs])
disp('Prima uma tecla para aplicar o filtro notch'); pause
y(1)=0; y(2)=0;
for n=3:end2-end1,
y(n)=x(n)-c0*x(n-1)+x(n-2)+c0r*y(n-1)-rs*y(n-2);
end
plot(y)
disp('Concluido. Prima uma tecla para ouvir o sinal filtrado');
pause
sound(y/(1.2*max(abs(y))),Fs)

Problema 2
Um sistema discreto tem um polo em α e um zero em 1/α*.
a. Represente graficamente, no plano z, o polo e o zero do sistema.
b. Mostre que o módulo da resposta em frequência deste sistema é independente de ω (sistema do tipo
passa tudo).
c. Tente obter uma expressão para a fase da resposta em frequência.
Solução:

0.8

0.6

0.4

0.2

-0.2
Imaginary Part
-0.4

-0.6

-0.8

-1

-1 -0.5 0 0.5 1
Real Part
a.
(este é o caso geral; há alguns casos particulares)
1
z−
b. H( z ) = α*
z −α

 2004 F. J. Restivo / A. J. Ferreira 27 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

1
e jω − jω − jω
α* = e α − e
*
1
H( e j ω ) = =
e jω −α α * jω
e −α α*

(há uma solução gráfica, que consiste em mostrar que | α * H( z) |= 1 para z = e jω )

c. Em termos de fase, e para α ∈ R

arg(−α cos ω − jαsenω + 1)


arg(H( e jω )) =
arg(cos ω + jsenω − α )

tgθ − tgϕ
e como tg(θ − ϕ) =
1 + tgθtgϕ

− α cos ω + 1 senω
1−(
[ ]
)( )
tg arg(H(e jω )) = − α senω cos ω − α
− α cos ω + 1 senω
+
− αsenω cos ω − α

(1 − α 2 )senω
arg(H( e jω )) = arctg
2α − (1 + α 2 ) cos ω

representado a seguir para α = 0.5

-1

-2

-3
-3 -2 -1 0 1 2 3

Problema 3
π π
±j ±j
Considere um sistema do tipo FIR com zeros em 0.8e 3 e 1.25e 3 .
a. Determine a sua função de transferência H(z).
b. Determine dois outros sistemas do mesmo tipo e com a mesma amplitude da resposta em frequência
(diferindo apenas na fase).
Solução:
π π π π
j −j j −j
a. H( z ) = z − 4 ( z − 0. 8e 3 )( z − 0.8e 3 )( z − 1. 25e 3 )( z − 1. 25e 3 )

π π
H ( z ) = z − 4 ( z 2 − 1.6 cos z + 0.64 )( z 2 − 2.5 cos z + 1.5625 ) = 1− 2.05z -1
+ 3.2025z -2
- 2.05z - 3 + z - 4
3 3

 2004 F. J. Restivo / A. J. Ferreira 28 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

(sistema com fase linear)


b. Colocando em série sistemas do tipo passa tudo e ganho unitário
π π
±j ±j
1. com zeros em 0.8e 4 e polos em 1.25e 4

π π
j −j
H( z ) = 1. 5625 z −4 ( z − 0.8e 3 ) 2 ( z − 0. 8e 3 ) 2 = 1. 5625 − 2.5z −1 + 6z − 2 − 1.6z − 3 + 0.64 z − 4

(sistema com fase mínima)


π π
±j ±j
2. com zeros em 1.25e 4 e polos em 0.8e 4

π π
j −j
H( z) = 0. 64z −4 ( z − 1.25 e 3 ) 2 ( z − 1.25 e 3 )2 = 0.64 − 1. 6z −1 + 6z − 2 − 2.5z − 3 + 1.5625 z − 4

(sistema com fase máxima)

* Problema 4
Considere um sistema discreto do tipo FIR, de fase linear, com um zero em 0.3 + j0.4.
a. Determine a sua resposta impulsional h(n).
b. Determine a resposta implsional dos sistemas de fase mínima e fase máxima com magnitude da resposta
em frequência igual à do sistema dado.

Problema 5
Considere o sistema discreto do tipo FIR com zeros em
0.3+j0.4, 0.3-j0.4, (0.3+j0.4)-1, (0.3-j0.4)-1, 0.6+j0.8, 0.6-j0.8, -1.
a. Determine a sua resposta impulsional h(n).
b. Mostre que o sistema é de fase linear.
c. Decomponha o sistema numa associação em série de dois sistemas, cada um deles ainda de fase linear.
Solução:
a. H(z) = z-7(z - 0.3-j0.4)(z - 0.3+j0.4)(z - (0.3+j0.4)-1)(z - (0.3-j0.4)-1)(z - 0.6-j0.8)(z - 0.6+j0.8)(z + 1)
H(z) = z-7(z2 - 0.6z + 0.25)(z2 – 2.4z + 4)(z2 – 1.2z + 1)(z + 1)
H(z) = z-7(z4 - 3z3 + 5.69z2 - 3z + 1)(z3 – 0.2z2 – 0.2z + 1)
H(z) = z-7(z7 – 3.2z6 + 6.09z5 – 2.538z4 – 2.538z3 + 6.09z2 – 3.2z + 1)
h(n) = [1 –3.2 6.09 –2.538 –2.538 6.09 –3.2 1]
b. A resposta impulsional é simétrica.
c. (ver 3ª linha de a))

 2004 F. J. Restivo / A. J. Ferreira 29 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

1.5

0.5

7
0

-0.5 Part
Imaginary

-1

-1.5

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2


Real Part

H(z) = z-4(z4 - 3z3 + 5.69z2 - 3z + 1) z-3 (z3 – 0.2z2 – 0.2z + 1)

 2004 F. J. Restivo / A. J. Ferreira 30 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 7

* Problema 1

Considere um sistema causal do tipo FIR com zeros em α = 0. 8 exp( jπ / 3) , α ∗ , 1 / α e 1 / α ∗ .

a. Interprete a seguinte sequência de comandos Matlab, que deverá escrever num ficheiro do tipo.m .
close all;
clear all;
alfa=0.8*exp(j*pi/3);
raizes=[alfa alfa' 1/alfa 1/(alfa')];
num=poly(raizes);
raizes=[0 0 0 0];
den=poly(raizes);
figure(1);
zplane(num, den);
pause;
figure(2);
[H, W]=freqz(num, den);
plot(W/pi, 20*log10(abs(H)));
xlabel('Frequencia Normalizada');
ylabel('Amplitude (dB)');
pause;
b. Adicione neste ficheiro .m outros comandos Matlab que executem as seguintes operações:
- representa numa figura 3 a resposta impulsional do sistema,
- constrói os vectores filptnum e filptden correspondentes respectivamente ao polinómio
numerador e denominador da função de transferência de um filtro passa-tudo de segunda ordem do
tipo

Ζ −1 − β ∗ Ζ −1 − β
H( Ζ ) = ⋅
1 − β Ζ −1 1 − β ∗ Ζ −1

(a multiplicação polinomial é conseguida em Matlab através do comando conv, efectuando a


convolução entre as sequências discretas constituídas pelos coeficientes de cada polinómio).
- obtém o filtro de fase mínima que resulta do filtro FIR indicado, colocando em série com este um
filtro passa-tudo de segunda ordem e ganho unitário; isto é conseguido programando um valor de
β adequado na equação acima e efectuando a multiplicação polinomial:
faseminnum=conv(num, filptnum);
faseminden=conv(den, filptden);
- representa na figura 1 o diagrama zero-polar deste sistema,
- representa na figura 3, os primeiros 5 coeficientes da resposta impulsional do filtro de fase mínima,
- sobrepõe na representação da figura 2 a resposta em frequência do filtro de fase mínima (o que
conclui ?).
- usando um procedimento idêntico ao anteriormente seguido, constrói um filtro de fase máxima,
- representa na figura 1 o diagrama zero-polar deste sistema,
- representa na figura 3, os primeiros 5 coeficientes da resposta impulsional do filtro de fase máxima,
- sobrepõe na representação da figura 2 a resposta em frequência do filtro de fase máxima (o que
conclui ?).

 2004 F. J. Restivo / A. J. Ferreira 31 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

c. Que comando(s) Matlab é que usaria para obter o filtro de fase máxima, através de, em alternativa ao
procedimento anterior, H FASE max ( z) = z − L H FASE min (z −1 ) ?

Problema 2
Considere o sistema discreto causal com a equação às diferenças
y( n) = x( n) − 0. 4x( n − 1) + 0.8y( n − 1) − 0.64 y( n − 2) .

Escreva num ficheiro do tipo.m comandos Matlab que executem as seguintes funções:
- define nos vectores num e den os polinómios numerador e denominador do sistema dis creto,
- representa o diagrama zero-polar do sistema,
- usa o comando roots()para determinar os polos e zeros (compare com o cálculo manual),
- usa o comando;
[resid, polos, dire]=residuez(num, den);
que fornece os vectores resid, polos e dire, cujo conteúdo deverá interpretar e comparar com o
resultado da expansão manual em fracções parciais da função de transferência do sistema,
- usa o comando impz() para representar as primeiras 40 amostras da resposta impulsional do sistema,
que deverá comparar com o cálculo manual da resposta impulsional (vector h) e a representação das
suas primeiras 40 amostras, através do comando plot(n,h,'pr') (usando para índice o vector
n=[0:39];).

* Problema 3
Projecte um filtro digital do tipo passa baixo, com frequência de corte 1 kHz à frequência de amostragem 10
kHz, a partir de um filtro RC passa baixo elementar
a. Pelo método da invariância da resposta imulsional.
b. Pelo método da invariância da resposta ao degrau.
c. Pelo método da transformação bilinear.
d. Represente graficamente as magnitudes das respostas em frequência dos três filtros digitais obtidos.
Solução:
a. A função de transferência do filtro analógico protótipo é
1
H a ( s) = RC
1
s+
RC
1 1
em que a frequência angular de corte é Ω c = , ou seja, 2 π.10 3 = ,e
RC RC
2000 π
H a ( s) = .
s + 2000 π
π
−4 −
O polo em -2000π mapeia-se no plano z em e −2000π. 10 =e 5 e obtem-se
π
−4 2000 π 5 0.628
H( z ) = 10 π
= π
= , | z |> 0.533
− − 1 − 0.533 z−1
1 − e 5 z −1 1 − e 5 z −1

 2004 F. J. Restivo / A. J. Ferreira 32 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

y(n) = 0.628x(n) + 0.533y(n-1) .


b. A resposta ao degrau do filtro analógico protótipo é

d a ( t ) = (1 − e −2000πt ) u( t )

e a resposta ao degrau do filtro digital resultante da transformação é


π
− n
d( n) = (1 − e− 2000π. 10 n ) u( n) = (1 − e
4
5 ) u( n)

cuja transformada z é
1 1
D ( z) = −
1 − z −1 −
π
1− e 5 z −1

pelo que
1 1
−1
− π π
1− z − −
5 ) z −1
1− e 5 z −1 (1 − e 0. 467 z −1
H ( z) = = π
= , | z |> 0. 533
1 − 1 − 0.533 z −1
1− e 5 z −1
1 − z−1
y(n) = 0.467x(n-1) + 0.533y(n-1) .
c. Aplicando a transformação bilinear à função de transferência do filtro analógico protótipo

2000 π π π(1 + z − 1 )
H (z ) = = =
2 1 − z −1 1− z −1 10 + π − (10 − π) z −1
+ 2000 π 10 +π
10 −4 1+ z −1 1+ z −1
0.239 (1 + z −1 )
H ( z) = , | z |> 0. 522
1− 0. 522 z −1
y(n) = 0.239x(n) + 0.239x(n-1) + 0.522y(n-1) .
(note como neste caso surge um zero de H(z) em z=-1)
d. É óbvio qual é qual:

1.2

0.8

0.6

0.4

0.2

0
0 0.5 1 1.5 2 2.5 3

 2004 F. J. Restivo / A. J. Ferreira 33 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 8

Problema 1
Considere o filtro analógico passa baixo
1
H a (s ) = .
1 + 0. 08s
a. Determine a frequência de corte Ω c (atenuação igual a 3 dB) deste filtro.
b. Determine o filtro digital que se obtem de Ha(s) pelo método da invariância da resposta impulsional,
para uma frequência de amostragem de 10 Hz.
c. Represente graficamente a amplitude da resposta em frequência deste filtro digital e a do filtro
analógico original, e explique as eventuais diferenças entre ambas.
Solução:
1 12.5
H a (s ) = = ⇒ Ω c = 12.5 rad/s ∴ Fc = 1.984 Hz
1 + 0.08 s s + 12.5
1.25
H (z ) =
1 − e −1.25 z −1

1.5

0.5

0
0 1 2 3 4 5 6

0.8

0.6

0.4

0.2

0
0 1 2 3 4 5 6 7 8 9 10

nota-se um acentuado efeito de aliasing.

* Problema 2
Pretende-se projectar um filtro digital passa-baixo, usando o método da transformação bilinear, a partir de um
filtro de Butterworth, e de tal modo que, à frequência de amostragem de 16 kHz,
- o limite superior da sua banda de passagem seja 2kHz, e a atenuação verificada não exceda 3 db,
- o limite inferior da sua banda de bloqueio seja 4 kHz, e a atenuação verificada seja no mínimo de 40 dB.
Determine a ordem mínima do filtro.

Problema 3
Pretende-se projectar um filtro digital passa-baixo, usando o método da transformação bilinear, a partir de um
filtro de Butterworth de 3ª ordem, de tal modo que à frequência de amostragem de 10 kHz a sua frequência
superior de corte seja de 1 kHz.
a. Determine a frequência superior de corte do filtro analógico protótipo.

 2004 F. J. Restivo / A. J. Ferreira 34 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

b. Localize, no plano z, os polos do filtro digital.


c. Determine a partir de que frequência a atenuação do filtro digital é melhor que 60 dB.
Solução:
a. De acordo com o enunciado
2 ωc π
Ωc = tg = 20000 tg = 6498 . 4 rad/s
T 2 10
b. Os polos deste filtro estão colocados, no plano s, em

±j
s 1 = −6498 .4 e s 2,3 = 6498 .4e 3 .

No plano z, teremos então


2 + sT 2 − 0.64984
z1 = = = 0. 501
2 − sT 2 + 0.64984

±
2 + 0. 64984 e 3 2 − 0.32492 ± j0.56278
z 2,3 = 2π
= = 0.736 ± j0. 0639
± 2 + 0.32492 ± j0.56278
2 − 0.64984 e 3
1 Ω 6
c. 10log < −60 ⇒ ( ) > 999999 ⇒ Ω = 64984
Ω 6 6498.4
1+ ( )
6498.4
donde
ΩT
ω = 2tg −1 = 2.5445 rad
2

Problema 4
Pretende-se projectar um filtro digital passa-banda, do tipo FIR, tal que

0 | Ω |< 400 rad/s


j ΩT
H (e )≈ 1 400 ≤| Ω |≤ 600 rad/s
0 600 <| Ω |≤ 1000 rad/s


para a frequência angular de amostragem Ω s = = 2000 rad/s .
T
a. Determine a resposta impulsional do filtro analógico protótipo.
b. Determine os coeficientes do filtro digital, utilizando uma janela de Hanning de comprimento 7.
c. Faça um esboço da resposta em frequência do filtro digital.
Solução:
a.

1
0.8
0.6
0.4
0.2
0
-1000 -800 -600 -400 -200 0 200 400 600 800 1000

 2004 F. J. Restivo / A. J. Ferreira 35 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

∫H
1 jΩ t 600 400
h c (t) = c ( j Ω)e dΩ = senc(600 t) − senc(400 t)
2π π π
−∞

b. h ( n) = [0.6senc( 0.6n) − 0.4senc( 0.4n) ]w N ( n)

c. Com uma janela rectangular de comprimento 101, teríamos a seguinte resposta impulsional e resposta
em frequência

0.2

0.1

-0.1

-0.2
-50 -40 -30 -20 -10 0 10 20 30 40 50

1.5

0.5

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Com uma janela Hanning de comprimento 7


h(h)=[0 -0.1871 0 0.2 0 0.1871 0].*[0 0.25 0.75 1 0.75 0.25 0]

0.2

0.15

0.1

0.05

-0.05
1 2 3 4 5 6 7

0.35

0.3

0.25

0.2

0.15

0.1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

que é obviamente uma péssima aproximação da resposta em frequência pretendida,

Problema 5
Considere um sistema FIR causal, com resposta impulsional h(n) real, de comprimento N e de fase linear do
tipo 1 ( i.e. N é ímpar e h(N-1-k)=h(k) para 0≤k≤(N-1)/2 ). Nestas condições, a sua resposta em frequência pode
escrever-se H(e jω )=A(e jω )e -j(αω-β), sendo A(e jω ) uma função real de ω, e sendo α e β constantes.
( N−1 ) / 2
a. Mostre que A(e jω ) pode exprimir-se por A e jω = ( ) ∑ a(n) cos(nω) e relacione a(n) com h(n).
n= 0

 2004 F. J. Restivo / A. J. Ferreira 36 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

b. Projectaram-se dois filtros FIR, nas condições do enunciado e com o mesmo comprimento N, do tipo
passa-baixo, com banda passante BP: |ω| ∈ [0, 0.42π], com banda de transição BT: |ω| ∈ ]0.42π, 0.58π[, e
com banda de corte BC: |ω| ∈ [0.58π, π], através da minimização dos dois seguintes critérios de erro na
aproximação de H(ejω) a uma resposta desejada Hd(ejω) :
π

∫ ( ) ( )
2
Critério 1: ε 2 = H d e jω − H e jω ∂ ω
−π

{ ( ) ( )}
Critério 2: MAX{ε(ω)} = MAX Hd e j ω − H e j ω , ω ∈ BP ∪ BC .

Gráfico G1 Gráfico G2

1 1

0.8 0.8
Ganho

0.6 Ganho 0.6

0.4 0.4

0.2 0.2

0 0
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
Frequência/π Frequência/π
O módulo da resposta em frequência dos dois filtros projectados encontra-se representado nos
gráficos G1 e G2.
Indique, justificando, que critério de projecto terá sido usado para projectar os filtros ilustrados.
c. Com base na informação disponível, estime o comprimento N dos filtros projectados na alínea anterior.

 2004 F. J. Restivo / A. J. Ferreira 37 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 9

* Problema 1
Pretende-se projectar um filtro discreto, do tipo passa-banda, com as seguintes especificações: banda
passante entre 3000 Hz e 6000 Hz, ordem 8, frequência de amostragem 44100 Hz. Com este objectivo,
projectam-se em ambiente Matlab quatro filtros: Butterworth, Chebychev 1, Chebychev 2, elíptico; e
comparam-se as suas características, através do seguinte código:
close all;
clear all;
fs=44100;
fc=[3000/fs 6000/fs];
[b1 a1]=butter(4, fc); % ordem efectiva do filtro: 2N=8
[H1, W]=freqz(b1, a1);
[grpdly1 W]=grpdelay(b1, a1);
% ripple na banda passante = 0.5 dB
[b2 a2]=cheby1(4, 0.5, fc); % ordem efectiva do filtro: 2N=8
[H2, W]=freqz(b2, a2);
[grpdly2 W]=grpdelay(b2, a2);
% ripple nas bandas corte = 25 dB
[b3 a3]=cheby2(4, 25, fc); % ordem efectiva do filtro: 2N=8
[H3, W]=freqz(b3, a3);
[grpdly3 W]=grpdelay(b3, a3);
% ripple na banda passante = 0.5 dB e nas bandas corte = 25 dB
[b4 a4]=ellip(4, 0.5, 25, fc); % ordem efectiva do filtro: 2N=8
[H4, W]=freqz(b4, a4);
[grpdly4 W]=grpdelay(b4, a4);
figure(1);
plot(W/pi*fs/1E3, 20*log10(abs([H1.'; H2.'; H3.'; H4.'])));
xlabel('Frequencia (kHz)');
ylabel('Magnitude (dB)');
axis([0 12 -60 10]);
figure(2);
plot(W/pi*fs/1E3, [grpdly1'; grpdly2'; grpdly3'; grpdly4']);
xlabel('Frequencia (kHz)');
ylabel('Atraso Grupo (amostras)');
axis([0 12 0 150]);
Com base na apreciação das figuras 1 e 2 geradas, diga que traçado corresponde a cada tipo de filtro. Se o
critério de escolha for bandas de transição estreitas e distorção moderada do atraso de grupo (inferior a 100
amostras) que filtro escolheria ?

* Problema 2
Pretende-se projectar um filtro FIR de fase linear, com as seguintes especificações:
- ordem 128 (comprimento 129),
- banda passante (Hz): [3000 6000],
- bandas de rejeição (Hz): [0 1500] ∪ [7500 22050],
- frequência de amostragem 44100 Hz.
Escreva num ficheiro do tipo.m comandos Matlab que executem as seguintes funções:
- obtém um filtro projectado pelo método da janela (comando fir1) usando uma janela de Hanning,
- obtém um filtro do tipo equiripple (comando remez) (ou firpm).

 2004 F. J. Restivo / A. J. Ferreira 38 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Compare as características do dois filtros e diga qual escolheria se desejar bandas de transição estreitas.

* Problema 3
Repita o projecto dos filtros indicados anteriormente mas usando agora a ferramenta de projecto fdatool da
toolbox de processamento de sinal do Matlab.

Problema 4
a. Calcule a DFT X(k) do sinal discreto x(n) = [0, 1, 1, 0].
b. Calcule a DFT Y(k) do sinal discreto y(n) = [0, 0, 0, 0, 0, 1, 1, 0], e relacione-a com a anterior.
Solução:
a. Usando a definição, encontra-se X(k) = [2, -1-j, 0, -1+j].
π
É uma amostragem em k , k=0 .. 3 da transformada de Fourier
2
3
ω −j 2 ω
X ( e j ω ) = e − j ω + e − 2 jω = 2 cos e
2
b. Se ao sinal x(n) fossem acrescentados 4 zeros obter-se-ia x8(n) = [0, 1, 1, 0, 0, 0, 0, 0], cuja DFT seria
π
uma amostragem em k , k=0 .. 7 de da mesma transformada de Fourier X( e jω ) .
4

1.8

1.6

1.4

1.2

0.8

0.6

0.4

0.2

0
1 2 3 4 5 6 7 8 9

O atraso circular de 4 unidades, apenas afecta a fase. (de quanto?)

Probl ema 5
Considere o sinal discreto de comprimento 16,
πn
x( n) = cos , n = 0,...,15
8
Determine a sua DFT.
Solução:
O modo mais simples de resolver este problema consiste em escrever (evitar seguir a definição...)
nπ nπ
j −j
8 +e 8
x[n ] =
e
, n = 0 .. 15
2
e comparar com a expressão da iDFT

 2004 F. J. Restivo / A. J. Ferreira 39 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

N −1 2π
x[n ] = ∑ X[k]e
1 j nk
N
N k =0

Só há dois valores de X[k] diferentes de 0, para k=1 e para k=-1+16=15


X[1]= X[15]=8

Problema 6
Considere o sinal discreto x(n)=2-n u(n) e a sua transformada de Fourier X(e jω ). Determine o sinal discreto y(n)
de comprimento N cuja DFT é

j k
Y (k ) = X ( e N ), k = 0,..., N − 1 .

Solução:
Verifica-se aqui o fenómeno do aliasing, e poderíamos escrever imediatamente o resultado. Como todas as
amostras, de N em N, vão somar-se
+∞ +∞

∑2 ∑2
− ( n + rN) 1
y( n) = = 2− n −rN
= 2 − n , n = 0 .. N-1
r =0 r =0 1 − 2 −N

Fazendo "as contas", temos


+∞

∑2 −r 1
X( z ) = z−r , | z | >
r=0
2

+∞ 2 πrk
−j
Y (k ) = ∑ 2 −r e N

r=0

N −1 +∞ 2 πrk +∞ N −1
−j
∑∑ ∑ ∑W
1 − nk 1 ( r − n) k
y(n ) = 2− r e N WN = 2− r N
N k =0 r=0 N r=0 k =0

e como o segundo somatório vale 0 se n-r≠0, N, 2N, ... e N se n-r=0, N, 2N, ...
+∞

∑2 − n −rN 1
y( n) = = -N
2 - n , n = 0. ..., N - 1 .
r =0 1-2

Problema 7
A DFT de um sinal discreto x(n) de comprimento N é X(k).
Determine a DFT Y(k) do sinal de comprimento MN y( n) = x(n mod N ) , M inteiro.

Solução:
O sinal y(n) é constituído por M repetições do sinal x(n). Então
MN −1 M −1 N−1 M −1 N−1
Y( k ) = ∑
n =0
nk
y( n) WMN = ∑∑
r = 0 n= 0
y( rN + n) WMN
( rN+ n )k
= ∑∑ y(n )W
r = 0 n= 0
rNk nk
MN W MN

M −1 N −1 M −1 N −1 k k 
MX , se k = múltiplo de M
∑ ∑ ∑ ∑
n
Y( k ) = rNk
WMN nk
x( n) W MN = rk
WM x( n ) WN M =  M
r =0 n =0 r =0 n =0 0, se não

É o resultado esperado: repetir periodicamente num domínio corresponde a inserir zeros no outro domínio.

 2004 F. J. Restivo / A. J. Ferreira 40 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 10

Problema 1
Pretende-se projectar um sistema discreto utilizando o método da amostragem da resposta em frequência. O
número de amostras é de 16, e sabe-se que as únicas amostras diferentes de zero são
H(0) = H(1) = H(15) = 1
H(2) = H(14) = 0.5.
Escreva as equações às diferenças que realizam este sistema.
Solução:
O caminho a seguir é H(k) → h(n) → H(z) → sistema, utilizando-se a iDFT e a transformada em z

1 N −1
h ( n) = ∑
N k= 0
H( k) WN−nk

N −1 N −1 N−1 N−1 N−1


∑ h(n)z −n = ∑ N ∑ H(k )WN− nkz −n = N ∑ H(k ) ∑ (WN−kz −1)n
1 1
H ( z) =
n= 0 n= 0 k =0 k =0 n =0

1 N−1 −k −1 N
1 − ( WN 1 − z −N N−1
∑ ∑ 1 − W − k z− 1
z ) H( k)
H ( z) = H(k ) − k −1
=
N k =0 1 − WN z N k =0 N

O sistema pretendido é constituído pela associação em série do sistema do tipo não recursivo (FIR)

1 − z −N
H p (z ) =
N
que é um sistema com N zeros igualmente espaçados sobre a circunferência unitária do plano z, em
z k = WN−k , k = 0... N − 1 , normalmente designado por filtro em pente (‘comb filter’), com o paralelo de N
sistemas do tipo recursivo (IIR)
H( k )
H k ( z) = −k −1
, k = 0..N − 1
1 − WN z

cada um com um polo exactamente em z k = WN−k . Cada um destes polos é cancelado por um dos zeros do
primeiro sistema, resultando

H ( z) z = W − k = H ( k ) .
N

Se H(k) = H(N-k), é possível agrupar os polos conjugados em sistemas de segunda ordem


2 k π −1
2 − 2cos z
H( k) H( k) N
H kk ( z) = + = H( k) .
− k −1
1 − WN k −1
1 − WN 2kπ −1 − 2
z z 1 − 2 cos z +z
N
No caso dado

1 − z −16
H p (z ) =
16
1
H 0 ( z) = −1
1− z

 2004 F. J. Restivo / A. J. Ferreira 41 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

π
2 − 2 cos z −1
H11(z ) = 8
π −1 − 2
1 − 2 cos z + z
8
π
1 − cos z−1
H 22 (z ) = 4
π −1 − 2
1 − 2 cos z + z
4
H( z) = H p ( z)[H 0 ( z) + H11( z) + H 22 ( z)]

a que correspondem as equações


x( n) − x (n − 16)
v(n ) =
16
y0 (n ) = v( n) + y0 ( n − 1)

π π
y11( n) = 2 v( n) − 2 cos v( n − 1) + 2 cos y11 (n − 1) − y11( n − 2)
8 8
π π
y22 ( n) = v(n ) − cos v( n − 1) + 2 cos y22 ( n − 1) − y22 ( n − 2)
4 4
y( n) = y0 ( n ) + y11 (n ) + y 22 (n ) .

Problema 2
Pretende-se filtrar um sinal discreto x(n), de comprimento indeterminado, com um filtro FIR, de comprimento 71,
utilizando a convolução rápida, pelo método overlap-add.
Determine o comprimento N da FFT raiz 2 que minimiza o número de multiplicações complexas a realizar por
amostra à saída. Considere que N não pode exceder 2048 e que pode desprezar as multiplicações realizadas
para o cálculo da DFT da resposta impulsional do filtro.
Solução:
Analisam-se os cinco comprimentos possíveis:

N L n.a n.b n.m m/a


128 58 7 64 1024 17.66
256 186 8 128 2304 12.39
512 442 9 256 5120 11.58
1024 954 10 512 11264 11.81
2048 1978 11 1024 24576 12.42

 2004 F. J. Restivo / A. J. Ferreira 42 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 11

Problema 1
Faça um diagrama de fluxo para um programa para a FFT, algoritmo de decimação na frequência, entradas
ordenadas.

Problema 2
a. Recupere a partir da Web (em ftp://ftp.fe.up.pt/pub/Pessoal/Deec/ajf/pds/tpc/fft_.m.txt) o ficheiro
fft_.m.txt e retire a extensão .txt , retendo só o nome fft_.m, de modo a poder invocar em ambiente
Matlab os comandos incluidos neste ficheiro digitando simplesmente fft_ (isto é, de modo que o
Matlab reconheça este ficheiro como uma “M-file”).
b. Analise o conjunto de comandos Matlab contidos no ficheiro fft_.m que ilustram uma possível
estrutura de cálculo da Fast Fourier Transform, pelo algoritmo de decimação no tempo (DIT). De modo
a familiarizar-se com a operação do algoritmo, teste-o considerando as sugestões contidas no
cabeçalho do ficheiro. Use também a função fft() do ambiente MATLAB para comparar resultados.
c. Copie o ficheiro fornecido para um outro e modifique-o de modo a implementar o algoritmo de
decimação na frequência. Note que deverá produzir os mesmos resultados do algoritmo DIT. Procure
justificar todas as modificações introduzidas e utilize um procedimento de teste adequado para validar
a sua implementação.
d. Admita que pretende substituir, em cada borboleta, o cálculo explícito de funções trigonométricas pelo
acesso a uma tabela. Conclua sobre qual deverá ser o conteúdo e tamanho da(s) tabela(s)
necessária(s). Procure evitar redundância de valores.

 2004 F. J. Restivo / A. J. Ferreira 43 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

Aula nº 12

Problema 1
Considere um sistema linear e invariante com h(n) = anu(n), com |a| < 1.
a. Calcule a função autocorrelação determinística da resposta impulsional c HH (n ) = h(n) * h * (-n) .

b. Calcule a função densidade espectral de energia do sistema |H(e jω )|2.


c. Use o teorema de Parseval para calcular a área sob a função densidade espectral de energia.
Solução:
a. Seja f(n) = h *(-n) = h(-n) = a-nu(-n).
Então
+∞ +∞ +∞
c HH ( n ) = ∑
k =−∞
h( k) f ( n − k) = ∑
k = −∞
a k u (k )a − (n − k) u( −( n − k)) = ∑a
k =−∞
k
a − ( n− k) u( k) u( k − n)

c HH (n ) = a − n ∑a
k ≥0
2k

k ≥n

e há dois casos
+∞
a −n
∑a
1
n ≤ 0 : c HH ( n ) = a −n 2k
= a −n =
k =0 1− a 2 1− a 2

+∞
a 2n an
n ≥ 0 : c HH ( n ) = a −n ∑
k =n
a 2k = a −n
1− a 2
=
1− a 2

que podem ser condensados na expressão

a |n |
c HH ( n) =
1−a 2
(é uma função real e par, com um máximo em n=0)

b. c HH ( l) = h(l) * h * ( −l) ↔ H (e jω ) H * ( e jω ) = C HH ( e jω )

Temos assim duas vias, a directa e calculando a transformada de Fourier de cHH( l )


Primeira via:
+∞

∑a
1
H (e j ω ) = n − jω n
e =
n = −∞ 1 − ae − j ω

1 1 1
C HH ( e jω ) =| H( e jω ) |2 = H( e jω ).H * ( e jω ) = − jω jω
=
1 − ae 1 − ae 1 − 2a cos ω + a 2
Segunda via:
+∞ −1 +∞
a −l al
C HH ( e jω ) = ∑
l = −∞
c HH ( l) e − jωl = ∑ 1− a
l= −∞
2
e − jω l + ∑ 1−a
l =0
2
e − jωl

+∞ +∞

∑a ∑a e
1
C HH ( e jω ) = ( l
e jω l + l − j ωl
)
1− a 2
l =1 l =0

 2004 F. J. Restivo / A. J. Ferreira 44 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

1 ae j ω 1 1
C HH ( e j ω ) = ( jω
+ − jω
)=
1−a 2
1 − ae 1 − ae 1 − 2a cos ω + a 2
π π

∫ ∫ 1 − 2a cos ω + a
1 1 1
c. E = F −1 ( C HH (e jω )) = C HH (e j ω ) e j ωn dω = dω
l= 0 2π 2π 2
−π l =0 −π

que não é simples de calcular. O teorema de Parseval permite-nos fazer o cálculo noutro domínio
π +∞

∫ ∑ | h( n) |
1
| H( e jω ) | 2 dω = 2
2π n = −∞
−π

+∞ +∞

∑ ∑a
1
E= | h( n) | 2 = 2n
= (notar que E=c HH(0)).
n = −∞ n =0 1− a 2

Este cálculo poderia ter sido realizado utilizando a transformada z e o teorema dos resíduos:
1
c HH ( l) = h ( n) * h * ( − n) ↔ C HH ( z) = H(z ).H * ( )
z*


1 1
c HH (l) = H(z ).H*( * ) zl −1dz
2πj z

∫ ∫
1 1 1 1 1 1
E = c HH (0) = H(z ).H * ( * ) z −1dz = ( ) * z −1dz , | a |<| z |<| |
2πj z 2πj 1 − az −1
1 − az * a
1

1 1 1 1
E = c HH (0) = dz = =
2πj z − a 1 − a *z 1 − a a 1− | a |2
*

(só há um polo no interior do contorno)

Problema 2
Considere que a entrada de um filtro diferenciador de primeira ordem, y(n) = x(n) – x(n-1), é ruído branco de
média nula e com função autocorrelação φ XX ( l) = σ 2 δ( l) .

a. Determine e represente a função autocorrelação e a potência espectral do sinal à saída do sistema.


b. Qual é a potência média à saída do sistema?
c. Que conclusão retira dos resultados deste problema sobre a acção do filtro?
Solução:
a. Seguindo o caminho

φ XX ( l) → Φ XX ( e jω ) → Φ YY ( e jω ) → φ YY (l)

tem-se

Φ XX (e jω ) = σ 2

C HH ( e jω ) = H( e jω ) H* (e jω ) = (1 − e − jω )(1− e jω ) = 1 − 2 cos ω − 1 = 2(1 − cosω)

Φ YY ( e jω ) = C HH ( e jω )Φ XX ( e jω ) = 2σ 2 (1 − cos ω) (potência espectral à saída)

e jω + e − jω
Φ YY ( e jω ) = 2σ 2 (1 − )
2

 2004 F. J. Restivo / A. J. Ferreira 45 Problemas das Aulas Práticas


Processamento Digital de Sinal 2004/05

e por simples observação faz-se a inversão da transformada

φ YY ( l) = 2σ 2 δ( l) − σ 2 δ(l − 1) − σ 2 δ( l + 1)

b. A potência média do sinal à saída será

E (| y( n) | 2 ) = φ YY (0) = 2σ 2

c. A potência média do sinal à saída é o dobro da potência média à entrada.


Como cada amostra do sinal de saída usa duas amostras consecutivas do sinal de entrada, há uma
correlação entre cada amostra do sinal de saída com as amostras anterior e seguinte.

 2004 F. J. Restivo / A. J. Ferreira 46 Problemas das Aulas Práticas

Você também pode gostar