Lab 3 Convolution - Discreta

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 5

UNIVERSIDAD NACIONAL AUTÓNOMA DE HONDURAS

FS-601 TEORÍA DE SEÑALES Y SISTEMAS


LABORATORIO 2: CONVOLUCIÓN DISCRETA
(Elaborado por C.Tenorio).

1. Teoría

1.1. Sistemas LTI y sumatoria de convolución

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].

δ[n] −→ LTI −→ h[n] Respuesta al impulso

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 « ∗ » :

x [n] −→ LTI −→ y[n] = x [n] ∗ h[n]

Para secuencias de duración infinita, la convolución se calcula con la siguiente fórmula:



y[n] = ∑ x [k] h[n − k] (1)
k=−∞

En la práctica, sin embargo, es imposible tener señales de extensión ilimitada. Cual-


quier señal obtenida a partir de la medición de datos experimentales del mundo físico
deberá tener necesariamente un tamaño manejable para ser almacenada y procesada en
el computador. Por simplicidad, comenzaremos por considerar dos señales x [n] y h[n] de
duración finita, con Nx y Nh elementos, respectivamente, cuyos dominios discretos que
comienzan ambos en el tiempo discreto n = 0:

x [n] = { x [0], x [1], x [2]... x [ Nx − 1]}


h[n] = {h[0], h[1], h[2]... h[ Nh − 1]}

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.

1.2. Implementación de la convolución en OCTAVE

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

Nuestro siguiente paso consiste en encontrar la convolución de dos señales asociadas a


dominios arbitrarios en el tiempo discreto. En este caso es útil considerar dichos dominios
como señales o vectores por separado, recordando que en OCTAVE cualquier vector o ma-
triz tiene implícita una indexación en números enteros positivos. Por ejemplo, el dominio
que consta de Nx elementos indexados como:
n x = {n x (1), n x (2), . . . , n x ( Nx )} = {−3, −2, . . . , 7}
podría estar asociado a una señal x [n] con el mismo número de elementos, de manera
que ahora podemos escribir la señal:
x [n] = { x (1), x (2), . . . , x ( Nx ) }

2
en función de su duración en el tiempo como:

x [n] = { x [ n x (1) ], x [ n x (2) ], x [ n x (3) ] , . . . , x [ nx ( Nx ) ] }

en este caso particular:


x [n] = { x [−3], x [−2], . . . , x [7] }

Similarmente, la señal h[n] = { h(1), h(2), . . . , h( Nh ) } que esté asociada al dominio


de Nh elementos nh = {nh (1), nh (2), . . . , nh ( Nh )} = {11, 12, . . . , 18} puede escribirse
como:

h[n] = { h [ nh (1) ], h [ nh (2) ], . . . , h [ nh ( Nh ) ] } = { h [11], h [12], . . . , h [18] }

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.

2. (Ejemplo 2.4, Oppenheim and Willsky(1989)). Considere las secuencias:

αn
 
1 si 0 ≤ n ≤ 4 si 0 ≤ n ≤ 6
x [n] = y h[n] =
0 otro valor 0 otro valor

Encuentre y grafique y[n] = x [n] ∗ h[n] utilizando stem.

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]

(a) Calcule y grafique y[n] = x [n] ∗ h[n].


(b) Definiendo:
 n
1
x1 [ n ] = 2 u[n] y x2 [n] = 2n u[−n]

encuentre por separado


y1 [ n ] = x1 [ n ] ∗ h [ n ] y y2 [ n ] = x2 [ n ] ∗ h [ n ].
(c) Sume y1 [n] y y2 [n] obtenidas en el inciso anterior y compruebe la propiedad
distributiva de la convolución comparando con el resultado del inciso (a).

4. Construya la función y=convol(x,nx,h,nh) a partir del la función y=convm(x,nx,h,nh)


que se da en esta guía, mediante sustitución del comando y=conv(x,h) de la línea
12 por un código que produzca el mismo resultado, utilizando las funciones fold,
desplaz, mult, utilizadas en el laboratorio 2 y la función suma de OCTAVE. Utilice
esta nueva función para calcular de nuevo la convolución del problema 1. Debe pu-
blicar tanto la nueva función convol(x,nx,h,nh) como el script donde se construye la
convolución del ejercicio 1 usando esta última.

También podría gustarte