Professional Documents
Culture Documents
FACULTAD DE INGENIERA
ESCUELA DE ELECTRNICA Y TELECOMUNICACIONES
PRCTICA N 2
SUMA DE CONVOLUCIN
AUTOR:
Jonathan Mauricio Blandn Segarra
DOCENTE:
Ing. Ismael Minchala vila, Ph.D.
Cuenca Ecuador
Octubre 2016
07 de Octubre de 2016
[SUMA DE CONVOLUCIN]
% Muestras
% Seal + ruido
% Filtro, h[k]
subplot(2, 1, 1);
stem(x, 'filled');
grid on;
title('x[n]');
subplot(2, 1, 2);
stem(h, 'filled');
grid on;
title('h[n]');
[ ]
[ ]
[ ]
[ ]
[SUMA DE CONVOLUCIN]
07 de Octubre de 2016
INICIO
y=vector de 0s
i=[1, longitud de x]
j=[1, longitud de h]
Si
SI j=longitud
de h
No
y(i+j-1)=y(i+j-1)+x(i)*h(j)
j=j+1
Si
SI i > longitud
de x
No
i=i+1
j=1
y
FIN
07 de Octubre de 2016
[SUMA DE CONVOLUCIN]
el elemento es igual a la suma de todos los trminos x(i)*h(j), tales que i+j=r;
entonces se implement:
y(i+j-1)= y(i+j-1)+(x(i)*h(j))
En el caso de y(i+j-1), la razn para restar una unidad es que Matlab implementa
los ndices de los vectores desde 1 hacia adelante, de forma que para el primer
elemento i=1 y j=1, por tanto al sumar i+j nos ubicaramos en la segunda
posicin del vector y, para dar solucin a este problema solo bastan con
disminuir en 1 dicha cantidad, de esta manera se obtiene un desplazamiento desde
el primer al ltimo elemento de y.
Una vez ubicados en determinada posicin del vector y, se toma su valor
actual, en un inicio 0, y se suma el trmino x(i)*h(j) para que con el pasar de las
iteraciones se acumulen los valores correspondientes a cada elemento de y
conforme se analiz previamente.
function [y]=convolution(x,h)
% Generates y[n] = x[n] * h[n]
% x -> input signal
% h -> impulse response
% ----------------------------------------% [y] = convolution(x,h)
%
y=zeros(1, length(x)+length(h)-1);
for i=1:length(x)
for j=1:length(h)
y(i+j-1)= y(i+j-1)+(x(i)*h(j));
end
end
stem(y, 'filled', 'LineWidth', 2);
grid on;
end
07 de Octubre de 2016
[SUMA DE CONVOLUCIN]
Conclusiones.
La convolucin de seales en una manera muy general de realizar un promedio
mvil y para nuestro caso, convolucionando una seal ruidosa con un filtro digital
con respuesta de impulso de duracin finita (FIR), obtenemos una seal muy suavizada y
filtrada.
07 de Octubre de 2016
[SUMA DE CONVOLUCIN]
0.1813
0.0447
0.0110
0.1484
0.0366
0.1215
0.0300
0.0995
0.0245
0.0814
0.0201
0.0667
0.0164
0
0.4512
0.8647
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.1968
0.0110
0
0.5507
0.8892
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.7689
0.1521
0
0.6321
0.9093
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.6205
0.1155
0
0.6988
0.9257
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.4990
0.0855
0
0.7534
0.9392
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.3995
0.0610
0.1813
0.7981
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.9502
0.3181
0.0409
subplot(2, 2, [1 2]);
convolution(unitstep(0, -5, 100), h);
subplot(2, 2, 3);
unitstep(0, -5, 100);
subplot(2, 2, 4);
stem(h, 'filled');
grid on;
title('h[n]');
07 de Octubre de 2016
[SUMA DE CONVOLUCIN]
La respuesta al impulso nos permite conocer la manera en que se comporta una seal
al ingresar en un determinado sistema, por ello para formarnos una idea de la influencia
de escuchar un audio en un determinado lugar nos basta con tener la respuesta al
impulso de dicho lugar y realizar la convolucin con la seal de audio a analizar.
Simulink es una poderosa herramienta que nos permite modelar diversas situaciones
mediante una programacin grfica. Con la misma hemos logrado importar los datos
obtenidos de una respuesta al impulso para poder utilizarlos en la convolucin con un
escaln unitario, la cual se realizado de manera exitosa.
Se puede ver que el escaln convolucionado con la respuesta al impulso no se
estabiliza en 1 y que su secuencia es finita; todo esto debido a la longitud y amplitud de
la secuencia de ponderacin.