PUNTO ADICIONAL 1 PARCIAL DE SEÑALES Y SISTEMAS.
Gabriel Felipe Aranguren Díaz – 201610055
1. Desarrollar un código en MATLAB que haga la convolución de cualquier señal.
Solución:
% Codigo que calcula la convolucion de 2 funciones.
% Gabriel Felipe Aranguren Díaz 20161005055
x=input('Ingrese la primera función: ')
h=input('Ingrese la segunda función: ')
a=length(x);
b=length(h);
X=[x,zeros(1,b)];
H=[h,zeros(1,a)];
for i=1:b+a-1
Y(i)=0;
for j=1:a
if(i-j+1>0)
Y(i)=Y(i)+X(j)*H(i-j+1);
else
end
end
end
Y
plot(Y)
x=input('Ingrese la primera función: ')
h=input('Ingrese la segunda función: ')
Primero generamos las entradas para que la persona pueda digitar las señales.
a=length(x);
b=length(h);
Hacemos unos vectores de igual tamaño en los que la función está definida.
X=[x,zeros(1,b)];
H=[h,zeros(1,a)];
Los llenamos de ceros para que puedan ser llenados por los valores de la función.
Y(i)=0;
for j=1:a
if(i-j+1>0)
Y(i)=Y(i)+X(j)*H(i-j+1);
En esta parte del código, debido a que todas las señales de entrada son discretas,
(aunque sean continuas, hay que ponerles limites en los que están definidas y
aumentos la estamos discretizando); podemos usar la sumatoria de convolución
para señales discretas.
Donde j es nuestra variable de sumatoria, el if nos suma i + j donde este definida la
función y en Y(i) hacemos la parte interna de la convolución.
Resultados en MATLAB:
Usando:
x=cos(0:0.1:1)
y=sin(0:0.1:1)
Obtenemos:
Y por grafica de la convolución obtenemos:
Cuando usamos las mismas entradas con en comando conv obtenemos:
Y por grafica de la convolución obtenemos:
Conclusiones:
Podemos afirmar que el código es fiable y se ajusta totalmente con los resultados usando
el comando de MATLAB para generar las convoluciones.