Professional Documents
Culture Documents
AULA 6P
Aplicaes da Soma de Convoluo
Vitria
2016
Indce
1
OBJETIVO........................................................................................................ 4
ATIVIDADES .................................................................................................... 5
2.1
Exerccio 1 ................................................................................................ 5
2.1.1
Resultados ......................................................................................... 5
2.1.2
Cdigo ................................................................................................ 6
2.1.3
Comentrios ...................................................................................... 6
2.2
Exerccio 2 ................................................................................................ 7
2.2.1
Resultados ......................................................................................... 7
2.2.2
Cdigo ................................................................................................ 8
2.2.3
Comentrios ...................................................................................... 8
2.3
Exerccio 3 ................................................................................................ 9
2.3.1
Resultados ......................................................................................... 9
2.3.2
Cdigo .............................................................................................. 10
2.3.3
Comentrios .................................................................................... 10
2.4
Exerccio 4 .............................................................................................. 11
2.4.1
Comentrios .................................................................................... 11
2.4.2
Resultados - 4a................................................................................ 12
2.4.3
Cdigo - 4a....................................................................................... 12
2.4.4
Resultados - 4b ............................................................................... 13
2.4.5
Cdigo - 4b ...................................................................................... 13
2.4.6
Resultados - 4c................................................................................ 14
2.4.7
Cdigo - 4c....................................................................................... 14
2.4.8
Resultados - 4d ............................................................................... 15
2.4.9
Cdigo - 4d ...................................................................................... 15
2.5
Exerccio 5 .............................................................................................. 17
2.5.1
Resultados - 5a................................................................................ 17
2.5.2
Cdigo - 5a....................................................................................... 17
2.5.3
Comentrios - 5a ............................................................................. 17
2.5.4
Resultados - 5b ............................................................................... 18
2.5.5
Cdigo - 5b ...................................................................................... 18
2.5.6
Comentrios - 5b ............................................................................. 18
2.5.7
Resultados - 5c................................................................................ 19
2.5.8
Cdigo - 5c....................................................................................... 19
2.5.9
Comentrios - 5c ............................................................................. 20
OBJETIVO
O principal motivo para esta preferncia que este tipo de sistema fica totalmente
caracterizado pela sua resposta impulsiva, ou seja, pela sada do sistema quando
colocamos em sua entrada o sinal impulso unitrio [n]. Em outras palavras, se
soubermos a resposta de um sistema LIT a uma entrada impulsiva, saberemos
calcular sua resposta para qualquer entrada.
2
2.1
ATIVIDADES
Exerccio 1
Determine a sada deste sistema quando a entrada for o pulso retangular definido
como x[n]=u[n 2]u[n 7]:
2.1.1 Resultados
2.1.2 Cdigo
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_1.m Convoluo dos dois sinais sem conv
%-------------------------------------------------------------------------% Gerao dos Sinais de Resposta ao Impulso e de Entrada
%-------------------------------------------------------------------------n = -1:20;
% Vetor de Amostragem
hn = round(heaviside(n)) - round(heaviside(n - 10));
xn = round(heaviside(n - 2)) - round(heaviside(n - 7));
%-------------------------------------------------------------------------% Gerao dos Sinais de Entrada em Funo de k e a Resposta deslocada
%-------------------------------------------------------------------------k = length(hn);
m = length(xn);
xk = [xn, zeros(1, k)];
hk = [hn, zeros(1, m)];
%-------------------------------------------------------------------------% Efetuando a Convoluo pela soma de impulsos deslocados no tempo
%-------------------------------------------------------------------------for i=1:m+k-1
yn(i)=0;
for j=1:k
if(i-j+1>0)
yn(i)=yn(i)+xk(j)*hk(i-j+1);
else
end
end
end
%-------------------------------------------------------------------------% Plotagem do Sinal Gerado
%-------------------------------------------------------------------------figure(1);
% Plotar Sinal xk
subplot(3,1,1)
stem(-1:length(xk)-2, xk);
title('Convoluo dos dois sinais sem conv.m');
xlabel('k');
ylabel('x[k]');
grid on;
% Plotar Sinal hk
subplot(3,1,2)
stem(-1:length(hk)-2, hk);
xlabel('k');
ylabel('h[n-k]');
grid on;
% Plotar Sinal yn
subplot(3,1,3)
stem(-1:length(yn)-2, yn);
xlabel('n');
ylabel('y(n)');
grid on;
2.1.3 Comentrios
A sada do sistema em cada intervalo de n obtida com a soma dos valores de cada
intervalo deslocado no tempo em funo de k.
2.2
Exerccio 2
2.2.1 Resultados
2.2.2 Cdigo
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_2.m Convoluo dos dois sinais com conv
%-------------------------------------------------------------------------% Gerao dos Sinais de Resposta ao Impulso e de Entrada
%-------------------------------------------------------------------------n = -1:20;
% Vetor de Amostragem
hn = round(heaviside(n)) - round(heaviside(n - 10));
xn = round(heaviside(n - 2)) - round(heaviside(n - 7));
%-------------------------------------------------------------------------% Efetuando a Convoluo pela funo do MatLab
%-------------------------------------------------------------------------yn = conv(xn, hn);
%-------------------------------------------------------------------------% Plotagem do Sinal Gerado
%-------------------------------------------------------------------------figure(1);
% Plotar Sinal hn
subplot(3,1,1)
stem(n, hn);
title('Sinais de Resposta ao Impulso e de Entrada');
xlabel('n');
ylabel('h[n]');
grid on;
% Plotar Sinal xn
subplot(3,1,2)
stem(n, xn);
xlabel('n');
ylabel('x[n]');
grid on;
% Plotar Sinal yn
subplot(3,1,3)
stem(-1:length(yn)-2, yn);
title(['Convoluo dos dois sinais com conv.m']);
xlabel('n');
ylabel('y(n)');
grid on;
2.2.3 Comentrios
Resultado do grfico conforme esperado.
2.3
Exerccio 3
2.3.1 Resultados
10
2.3.2 Cdigo
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_3.m Convoluo de ambos sinais com conv
%-------------------------------------------------------------------------close all;
clear all;
clc;
%-------------------------------------------------------------------------% Declarao das Variveis de Uso Geral
%-------------------------------------------------------------------------n = -1:20;
% Vetor de Amostragem
%-------------------------------------------------------------------------% Gerao dos Sinais de Resposta ao Impulso e de Entrada
%-------------------------------------------------------------------------hn = ((3/4).^n).*round(heaviside(n));
xn = round(heaviside(n));
%-------------------------------------------------------------------------% Efetuando a Convoluo pela funao do Matlab
%-------------------------------------------------------------------------yn = conv(xn, hn);
%-------------------------------------------------------------------------% Plotagem do Sinal Gerado
%-------------------------------------------------------------------------figure(1);
% Plotar Sinal hn
subplot(3,1,1)
stem(n, hn);
title('Sinais de Resposta ao Impulso e de Entrada');
xlabel('n');
ylabel('h[n]');
grid on;
% Plotar Sinal xn
subplot(3,1,2)
stem(n, xn);
xlabel('n');
ylabel('x[n]');
grid on;
% Plotar Sinal yn
subplot(3,1,3)
stem(-1:length(yn)-2, yn);
title(['Convoluo de ambos sinais com conv.m']);
xlabel('n');
ylabel('y(n)');
grid on;
2.3.3 Comentrios
Resultado do grfico conforme esperado.
11
2.4
Exerccio 4
Um sistema de mdia mvel um sistema que calcula a mdia dos N ltimos valores
da entrada com o objetivo de suavizar o sinal de sada, ou seja, diminuir suas
variaes.
Ele pode ser expresso por:
(a) Calcule a resposta impulsiva para o sistema mdia mvel com N = 4, ou seja,
para:
(b) Utilizando convoluo,calcule a resposta do sistema entrada x[n]=u[n]u[n 3].
(c) Agora repita o item (b) utilizando o comando conv.
(d) Utilize agora como a entrada uma senide de tempo discreto com perodo N = 15
e definida de 0 a 100 somada a um rudo branco gaussiano com desvio-padro 0,3
(use o comando r = 0.3*randn(1,101)).
Verifique e interprete a sada utilizando o comando conv. (Coloque numa mesma
figura a entrada e a sada. Use subplot).
(e) Como voc poderia melhorar a filtragem do item (d)?
2.4.1 Comentrios
O sinal de sada aps passar pelo filtro Mdia Mvel consegue representar uma
senide muito melhor que o sinal de entrada. Visando melhorar o filtro, pode-se
alterar o nmero de pontos da mdia mvel, mas isto tambm no garante esta
melhora e pode causar atraso no sinal de sada; alternativamente, devemos utilizar
uma operao de correlao deste sinal.
.
12
2.4.2 Resultados - 4a
2.4.3 Cdigo - 4a
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_4a.m Resposta Impulsiva Mdia Mvel
%-------------------------------------------------------------------------% Limpa a Tela para Inicializao
%-------------------------------------------------------------------------close all;
clear all;
clc;
%-------------------------------------------------------------------------% Declarao das Variveis de Uso Geral
%-------------------------------------------------------------------------n = -1:20;
% Vetor de Amostragem
%-------------------------------------------------------------------------% Gerao do Sinal de Resposta Impulsiva
%-------------------------------------------------------------------------impulse = [zeros(1,10) ones(1,1) zeros(1,11)];
for i=1:5
yn(i)=(1/5)*(impulse(10+i)+impulse(10+i-1)+impulse(10+i-2)
+impulse(10+i-3)+impulse(10+i-4));
end
hn=[yn, zeros(1,(length(n)-length(yn)-1))];
%-------------------------------------------------------------------------% Plotagem do Sinal Gerado
%-------------------------------------------------------------------------figure(1);
% Plotar Sinal hn
stem(0:length(hn)-1, hn);
title('Sinal de Resposta Impulsiva Mdia Mvel');
xlabel('n');
ylabel('h[n]');
axis([-1 20 0 .2])
grid on;
13
2.4.4 Resultados - 4b
2.4.5 Cdigo - 4b
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_4b.m Convoluo sem conv
%-------------------------------------------------------------------------n = -1:20;
% Vetor de Amostragem
%-------------------------------------------------------------------------% Gerao dos Sinais de Resposta ao Impulso e de Entrada
%-------------------------------------------------------------------------impulse = [zeros(1,10) ones(1,1) zeros(1,11)];
for i=1:5
yn(i)=(1/5)*(impulse(10+i)+impulse(10+i-1)+impulse(10+i-2)+impulse(10+i-3)+impulse(10+i-4));
end
hn=[yn, zeros(1,(length(n)-length(yn)-1))];
xn = round(heaviside(n)) - round(heaviside(n - 3));
k = length(hn);
m = length(xn);
xk = [xn, zeros(1, k)];
hk = [hn, zeros(1, m)];
% Efetuando a Convoluo pela soma de impulsos deslocados no tempo
%-------------------------------------------------------------------------for i=1:m+k-1
yn(i)=0;
for j=1:k
if(i-j+1>0)
yn(i)=yn(i)+xk(j)*hk(i-j+1);
else
end
end
end
% Plotar Sinal xn
figure(1);
subplot(2,1,1)
stem(n, xn);
title('Convoluo dos dois sinais sem conv.m');xlabel('n');ylabel('x[n]');
grid on;
% Plotar Sinal yn
subplot(2,1,2)
stem(-1:length(yn)-2, yn);xlabel('n');ylabel('y(n)');
grid on;
14
2.4.6 Resultados - 4c
2.4.7 Cdigo - 4c
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_4c.m Convoluo com conv
%-------------------------------------------------------------------------% Gerao dos Sinais de Resposta ao Impulso e de Entrada
%-------------------------------------------------------------------------n = -1:20;
% Vetor de Amostragem
impulse = [zeros(1,10) ones(1,1) zeros(1,11)];
for i=1:5
yn(i)=(1/5)*(impulse(10+i)+impulse(10+i-1)+impulse(10+i-2)+impulse(10+i3)+impulse(10+i-4));
end
hn=[yn, zeros(1,(length(n)-length(yn)-1))];
xn = round(heaviside(n)) - round(heaviside(n - 3));
%-------------------------------------------------------------------------% Efetuando a Convoluo pela funo do MatLab
%-------------------------------------------------------------------------yn = conv(xn, hn);
%-------------------------------------------------------------------------% Plotagem do Sinal Gerado
%-------------------------------------------------------------------------figure(1);
% Plotar Sinal xn
subplot(2,1,1)
stem(n, xn);
title(['Convoluo dos dois sinais com conv.m']);
xlabel('n');
ylabel('x[n]');
grid on;
% Plotar Sinal yn
subplot(2,1,2)
stem(-1:length(yn)-2, yn);
xlabel('n');
ylabel('y(n)');
grid on;
15
2.4.8 Resultados - 4d
2.4.9 Cdigo - 4d
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_4d.m Rudo Branco Gaussiano
%-------------------------------------------------------------------------% Declarao das Variveis de Uso Geral
%-------------------------------------------------------------------------N = 15;
% Nmero de pontos da Mdia Mvel
n = -0:100;
% Vetor de Amostragem
%-------------------------------------------------------------------------% Gerao do Sinal Senoidal Discreto e do Rudo Gaussiano
%-------------------------------------------------------------------------fn = sin (2 * pi * n / N);
rn = 0.3 * randn(1, 101);
xn = fn + rn;
16
%-------------------------------------------------------------------------% Gerao do Sinal de Entrada
%-------------------------------------------------------------------------impulse = [zeros(1,10) ones(1,1) zeros(1,11)];
for i=1:5
yn(i)=(1/5)*(impulse(10+i)+impulse(10+i-1)+impulse(10+i-2)+impulse(10+i3)+impulse(10+i-4));
end
hn=[yn, zeros(1,(length(n)-length(yn)-1))];
%-------------------------------------------------------------------------% Efetuando a Convoluo pela funo do MatLab
%-------------------------------------------------------------------------yn = conv(xn, hn);
%-------------------------------------------------------------------------% Plotagem do Sinal Gerado
%-------------------------------------------------------------------------figure(1);
% Plotar Sinal
subplot(3,1,1)
stem(n, fn);
axis([0 100 -2
grid on;
title('Senide
xlabel('n')
ylabel('sin (2
2.4.10 Resultados - 4e
Uma alternativa para melhorar a filtragem seria aumentar o nmero de pontos da
mdia mvel.
17
2.5
Exerccio 5
2.5.2 Cdigo - 5a
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_5a.m Eletrocardiograma
%-------------------------------------------------------------------------x1 = load('eletro1.m');
whos();
figure(1);
plot(x1); grid on;
title('Eletrocardiograma Original')
xlabel('Frequncia'); ylabel('Amplitude');
2.5.3 Comentrios - 5a
Os valores identificados pelo comando whos so:
Name
x1
Size
10000x1
Bytes Class
80000 double
Attributes
18
2.5.4 Resultados - 5b
2.5.5 Cdigo - 5b
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_5b.m Eletrocardiograma
%-------------------------------------------------------------------------% Limpa a Tela para Inicializao
%-------------------------------------------------------------------------close all;
clear all;
clc;
%-------------------------------------------------------------------------% Declarao das Variveis de Uso Geral
%-------------------------------------------------------------------------N = 49;
% Nmero de pontos da Mdia Mvel
x1 = load('eletro1.m');
%-------------------------------------------------------------------------% Gerao do Sinal de Resposta Impulsiva
%-------------------------------------------------------------------------hn=[(1/(N+1)) * ones(1,(N+1)) zeros(1,length(x1)-(N+1))];
%-------------------------------------------------------------------------% Plotagem do Sinal Gerado
%-------------------------------------------------------------------------figure(1);
% Plotar Sinal hn
stem(0:length(hn)-1, hn);
title('Sinal de Resposta Impulsiva Mdia Mvel');
xlabel('n');
ylabel('h[n]');
axis([-1 N+2 0 1/(N-1)]);
grid on;
2.5.6 Comentrios - 5b
Resultado do grfico conforme esperado.
19
2.5.7 Resultados - 5c
2.5.8 Cdigo - 5c
%-------------------------------------------------------------------------% M-cdigo: LAB_06P_EXE_5c.m Eletrocardiograma
%-------------------------------------------------------------------------% Limpa a Tela para Inicializao
%-------------------------------------------------------------------------close all;
clear all;
clc;
%-------------------------------------------------------------------------% Declarao das Variveis de Uso Geral
%-------------------------------------------------------------------------N = 49;
% Nmero de pontos da Mdia Mvel
x1 = load('eletro1.m');
%-------------------------------------------------------------------------% Gerao do Sinal de Resposta Impulsiva
%-------------------------------------------------------------------------hn=[(1/(N+1)) * ones(1,(N+1)) zeros(1,length(x1)-(N+1))];
%-------------------------------------------------------------------------% Efetuando a Convoluo pela funo do MatLab e Aplicando Filtro
%-------------------------------------------------------------------------yn = conv(x1, hn);
B = ones(1,20)/20;
A = 1;
zn = filter(B, A ,x1);
20
%-------------------------------------------------------------------------% Plotagem do Sinal Gerado
%-------------------------------------------------------------------------figure(1);
% Plotar Sinal yn
subplot(2,1,1)
plot(0:length(yn)-1, yn, 'r');
title('Eletrocardiograma Convoludo');
xlabel('Frequncia')
ylabel('Amplitude');
axis([0 10000 -0.6 0.6]);
grid on;
% Plotar Sinal zn
subplot(2,1,2)
plot(0:length(zn)-1, zn, 'b');
title(['Eletrocardiograma Suavizado']);
xlabel('Frequncia')
ylabel('Amplitude');
axis([0 10000 -0.6 0.6]);
grid on;
2.5.9 Comentrios - 5c
O resultado obtido nos mostra que o filtro de mdia mvel pode se mostrar bem til ao
retirar componentes de frequncias que contaminam um sinal.