Lab 3 Convolution - Discreta
Lab 3 Convolution - Discreta
Lab 3 Convolution - Discreta
1. Teoría
Es posible demostrar (Oppenheim y Willsky, 1989) que cualquier sistema lineal e in-
variante en el tiempo (LTI) está completamente caracterizado por su respuesta al impulso
h[n] , que que es la salida del sistema cuando la entrada consiste en un único impulso
unitario δ[n].
Si en lugar de un impulso unitario la señal de entrada al sistema LTI es una x [n] cual-
quiera, las propiedades de linealidad e invarianza en el tiempo del sistema LTI conducen
a que la salida y[n] pueda calcularse con la operación conocida como convolución, deno-
tada por el símbolo « ∗ » :
1
Entonces la convolución (1) toma la forma:
n
y[n] = ∑ x [k] h[n − k] (2)
k =0
donde, para cada valor de n, la sumatoria (2) va generando los N valores de una nueva
señal y[n] = [ y[0] , y[1], ..., y[ N − 1] ], resultado de la convolución de x [n] con h[n], :
y [0] = x [0] h [0]
y [1] = x [0] h [1] + x [1] h [0]
y [2] = x [0] h [2] + x [1] h [1] + x [2] h [0]
..
.
y [ N − 1] = x [ Nx − 1] h[ Nh − 1]
Aquí se deja como ejercicio comprobar que el tamaño de la nueva señal y[n] es N =
Nx + Nh − 1. Observamos que la convolución de dos señales es por lo general mucho más
extensa que cualquiera de las señales involucradas, a excepción por supuesto del caso en
que una de ellas es el impulso unitario.
OCTAVE dispone de una función llamada conv que simplemente calcula la convolu-
ción de dos secuencias de números sin requerir ninguna información acerca de sus domi-
nios como señales en tiempo discreto. Por ejemplo:
>>x=[1,2,3,4];
>>h=[1,0,-1];
>>y=conv(x,h)
y=
1 2 2 2 -3 -4
2
en función de su duración en el tiempo como:
Cuando estamos calculando una convolución donde se nos brinda la información tem-
poral de cada señal involucrada, nos interesa encontrar
no solamente los valores del vector
y[n] = x [n] ∗ h[n] sino también su dominio ny = ny (1), ny (2), . . . , ny ( Nh + Nh − 1) .
Esta tarea puede ser implementada con ayuda del siguiente código en OCTAVE, donde las
señales dadas x y h tienen dominios discretos contenidos en los vectores nx y nh, respec-
tivamente. Un ejemplo ilustrativo de la aplicación de este código se muestra en la figura
1.
3
Función «convolución modificada»
1 function [y,ny]=convm(x,nx,h,nh)
2 % Genera la convolución de dos señales con
3 % información sobre sus dominios en el tiempo
4 % -
5 % [y,ny] = convm(x,nx,h,nh)
6 % [y,ny] = resultado de la convolución
7 % [x,nx] = primera señal
8 % [h,nh] = segunda señal
9 %
10 nyb = nx(1) + nh(1); nye = nx(length(x)) + nh(length(h));
11 ny = [nyb:nye];
12 y = conv(x,h);
Figura 1: Convolución entre dos señales de tiempo discreto. (a) Las señales x [n] y h[n]
y sus dominios están indexados ordinalmente desde 1 hasta length(nx) y length(nx),
respectivamente. (b) La señal x [k ] se matiene fija y se hace una inversión (folding) de
h[k], que luego se desplaza una cantidad n desde −∞ a ∞. La figura muestra el míni-
mo desplazamiento nyb ,nx(1) + nh(1) que produce un producto distinto de cero entre
ambas. Este valor de n será el extremo mínimo del dominio de la convolución. (c) Va-
lor máximo del desplazamiento ny después del cual el producto de las señales es cero.
Corresponde al extremo superior del dominio de la convolución.
4
2. Ejercicios
1. (Ejemplo 2.3, Oppenheim and Willsky(1989)). Utilizando la función «convolución
modificada» del cuadro 1, encontrar y graficar la convolución (2) de las señales:
x [n] = αn u[n]
h[n] = u[n]
Con un valor para α entre 0 < α < 1 (elegir a conveniencia, así como la duración
de ambas señales). Verifique que coincide con la figura 2.7 de Opp/Willsky, p.85,
obtenida allí por métodos analíticos.
αn
1 si 0 ≤ n ≤ 4 si 0 ≤ n ≤ 6
x [n] = y h[n] =
0 otro valor 0 otro valor
3. (Ejemplo 2.10, Oppenheim and Willsky(1989) 2a Ed p. 210). Sea y[n] que denota la
convolución de las siguientes secuencias:
n
1
x [n] = 2 u[n] + 2n u[−n] y h[n] = u[n]