top of page
Foto del escritorvictor Romero

Convolución de Señales Discretas

Actualizado: 8 sept 2019

Los sistemas pueden caracterizarse en base a lo que obtienen al recibir un impulso unitario. Si se conoce como se comporta un sistema cuando entra un impulso unitario, se puede calcular su salida para cualquier entrada usando la Convolución, de igual manera la Convolución nos permite modelar sistemas en tiempo discreto


Para cualquier sistema LTI si tenemos en la entrada un impulso unitario, la salida se denomina “Respuesta al impulso” y se denota y(n)=h(n). Una señal x(n) es periódica con periodo N(N>0) si y solo si x(n+N) = x(n) para todo valor de n. La definición matemática del operador de Convolución se define como:


Para n = -∞… -2, -1, 0, 1, 2 … ∞

Para calcular la Convolución de manera a manual se siguen los siguientes pasos. 1. Voltear uno de los vectores, por ejemplo, h(n), lo denominaremos h(n)’. 2. Alinear la primera posición de x(n) con la última de h(n)’. 3. Multiplicar los valores de x(n) y h(n)’ donde coincidan; sumar las multiplicaciones. Este será el valor de la Convolución en la operación donde inicio la coincidencia. 4. Deslizar h(n)’ hacia la derecha. 5. Repetir hasta que no existan más valores que comparar.


Propiedades de la Convolución

- Conmutativa.

- Distributiva.

- Asociativa.



Convolución con MATLAB

Para realizar la operación de Convolución en Matlab se tiene la función “conv”, con la siguiente sintaxis:

>>w = conv(u,v)

La cual devuelve la Convolución de los vectores u y v. Si u y v son vectores de coeficientes polinómicos, Convolución equivale a multiplicar los dos polinomios. Los vectores u y v pueden ser diferentes longitudes o tipos de datos.

Cuando u o v son de tipo single, la salida es de tipo single. De lo contrario, “conv” convierte las entradas en el tipo double y devuelve el tipo doublé.

Como desventaja esta función no indica el vector de tiempo “ny” generado al realizar la Convolución de dos señales con diferentes vectores de tiempo, o que el origen de las señales no sea la posición 1 del vector.



Algoritmo en Matlab:


Archivo Tipo Script

clear all; clc; %Practica convolucion %Funcion 1 nx = -1:1:2 %Vector de tiempos "nx" x = 1+nx %Funcion 1 "x" %Funcion 2 nh = -1:1:1 %Vector de tiempo "nh" h = 1+nh %Funcion 2 "h" %Mandar a traer archivo tipo funcion "funconv" [ny,y] = funconv(x,nx,h,nh); %Figuras subplot(3,1,1) stem(nx,x) title('x')%señal xsubplot(3,1,2) stem(nh,h) title('h')%señal hsubplot(3,1,3) stem(ny,y) title('y')%señal y


Archivo Tipo Función function [ny,y] = funconv(x,nx,h,nh) %nx minx = min(nx) %valor minimo %nh minh = min(nh) %valor minimo %Convolucion de x y h y = conv(x,h) %tamaño del vector de la convolucion a = length(y) %valor minimo para ny vmin = abs(minx) + abs(minh) %valor maximo para ny vxm = a - vmin-1 %vector de tiempos "ny" ny = -1*vmin:1:vxm end


Video para realizar convolución de Manera Manual




Video para realizar convolución En Matlab



6281 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comments


bottom of page