You are on page 1of 6

Universidad Industrial de Santander

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

Tabla 1: Archivos en el paquete taller2.zip. Los archivos marcados con (*)


no deben ser modificados por el estudiante y son suministrados para verificar la
soluci
on de los ejercicios
Importante: Una vez descargado el paquete de archivos, descomprmalos
e inicie una sesi
on de Octave cuyo directorio de trabajo sea la carpeta con los
archivos descomprimidos. Para esto, puede usar el comando cd de octave. Por
ejemplo, si los archivos descomprimidos en su PC se encuentran en la direccion
C:\Documents\taller2, entonces al iniciar Octave debe escribir el comando:
cd('C:\Documents\taller2')

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)

donde los coeficientes ai y bi son constantes reales para i = 0, 1, 2, .


En la pr
actica, para resolver la CCDE en (1) y determinar la respuesta del
sistema a una entrada determinada, hay dos opciones1 :
1 En realidad, hay m
as opciones que conoceremos en m
odulos futuros del curso, pero por
ahora s
olo consideraremos estas dos

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.

Primera y segunda diferencia

El sistema primera diferencia corresponde a una aproximacion de la primera


derivada de una funci
on discreta y se puede representar en notacion de operador
como y(n) = D{x(n)}. La relacion entrada/salida de este sistema esta determinada por la CCDE:
y(n) = x(n) x(n 1)

(2)

A su vez, la primera diferencia corresponde a una aproximacion de la derivada de la se


nal muestreada con periodo T , seg
un dx(t)/dt D{x(n)}/T .
De manera an
aloga, el sistema segunda diferencia, y(n) = D2 {x(n)}, corresponde a la segunda derivada de una funcion discreta y esta determinada por la
CCDE:
y(n) = x(n) 2x(n 1) + x(n 2)

(3)

La segunda diferencia corresponde a una aproximacion de la segunda derivada de una se


nal muestreada con periodo T , seg
un d2 x(t)/dt2 D2{x(n)}/T 2 .
Ejercicio
Modifique los archivos D1.m y D2.m para estimar la primera y la segunda
diferencia de una funci
on discreta, respectivamente. Estas funciones reciben como entrada un vector x con una secuencia discreta y calculan la primera o la
segunda diferencia, seg
un sea el caso. Por ejemplo,
n = 0:99;
x = sin(2*pi*n/100);
y1 = D1(x);
y2 = D2(x);

%Generar una secuencia discreta senoidal


%primera diferencia x(n)
%Segunda diferencia de x(n)

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.

Input signal x(n)

Processed signal y(n)

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

=
=
=
=

[1; 0.5; 0.25];


[1; 2; 3];
convm(h, length(x));
H*x;

Verificaci
on
Para verificar que la funcion convm ha sido editada correctamente, utilice
la funci
on check:
check('convm');

Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra el


mensaje The function convm seems to be OK! :).

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)

El objetivo de este ejercicio es modificar el archivo accum.m para que calcule


la respuesta del sistema acumulador a una entrada x. Para esto, utilice la funcion
filter de Octave para resolver la CCDE (7).
Verificaci
on
Para verificar que la funcion accum han sido editada correctamente, utilice
la funci
on check:
check('accum');

Si el ejercicio ha sido completado exitosamente, en la pantalla se muestra el


mensaje The function accum seems to be OK! :) y como resultado
podr
a ver las gr
aficas mostradas en la figura 3. Esta figura muestra que la
acumulaci
on (integraci
on) de una funcion lineal es una parabola.

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)

Figura 3: Sistema acumulador. (a) Se


nal de entrada x(n). (b) Se
nal de salida
y(n)
tener los archivos mostrados en la tabla 2, y que han sido editados por usted
durante la realizaci
on de este taller. El archivo comprimido debe ser subido en
el portal del curso en el lugar correspondiente y antes de la fecha lmite.
No.
1
2
3
4
5

Archivo
D1.m
D2.m
pmovil.m
convm.m
accum.m

puntos
12
12
12
12
12

Tabla 2: Lista de archivos a entregar. Los archivos deben comprimirse en un


archivo de nombre solucion2.zip

You might also like