You are on page 1of 4

CONVOLUCIN

Es de recordar que la suma convolucin expresa la salida de un sistema de tiempo discreto en trminos de la entrada y la respuesta al impulso del sistema. Matlab tiene una funcin llamada conv que evala la convolucin de seales de tiempo discreto de duracin finita. Si x y h son vectores representado seales, entonces el siguiente comando de Matlab genera un vector llamado y representando la convolucin de la seales representadas por x y h. y = conv(x, h) El nmero de elementos en el vector y es dado por la suma de el nmero de elementos en x y h menos uno. Ntese que se debe conocer el tiempo de origen de las seales representadas por x y h con el fin de determinar el tiempo de origen de la convolucin. En general, si el primer elemento de x corresponde al tiempo n=kx y el primer elemento de h corresponde a n=kh, entonces el primer elemento de y corresponde al tiempo n= kx+kh. Para ilustrar este hecho, considere el siguiente ejemplo: Asuma el sistema LTI el cual tiene la siguiente respuesta al impulso.

Determine la salida de este sistema en respuesta a la siguiente entrada.

Aqu el primer elemento diferente de cero en la respuesta al impulso del sistema ocurre en el tiempo n = -1 y el primer elemento de la entrada x ocurre en el tiempo n = 0. La anterior convolucin se puede calcular en Matlab de la siguiente manera:

>> h = [1, 2, 1]; >> x = [2, 3, -2]; >> y = conv(x,h) y= 2 7 6 -1 -2 >> n = -1:3; >> stem(n,y); El primer elemento en el vector y corresponde al tiempo n = 0 + (-1 ) = -1.

En el siguiente ejemplo, se determinar la salida de un sistema con respuesta al impulso dada por:

Y entrada

Se puede en este caso usar el comando conv para calcular la respuesta del sistema. En este caso, la respuesta al impulso consiste de diez unos consecutivos comenzando en el tiempo n = 0, y la entrada consiste de cinco unos consecutivos comenzando en el tiempo n = 2. Estas seales pueden ser definidas en Matlab usando los siguientes comandos: >> h = ones(1,10); >> x = ones(1,5); La salida se obtiene y es graficada usando los siguientes comandos: >> n = 2:15; >> y = conv(x, h); >> stem(n, y); En este ejemplo, el primer elemento del vector y corresponde al tiempo n = 2 + 0 como se muestra en la siguiente figura.

RESPUESTAS EN ESTADO ESTABLE A ENTRADAS ESCALN UNITARIO La respuesta escaln, es la salida de un sistema en respuesta a una seal de entrada escaln unitario. Esta respuesta es infinita en general. Sin embargo, es posible evaluar los primeros p valores de la respuesta escaln usando la funcin conv. Si la respuesta al impulso es cero para los tiempos n<kh, entonces el clculo se realiza convolucionando los primeros p valores de h[n] con una seal paso de longitud p. Es decir se construye un vector h con los primeros p valores diferentes de cero de la respuesta al impulso h, luego se define una seal paso de duracin p con el siguiente comando u=ones(1,p), y entonces se evala la siguiente convolucin s = conv(u,h). El primer elemento de s corresponde a el tiempo kh y los primeros p valores de s representan los primeros p valores de la respuesta paso. Los valores sobrantes de s no corresponden a la respuesta paso. Por ejemplo se podra determinar los 50 primeros valores de la respuesta paso del sistema con la siguiente respuesta al impulso:

Con a = 0.9 los comandos de Matlab seran: >> h = (-0.9).^[0:49]; >> u = ones(1,50); >> s= conv(u, h);

El vector s tienen 99 valores, los primeros 50 corresponden a la respuesta impulso y es mostrada en la siguiente figura usando el siguiente comando:

>>stem([0:49],s(1:50));

En este ultimo comando se pasan a la funcin stem dos parmetros diferentes a los mostrados en los anteriores ejemplos, el primero es un vector annimo de 50 posiciones desde 0 hasta 49 que representa el tiempo, se dice que el vector es annimo puesto que no se le ha definido algn nombre. El segundo parmetro es el vector s que se haba calculado anteriormente, pero en este caso se agrega la fraccin de cdigo (1:50) que indica a Matlab que debe usar tan solo los elementos de s que estn almacenados desde la posicin 1 hasta la 50.

PRACTICA DE LABORATORIO #2
Enunciado: Encontrar la salida y[n] de un sistema lineal invariante en el tiempo a travs de la convolucin de su entrada x[n] y la respuesta al impulso h[n]. Desarrollo 1. Grafica en Matlab las siguientes seales discretas para un intervalo de 0 n 39 (40 muestras): a) x1[n] = cos[2(1/20)n]=cos[(/10)n] b) x2[n] = sen[2(9/20)n]=sen[(9/10)n] c) x[n] = x1[n] + x2[n] Cada una de estas seales servir como entrada para los sistemas lineales invariantes con el tiempo representados mediante las respuestas al impulso siguientes: i. h1[n] = { -0.003654, -0.008850, 0.008078, 0.080984, 0.203536, 0.304003, 0.304003, 0.203536, 0.080984, 0.008078, -0.008850, 0.003654 } h2[n] = { -0.004142, 0.016213, -0.021061, -0.021060, 0.133113,
0.268390, 0.330492, -0.268390, 0.016213, -0.004142 } 0.133113, -0.021060, -0.021061,

ii.

2. Encuentra para cada inciso las respectivas salidas y1[n], y2[n] y y[n] de los sistemas anteriores mediante la funcin y = conv(x,h). 3. Con ayuda de los comandos subplot y plot, grafica en una misma figura cada seal de entrada con su salida correspondiente. Recuerda que estas seales

son discretas por lo cual usaremos otros comandos para graficarlas ms eficazmente. Con ayuda de los comandos subplot y stem, grafica en otra figura cada seal de entrada con su salida correspondiente. Cuida el eje del tiempo. Observa con cuidado estas grficas y comenta qu es lo que hace cada uno de los SLITs con los que ests trabajando. 4. Carga a MATLAB un archivo de voz en formato '.wav' con frecuencia de muestreo de 8KHz (monoaural, puedes grabarla con los parmetros por defecto y despus convertirla a los que se piden) y que dure menos de 10 segundos (si el archivo dura ms, encrgate de reducirlo). Usa este archivo, ya en forma de vector, como la entrada x[n] que hars pasar a travs de los SLITs anteriores. Los comandos wavread y wavwrite pueden ser tiles. 5. Escucha la seal de entrada x[n] utilizando la funcin soundsc(x). Para obtener ms datos sobre esta funcin utiliza help soundsc. Escucha tambin las dos seales de salida correspondientes a la convolucin de x[n] con h1[n] y h2[n], respectivamente. Qu puedes concluir al escuchar las seales? Concuerda tu nueva hiptesis con tus ideas del punto 3?

6. Elabora un reporte donde incluyas las grficas en MATLAB, tus archivos '.m',
tus comentarios y conclusiones.

You might also like