Professional Documents
Culture Documents
LABORATORIO N4 CONVOLUCIN
I. OBJETIVOS Entender el uso de convolucin II. INSTRUMENTOS Y COMPONENTES Computadora Personal Programa MATLAB III. MARCO TEORICO Convolucin Discreta Cuando se trata de hacer un procesamiento digital de seal no tiene sentido hablar de convoluciones aplicando estrictamente la definicin ya que solo disponemos de valores en instantes discretos de tiempo. Es necesario, pues, una aproximacin numrica. Para realizar la convolucin entre dos seales, se evaluar el rea de la funcin: . Para ello, disponemos de muestreos de ambas seales en los instantes de tiempo nt, que llamaremos y (donde n y k son enteros).El rea es, por tanto:
Vamos a introducir el concepto de convolucin digital mediante el siguiente ejemplo. Consideremos una seal arbitraria x[n] , la cual toma los valores x[-1] =1, x[0] =2, x[1] =3 , x[2] = -1 que es la entrada a un procesador digital caracterizado por su respuesta h[n] { h[0] =1, h[1] = -1, h[2] =2} al impulso unidad tal y como se representa en la figura siguiente:
La seal x[n] se descompone en un conjunto de muestras ponderadas desplazadas en el tiempo, x[-1][n+1] , x[0][n] , x[1][n -1] , x[2][n 2] .
Por ser un sistema lineal la seal de salida y[n] se obtiene como superposicin de cada una de las respuestas individuales:
El proceso completo se representa grficamente en la siguiente figura. Generalizando este ejemplo definimos la convolucin de la seales x[n] y h[n] como:
La representacin grfica de la ecuacin la figura siguiente, particularizada para el caso y[1] cuyo valor es:
est ilustrada en
Se demuestra que la convolucin es una operacin conmutativa y por lo tanto se puede expresar como:
Veamos una aplicacin de la convolucin. La figura siguiente representa las variaciones de temperatura. Dentro del proceso de controlar y monitorizar la temperatura se desea como paso previo promediar los valores mediante un promediador mvil de 5 trminos, resultando la siguiente expresin:
El proceso de promediar se ilustra en la siguiente figura para el caso particular de n=10. La operacin efectuada es:
Las seales h y x de definiran en MATLAB con los siguientes comandos: >>h=0.25*ones(1,4); >>x=ones(1,10); La salida se obtendra y se dibujara usando los comandos: >>n=0:12; >>y=conv(x,h); >>stem(n,y); xlabel(n); ylabel(y[n])
10
12
2. Usando funciones
Operaciones a realizar: 1. Invertir h[n] para obtener hi[n] Se implementa y guarda la funcin invertir function hi=invertir(h) for i=1:length(h) hi(i)=h(length(h)-i+1); end Para luego aplicarla a una matriz h[n]: % funcion h[n] h=[1 2 3 4 5 6 7 8 9] % funcion hi[n] hi=invertir(h) Teniendo como respuesta: h= 1 hi = 9
2. Extender x[n], obteniendo xe[n] Definimos x[n]: x=[5 4 3 2 1] Para luego extenderla: xe=[zeros(1,length(h)-1) x zeros(1,length(h))] Teniendo como respuesta: xe = 0
3. Ir desplazando hi[n] y multiplicando por xe[n] Por ultimo se realiza lo requerido en el punto 3 implementando el cdigo en MATLAB:
for k=1:length(x)+length(h), y(k)=sum(hi.*xe(k:k+length(h)-1)); end teniendo como respuesta: y= 5 14 26 40 55 70 85 100 115 80 50 26 Se presentan adems las seales x[n], h[n] y y[n]
V. PROBLEMAS: 1.- Realizar la convolucin usando MATLAB Sea x[n]=[n]+2[n1][n3] y h[n]=2[n+1]+2[n1]. Calcule y haga la grfica de cada una de las siguientes convolucones:
2.- calcule la convolucin y[n] = x[n] * h[n] de los siguientes pares de seales:
10
11
12
CONCLUSIONES En este laboratorio pudimos darnos cuenta que Matlab contiene comandos necesarios para hacer la convolucin de dos vectores pero tambin si no queremos recurrir a ese mtodo lo podemos hacer creando un programa para que nos de la convolucin as como en los ejemplos Podemos analizar de manera grafica las consolaciones con el comando `stem` y notar que lo obtenido mediante clculos matemticos largos y tediosos se consigue de manera efectiva y rpida con Matlab.
13