Outubro de 2004
Processamento Digital de Sinal 2004/05
Este conjunto de problemas foi utilizado nas aulas prticas 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 evoluo do programa da disciplina, e
mantidos a maioria dos anteriores, para facilitar aos alunos o estudo.
Esto assinalados com um * os problemas resolvidos na turma prtica de um dos autores no ano lectivo de
2004/05.
Os autores
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 frequncia 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
Soluo:
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
Soluo:
+ 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 representao grfica deste sinal discreto
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) .
Soluo:
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.
Soluo:
Ambos os sistemas tm a resposta impulsional (porqu?)
h(n) = 0.1[u(n)-u(n-10)].
Assim, so ambos do tipo FIR, sendo o primeiro um sistema no recursivo e o segundo um sistema recursivo.
* Problema 5
Uma escola ensina um nico curso com a durao de um ano.
Sejam x(n) o nmero de alunos admitidos no ano n e y(n) o nmero 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 trs inscries.
a. Escreva a equao s diferenas que regula este sistema discreto.
b. Determine e interprete a sua resposta impulsional h(n).
Soluo:
a. Frequentam o ano n os alunos admitidos, mais 20% dos alunos que frequentaram o ano anterior, menos
os admitidos h trs anos e que reprovaram trs vezes
y(n) = x(n) + 0.2y(n-1) 0.23x(n-3)
ou ento 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].
Se num determinado ano entrarem os primeiros 1000 alunos, e no entrarem mais nos anos seguintes (a
entrada um impulso), frequentaro a escola nesse ano, 1000 alunos, no ano seguinte, 200, no terceiro
ano, 40, e os oito que reprovam, prescrevem (e a escola encerra...).
Soluo:
Estabilidade Causalidade Linearidade Invarincia translaco
a. sim, se |g(n)| for limitado sim sim no
b. no no sim no
c. sim no sim sim
d. sim no sim sim
e. sim sim no sim
f. sim, se a e b finitos sim no no
g. sim no sim no
h. sim sim no no
Soluo:
+ 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
Aula n 2
* Problema 1
a. Determine a resposta impulsional h(n) e a resposta em frequencia H(e j ) de um filtro de mdia 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 mdulo e a fase de H(ej).
Soluo:
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 .
Soluo:
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 jn
0 .5
em que
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 frequncia inferior de corte
0.75 rad.
Soluo:
+ + +
a.
n =
( 1) n h( n) e j n =
n =
e jn h( n) e j n = h( n) e
n =
j( ) n
= H ( e j( ) )
ii) verificando que o filtro pedido se obtem por uma translaco de da resposta em frequncia de um
filtro passa baixo ideal com frequncia superior de corte 0.25 rad, e utilizando o resultado da alnea
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 frequncia superior de corte 0.75 rad
3 3n
h ( n) = ( n) senc .
4 4
Podemos verificar facilmente que se trata da mesma soluo. No grafico a seguir representam-se as
t 3 3t
funes 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
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 frequncia do filtro.
Soluo:
a. Usando o resultado do problema 2., e atendendo a que o filtro pedido se pode obter subtraindo a um
filtro passa baixo com frequncia superior de corte /2 um filtro passa baixo com frequncia superior de
corte /4
1 n 1 n
h ( n) = senc senc .
2 2 4 4
b. A representao 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 imaginria.
Soluo:
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 associao de sistemas discretos
h 1(n)=(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 multiplicaes, 2 adies e duas posies de memria.
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 alnea 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) .
Soluo:
+
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
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
(poderamos ter escrito este resultado imediatamente, usando a noo de resposta em frequncia)
c. (aqui, no podemos usar esta noo... 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 , n0
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 (aps terminar o fenmeno transitrio)
Aula n 3
* Problema 1
Crie um ficheiro .m de comandos Matlab que execute as seguintes operaes:
- solicita que o utilizador fornea um valor inteiro N atravs do teclado (comprimento de um sinal),
- constri o vector linha, n , com os inteiros 0, 1, , N-1,
- representa graficamente o valor absoluto do vector h , usando para graduar o eixo das abcissas o
vector n ; acrescente tambm 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 grfica atravs do comando figure(2); esta figura ser posteriormente
dividida para representar trs grficos na horizontal (i.e. dividir-se- numa matriz 31),
- usa o comando stem para representar na faixa superior da figura 2, a parte imaginria do vector h ,
usando para graduar o eixo das abcissas o vector n ;
- cria o vector linha x ,com N elementos e cujos valores no-nulos so dados pela sequncia discreta
u(n-20)-u(n-30),
- usa o comando stem para representar na faixa intermdia 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 convoluo discreta entre a parte
imaginria do vector h e o vector x ;
- imprime a mensagem Convoluo j efectuada!,
- mostra o resultado dos comandos size(y) e length(y) (critique a diferena),
- usa o comando stem para representar na faixa inferior da figura 2, os primeiros 100 elementos do
vector y atravs do smbolo 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.
Soluo:
%
% Processamento Digital de Sinal
% EEC4162 2004/2005
% Problema 3.1
% Convoluao discreta
% ajf/fjr
%
N=input('Fornea 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');
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('Convoluao 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 referncia ao problema anterior, esclarea:
a. Os comandos sum(h.*conj(h)) e h*h' produzem o mesmo resultado, porqu ?
b. Qual a diferenas entre os comandos h*h' e h*h.' ?
c. Onde atrs se usou o comando conv, poder-se-ia ter utilizado o comando filter ?
d. Qual a diferena entre os comandos who e whos ?
Aula n 4
Problema 1
Considere um filtro analgico passa baixo elementar do tipo RC, com R = 10 k e C = 2 F.
a. Determine a sua resposta em frequncia Hc (j).
b. Determine a sua resposta impulsional h c (t).
c. Determine a resposta em frequncia do sistema discreto cuja resposta impulsional uma amostragem
de h c (t) a uma frequncia igual a 10 vezes a frequncia de corte do filtro analgico.
d. Determine a respectiva equao s diferenas.
Soluo:
( jC) 1 1
a. H c ( j) = =
R + ( jC) 1 1 + jRC
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 unitrio do
sistema discreto seja uma amostragem com perodo T da resposta ao degrau unitrio do sistema contnuo.
Soluo:
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 sada d(n)
1
U(z ) = , | z |> 1
1 z 1
1 1
D ( z) = 1
, | z |> 1
1 z
1
1e 5 z
e ento
1 1
1
1z
1e 5 z 1 1 z 1 (1 e 5 ) z 1
D ( z) = = 1
=
, | z |> e 5 (porqu?)
1
1 1
1 z 1 1e 5 z 1e 5 z
A equao s diferenas
y(n) = 0.4665 x(n-1) + 0.5335 y(n-1)
e o diagrama zero-polar pode obter-se atravs 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 frequncia mnima a que deve amostrar o sinal contnuo de banda limitada xc (t) = senc2(10t) de
modo a evitar a ocorrncia de aliasing.
Soluo:
O sinal contnuo cuja transformada de Fourier um pedestal de largura 2 M centrado em 0
M
1 1 1 j M t
x( t) = e jt d = (e e j M t ) = M senc( M t ) .
2 2 jt
M
Problema 4
Considere os sinais contnuos x1(t) e x2(t), de banda limitada a, respectivamente, 1 e 2 rad/s.
Determine a frequncia mnima de amostragem dos sinais
a. x1(t) + x2(t) ,
b. x1(t) x x2(t) ,
c. x1(t) * x2(t) .
Soluo:
a. max( 1, 2)
b. 1 + 2
c. min( 1, 2)
* Problema 5
O sinal discreto x(n), obtido por amostragem com perodo T de um sinal analgico xc (t), tem espectro no nulo
s para || < /2.
Especifique o filtro de reconstruo ideal e compensado que recupera o sinal analgico, usando reconstruo
de ordem zero, com pedestal de largura T.
Soluo:
Reconstruo do impulso unitrio discreto:
h(t) = u(n) u(n T)
Efeito da reconstruo:
T
j T
j
T
j
T
T 2 jsen T T
1e 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
1.5
0.5
0
-6 -4 -2 0 2 4 6
* Problema 6
O sinal discreto x(n), obtido por amostragem com perodo T de um sinal analgico xc (t), tem espectro no nulo
s para || < /2.
Suponha que realiza uma interpolao de 1 para 4 do sinal x(n), obtendo o sinal xi(n).
Problema 7
Repita a alnea b. do problema anterior, supondo que utiliza a reconstruo de primeira ordem (interpolao
linear).
Soluo:
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) .
Soluo:
+ +
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 no
n = n =
Problema 9
z -2
Determine o sinal discreto causal cuja transformada em z H (z ) = .
1 z 5
Soluo:
Basta seguir o seguinte raciocnio
u(n) 1
1 z 1
u(n/5), se n mltiplo de 5 1
0, se no 1 z5
Problema 10
Considere o sistema discreto causal
y(n) = 2x(n) + 0.7y(n-1) - 0.1y(n-2) .
a. Determine a sua funo de transferncia H(z).
b. Represente graficamente, de modo aproximado, a amplitude da sua resposta em frequncia |H(e j )|.
c. Calcule a sua resposta impulsional h(n).
Soluo:
2 2 z2
a. H ( z) = = , | z |> 0.5
1 0. 7z1 + 0. 2z 2 ( z 0. 2)( z 0. 5)
2
b. | H (e j ) = j
|e 0.2 | . | e j 0. 5 |
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 resoluo usando o mtodo geral, e verific-la determinando os primeiros
termos de h(n) pelo mtodo da diviso dos polinmios)
Problema 11
Considere o sistema discreto causal com funo de transferncia
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 regio de convergncia de H(z).
b. Calcule a sua resposta impulsional h(n).
c. Determine a equao s diferenas que rege o sistema.
Soluo:
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
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 convoluo complexa da transformada z.
Soluo:
Temos de calcular no plano v o integral
1 1 v
1 1 1 1 z 1
v -1dv , | v |> e | |> ,
2j 1 1 z 1 2 v 3
C 1 ( )
2 3 v
com o contorno C satisfazendo as condies impostas pelas regies de convergncia de X(z) e W(z), isto ,
1
<| v |< 3 | z | .
2
Um contorno nessas condies s existir evidentemente se
1 1
3 | z |> | z |>
2 6
que ser a regio de convergncia da transformada em z de x(n)w(n).
O integral pode ser calculado pelo mtodo dos resduos, para o que se torna necessrio determinar os polos
da funo integranda
3z
(v 1 )(v 3z) dv , | z |> 6 2 <| v |< 3 | z | ,
1 1 1
2j
C
2
que so 1/2 e 3z.
Como apenas o polo 1/2 se encontra no interior do contorno C, o resduo nesse polo a transformada em z
procurada
3z 1 1
= , | z |> .
1 1 1 6
3z 1 z
2 6
Aula n 5
* Problema 1
O sinal contnuo x c ( t) = sin (20t) + cos(40 t) amostrado com perodo de amostragem T. Crie um ficheiro
.m de comandos Matlab que execute as seguintes operaes:
- 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 ? possvel encontrar um outro valor de T que origine um sinal idntico aos obtidos ?
Soluo:
%
% 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
* 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 tambm em
z1=0.6+j0.8, z1*, e z2=1. Crie um ficheiro .m de comandos Matlab que execute as seguintes operaes:
- 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 polinmios numerador
e denominador da funo de transferncia 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
representao denota a caracterstica 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 representao denota a
caracterstica 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 representaes
grficas anteriores permitem j antecipar a representao de atraso de grupo obtida ?
b. Critique a afirmao: o seguinte comando Matlab no decompe o sistema discreto anterior, em sub-
sistemas preservando a caracterstica de fase linear:
[sos, g]=zp2sos(Z, P, 1.0);
Soluo:
%
% 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);
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;
Problema 3
Seja um sistema discreto em que x(n) representa o nmero de novos alunos que, no incio do ano n, se
inscreve a uma disciplina e y(n) representa o nmero total de alunos que frequenta essa disciplina no ano n.
Dos alunos que frequentam a disciplina em cada ano, 70% tm aproveitamento.
a. Obtenha a equao s diferenas que caracteriza o sistema.
b. Sendo x(n)=100u(n), para que valor que tende o nmero de alunos a frequentar a disciplina?
c. Repita b., supondo agora que existe um regime de prescries e que um aluno que reprova trs vezes
fica impedido de se inscrever novamente.
Soluo:
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)
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)
Problema 4
A srie de Fibonacci obtem-se calculando cada termo como a soma dos dois termos anteriores. Os dois
primeiros termos da srie so f(0) = 1 e f(1) = 1. Determine uma expresso geral para o termo de ordem n, f(n),
da srie de Fibonacci.
Soluo:
A srie 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 frmula 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 srie
Problema 5
O parque informtico numa dada escola expresso por y(n) computadores utilizveis no final do ano n.
Ao longo de cada ano o nmero 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 utilizao.
No incio de cada ano n so adquiridos x(n) computadores novos.
a. Obtenha, justificando, a equao s diferenas que exprime y(n), o nmero de computadores utilizveis
no final do ano n, de acordo com o enunciado.
b. Suponha que o parque informtico criado a partir do ano zero com a compra de N computadores
novos no incio de cada ano, obtenha a expresso que exprime y(n) em funo de N e n.
c. Qual dever ser N para que o nmero de computadores utilizveis estabilize em 1000?
Soluo:
a. y(n) = 0.95y(n-1) + x(n) 0.953x(n 3)
ou ento
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 trs 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 transaco mensal, de depsito ou de levantamento, [x(n) positivo se for
depsito e s h uma transaco por ms],
y(n) representa o saldo depois da operao 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 equao s diferenas o modelo de funcionamento deste banco. Justifique.
b. Suponha que o seu saldo no ms 1 nulo, que no ms 0 o banco lhe concede um crdito de 100 000 ,
e que a partir do ms 1 deposita regularmente P neste banco, com o objectivo de saldar a dvida ao
fim de 20 anos. Calcule, atravs de uma anlise em z, qual o valor da prestao P a pagar, sabendo que
a taxa de juro mensal de 0.5%.
Soluo:
a. A equao s diferenas ser y(n) = x(n) + (1 + T)y(n-1).
Ao saldo do ms anterior, acresce o juro pago pelo banco e o valor do depsito efectuado.
b. A entrada do sistema (depsito) 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 instvel!)
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
2j
y( n) = dz
( z 1)( z 1. 005)
P (1 1.005 n )
y( n) = ( 100000 x1.005 n + ) u( n)
0.005
(esta expresso mostra em separado os efeitos da dvida e da sua amortizao).
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 funo do Excel PMT(0.5%,240,100000).
* Problema 7
Um banco remunera os seus depsitos 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 .
Soluo:
0.03
A equao s diferenas ser y( n) = x (n ) + 1 + y( n 1) , em que n um ndice que representa o ms.
12
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
Aula n 6
* Problema 1
Crie um ficheiro .m de comandos Matlab que execute as seguintes operaes:
- usando o comando wavread(), l o ficheiro de udio vega.wav, do tipo .wav (amostrado
frequncia 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 frequncia 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 frequncia do sistema,
- aplica o filtro ao sinal corrompido programando explicitamente a equao s diferenas,
- toca o sinal obtido.
Agora esclarea: 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 ?
Soluo:
%
% 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;
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 mdulo da resposta em frequncia deste sistema independente de (sistema do tipo
passa tudo).
c. Tente obter uma expresso para a fase da resposta em frequncia.
Soluo:
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
1
e j j j
* = e e
*
1
H( e j ) = =
e j * j
e *
tg tg
e como tg( ) =
1 + tgtg
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
-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 funo de transferncia H(z).
b. Determine dois outros sistemas do mesmo tipo e com a mesma amplitude da resposta em frequncia
(diferindo apenas na fase).
Soluo:
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
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
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
* 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 mnima e fase mxima com magnitude da resposta
em frequncia 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 associao em srie de dois sistemas, cada um deles ainda de fase linear.
Soluo:
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 simtrica.
c. (ver 3 linha de a))
1.5
0.5
7
0
-0.5 Part
Imaginary
-1
-1.5
Aula n 7
* Problema 1
a. Interprete a seguinte sequncia 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 operaes:
- representa numa figura 3 a resposta impulsional do sistema,
- constri os vectores filptnum e filptden correspondentes respectivamente ao polinmio
numerador e denominador da funo de transferncia de um filtro passa-tudo de segunda ordem do
tipo
1 1
H( ) =
1 1 1 1
c. Que comando(s) Matlab que usaria para obter o filtro de fase mxima, atravs 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 equao s diferenas
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 funes:
- define nos vectores num e den os polinmios 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 clculo manual),
- usa o comando;
[resid, polos, dire]=residuez(num, den);
que fornece os vectores resid, polos e dire, cujo contedo dever interpretar e comparar com o
resultado da expanso manual em fraces parciais da funo de transferncia do sistema,
- usa o comando impz() para representar as primeiras 40 amostras da resposta impulsional do sistema,
que dever comparar com o clculo manual da resposta impulsional (vector h) e a representao das
suas primeiras 40 amostras, atravs 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 frequncia de corte 1 kHz frequncia de amostragem 10
kHz, a partir de um filtro RC passa baixo elementar
a. Pelo mtodo da invarincia da resposta imulsional.
b. Pelo mtodo da invarincia da resposta ao degrau.
c. Pelo mtodo da transformao bilinear.
d. Represente graficamente as magnitudes das respostas em frequncia dos trs filtros digitais obtidos.
Soluo:
a. A funo de transferncia do filtro analgico prottipo
1
H a ( s) = RC
1
s+
RC
1 1
em que a frequncia 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 z1
1 e 5 z 1 1 e 5 z 1
d a ( t ) = (1 e 2000t ) u( t )
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 z1
y(n) = 0.467x(n-1) + 0.533y(n-1) .
c. Aplicando a transformao bilinear funo de transferncia do filtro analgico prottipo
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
Aula n 8
Problema 1
Considere o filtro analgico passa baixo
1
H a (s ) = .
1 + 0. 08s
a. Determine a frequncia de corte c (atenuao igual a 3 dB) deste filtro.
b. Determine o filtro digital que se obtem de Ha(s) pelo mtodo da invarincia da resposta impulsional,
para uma frequncia de amostragem de 10 Hz.
c. Represente graficamente a amplitude da resposta em frequncia deste filtro digital e a do filtro
analgico original, e explique as eventuais diferenas entre ambas.
Soluo:
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
* Problema 2
Pretende-se projectar um filtro digital passa-baixo, usando o mtodo da transformao bilinear, a partir de um
filtro de Butterworth, e de tal modo que, frequncia de amostragem de 16 kHz,
- o limite superior da sua banda de passagem seja 2kHz, e a atenuao verificada no exceda 3 db,
- o limite inferior da sua banda de bloqueio seja 4 kHz, e a atenuao verificada seja no mnimo de 40 dB.
Determine a ordem mnima do filtro.
Problema 3
Pretende-se projectar um filtro digital passa-baixo, usando o mtodo da transformao bilinear, a partir de um
filtro de Butterworth de 3 ordem, de tal modo que frequncia de amostragem de 10 kHz a sua frequncia
superior de corte seja de 1 kHz.
a. Determine a frequncia superior de corte do filtro analgico prottipo.
Problema 4
Pretende-se projectar um filtro digital passa-banda, do tipo FIR, tal que
2
para a frequncia angular de amostragem s = = 2000 rad/s .
T
a. Determine a resposta impulsional do filtro analgico prottipo.
b. Determine os coeficientes do filtro digital, utilizando uma janela de Hanning de comprimento 7.
c. Faa um esboo da resposta em frequncia do filtro digital.
Soluo:
a.
1
0.8
0.6
0.4
0.2
0
-1000 -800 -600 -400 -200 0 200 400 600 800 1000
H
1 j t 600 400
h c (t) = c ( j )e d = senc(600 t) senc(400 t)
2
c. Com uma janela rectangular de comprimento 101, teramos a seguinte resposta impulsional e resposta
em frequncia
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
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
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 0k(N-1)/2 ). Nestas condies, a sua resposta em frequncia pode
escrever-se H(e j )=A(e j )e -j(-), sendo A(e j ) uma funo real de , e sendo e constantes.
( N1 ) / 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
b. Projectaram-se dois filtros FIR, nas condies do enunciado e com o mesmo comprimento N, do tipo
passa-baixo, com banda passante BP: || [0, 0.42], com banda de transio BT: || ]0.42, 0.58[, e
com banda de corte BC: || [0.58, ], atravs da minimizao dos dois seguintes critrios de erro na
aproximao de H(ej) a uma resposta desejada Hd(ej) :
( ) ( )
2
Critrio 1: 2 = H d e j H e j
{ ( ) ( )}
Critrio 2: MAX{()} = MAX Hd e j H e j , BP BC .
Grfico G1 Grfico G2
1 1
0.8 0.8
Ganho
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
Frequncia/ Frequncia/
O mdulo da resposta em frequncia dos dois filtros projectados encontra-se representado nos
grficos G1 e G2.
Indique, justificando, que critrio de projecto ter sido usado para projectar os filtros ilustrados.
c. Com base na informao disponvel, estime o comprimento N dos filtros projectados na alnea anterior.
Aula n 9
* Problema 1
Pretende-se projectar um filtro discreto, do tipo passa-banda, com as seguintes especificaes: banda
passante entre 3000 Hz e 6000 Hz, ordem 8, frequncia de amostragem 44100 Hz. Com este objectivo,
projectam-se em ambiente Matlab quatro filtros: Butterworth, Chebychev 1, Chebychev 2, elptico; e
comparam-se as suas caractersticas, atravs do seguinte cdigo:
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 apreciao das figuras 1 e 2 geradas, diga que traado corresponde a cada tipo de filtro. Se o
critrio de escolha for bandas de transio estreitas e distoro 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 especificaes:
- ordem 128 (comprimento 129),
- banda passante (Hz): [3000 6000],
- bandas de rejeio (Hz): [0 1500] [7500 22050],
- frequncia de amostragem 44100 Hz.
Escreva num ficheiro do tipo.m comandos Matlab que executem as seguintes funes:
- obtm um filtro projectado pelo mtodo da janela (comando fir1) usando uma janela de Hanning,
- obtm um filtro do tipo equiripple (comando remez) (ou firpm).
Compare as caractersticas do dois filtros e diga qual escolheria se desejar bandas de transio 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.
Soluo:
a. Usando a definio, 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
Probl ema 5
Considere o sinal discreto de comprimento 16,
n
x( n) = cos , n = 0,...,15
8
Determine a sua DFT.
Soluo:
O modo mais simples de resolver este problema consiste em escrever (evitar seguir a definio...)
n n
j j
8 +e 8
x[n ] =
e
, n = 0 .. 15
2
e comparar com a expresso da iDFT
N 1 2
x[n ] = X[k]e
1 j nk
N
N k =0
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
2
j k
Y (k ) = X ( e N ), k = 0,..., N 1 .
Soluo:
Verifica-se aqui o fenmeno do aliasing, e poderamos escrever imediatamente o resultado. Como todas as
amostras, de N em N, vo 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
2 r 1
X( z ) = zr , | 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 somatrio vale 0 se n-r0, 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.
Soluo:
O sinal y(n) constitudo por M repeties do sinal x(n). Ento
MN 1 M 1 N1 M 1 N1
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 = mltiplo 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 no
o resultado esperado: repetir periodicamente num domnio corresponde a inserir zeros no outro domnio.
Aula n 10
Problema 1
Pretende-se projectar um sistema discreto utilizando o mtodo da amostragem da resposta em frequncia. O
nmero de amostras de 16, e sabe-se que as nicas amostras diferentes de zero so
H(0) = H(1) = H(15) = 1
H(2) = H(14) = 0.5.
Escreva as equaes s diferenas que realizam este sistema.
Soluo:
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) WNnk
N 1 N 1 N1 N1 N1
h(n)z n = N H(k )WN nkz n = N H(k ) (WNkz 1)n
1 1
H ( z) =
n= 0 n= 0 k =0 k =0 n =0
1 N1 k 1 N
1 ( WN 1 z N N1
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 constitudo pela associao em srie do sistema do tipo no recursivo (FIR)
1 z N
H p (z ) =
N
que um sistema com N zeros igualmente espaados sobre a circunferncia unitria do plano z, em
z k = WNk , 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 = WNk . Cada um destes polos cancelado por um dos zeros do
primeiro sistema, resultando
H ( z) z = W k = H ( k ) .
N
1 z 16
H p (z ) =
16
1
H 0 ( z) = 1
1 z
2 2 cos z 1
H11(z ) = 8
1 2
1 2 cos z + z
8
1 cos z1
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)]
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 convoluo rpida, pelo mtodo overlap-add.
Determine o comprimento N da FFT raiz 2 que minimiza o nmero de multiplicaes complexas a realizar por
amostra sada. Considere que N no pode exceder 2048 e que pode desprezar as multiplicaes realizadas
para o clculo da DFT da resposta impulsional do filtro.
Soluo:
Analisam-se os cinco comprimentos possveis:
Aula n 11
Problema 1
Faa um diagrama de fluxo para um programa para a FFT, algoritmo de decimao na frequncia, 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 extenso .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 reconhea este ficheiro como uma M-file).
b. Analise o conjunto de comandos Matlab contidos no ficheiro fft_.m que ilustram uma possvel
estrutura de clculo da Fast Fourier Transform, pelo algoritmo de decimao no tempo (DIT). De modo
a familiarizar-se com a operao do algoritmo, teste-o considerando as sugestes contidas no
cabealho do ficheiro. Use tambm a funo 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
decimao na frequncia. Note que dever produzir os mesmos resultados do algoritmo DIT. Procure
justificar todas as modificaes introduzidas e utilize um procedimento de teste adequado para validar
a sua implementao.
d. Admita que pretende substituir, em cada borboleta, o clculo explcito de funes trigonomtricas pelo
acesso a uma tabela. Conclua sobre qual dever ser o contedo e tamanho da(s) tabela(s)
necessria(s). Procure evitar redundncia de valores.
Aula n 12
Problema 1
Considere um sistema linear e invariante com h(n) = anu(n), com |a| < 1.
a. Calcule a funo autocorrelao determinstica da resposta impulsional c HH (n ) = h(n) * h * (-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
a |n |
c HH ( n) =
1a 2
( uma funo real e par, com um mximo em n=0)
b. c HH ( l) = h(l) * h * ( l) H (e j ) H * ( e j ) = C HH ( e j )
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 jl = 1 a
l=
2
e j l + 1a
l =0
2
e jl
+ +
a a e
1
C HH ( e j ) = ( l
e j l + l j l
)
1 a 2
l =1 l =0
1 ae j 1 1
C HH ( e j ) = ( j
+ j
)=
1a 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 no simples de calcular. O teorema de Parseval permite-nos fazer o clculo noutro domnio
+
| 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 clculo poderia ter sido realizado utilizando a transformada z e o teorema dos resduos:
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
2j z
1 1 1 1 1 1
E = c HH (0) = H(z ).H * ( * ) z 1dz = ( ) * z 1dz , | a |<| z |<| |
2j z 2j 1 az 1
1 az * a
1
1 1 1 1
E = c HH (0) = dz = =
2j z a 1 a *z 1 a a 1 | a |2
*
Problema 2
Considere que a entrada de um filtro diferenciador de primeira ordem, y(n) = x(n) x(n-1), rudo branco de
mdia nula e com funo autocorrelao XX ( l) = 2 ( l) .
XX ( l) XX ( e j ) YY ( e j ) YY (l)
tem-se
XX (e j ) = 2
e j + e j
YY ( e j ) = 2 2 (1 )
2
YY ( l) = 2 2 ( l) 2 (l 1) 2 ( l + 1)
E (| y( n) | 2 ) = YY (0) = 2 2