Escolar Documentos
Profissional Documentos
Cultura Documentos
A resposta ao impulso é a saída de um sistema LTI devido a uma entrada de impulso aplicada
no instante t=0 ou n=0. A resposta ao impulso caracteriza de maneira completa o
comportamento de qualquer sistema LTI.
Se a entrada em um sistema linear for expressa como uma superposição ponderada de
impulsos deslocados no tempo, a saída será uma superposição ponderada da resposta do
sistema a cada impulso deslocado no tempo. Se o sistema também for invariante no tempo, a
resposta do sistema a um impulso deslocado no tempo será uma versão deslocada no tempo
da resposta do sistema a um impulso. Por isso, a saída de um sistema LTI é dada por uma
superposição ponderada de respostas ao impulso deslocadas no tempo. Esta superposição
ponderada é chamada soma de convolução, para os sistemas de tempo discreto, e integral
de convolução, para sistemas de tempo contínuo.
Considere um sinal x[n] e a sequência de impulsos :
Exemplo gráfico ilustrando a representação de um sinal x[n] como uma soma ponderada de
impulsos deslocados no tempo.
Sinal escrito como soma de impulsos
clf;clear;clc;figure(1);
n = -4:5;
d1 = 2*gauspuls(n+2);
subplot(511);
stem(n,d1,'LineWidth',2)
ylabel('Amplitude')
title('x[-2] \delta[n+2]')
axis([-4.5 5.5 -0.1 2.1])
legend('x[-2]')
d2 = -2*gauspuls(n+1);
subplot(512);
stem(n,d2,'r','LineWidth',2)
ylabel('Amplitude')
title('x[-1] \delta[n+1]')
axis([-4.5 5.5 -2.1 0.1])
legend('x[-1]')
d3 = 2*gauspuls(n);
subplot(513);
stem(n,d3,'g','LineWidth',2)
ylabel('Amplitude')
title('x[0] \delta[n]')
axis([-4.5 5.5 -0.1 2.1])
Página 1 de Analise
axis([-4.5 5.5 -0.1 2.1])
legend('x[0]')
d4 = 2*gauspuls(n-1);
subplot(514);
stem(n,d4,'c','LineWidth',2)
ylabel('Amplitude')
title('x[1] \delta[n-1]')
axis([-4.5 5.5 -0.1 2.1])
legend('x[1]')
d5 = 1*gauspuls(n-2);
subplot(515);
stem(n,d5,'k','LineWidth',2)
xlabel('[n]')
ylabel('Amplitude')
title('x[2] \delta[n-2]')
axis([-4.5 5.5 -0.1 2.1])
legend('x[2]')
figure(2);
d = d1+d2+d3+d4+d5;
stem(n,d,'b','LineWidth',2)
xlabel('[n]')
ylabel('Amplitude')
title('x[n]')
axis([-4.5 5.5 -2.1 2.1])
%legend('x[2]')
Logo:
clf;clear;clc;figure(1);
n = -4:4;
h = gauspuls(n+1)+2*gauspuls(n)+gauspuls(n-1);
subplot(311);
stem(n,h,'b','LineWidth',2)
ylabel('Amplitude')
xlabel('[n]');
title('h[n]')
nx = -4:4;
x = 2*gauspuls(nx)+3*gauspuls(nx-1)-2*gauspuls(nx-2);
subplot(312);
stem(nx,x,'r','LineWidth',2)
ylabel('Amplitude')
xlabel('[n]');
title('x[n]')
y = conv(x,h); %Avaliação da convolução
subplot(313);
tam = length(x)+length(h)-1; %Número de pontos da
convolução
inicio = n(1)+nx(1);%Valores iniciais dos vetores
m = inicio:tam-abs(inicio)-1;%Posição temporal da convolução
stem(m,y,'filled')
ylabel('Amplitude')
xlabel('[n]');
title('y[n]=x[n]*y[n]')
Obs. O MATLAB tem uma função chamada "conv" que avalia a convolução de
sinais de tempo discreto de duração finita. Se x e h forem vetores, o comando
y = conv(x,h) do MATLAB gera um vetor y que representa a convolução dos
sinais representados por x e h.
Página 4 de Analise
xlabel('[n]');
xticks(nx)
title('x[n]')
subplot(313);
stem(ny,y,'filled')
ylabel('Amplitude')
xlabel('[n]');
xticks(ny)
title('y[n]=x[n]*y[n]')
subplot(413);
h2 = -2*[0 0 0 1 2 1 0];
stem(n,h2,'c','LineWidth',2)
ylabel('Amplitude')
xlabel('[n]');
xticks(n)
title('x[2] h[n-2] = -2 h[n-2]')
subplot(414);
h_t = h + h1 + h2;
stem(n,h_t,'k','LineWidth',2)
ylabel('Amplitude')
xlabel('[n]');
xticks(n)
Página 5 de Analise
xticks(n)
axis([-2 4 -2 7])
title('y[n]=x[n] * h[n]')
subplot(413);
x_inv = [0 0 0 0 -2 3 2 0 0 0 0 0 0 ];
stem(n,x_inv,'k','LineWidth',2)
ylabel('Amplitude')
xlabel('[k]');
xticks(n)
title('Sinal com FLIP => x[-k]')
subplot(414);
x_inv = [0 -2 3 2 0 0 0 0 0 0 0 0 0 ];
stem(n,x_inv,'b','LineWidth',2)
ylabel('Amplitude')
xlabel('[k]');
xticks(n)
title('Sinal com FLIP e SHIFT => x[-k+3]')
Página 6 de Analise
Mantem-se o h[k] estático e desloca-se o x[-k]. O valor da soma da convolução
em cada ponto n é obtido somando-se todos os valores do gráfico do
resultado.
h[n]\x[n] 2 3 -2
1 2 3 -2
Página 7 de Analise
1 2 3 -2
2 4 6 -4
1 2 3 -2
Exercício do Livro:
2.1 Um sistema LTI de tempo discreto tem a resposta ao impulso h[n] descrita
como na figura P2.1(a). Use a linearidade e invariância no tempo para
determinar a saída do sistema y[n], se a entrada x[n] for:
h[n] => [1 3 2 -1 1]
Página 9 de Analise
Nesta condição, o produto de todos os pontos do x[k] pelo h[n-k] dão
resultado igual a zero.
Nesta condição, o produto de todos os pontos do x[k] pelo h[n-k] não mais
dão resultado igual a zero. Para n=2, há um ponto do h[n-k] coincidente com
um ponto do x[k]. Logo podemos dizer que:
y[n] = 0, para n<2.
Página 10 de Analise
Aqui utilizaremos a fórmula da convolução para resolver o problema:
(aqui m = k - 2)
(aqui m = k -n + 9)
Página 12 de Analise
Exemplo 2.3 do Livro texto
clf;clear;clc;figure(1);
% Geração da resposta ao impulso h[n]
n = -5:20;
h= [zeros(1,5) ones(1,10) zeros(1,11)];
subplot(311);
stem(n,h,'b','LineWidth',2); grid on;
ylabel('Amplitude')
xlabel('[n]');
title('h[n] = u[n] - u[n-10]')
% Geração do sinal x[n]
x= [zeros(1,7) ones(1,5) zeros(1,14)];
subplot(312);
stem(n,x,'r','LineWidth',2); grid on;
ylabel('Amplitude')
xlabel('[n]');
title('x[n] = u[n - 2] - u[n - 7]')
y = conv(x,h); %Avaliação da convolução
subplot(313);
tam = length(x)+length(h)-1; %Número de pontos da convolução
inicio = n(1)+n(1);%Valores iniciais dos vetores
m = inicio:tam-abs(inicio)-1;%Posição temporal da convolução
stem(m,y,'filled','k'); grid on;
axis([0 17 0 6])
ylabel('Amplitude')
xlabel('[n]');
title('y[n]=x[n]*h[n]')
Gráficos em [n]
Página 14 de Analise
Gráficos em [k]
Página 15 de Analise
Implementando a soma da convolução
Nesta condição, o produto de todos os pontos do x[n-k] pelo h[k] não mais
dão resultado igual a zero. Para n=0, há um ponto do h[k] coincidente com um
ponto do x[n-k]. Logo podemos dizer que:
y[n] = 0, para n<0.
Página 16 de Analise
Aqui utilizaremos a fórmula da convolução para resolver o problema:
Sabemos que:
Logo:
(para p = k - n + 9)
clf;clear;clc;figure(1);
% Geração da resposta ao impulso h[n]
n = -5:20;
beta = 0.8;
h= (beta.^n).*[zeros(1,5) ones(1,21)];
subplot(311);
stem(n,h,'filled','b','LineWidth',2); grid on;
ylabel('Amplitude')
xlabel('[n]');
Página 18 de Analise
xlabel('[n]');
title(['h[n] = ',num2str(beta),'^n u[n])'])
% Geração do sinal x[n]
alfa = 0.9;
x= (alfa.^n).*[zeros(1,5) ones(1,10) zeros(1,11)];
subplot(312);
stem(n,x,'filled','r','LineWidth',2); grid on;
ylabel('Amplitude')
xlabel('[n]');
title(['x[n] = ',num2str(alfa),'^n (u[n] - u[n-10]'])
y = conv(x,h); %Avaliação da convolução
subplot(313);
tam = length(x)+length(h)-1; %Número de pontos da convolução
inicio = n(1)+n(1);%Valores iniciais dos vetores
m = inicio:tam-abs(inicio)-1;%Posição temporal da convolução
stem(m,y,'filled','k','LineWidth',2); grid on;
%axis([0 17 0 6])
ylabel('Amplitude')
xlabel('[n]');
title('y[n]=x[n]*h[n]')
Página 19 de Analise