Professional Documents
Culture Documents
Escuela de Ingenieras El
ectrica, Electr
onica y de Telecomunicaciones
Taller 2. Convoluci
on y filtrado
Introducci
on
El objetivo de este taller es poner en practica algunos conceptos del modulo
Herramientas fundamentales del curso. Especficamente, vamos a utiliar la plataforma Octave para implementar algunos sistemas basicos, para realizar convoluciones y resolver ecuaciones lineales en diferencias con coeficientes constantes.
Este taller requiere un paquete de archivos, taller2.zip, que se pueden descargar desde el portal del curso. Los archivos en este paquete le permitiran
realizar el taller y verificar sus resultados. En la tabla 1, puede encontrar un
resumen de los archivos contenidos en el paquete.
Archivo
D1.m
D2.m
pmovil.m
convm.m
accum.m
check.m(*)
Descripcion
Funcon para implementar la primera diferencia
Funci
on para implementar la segunda diferencia
Funci
on para implementar promedio movil
Funci
on crear matriz de convolucion
Funci
on para implementar sistema acumulador
Funci
on para verificar la solucion de los ejercicios
1.
Convoluci
on y sistemas b
asicos
En general, la relaci
on entre la entrada y la salida de los sitemas LTI pueden
ser descrita por ecuaciones lineales en diferencias con coeficientes constantes
(CCDE, por sus siglas en ingles). Una CCDE tiene la forma:
a0 y(n) + a1 y(n 1) + = b0 x(n) + b1 x(n 1) + ,
(1)
1. Resolver la ecuaci
on en diferencias de forma recursiva
2. Determinar la respuesta al impulso del sistema, h(n), y calcular la salida
mediante la convoluci
on: y(n) = x(n) h(n)
En esta primera parte del taller, vamos a hacer enfasis en la solucion mediante la convoluci
on. Afortunadamente, debido a la naturaleza algortmica de
la suma de la convoluci
on, esta operacion puede ser implementada facilmente en
sistemas digitales, tales como un computador. Por ejemplo, en Octave la convoluci
on de dos secuencias, x1 y x2, se puede realizar por medio del comando
conv:
y = conv(x1, x2);
1.1.
(2)
(3)
La estimaci
on se debe realizar resolviendo las CCDE (2) y (3). Para esto,
puede hallar la respuesta al impulso de cada sistema y determinar la salida
usando la convoluci
on con la respuesta al impulso. Recuerde que la convolucion
de dos se
nales de longitudes N 1 y N 2 da como resultado una secuencia de
longitud N 1 + N 2 1.
Verificaci
on
Para verificar que las funcion D1 y D2 han sido editada correctamente, utilice
la funci
on check:
check('diffs');
d2x(t)/dt2
dx(t)/dt
D{x(n)}/T
x(t)
x(n)
(a)
D2{x(n)}/T2
(b)
(c)
Figura 1: Se
nal x(t) = 3t3 +2t2 muestrada a Fs = 12.5 Hz. (a) Primera derivada
2
x(t) = 9t + 4t. (b) Segunda derivada x(t) = 18t + 4
Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra
el mensaje Function D1 and D2 seems to be OK! :) y como resultado
podr
a ver la gr
afica mostrada en la figura 1. Esta grafica corresponde a la se
nal
x(t) = 3t3 + 2t2 , muestreada a 12.5 Hz en el intervalo t [4, 4]. Las figuras
1b y 1c comparan los c
alculos analticos con las estimaciones discretas de la
primera y segunda derivada.
1.2.
Promedio m
ovil
El promedio m
ovil es un sistema LTI que puede ser usado para estimar el
valor promedio instant
aneo de una se
nal. Esta descrito mediante la ecuacion en
diferencias2 :
y(n) =
M 1
1 X
x(n k),
M
(4)
k=0
donde M es un n
umero entero que corresponde al n
umero de terminos usados
para estimar el promedio.
Debido a que la media es un estimador estadstico de una variable aleatoria,
el sistema promedio m
ovil se puede utilizar como un filtro basico para eliminar
el ruido de una se
nal.
Ejercicio
Modifique el archivo pmovil.m para calcular el promedio movil de una
funci
on discreta. Esta funci
on tiene dos entradas: un vector x con una secuencia
discreta de entrada y un entero M con el n
umero de terminos del promedio movil.
En Octave, la funci
on debe invocarse como:
y = pmovil(x, M);
La estimaci
on se debe realizar resolviendo la CCDE (4). Para esto, puede hallar la respuesta al impulso del sistema y determinar la salida usando la
convoluci
on con la respuesta al impulso.
Verificaci
on
Para verificar que la funcion pmovil han sido editada correctamente, utilice
la funci
on check:
check('pmovil');
2 En esta expresi
on se han cambiado los lmites de la sumatoria para que la respuesta al
impulso resultante sea causal. Sin embargo, el sistema opera de la misma manera explicada
en clases.
7
6
6
5
5
4
3
2
100
200
300
400
500
100
(a)
200
300
400
500
(b)
Figura 2: Promedio m
ovil. (a) Se
nal discreta x(n) afectada con ruido. (b) Se
nal
procesada por sistema promedio movil
Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra el
mensaje The function pmovil seems to be OK! :) y como resultado
podr
a ver la gr
afica mostrada en la figura 2. Esta figura compara una se
nal discreta contaminada con ruido con la misma se
nal procesada mediante el sistema
promedio m
ovil.
2.
Convoluci
on matricial
La convoluci
on es una operacion lineal y por lo tanto se puede expresar como
un producto matricial. As, la convolucion y(n) = x(n) h(n) puede expresarse
como y = Hx, donde x, y y H son el vector con la secuencia de entrada, el
vector con la secuencia de salida y la matriz de convolucion, respectivamente.
En este taller, asuma siempre que las secuencias discretas son representadas
por vectores columna. Por ejemplo, el sistema LTI cuya respuesta al impulso
est
a dada por h(n) = (n) 0.5(n 1), para se
nales de entrada x R3 , la
matriz de convoluci
on dada por:
1
0
0
0.5
1
0
(5)
H=
0
0.5
1
0
0
0.5
N
otese que, en este caso, la secuencia y(n) es el resultado de la convolucion
de una secuencia x(n) de 3 elementos, y una secuencia h(n) = (n) 0.5(n 1)
de 2 elementos. Por lo tanto, y(n) tiene N = 4 elementos. Por esta razon, las
dimensiones de x, y y H deben ser 3 1, 4 1 y 4 3, respectivamente.
Ejercicio
Modifique el archivo convm.m para generar una matrix de convolucion. La
funci
on tiene dos par
ametros de entrada: una secuencia h con la respuesta al
impulso del sistema, y un entero N con la longitud de la secuencia de entrada.
Por ejemplo, para hallar la salida un sistema LTI cuya respuesta al impulso es
h(n) = (n) + 0.5(n 1) + 0.25(n 2) a la secuencia de entrada x = [1, 2, 3]T ,
la funci
on debera invocarse como:
h
x
H
y
=
=
=
=
Verificaci
on
Para verificar que la funcion convm ha sido editada correctamente, utilice
la funci
on check:
check('convm');
3.
Sistema acumulador
El metodo de convoluci
on matricial es bastante u
til y eficiente cuando se
necesita evaluar muchas veces la respuesta de un mismo sistema LTI a muchas
entradas de la misma longitud. Desafortunadamente, en la practica este metodo
es solo aplicable para sistemas cuya ecuacion en diferencias no esta en funcion
de la variable de salida. Es decir, CCDE del tipo:
y(n) = b0 x(n) + b1 x(n 1) +
(6)
Para ecuaci
ones en diferencias generales, como la de (1), es necesario calcular
la salida de forma recursiva. Octave cuenta con una funcion para resolver ecuaciones en diferencias generales. As, sean A=[a0, a1, ...] y B = [b0, b1, ...]
los vectores con los coeficientes de la variable dependiente e independiende de
(1), respectivamente; entonces es posible calcular eficientemente la salida del
sistema a una entrada x mediante:
y = filter(B, A, x);
Ejercicio
El acumulador o integrador es un sistema LTI cuya respuesta al impulso es
el escal
on unitario y cuya CCDE esta data por:
y(n) = x(n) + y(n 1)
(7)
Entrega
Para entregar la soluci
on de los ejercicios, comprima los archivos que edito en
un archivo de nombre solucion1.zip. Dicho archivo comprimido s
olo debe
5
x(n)
y(n)
(a)
(b)
Archivo
D1.m
D2.m
pmovil.m
convm.m
accum.m
puntos
12
12
12
12
12