Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2012
Captulo 03.
Convolucin discreta
Ao 2012
Ao 2012
ndice
3.1
3.1.1
3.1.2
3.1.3
3.1.4
3.1.5
3.1.6
3.1.7
3.1.8
3.1.9
3.1.10
3.1.11
3.2
3.3
Convolucin circular
Secuencia periodica
Sobre el origen de la secuencia peridica
Desplazamiento haca adelante de la secuencia peridica
Desplazamiento haca atrs de la secuencia peridica
Definicin de convolucin circular
Propiedad de longitud de la convolucin circular
Ejemplo
Mtodo de los crculos concntricos
Ejemplo
Convolucin ciruclar, mtodo matricial
Ejemplo
Teorema de aproximacin de la convolucin lineal con la convolucin circular
Ejemplo
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.5
3.3.6
3.3.6
3.3.7
3.3.8
3.3.9
3.3.10
3.3.11
Ao 2012
3.5
3.6
Ao 2012
f (t ) se mantiene fija
f (t )
, es decir,
t cambia por
g(t ) g((t ))
f g( )= lim
f (t) g((t )) dt [v 2 s]
T T
(3.1)
Siguiendo la definicin 3.1, si se desea conocer la convolucin para todo instante de tiempo se tendra que
crear un registro para tomando valores de un extremo a otro del infinito, es decir ( ,) . Una forma
de generalizar y simplificar este proceso es mediante un cambio de variable tal como se define a continuacin.
Definicin 3.2. Convolucin de seales energa para toda t . Si se desea evaluar la convolucin para toda
t se hace un intercambio de variables t en la ecuacin 3.21 de tal forma que resulta:
T
f g( t)= lim
f ( ) g(t ) d [v 2 s]
(3.2)
T T
f g( n)= lim
N m=( N1)
Ao 2012
A modo de demostracin, se parte de la convolucin dada en ecuacin (3.2) para seales energa. Se muestrea
la integral considerando las equivalencias siguientes.
t =n s
=m s
dt = s
d = s
(3.4)
T =( N 1) s
En donde:
n es la n-sima muestra
N es el nmero de muestras
Sustituyendo el conjunto de ecuaciones (3.3) en la ecuacin (3.2) de convolucin para seales energa de
tiempo continuo se logra:
N 1
f g( n)= lim
N m=( N1)
f (m)g(( mn)) s ; n
f g( n)= lim
N m=( N1)
f (m)g(( mn))[v2 ];
n (3.5)
A modo de demostracin considrense que las seales discretas no estn definidas entre muestras, a
consecuencia, el periodo de muestreo se normaliza a la unidad y por tanto la ecuacin (3.3) puede reescribirse
como en la forma de la ecuacin (3.5)
Ntese tambin que la suma de convolucin est definida en funcin de un ndice de instantes y no en funcin
de una variable temporal, no obstante, se le seguir llamando convolucin para tiempo discreto.
Ao 2012
f g( n)=
f (m) g((mn)) ;
m=f Indx.min
y se calcula como:
N f g =N f +N g1 (3.8)
3.1.5 Ejemplo
Para ilustrar el proceso de forma genrica considrense las dos secuencias siguientes
f =[f (1) , f ( 0) , f (1) , f ( 2)]
(3.9)
en donde:
f Indx.min=1
f Indx.max=2
g Indx.min=1
(3.10)
g Indx.max =1
Ahora se desarrolla en la tabla 3.1 la suma de convolucin paras las secuencias dadas en la ecuacin (3.9).
Ao 2012
+
+
+
+
+
+
f(1)g(-3)
f(1)g(-2)
f(1)g(-1)
f(1)g(0)
f(1)g(1)
f(1)g(2)
+
+
+
+
+
+
f(2)g(-4)
f(2)g(-3)
f(2)g(-2)
f(2)g(-1)
f(2)g(0)
f(2)g(1)
Los productos en rojo corresponden con ndices para los cuales el segundo operando de la convolucin no tiene
elementos definidos. Ahora bien, realizando los productos indicados se tiene que la convolucin es:
f g=[ f g(2), f g(1) , fg(0) , f g(1) , f g(2) , f g(3) ] (3.11)
donde:
f g(2)=f (1) g (1)
f g(1)=f (1) g (0)+f (0) g (1)
f g( 0)= f (1) g(1 )+f (0 ) g (0)+f (1) g (1)
f g(1 )=f (0 ) g (1)+f ( 1) g (0)+f (2) g (1)
(3.12)
f g( 2)=f (1 ) g( 1)+f (2 ) g( 0)
f g(3 )= f ( 2) g (1)
(3.13)
Ao 2012
La secuencia f
Ahora bien, siguiendo los pasos dados, se consideran las dos secuencias siguientes: son las mismas
ecuaciones (3.9).
f =[f (1) , f ( 0) , f (1) , f ( 2)]
Entonces por el mtodo de la cinta deslizante se plantea una tabla como la mostrada en la tabla 3.2.
Tabla 3.2 Mtodo de la cinta deslizante. Note que la secuencia f se mantiene sin cambios, en tanto que la
funcin g se refleja y se desplaza. Debe realizarse el producto punto entre f y cada desplazameinto de la
funcin g.
f(n)
g(-(n+2))
-3
-2
-1
f(1)
f(2)
g(0)
f(-1)
g(-1)
f(0)
g(1)
= f(-1)g(-1)
f(-1)g(-1)
f(n)
g(-(n+1))
f(n)
g(-n)
g(1)
f(-1)
g(0)
f(0)
g(-1)
f(1)
f(2)
f(-1)g(0)
f(0)g(-1)
f(-1)
g(1)
f(0)
g(0)
f(1)
g(-1)
f(-1)g(1)
f(0)g(0)
f(1)g(-1)
f(-1)
f(0)
g(1)
f(1)
g(0)
f(2)
g(-1)
f(0)g(1)
f(1)g(0)
f(2)g(-1)
f(0)
f(1)
g(1)
f(2)
g(0)
f(1)g(1)
f(2)g(0)
f(1)
f(2)
g(1)
= f(-1)g(0) + f(0)g(-1)
f(2)
= f(-1)g(1)+f(0)g(0)
'+f(1)g(-1)
f(n)
g(-(n-1))
= f(0)g(1)+f(1)g(0)
'+f(2)g(-1)
f(n)
g(-(n-2))
f(n)
g(-(n-3))
f(-1)
f(-1)
f(0)
f(2)g(1)
g(-1)
= f(1)g(1) + f(2)g(0)
g(0)
g(-1)
= f(2)g(1)
Ao 2012
Ahora deben compararse los productos indicados en la tabla 3.2 con los productos indicados por la tabla 3.1 y
ntese que son los mismos. Entonces, la secuencia de convolucin resultante es la misma ecuacin (3.11).
3.1.7 Ejemplo
Convolucione las siguientes secuencias f =[2,5 , 0, 4] y
g=[4, 1 , 3]
f(n)
g(-(n+3))
f(n)
g(-(n+2))
-2
-1
2
4
8
2
1
2
5
4
20
2
3
6
5
1
5
0
4
0
5
3
15
0
1
0
4
4
16
0
3
0
4
1
4
4
3
12
f(n)
g(-(n+1))
f(n)
g(-n)
f(n)
g(-(n-1))
f(n)
g(-(n-2))
'=
'=
22
'=
11
'=
31
'=
'=
12
N f g = N f +N g 1=4+31=6
El dominio de la secuencia de convolucin es:
n [f Indx.min + g Indx.min , f Indx.max +g Indx.max ]
n [11,2+1]
n [2,3]
La secuencia de convolucin es:
f g=[8,22,11 , 31,4,12] (3.15)
Ao 2012
El planteamiento de la convolucin por frmula qued definido en la tabla 3.2. ahora bien, considerando los
factores no nulos y factorizando los factores de la secuencia f se logra el siguiente planteamiento:
][ ]
[ ][
f g(2)
g(1)
0
0
0
f g(1)
g(0) g(1)
0
0
f (1)
fg(0)
g(1)
g(0) g(1)
0
f (0 )
=
fg(1)
0
g(1)
g(0) g(1) f (1)
fg(2)
0
0
g(1)
g(0) f (2 )
fg(3)
0
0
0
g(1)
(3.16)
g (1 )
0
0
0
g( 0) g (1)
0
0
g (1)
g (0) g (1 )
0
G=
0
g (1)
g( 0) g (1)
0
0
g (1)
g (0)
0
0
0
g (1)
[ ]
f (1)
f (0)
F=
f (1)
f (2)
(3.18)
(3.19)
[ ]
f g (2 )
f g (1)
f g(0 )
[f g ]=
f g(1 )
f g( 2)
f g(3 )
(3.20)
Ao 2012
3.1.9 Ejemplo
, 5 , 0 , 4] y
Convolucione las siguientes secuencias f =[2
4
1
3
f g( n)=
0
0
0
0
4
1
3
0
0
0
0
4
1
3
0
0
0
0
4
1
3
][ ] [ ]
8
2
22
5
11
=
0
31
4
4
12
(3.21)
Ao 2012
Primero se crea una maya tal como se ilustra en la tabla 3.4: en el rengln superior se coloca la secuencia
en tanto que en la columna ms a la derecha se coloca la secuencia g .
f(-1)
f(0)
f(1)
f(2)
g(-1)
g(0)
g(1)
Luego la maya se llena con el producto cartesiano de las secuencias, tal como se indica en la tabla 3.5
Tabla 3.5. Mtodo de malla. Llenado de la malla.
f(-1)
f(0)
f(1)
f(2)
f-1)g(-1)
f(0)g(-1)
f(1)g(-1)
f(2)g(-1)
g(-1)
f(-1)g(0)
f(0)g(0)
f(1)g(0)
f(2)g(0)
g(0)
f(-1)g(1)
f(0)g(1)
f(1)g(1))
f(2)g(1)
g(1)
Finalmente, se realizan sumas en diagonal hacia abajo-izquierda. Los totales son los elementos de la secuencia
de convolucin tal como ilustra la tabla 3.6.
Tabla 3.6. Mtodo del producto para las secuencias [f(0),f(1),f(2),f(3)] y
[g(0),g(1),g(2)]
f(-1)
f(0)
f(1)
f(2)
f-1)g(-1)
f(0)g(-1)
f(1)g(-1)
f(2)g(-1)
g(-1)
f*g(-2)
f(-1)g(0)
f(0)g(0)
f(1)g(0)
f(2)g(0)
g(0)
f*g(-1)
f(-1)g(1)
f(0)g(1)
f(1)g(1))
f(2)g(1)
g(1)
f*g(0)
f*g(1)
f*g(2)
f*g(3)
donde:
f g(2)=f (1) g(1)
f g(1)=f (1) g(0)+f (0) g (1)
f g( 0)= f (1) g(1)+f (0) g(0)+f (1) g(1)
f g(1)=f (0) g(1)+f ( 1) g(0)+f (2) g(1)
f g( 2)=f (1) g( 1)+f (2) g( 0)
f g(3)= f ( 2) g(1)
Ao 2012
3.1.11 Ejemplo
Convolucione las siguientes secuencias
f =[2,5 , 0, 4]
g=[4 , 1 , 3]
El proceso por el mtodo del producto queda definido como se indica en la tabla 3.7
Tabla 3.7. Mtodo de malla para las secuencias [f(0),f(1),f(2),f(3)] y
[g(0),g(1),g(2)]
20
16
22
15
12
11
31
12
Ao 2012
Tabla 3.8. Mtodo del producto para las secuencias [f(0),f(1),f(2),f(3)] y [g(0),g(1),g(2)]
f(0)
g(0)
f(0)g(0)
+
f*g(0)
f(1)
g(1)
f(1)g(0)
f(0)g(1)
f(2)
g(2)
f(2)g(0)
f(1)g(1)
f(0)g(2)
f*g(2)
f*g(1)
f(3)
+
f(3)g(0)
f(2)g(1)
f(1)g(2)
f*g(3)
f(3)g(1)
f(2)g(2)
f*g(4)
f(3)g(2)
f*g(5)
donde:
f g(2)=f (1) g (1)
f g(1)=f (1) g (0)+f (0) g (1)
f g( 0)= f (1) g(1 )+f (0 ) g (0)+f (1) g (1)
f g(1 )=f (0 ) g (1)+f ( 1) g (0)+f (2) g (1)
f g( 2)=f (1 ) g( 1)+f (2 ) g( 0)
f g(3 )= f ( 2) g (1)
Ao 2012
3.1.13 Ejemplo
Convolucione las siguientes secuencias
f =[2,5 , 0, 4]
g=[4 , 1 , 3]
El proceso por el mtodo del producto queda definido como se indica en la tabla 3.9:
2
4
8
+
8
5
1
20
2
22
0
3
0
5
6
11
4
16
0
15
31
4
0
4
12
12
Ao 2012
Ao 2012
Secuencia
filtro
' same ' Retorna la parte central de la convolucin, la secuencia resultante tiene el mismo dominio de
la secuencia original.
Ntese que a pesar de que convolucin es conmutativa, los operandos deben respetar su identidad de
secuencia a filtrar y filtro. De otra forma, MATLAB entregar resultados extraos.
Ejemplo
> f =[2,5,0,4]
> g=[4,1,3]
> conv (f , g )
> [8,22,11,31,4,12]
Ejemplo
> f =[2,5,0,4 ]
> g=[4,1,3 ]
> conv (f , g ,' full ')
> [8,22,11,31,4,12]
Ejemplo
> f =[2,5,0,4]
> g=[4,1,3]
> conv (a ,b , ' same ' )
> [11,31,4,12]
Ao 2012
f =[...f (0), f (1 ), f (2) , f (0 ), f (1) , f (2) , f (0) , f (1) , f (2) , ...] (3.31)
Esta secuencia tambin puede escribirse con ndices no peridicos de la forma siguiente
f =[...f (3) , f (2) , f (1) , f (0) , f (1) , f (2) , f (3) , f (4), f (5), ...] (3.32)
Ambas formas, la peridica y la no peridica son equivalentes y sern usadas en la convolucin circular.
Ao 2012
(3.33)
x(n+ 1)=[x (1) , x(2 ), x(0)]
(3.34)
x(n1)=[x (2) , x( 0), x(1)]
f g(n)=
f (m) g((mn));
n[0, N 1] (3.35)
m=0
Para ejemplificar el comportamiento peridico de la frmula, sta se desarrolla para N=3, es decir, sean las
secuencias peridicas siguientes
f =[f (0) , f (1) , f (2)]
(3.36)
g=[g(0), g(1) , g(2)]
Desarrollando la frmula de la convolucin ciruclar
Illustration 3.1: (a)Representacin del operando f. (b) Acomodo de los dos operandos f y g para la convolucin
circular.
MI. Mario Alfredo Ibarra Carrillo
Ao 2012
(3.37)
Illustration 3.2: Proceso de convolucin circular para las secuencias f=[f(0),f(1),f(2)] y g=[g(0),g(1),g(2).]
Ao 2012
Ao 2012
3.3.7 Ejemplo
Convolucione las secuencias periodicas f =[2,5,0,4] y g=[4,1,3,0] , su convolucin circular es:
f g (0 )=f (0 ) g (0)
f g (1)=f (0 ) g(1 )
f g (2)=f (0 ) g (2)
f g (3 )=f (0 ) g (3)
+
+
+
+
f (1) g (3)
f (1) g (0 )
f (1) g(1 )
f (1) g (2)
+
+
+
+
f (2) g (2)
f (2) g(3 )
f (2) g (0 )
f (2 ) g( 1)
+
+
+
+
f (3) g (1)=24
f (3) g (2)=21
f (3) g (3)=23
f (3 ) g (0)=20
+
+
+
+
50
54
51
53
+
+
+
+
03
00
04
01
+
+
+
+
4 1=12
43=34
(3.40)
40=11
4 4 =31
l 0
Se realiza el producto punto de los vectores tal como indican los crculos concntricos.
l= N1 .
La figura 3.2 ilustra el proceso de convolucin circular para las secuencias dadas.
3.3.9 Ejemplo:
Realice la convolucin circular de la secuencias
f =[2,5,0,4 ]
(3.41)
g=[4,1,3,0]
La figura 3.3 ilustra cmo se realiza la convolucin circular de la secuencias. Finalmente, la secuencia de
convolucin es:
f g=[12,34,11,31] (3.42)
Ao 2012
[ ][
][ ]
f g(0)
g(0) g (2) g(1) f (0)
f g(1) = g(1) g (0) g(2) f (1)
f g(2)
g(2) g (1) g(0) f (2)
(3.43)
[
[ ]
(3.45)
(3.46)
g ( n)
se acomodan
Ao 2012
3.3.11 Ejemplo
Realice la convolucin circular de la secuencias (3.41)
f =[2,5,0,4]
g=[4,1,3,0]
Planteando la matriz de convolucin se tiene que:
[ ] [ ][ ] [ ]
f g(0)
4 0
f g(1)
= 1 4
f g(2)
3 1
0 3
f g(3)
3
0
4
1
1
3
0
4
2
12
5 = 34
0
11
4
31
3.3.13 Ejemplo
Calcule la convolucin lineal de las siguientes dos secuencias empleando la convolucin circular.
f =[2,5,0,4]
g=[4,1,3]
Primero se calculan las cardinalidades
Nf =4
N g =3
La cardinalidad de la secuencia convlucionada es
N f g = N f +N g 1
=4+31
=6
MI. Mario Alfredo Ibarra Carrillo
Ao 2012
Luego a las secuencias a convlucionar se les agregan ceros para completar cada una con 6 elementos:
f '=[f ,[2ceros]]=[2,5,0,4,0,0 ]
(3.42)
g '=[ g,[3ceros]]=[4,1,3,0,0,0]
4
1
3
f ' g '=
0
0
0
0
4
1
3
0
0
0
0
4
1
3
0
0
0
0
4
1
3
3
0
0
0
4
1
][][ ]
1
2
8
3
5
22
0
0
11
=
0
4
31
0
0
4
4
0
12
(3.43)
Para conocer el el origen de la secuencia, se recurre a las estrategias empleadas para la convolucin lineal.
Ao 2012
f (t ) h(t)= y (t ) (3.50)
f (t ) h (t)= y (t ) (3.51)
f (t ) h(t)= y (t ) (3.52)
Ao 2012
espacial :interpolante
{Dominio
Dominio frecuencia: paso bajas
.
Dominio espacial : suavizante (difumina y suprime ruido)
Dominio frecuencia: paso bajas
Filtros lineales
.
Dominio espacial : detector de estructuras( bordes , lineas y texturas)
Dominio frecuencia: paso altas
.
Dominio espacial : mejorade nitidez
Dominio frecuencia: paso altas
{
{
Definicin 3.9 filtrado lineal de una secuencia mediante convolucin lineal. El filtrado de la secuencia finita
f (n) con un filtro cuya respuesta a impulso es la secuencia h <tipo de filtro>; <orden del filtro> se define como
f h <tipo> ; orden (n)=f (n)h <tipo>; orden (n) . An cuando la convolucin es conmutativa se sugiere que el orden
de los operandos sea respetado.
Los filtros que se usarn en este captulo se representan con mnemnicos, es decir;
A: filtro de bloque
B: filtro binomial
H: filtro haar
Estos filtros definen sus dimensiones de acuerdo al tamao del grano ruidoso
Estos filtros quitan ruido no correlaiconado: un pixel de pronto tiene un valor muy diferente al de sus
vecinos.
MI. Mario Alfredo Ibarra Carrillo
Ao 2012
h A ; N ( n)=
1
(n+ N2 i) ;
N +1 i=0
n[0, N ] (3.53)
Este filtro acta bien, en tanto el orden del mismo sea par. Un filtrado de orden impar implicara
distorsin de la imagen. Las distorsiones sern imperceptibles si el filtro es de un orden pequeo.
f=[1,1,1,5,5,5,1,1,1];
h_A_2 =[1,1,1];
f_h_A_2=conv(x,h_A_2)*(1/3);
subplot(3,1,1);
stem(0:8,f);
axis([-2,12,0,5])
subplot(3,1,2);
stem([-1,0,1],h_A_2);
axis([-2,12,0,5])
subplot(3,1,3);
stem(-1:9,f_h_A_2);
axis([-2,12,0,5])
Illustration 3.4: (a) Secuencia de pulso rectangular (b) Secuencia del filtro. (c) secuencia suavizada con un filtro de
bloque de segundo orden.
MI. Mario Alfredo Ibarra Carrillo
Ao 2012
f=[1,1,1,5,5,5,1,1,1];
h_B_2 =[1,2,1];
f_h_B_2=conv(f,h_A_2)*(1/4);
subplot(3,1,1);
stem(0:8,f);
axis([-2,12,0,5])
subplot(3,1,2);
stem([-1,0,1],h_B_2);
axis([-2,12,0,5])
subplot(3,1,3);
stem(-1:9,f_h_B_2);
axis([-2,12,0,5])
Illustration 3.5: (a) Secuencia de pulso rectangular (b) Secuencia del filtro. (c) secuencia suavizada con un filtro de
binomial de segundo orden.
Aplique el siguiente filtro suavizante a bloque y de segundo orden, mismo que se ve en la figura 3.4.b.
h A ; 2=
1
11 1
3
(3.55)
La figura 3.4.c ilustra la secuencia filtrada Note que tal secuencia ya no tiene transiciones abruptas de 1 a
5 . El cdigo en MATLAB que realiza la convolucin y genera las grficas tambin se muestra en la figura
3.4.
Ao 2012
hB ; N ( n)=
1
N
C (n+ i)
N N i
2
2 i=0
n[0, N ] (3.57)
donde:
Ci =
N!
;
( N i )! i !
Este filtro tiene una transicin suave que reduce al mnimo los rizos armnicos en la respuesta en
frecuencia. Estos rizos armnicos se ven atenuados por el factor 2N .
Este filtro acta bien, en tanto el orden del mismo sea par. Un filtrado de orden impar implicara
distorsin de la imagen. Las distorsiones sern imperceptibles si el filtro es de un orden pequeo.
Aplique un filtro suavizante binomial de segundo orden, mismo que se ilustra en la figura 3.5.b
hB ; 2=
1
12 1
4
(3.59)
La figura 3.5.c ilustra la secuencia filtrada Note que tal secuencia ya no tiene transiciones abruptas de 1 a
5 . El cdigo en MATLAB que realiza la convolucin y genera las grficas tambin se muestra en la figura
3.5.
Ao 2012
(3.61)
f =[1,3,5,7] (3.67)
El sobremuestreo de la misma por un factor de S =2 se realiza como:
upsample( f , 2)
(3.68)
>[1,0,3,0,5,0,7,0 ]
Ao 2012
3.6.5 Interpolacin
Definicin 3.14. La interpolacin consiste en el clculo de nuevas muestras intercaladas entre las muestras
de una seal. La interpolacin se identifica con dos parmetros que son el factor de interpolacin y el grado de
interpolacin.
En realidad no se usa un polinomio para interpolar sino mas bien, un filtro, el grado indica el tipo de filtro y el
factor de interpolacin indicar el orden del filtro.
Definicin 3.15 El grado de la interpolacin se refiere al grado de un polinomio que se usa para interpolar, es
decir:
Definicin 3.16. Interpolacin lineal por convolucin Sea f (n ) una secuencia finita, un factor de
interpolacin S y un orden de interpolacin N . El proceso de interpolacin lineal consiste de la aplicacin
de dos operadores: el sombremuestreo por un factor S y la convolucin con el filtro interpolante
hgrado , orden , es decir:
f Sh grado, orden (3.69)
La interpolacin no es conmutativa
i=0
Ao 2012
f=[1,3,5,3,1];
f_2=upsample(f,2);
h_0_1=[1,1];
f_2_h_0_1=conv(f_2,h_0_1);
subplot(4,1,1);
stem(0:4,f);
axis([-1,10,0,5.1])
subplot(4,1,2);
stem(0:9,f_2);
axis([-1,10,0,5.1])
subplot(4,1,3);
stem([0,1],h_0_1);
axis([-1,10,0,5.1])
subplot(4,1,4);
stem(0:10,f_2_h_0_1);
axis([-1,10,0,5.1])
Illustration 3.6: Secuencia de interporlacin (a) secuencia original. (b) Secuencia sobremuestreada en un factor de 2. (c)
Filtro Haar de grado 0 y orden 1. (d) Secuencia interpolada.
Aplicando el proceso de sobremuestreo en un factor S=2 resulta en la secuencia siguiente, misma que se
ilustra en la figura 3.6.b
f 2=[1 ,0,3,0,5,0,3,0,1,0 ] (3.73)
El filtro Haar, el cual se ilustra en la figura 3.6.c de grado cero y orden 1 se representa en la secuencia siguiente
Ao 2012
[ ]
h0; 1 = 1 1
(3.74)
La figura 3.6.d ilustra la secuencia filtrada. Note que cada muestra interpolada es la repeticin de la muestra
original a su izquierda. El cdigo en MATLAB que realiza la convolucin y genera las grficas tambin se
muestra en la figura 3.6.
h1; N ( n)=
i=0
N +1
N
(n+ i )+
N
2
N
i= +1
2
N n+1
N
(n+ i)
N
2
n [0, N ] (3.77)
Debe considerarse que todas las ventanas Bartleet que se usan como filtros interpolantes tienen un orden par. A
modo de ejemplo, algunas ventanas Bartlett son:
1
h1 ; 2= [1 , 2 , 1 ] (3.78)
2
1
h1 ; 4= [1, 2, 3 , 2, 1] (3.79)
3
1; 6
Ao 2012
f=[1,3,5,3,1];
f_2=upsample(f,2);
h_1_2=[1,2,1]*(1/2);
f_2_h_1_2=conv(f_2,h_1_2);
subplot(4,1,1);
stem(0:4,f);
axis([-1,10,0,5.1])
subplot(4,1,2);
stem(0:9,f_2);
axis([-1,10,0,5.1])
subplot(4,1,3);
stem([0,1,2],h_0_1);
axis([-1,10,0,5.1])
subplot(4,1,4);
stem(-1:10,f_2_h_0_1);
axis([-1,10,0,5.1])
Illustration 3.7: Secuencia de interporlacin (a) secuencia original. (b) Secuencia sobremuestreada en un factor de 2. (c)
Filtro Bartlett de grado 1 y orden 2. (d) Secuencia interpolada.
Aplicando el proceso de sobremuestreo en un factor S=2 resulta en la secuencia de la ecuacin (3.70). Esta
secuencia se repite a continuacin y se ilustra en la figura 3.7.b
f 2=[1 ,0,3,0,5,0,3,0,1,0 ]
El filtro Bartlett de la ecuacin (3.75) el cual se repite a continuacin y se ilustra en la figura 3.7.c de grado uno
y orden 2 se representa en la secuencia siguiente
h1; 2=
1
121
2
]
MI. Mario Alfredo Ibarra Carrillo
Ao 2012
La figura 3.7.d ilustra la secuencia filtrada. Note que las muestras inteporladas son los valores medios entre las
muestras originales. El cdigo en MATLAB que realiza la convolucin y genera las grficas tambin se muestra
en la figura 3.7.
Obtenidas con sensores pticos en rangos no viisibles como el infrarrojo, el ultravioleta, rayos gama,
rayos X., etc.
El proceso de convolucin 2D en el dominio del tiempo discreto es ya demasiado complejo como para ilustrar
en un texto el desarrollo de las frmulas. A consecuencia, suelen usarse algoritmos especiales como el mtodod
deslizante y el mtodo de la convolucin circular.
[
[
...
...
...
...
...
... f (0,1) f (0,0) f (0,1) f (0,2)
f (m , n)= ... f (1,1) f (1,0) f (1,1) f (1,2)
... f (2,1) f (2,0) f (2,1) f (2,2)
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
... g(0,1) g( 0,0) g(0,1) g(0,2) ...
g( m, n)= ... g(1,1) g( 1,0) g(1,1) g(1,2) ...
... g(2,1) g( 2,0) g(2,1) g(2,2) ...
...
...
...
...
...
...
(3.82)
(3.83)
r=
c =
Ao 2012
[
[
f (0,0 )
f (0,1)
f (0,2)
...
f (0, N f )
f (1,0 )
f (m , n)= f (2,0 )
f (1,1)
f (1,2)
...
f (1, N f )
f (2,1)
f (2,2)
...
f (2, N f )
g( m, n)=
...
...
...
...
...
f ( M f , 0) f ( M f , 1) f ( M f ,2) ... f ( M f , N f )
g(0,0)
g(0,1)
g(0,2)
...
g(0, N g )
g(1,0)
g(1,1)
g(1,2)
...
g(1, N g )
g(2,0)
g(2,1)
g(2,2)
...
g(2, N g )
...
...
...
...
...
g ( M g , 0) g( M g ,1) g( M g , 2) ... g( M g , N g )
(3.85)
(3.86)
(3.87)
f g( m , n)=
M f 1
N f 1
r=0
c =0
f (r , c) g(mr , nc);
Ao 2012
(3.91)
(3.92)
(3.93)
La matriz
La matriz g( m, n) se refleja y se desplaza en pasos de adelante hacia atrs tanto en renglones como
en columnas.
Las matrices se multiplican punto a punto (se omiten aquellos productos donde las matrices no estn
definidas).
g( m, n) .
Ao 2012
Tabla 3.10. Proceso de convolucin entre dos matrices. f(m,n) se mantiene en tanto que g(m,n) se refleja y desplaza
en pasos. A cada paso, se multiplican punto a punto las matrices.
g(2,2)
g(2,1)
g(2,0)
g(2,2)
g(2,1)
g(2,0)
g(2,2)
g(2,1)
g(2,0)
g(1,2)
g(1,1)
g(1,0)
g(1,2)
g(1,1)
g(1,0)
g(1,2)
g(1,1)
g(1,0)
g(0,2)
g(0,1)
g(0,0) x f(0,0)
f(0,1)
f(0,2)
g(0,2)
g(0,1) x f(0,0)
g(0,0 x f(0,1)
f(0,2)
g(0,1)
g(0,0)
f(1,0)
f(1,1)
f(1,2)
f(1,0)
f(1,1)
f(1,2)
f(2,0)
f(2,1)
f(2,3)
f(2,0)
f(2,1)
f(2,3)
g(2,2)
g(2,1)
g(2,0)
g(2,2)
g(2,1)
g(2,0)
g(2,2)
g(2,1)
g(2,0)
g(1,2)
g(1,1)
g(1,0) x f(0,0)
f(0,1)
f(0,2)
g(1,2)
f(0,0)
f(0,1)
f(0,2)
g(0,2)
g(0,1)
g(0,0) x f(1,0)
f(1,1)
f(1,2)
g(0,2)
f(1,0)
f(1,1)
f(1,2)
f(2,0)
f(2,1)
f(2,3)
f(2,0)
f(2,1)
f(2,3)
...
...
...
f(0,0)
f(0,1)
g(0,2) x f(0,2)
f(1,0)
f(1,1)
f(1,2)
f(2,0)
f(2,1)
f(2,3)
f(0,0)
f(0,1)
g(1,2) x f(0,2)
g(1,1)
g(1,0)
f(1,0)
f(1,1)
g(0,2) x f(1,2)
g(0,1)
g(0,0)
f(2,0)
f(2,1)
f(2,3)
...
...
f(0,0)
f(0,1)
f(0,2)
f(0,0)
f(0,1)
f(0,2)
f(1,0)
f(1,1)
f(1,2)
f(1,0)
f(1,1)
f(1,2)
f(2,1)
f(2,3)
g(2,2)
g(2,2) x f(2,0)
g(2,2) x f(2,1)
f(2,3)
...
f(0,0)
f(0,1)
f(0,2)
f(1,0)
f(1,1)
f(1,2)
f(2,0)
f(2,1)
g(2,2) x f(2,3)
g(2,1)
g(2,0)
g(2,2)
g(2,1)
g(2,0) x f(2,0)
g(1,2)
g(1,1)
g(1,0)
g(1,2)
g(1,1)
g(1,0)
g(1,2)
g(1,1)
g(1,0)
g(0,2)
g(0,1)
g(0,0)
g(0,2)
g(0,1)
g(0,0)
g(0,2)
g(0,1)
g(0,0)
Ao 2012
3.4.6 Ejemplo
Sean las dos matrices siguientes, las cuales deben convolucionarse
[ ]
1 1 1
f (m ,n )= 1 1 1
1 1 1
[ ]
1 2 1
g( m, n)= 2 4 2
1 2 1
1 3 4 3 1
3 9 12 9 3
f g( m , m)= 4 12 16 12 4
3 9 12 9 3
1 3 4 3 1
Ao 2012
1x1
2x1 1x1
1x1
2x1
4x1 2x1
2x1 4x1
2x1
1x1
2x1 1x1
1x1 2x1
1x1
= 12
1x1 2x1
1x1
2x1 1x1
1x1 2x1
1x1
2x1
4x1 2x1
2x1 4x1
2x1
1x1
2x1 1x1
1x1 2x1
1x1
= 12
1
= 16
1
= 12
1
1x1
2x1 1x1
1x1
2x1
4x1 2x1
2x1
2x1 1x1
= 12
1x1
1x1
= 4x1
2x1 1x1
1x1 2x1
Ao 2012
f(0,0)
f(0,2)
f(0,1)
f(2,0)
f(2,2) f(2,1)
f(1,0)
f(1,2) f(1,1)
g(0,0)
h(0,1)
f(0,1)
f(0,0)
f(0,2)
f(2,1)
f(2,0) f(2,2)
f(1,1)
f(1,0) f(1,2)
g(0,1)
h(0,2)
f(0,2)
f(0,1)
f(0,0)
f(2,2)
f(2,1) f(2,0)
f(1,2)
f(1,1) f(1,0)
g(0,2)
h(1,0)
f(1,0)
f(1,2)
f(1,1)
f(0,0)
f(0,2) f(0,1)
f(2,0)
f(2,2) f(2,1)
g(1,0)
f(1,1)
f(1,0)
f(1,2)
f(0,1)
f(0,0) f(0,2)
f(2,1)
f(2,0) f(2,2)
g(1,1)
h(1,2)
f(1,2)
f(1,1)
f(1,0)
f(0,2)
f(0,1) f(0,0)
f(2,2)
f(2,1) f(2,0)
g(1,2)
h(2,0)
f(2,0)
f(2,2)
f(2,1)
f(1,0)
f(1,2) f(1,1)
f(0,0)
f(0,2) f(0,1)
g(2,0)
h(2,1)
f(2,1)
f(2,0)
f(2,2)
f(1,1)
f(1,0) f(1,2)
f(0,1)
f(0,0) f(0,2)
g(2,1)
h(2,2)
f(2,2)
f(2,1)
f(2,0)
f(1,2)
f(1,1) f(1,0)
f(0,2)
f(0,1) f(0,0)
g(2,2)
h(1,1)
Ao 2012