Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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 é
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
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].
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...).
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
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
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,
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
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( ω− π ) )
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
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
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 multiplicações, 2 adições e duas posições de memória.
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) .
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
π π π
π π 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)
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,
- 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');
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 ?
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
π
π −
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
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
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) ,
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
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).
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
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 |
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:
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 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
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
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
* 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);
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 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)
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 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
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.
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)
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
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 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;
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 −α
1
e jω − jω − jω
α* = e α − e
*
1
H( e j ω ) = =
e jω −α α * jω
e −α α*
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 ω
-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
π π
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 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))
1.5
0.5
7
0
-0.5 Part
Imaginary
-1
-1.5
Aula nº 7
* Problema 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
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
d a ( t ) = (1 − e −2000πt ) 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 − 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
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
* 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.
Problema 4
Pretende-se projectar um filtro digital passa-banda, do tipo FIR, tal que
2π
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
∫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, 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
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 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
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.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.
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).
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
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
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 .
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
∑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.
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
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
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 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)]
π π
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:
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.
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) .
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) =
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ω )
∑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
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
*
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) .
φ 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