Beruflich Dokumente
Kultur Dokumente
2012
Captulo 03.
Convolucin discreta
En los segmentos siguientes se describir la suma de convolucin como una versin muestreada de la integral
de convolucin. Posteriormente, debido a que las seales discretas no estn definidas entre muestras, la suma
de convolucin pierde el trmino denominado periodo de muestreo.
f (t ) se mantiene fija
f (t )
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 )= f ( ) g (t ) d [ v 2 s] (3.2)
lim
T T
Teorema 3.1 El estimador discreto de la convolucin de tiempo continuo queda expresado en una suma
de convolucin dada a continuacin:
N 1 f (m) g (( mn)) ; n (3.3)
f g( n)= s
lim
N m=( N 1)
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
dt = (3.4)
s
s
d =
s
T =( N 1)
s
En donde:
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 (m) g (( mn)) ; n
f g( n)= s
lim
N m=( N 1)
Definicin 3.3 La convolucin para seales energa en tiempo discreto queda descrita por la siguiente
ecuacin.
N 1 2
f (m) g (( mn))[ v ]; n (3.5)
f g( n)=
lim
N m=( N 1)
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.
3.1.4 Convolucin discreta para secuencias finitas
Definicin 3.4 Convolucin de dos secuencias f y g . Dada la secuencia de duracin finita f cuyo
dominio est en el intervalo n [ f Indx.min , f Indx.max ] y dada la secuencia g cuyo dominio est en el
intervalo n [ g Indx.min , g Indx.max ] . La convolucin queda representada como f g( n)= f (n)g( n) y
matemticamente,
la convolucin se define como:
Indx.max f ( m ) g (( m n )) ; n [ f +g +g ] (3.6)
f ,f
Indx.min Indx.min Indx.max Indx.max
f g( n)=
m=f
Indx.min
n[ f +g ,f +g ] (3.7)
Indx.min Indx.min Indx.max Indx.max
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
en donde:
f = 1
Indx.min
f = 2 g (3.10)
Indx.max
=1
Indx.min
g =1
Indx.max
Ahora se desarrolla en la tabla 3.1 la suma de convolucin paras las secuencias dadas en la ecuacin (3.9).
Tabla 3.1 Convolucin para las secuencias f=[f(-1), f(0), f(1), f(2) ]
y g=[g(-1) g(0) g(1)]
f*g(-2) =
f*g(-1) =
f*g(0) =
f*g(1) =
f*g(2) =
f*g(3) =
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:
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 (3.12)
(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)
El mtodo de la cinta deslizante ilustra de manera grfica el proceso de convolucin entre dos secuencias, es
decir, para convolucionar una secuencia f con una secuencia g :
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)]
g =[ g (1) , g (0 ), g (1 )]
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)) g(1)
f(n)
g(-(n+1))
f(n)
g(-n)
f(n)
g(-(n-1))
f(n)
g(-(n-2))
f(n)
g(-(n-3))
Procesamiento Digital de Seales Captulo 03. Convolucin discreta 3-10
10
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
f(n)
g(-(n+3))
f(n)
g(-(n+2))
f(n)
g(-(n+1))
f(n)
g(-n)
f(n)
g(-(n-1))
f(n)
g(-(n-2))
Nf = N f + N g 1=4 +31=6
g
f =[ f (1) , f ( 0) , f (1) , f (
2)]
g =[ g (1) , g (0 ), g (1 )]
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 g (1)
(2) g (0 ) g (1) f (1)
f g g (0)
(1)
f g (0) g(1 ) f (0 ) (3.16)
=
f g 0 g (1) g (0 ) g f (1)
(1) (1) f (2 )
f g 0 0 g(1 ) g (0)
(2) 0 0 0 g (1)
f g
(3)
[ f g ]=GF (3.17)
En donde
G= g (1) g( 0) g (1)
[ ]
g (1 ) 0 0 0
g( 0) g (1) 0 0
g (1) g (0) g (1 ) 0 (3.18)
0
0 0 g (1) g
(0)
0 0 0 g (1)
[ ]
f (1)
f (0 )
F=
f (1) (3.19)
]
f (2)
f g (2
) f g
(1) f (3.20)
[ f g ]=
f g(1 )
f g( 2)
f g (0 ))
g(3
Nf = N f + N g 1=4 +31=6
g
3.1.9 Ejemplo
[ []
]
[ ]
4
1 4 0
1 4 0
0
f g( n)= 3 0 (3.21)
0
N f g =N f + N g 1=4 +31=6
f =[ f (1) , f ( 0) , f (1) , f (
2)]
g =[ g (1) , g (0 ), g (1 )]
Primero se crea una maya tal como se ilustra en la tabla 3.4: en el rengln superior se coloca la secuencia f
en tanto que en la columna ms a la derecha se coloca la secuencia g .
Luego la maya se llena con el producto cartesiano de las secuencias, tal como se indica en la tabla 3.5
f(-1)g(0)
f(-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.
f*g(-2)
f*g(-1)
f*g(0)
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)
3.1.11 Ejemplo
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
22 3
11 31 4 12
N f g =N f + N g 1=4 +31=6
f =[ f (1) , f ( 0) , f (1) , f (
2)]
g =[ g (1) , g (0 ), g (1 )]
El planteamiento de la convolucin por producto queda definido en la tabla 3.8
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)
donde:
Nf = N f + N g 1=4 +31=6
g
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:
N f g =N f + N g 1=4 + 31=6
=( f (t )g( t ) )h
(t )
f (t )[ g (t )+ h( t ) ]= f (t )g (t )+ f (t )h (t ) (3.23)
Af (t )g (t )= A ( f ( t )g (t ) ) (3.34)
f (t )B g (t )=B ( f (t )g (t ) ) (3.25)
Af (t )Bg (t )= A B ( f (t )g (t ) ) (3.26)
f (t ) (t )=f (t ) (3.27)
f (t )h(t )= y (t ) (3.28)
f (t )h (t )= y (t ) (3.29)
f (t )h(t )= y (t ) (3.30)
3.3 Convolucin discreta por software
donde
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]
3.4 Convolucin en tiempo discreto para seales potencia
peridicas: convolucin circular
Dado que la FFT es una operacin que se aplica a seales peridicas, es lgico pensar que los operandos de
la convolucin por FFT tambin son peridicos. A consecuencia, a la convolucin lograda por FFT se le
conoce como convolucin circular o cclica.
Sea la secuencia peridica f con cardinalidad N =3 tal como se ilustra a continuacin (Note que en
la ecuacin hay un origen definido).
(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.
En muchas bibliografas se acostumbra que el origen de la secuencia peridica sea siempre el primer
elemento listado.
Cuando una secuencia peridica se adelanta un paso, el elemento ms a la izquierda sale por izquierda
e ingresa por la derecha, es decir.
Procesamiento Digital de Seales Captulo 03. Convolucin discreta 3-20
20
x (n)=[ x (0) , x (1), x (3.33)
(2)]
Cuando una secuencia peridica se atrasa un paso, el elemento ms a la derecha sale por derecha e ingresa
por la izquierda, es decir.
x (n)=[ x (0) , x (1), x (3.34)
(2)]
Definicin 3.7 Convolucin cirular de dos secuencias f (n ) y g (n ) . Dada la secuencia de duracin finita
f (n ) de longitud N y dada la secuencia g (n ) tambin de longitud N . La convolucin
queda representada como f g( n)=f (n )g (n) y matemticamente, la convolucin circular se define como:
N 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 (3.36)
(2)]
g =[ g (0 ), g (1) , g
(2)]
Puede notarse que algunos de los ndices en las frmulas de convolucin son negativos. Se puede aprovechar
la periodicidad de las series de tal forma que:
g (1)=g (2 (3.38)
) g (2 )=g
(1 ) g
(3)=g (0 )
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).]
Entonces las ecuaciones de la convolucin se escriben como:
Sea la secuencia f =[ f (0) , f (1) , f (2)] el primer operando de una convolucin circular. ste operando
puede representarse con puntos equidistantes sobre un crculo. Los puntos se numeran en el sentido de las
maneci llas del reloj tal como ilustra la figura 3.1.a. Preste atencin en donde se coloca el primer elemento de la
secuencia.
Sea la secuencia g =[ g (0 ), g (1) , g (2)] el segundo operando de una convolucin circular. Este operando
se representa con puntos equidistantes sobre un crculo inscrito en el crculo del operando f . Los
puntos se numeran en sentido contrario al de las manecillas del reloj y haciendo coincidir el origen de la
secuencia g con el origen de la secuencia f . La figura 3.1.b ilustra tal acomodo.
l0
Se realiza el producto punto de los vectores tal como indican los crculos concntricos.
El crculo interior se gira un paso en sentido del reloj de manecillas.
Se repiten los pasos hasta que l= N 1 .
La figura 3.2 ilustra el proceso de convolucin circular para las secuencias dadas.
3.3.9 Ejemplo:
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)
3.3.10 Convolucin circular, mtodo matricial
Sean las secuencias peridicas de cardinalidad N =3 siguientes: son las mismas ecuaciones (3.27)
f =[ f (0) , f (1) , f
(2)]
g =[ g (0 ), g (1) , g
(2)]
En una seccin pasada se desarroll la frmula de la convolucin ciruclar para n[ 0,1,2] resultando:
+ f (2) g (0 )
][ ][ ]
f g (2) g (0) g (2) g (1 f (0 )
f g (1) = g (1) g (0) g f (1) (3.43)
(2)
g (2) g (1) g (0 f (2)
)
[ f g ]=G F (3.44)
En donde
]
g (0) g (2) g
(3.45)
(1)
g (2) g (1) g
(0)
f 2)
]
f (0 ) (3.46)
f =[2,5,0,4 ]
g =[ 4,1,3,0 ]
[ ] [ ][ ] ]
Planteando la matriz de convolucin se tiene que:
f g (0) 12
f g (1) 1 5 34
= =
f g (2) 3 30 11
f g (3) 40 41 402 31
f g =[ 12,34,11,31 ]
Teorema 3.2 Clculo de la convolucin linel con la convolucin circular . Dada la secuencia no peridica
f (n ) , de longitud N f a convolucionar con la secuencia no peridica g ( n) de longitud N g , la longitud
de la secuencia de convolucin se representa como N . Para calcular la convolucin lineal a partir de
f g
la
convolucin circular se agregan ceros a las dos secuencias de tal forma que su cardinalidad sea N + N 1 .
f g
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 ]
Nf= 4
N =3
g
Nf = N f + N g 1
g
=4 +31
=6
Luego a las secuencias a convlucionar se les agregan ceros para completar cada una con 6 elementos:
f ' =[ f ,[ 2 ceros ]]=[ (3.42)
2,5,0,4,0,0 ]
[ ][ ][ ]
4 2 8
1 5 22
3
0 4 31
0 0 4
0 0 12
Para conocer el el origen de la secuencia, se recurre a las estrategias empleadas para la convolucin lineal.
=( f (t ) g (t ) ) h(t
)
f (t ) [ g (t )+h (t ) ] =f (t ) g( t )+ f (t ) h (t ) (3.45)
Af (t ) g( t )= A ( f (t ) g (t ) ) (3.46)
f (t ) B g (t )= B ( f ( t ) g (t ) ) (3.47)
Af (t ) Bg (t )= A B ( f (t ) g (t ) ) (3.48)
Teorema 3.5 Impulso. El impulso es el elemento identidad de la convolucin
f (t ) (t )= f (t ) (3.49)
f (t ) h (t )= y (t ) (3.50)
f (t ) h (t )= y (t ) (3.51)
f (t ) h (t )= y (t ) (3.52)
3.7 Aplicaciones de la convolucn lineal: filtrado lineal
Los filtros lineales son aquellos que pueden ser aplicados mediante la convolucin . Dentro de los filtros
lineales se tiene la clasificacin dada en el cuadro sinptico siguiente:
{
Dominio espacial : interpolante
{
Dominio frecuencia : paso bajas
.
Filtros lineales
{
.
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 (n )=f (n )h
<tipo> ; orden
(n) . An cuando la convolucin es conmutativa se sugiere que
<tipo>; orden
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
Br: filtro Bartlett
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.
Suprimen detalles finos que pudieran estorbar en algn procesamiento.
Los contornos y detalles se difuminan.
Definicin 3.10 Filtro suavizante de bloque. Este filtro tiene un comportamiento temporal igual al de un pulso
rectangular simtrico respecto del origen. Su ecuacin caracterstica para un orden par N es la siguiente:
N
h ( n )= 1 (nN+ i) ; n [ 0, N ] (3.53)
A;N N + i=0
1 2
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.
Procesamiento Digital de Seales Captulo 03. Convolucin discreta 3-30
30
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.
f =[ 1 , 1,1,5,5,5,5,1,1,1 ] (3.54)
Aplique el siguiente filtro suavizante a bloque y de segundo orden, mismo que se ve en la figura 3.4.b.
1
h A ; 2= [111
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.
3.6.4 Filtro 1D suavizante binomial
Definicin 3.11 Filtro suavizante de bloque. Este filtro tiene un comportamiento temporal semejante a la de
una campana gaussiana discreta y simtrica respecto del cero. La secuencia que conforma este filtro se puede
calcular con el tringulo de Pascal. Su ecuacin caracterstica para un orden par N es la siguiente:
N
h ( 1 C (n N i) n[0, N ] (3.57)
B;N N i 2
n)= 2 N i=0 +
donde:
N!
Ci = ; coeficientes de la piramide de Pascal (3.58)
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 2 N .
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.
Dada la siguiente secuencia, que es la misma ecuacin (3.41) y que se ilustra en la figura 3.5.a
f =[ 1 , 1,1,5,5,5,5,1,1,1 ]
Aplique un filtro suavizante binomial de segundo orden, mismo que se ilustra en la figura 3.5.b
1
hB ; 2= [
121
4 ] (3.59)
f hB ; 2 =[ 0.25 , 0.5 , 0.75 , 1.75 ,2.75 , 3.75, 2.75 , 1.75, 0.75, 0.5, 0.25] (3.60)
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.
3.6.4 Sobremuestreo de una secuencia
El proceso de sobremuestreo consiste de intercalar ceros en una secuencia, el nmero de ceros viene dado por
el factor del proceso de sobremuestreo
Defincin 3.13 El factor de sobremuestreo es un entero que indica cuanto crece la longitud de la secuencia,
es decir:
N = S N (3.61)
f S f
f =[ A , B , C , D ] (3.62)
El proceso de sobremuestreo en MATLAB se realiza con la funcin upsample, por ejemplo, dada la
siguiente secuencia
f =[ 1,3,5,7] (3.67)
>[ 1,0,3,0,5,0,7,0
]
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
h
grado , orden , es decir:
f Sh (3.69)
grado , orden
La interpolacin no es conmutativa
Definicin 3.17.La interpolacin grado cero con ventana Haar consiste en que las muestras
interpoladas son una repeticin de las muestras vecinas. Matemticamente, este filtro se define como:
f Sh (3.70)
0 ; S1
Definicin 3.18 La vetana Haar tiene un comportamiento temporal igual al de un pulso rectangular causal. Su
ecuacin caracterstica para un orden N es la siguiente:
S1
h
0; S1
( n)= (ni ); N: orden del filtro (3.71)
i =0
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.
Dada la siguiente secuencia y que se ilustra en la figura 3.6.a, realice un proceso de interpolacin de grado 0
y de orden 1.
f =[ 1 , 3,5,3,1] (3.72)
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
h
0; 1 [ ]
=11 (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.
Definicin 3.19. La interpolacin grado uno con ventana Bartlett consiste en que las muestras interpoladas
se calcularon empleando la ecuacin de la lnea recta. Matemticamente, este filtro se define como:
f Sh (3.76)
1 ; 2( S 1)
Definicin 3.20 La vetana Bartlett tiene un comportamiento temporal igual al de una campana gaussiana
discreta y simtrica respecto del cero. La secuencia que conforma este filtro se puede calcular con el
tringulo de Pascal. Su ecuacin caracterstica para un orden par S es la siguiente:
N N
2 N n+ 1 N
N +1
N
h1; N ( n)= (n + i )+ (n + i) n [ 0, N ] (3.77)
N 2 N 2
i =0
N
i= +1
2
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
h = 1 [ 1 , 2 , 3 , 4 ,3 ,2 ,1 ] (3.80)
1; 6 4
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.
Dada la secuencia de la ecuacin (3.69), que se repite a continuacin y que se ilustra en la figura 3.7.a,
realice un proceso de interpolacin de grado 1 y de orden 2.
f =[ 1 , 3,5,3,1]
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 1 2 1
2
]
La secuencia de convolucin es entonces:
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.
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.
[ ]
continuacin
...
...
...
...
f (m , n)= (3.82)
...
[ ]
... ... ... ... ... ...
g ( m , n)= ... g (0, 1) g( 0,0) g (0,1) g (0,2) ...
... g (1, 1) g( 1,0) g (1,1) g (1,2) (3.83)
...
... g (2, 1) g( 2,0) g (2,1) g (2,2)
...
... ... ... ... ... ...
Se considera en este caso que las matrices de datos a convolucionar tienen su origen en el elemento
superior izquierdo, es decir, el elmento (0,0) .
[ ]
f (0,0 ) f (0,1) f (0,2) ... f (0, N
f
) f (1,0 ) f (1,1) f (1,2) ... f (1, N (3.85)
f (m , n)= f ) f (2,0 ) f (2,1) f (2,2) ... f (2,
Nf)
f ... ... ... ... ...
( M f , 0) f ( M f , 1) f ( M f ,2 ) ... f ( M f ,
Nf)
]
g (0,0 ) g (0,1) g (0,2) ... g (0, N
) g (1,0) g (1,1) g (1,2) ... g (1,
g
(3.86)
N g ) g (2,0) g (2,1) g (2,2) ... g
(2, N g )
g ( m , n)=
... ... ... ... ...
g ( M g , 0) g ( M g ,1 ) g ( M g , 2) ... g ( M g
, N g)
size(g)=( M , N
g
)
g
Para reflejar una matriz se realizan dos pasos. El orden de los pasos no importa
]
g (0,0 ) g (0,1 ) g (0,2
)
g (2,0 ) g (2,1 ) g
(2,2)
(3.91)
]
g 0,0 ) g (0,1 ) g (0,2)
g (1,0) g (1,1) g (3.92)
(1,2)
(
]
g (2,2) g (2,1) g (3.93)
(2,0)
g (0,2) g (0,1) g(
0,0)
El algoritmo es simple,
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)
[ ]
1 1 1 1 2 1
1
1 1 1
size(f)=( M , N )=(3,3)
f f
size(g)=( M , N )=(3,3)
g g
[ ]
La tabla 3.11 ilustra el proceso completo de convolucin. As entonces, resulta la siguiente matriz
1
3
4
3
f g( m , m)= 1 12 4
Tabla 3.11 Convolucin 2D por el mtoo deslizante.
1 2 1
2 4 2
= 1
1 2 1
2 4
2x1 4x1 2x1
1 2
1x1 2x1 1x1
= 3
1 2
1x1 2x1 1x1
2 4
2x1 4x1 2x1
1 2
1x1 2x1 1x1
= 4
1 2
1x1 2x1 1x1
2 4
2x1 4x1 2x1
1 2 1
= 3
1 2
1x1 2x1 1x1
2 4 2
1 2 1
= 1
3.5 Convolucin circular 2D en tiempo discreto
] [ ]
Se considera que las siguientes matrices deben convolucionarse circularmente
[
f (0,0) f (0,1) f (0,2) g (0,0 ) g( 0,1) g( 0,2)
f (m , n)= f (1,0) f (1,1) f (1,2) y g ( m , n)= g (1,0 ) g( 1,1) g (1,2)
f (2,0) f (2,1) f (2,2) g (2,0 g( 2,1) g (2,2)
)
El proceso de convoluicn 2D circular f (m , n )g (m , n) , por el mtodo matricial se ilustra en la tabla 3.12
h(1,0) f(1,0)
h(1,1) = f(1,1)
h(1,2) f(1,2)
h(2,0) f(2,0)
h(2,1) f(2,1)
h(2,2) f(2,2)