Sei sulla pagina 1di 43

Captulo 03.

Convolucin discreta 3-1

Procesamiento Digital de Seales

2012
Captulo 03.
Convolucin discreta

MI. Mario Alfredo Ibarra Carrillo


Facultad de Ingeniera; Telecomunicaciones
14/02/2012
Ver_11_01_06

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-2

Procesamiento Digital de Seales

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-3

Procesamiento Digital de Seales

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

Convolucin en tiempo discreto


Convolucin en tiempo continuo
Estimador discreeto de la convolucin para seales energa
Convolucin para seales energa de tiempo discreto
Convolucin discreta para secuencias finitas
Ejemplo
Convolucin de secuencias de duracin finita por el mtodo de la cinta deslizante
Ejemplo
Convolucin de secuencias de duracin finita por el mtodo matricial
Ejemplo
Convolucin de secuencias de duracin finita por el mtodo de malla
Ejemplo
Convolucin de secuencias de duracin finita por el mtodo del producto
Ejemplo

3.2

Convolucin discreta por software

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

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-4

Procesamiento Digital de Seales


3.4
3.4.1
3.4.2
3.4.3
3.3.4
3.3.5
3.3.6

Convolucin lineal 2D en tiempo discreto


Convolucin 2D para matrices infinitas
Convolucin 2D para matrices finitas
Las dimensiones de la matriz de convolucin
Reflexin de una matriz
Algoritmo visual para la convolucin lineal 2D de secuencias finitas
Ejemplo

3.5

Convolucin circular 2D en tiempo discreto

3.6

Aplicaciones de la convolucn lineal: filtrado lineal


Filtros suavizantes
Filtro 1D suavizante de bloque
Ejemplo de filtro 1D suavizante de bloque
Filtro 1D suavizante binomial

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-5

Procesamiento Digital de Seales

3.1 Convolucin en tiempo discreto para seales energa


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.

3.1.1. Convolucin de tiempo continuo


Definicin 3.1 Convolucin para seales energa valuada en t= . Sean f (t) y g(t ) dos seales
energa, su convolucin evaluada para t= se plantea como:

f (t ) se mantiene fija
f (t )

g(t ) se refleja y se retrasa en

, es decir,

t cambia por

(t ) y la funcin cambia como

g(t ) g((t ))

Las funciones se multiplican (punto a punto como en todo producto de funciones).


f (t ) g((t ))

Se calcula el rea del producto


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

3.1.2 Estimador discreto de la convolucin para seales energa


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 g( n)= lim

N m=( N1)

f (m)g(( mn)) s ; n (3.3)

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-6

Procesamiento Digital de Seales

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:

T es la ventana de tiempo en el cual se muestrea la seal

s es el periodo de muestreo y tambin es la diferencial de tiempo dt y

n es la n-sima muestra

N es el nmero de muestras

es la variable de tiempo continuo


d

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

Ntese que la ecuacin resultante es igual a la ecuacin (3.3).

3.1.3 Convolucin para seales energa de tiempo discreto


Definicin 3.3 La convolucin para seales energa en tiempo discreto queda descrita por la siguiente
ecuacin.
N 1

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.

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-7

Procesamiento Digital de Seales

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:
f Indx.max

f g( n)=

f (m) g((mn)) ;

m=f Indx.min

n [f Indx.min +g Indx.min , f Indx.max +g Indx.max ] (3.6)

Definicin 3.5 El dominio de la secuencia de convolucin, es decir, el intervalo de valores de n queda


definido como:
n[f Indx.min+g Indx.min , f Indx.max +g Indx.max ] (3.7)
Definicin 3.6 La longitud de la secuencia de convolucin. Dada la secuencia f
de longitud N f a
convolucionar con la secuencia g de longitud N g , la longitud de la secuencia de convolucin se representa
como N f g

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)]

g=[g(1) , g(0) , g(1)]

(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).

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-8

Procesamiento Digital de Seales

Tabla 3.1 Convolucin para las


g=[g(-1) g(0) g(1)]
f*g(-2)
= f(-1)g(-1) +
f*g(-1)
=
f(-1)g(0) +
f*g(0)
=
f(-1)g(1) +
f*g(1)
=
f(-1)g(2) +
f*g(2)
=
f(-1)g(3) +
f*g(3)
=
f(-1)g(4) +

secuencias f=[f(-1), f(0), f(1), f(2) ] y


f(0)g(-2)
f(0)g(-1)
f(0)g(0)
f(0)g(1)
f(0)g(2)
f(0)g(3)

+
+
+
+
+
+

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)

El clculo del dominio de la secuencia de convolucin es como sigue:


n [f Indx.min +g Indx.min , f Indx.max +g Indx.max ]
[11,2+1]
[2,3 ]

(3.13)

La longitud de la secuencia de convolucin queda definida como:


N f =4
N g =3
N f g =N f +N g1 (3.14)
=4 +31
=6

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-9

Procesamiento Digital de Seales

3.1.6 Convolucin de secuencias de duracin finita por el mtodo de la cinta


deslizante
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 :

La secuencia f

La secuencia g se refleja y se desplaza de adelante hacia atrs.

En cada desplazamiento, se realiza el producto punto. En el caso de secuencias finitas slo se


consideran aquellos productos punto que no son nulos.

se mantiene sin alteraciones.

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))

-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)

MI. Mario Alfredo Ibarra Carrillo

g(-1)
= f(1)g(1) + f(2)g(0)

g(0)

g(-1)
= f(2)g(1)

Ao 2012

Captulo 03. Convolucin discreta 3-10

Procesamiento Digital de Seales

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]

Tabla 3.3 Convolucin de las 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

La longitud de la secuencia de convolucin queda definida como

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)

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-11

Procesamiento Digital de Seales

3.1.8 Convolucin de secuencias de duracin finita por el mtodo matricial


Considrense las dos secuencias siguientes: son la mismas ecuaciones (3.9)
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(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)

La ecuacin anterior se puede expresar en forma compacta de la forma siguiente


[f g]=GF (3.17)
En donde

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)

Ntese de la ecuacin (3.20) que la secuencia de convolucin es un vector columna.

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-12

Procesamiento Digital de Seales

La longitud de la secuencia de convolucin queda definida como


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]

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

g=[4 , 1,3] . Plantenado las matrices se logra.

(3.21)

La longitud de la secuencia de convolucin queda definida como


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( n)=[8,22,11 ,31,4,12]

3.1.10 Convolucin de secuencias de duracin finita por el mtodo de malla


Considrense las dos secuencias siguientes: son la mismas ecuaciones (3.9)
f =[f (1) , f ( 0) , f (1) , f ( 2)]

g=[g(1) , g(0) , g(1)]

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-13

Procesamiento Digital de Seales

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 .

Tabla 3.4. Mtodo del producto. Planteamiento de la malla.

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)

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-14

Procesamiento Digital de Seales

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

La longitud de la secuencia de convolucin queda definida como


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.1.12 Convolucin de secuencias de duracin finita por el mtodo del producto


Considrense las dos secuencias siguientes: son la mismas ecuaciones (3.9)
f =[f (1) , f ( 0) , f (1) , f ( 2)]

g=[g(1) , g(0) , g(1)]

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-15

Procesamiento Digital de Seales

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)

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)

La longitud de la secuencia de convolucin queda definida como


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]

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-16

Procesamiento Digital de Seales

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:

Tabla 3.9 Convolucin de las secuencias f=[2,5,0,4] y g=[4,1,3]

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

La longitud de la secuencia de convolucin queda definida como


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( n)=[8,22,11 ,31,4,12]

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-17

Procesamiento Digital de Seales

3.2 propiedades de la convolucin lineal


Teorema 3.2 Asociatividad.
f (t )g(t)h(t )= f ( t )( g( t )h( t) )
(3.22)
=( f (t )g( t ) )h(t )

Teorema 3.3 Distributividad.


f (t )[ g(t )+ h( t ) ]= f (t )g(t )+ f (t )h(t) (3.23)

Teorema 3.4 Homogeneidad.


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)

Teorema 3.5 Impulso. El impulso es el elemento identidad de la convolucin


f (t ) (t)=f (t) (3.27)

Teorema 3.6 Invarianza temporal.


Dada la convolucin

f (t )g (t)=h (t ) se tiene que:

f (t )h(t)= y(t) (3.28)

f (t )h(t)= y(t) (3.29)


f (t )h(t )= y(t) (3.30)

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-18

Procesamiento Digital de Seales

3.3 Convolucin discreta por software


En MATLAB, la convolucin tiene el formato:
conv (secuencia , filtro)
conv (secuencia , filtro , ' fullsame ')
donde

Secuencia

filtro

' full ' Retorna la secuencia completa de convolucin

Es una secuencia discreta

Secuencia del 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]

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-19

Procesamiento Digital de Seales

3.4 Convolucin en tiempo discreto para seales potencia


peridicas: convolucin circular
Dada la secuencia periodica f (n ) de cardinalidad N a convolucionar con otra secuencia periodica g( n)
tambin de cardinalidad N , el proceso de convolucin exige N N productos e igual cantidad de sumas.
Empleando una operacin conocida como FFT (Trasnformada Rpida de Fourier) para calcular la convoucin,
se logra reducir este nmero a un mtiplo de N log 2 N .
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.
La convolucin circular es un proceso parecido a la convolucin que se ha revisado en secciones pasadas. Hay
dos diferencias fundamentales a considerar:

La convolucin circular opera sobre secuencias peridicas.

Ambas secuencias a convolucionar tienen la misma longitud.

3.3.1 Secuencia peridica


Sea la secuencia peridica f con cardinalidad N=3 tal como se ilustra a continuacin (Note que en la
ecuacin hay un origen definido).

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.

3.3.2 Sobre el origen de la secuencia peridica


En muchas bibliografas se acostumbra que el origen de la secuencia peridica sea siempre el primer elemento
listado.

3.3.3 Desplazamiento hacia adelante de una secuencia peridica


Cuando una secuencia peridica se adelanta un paso, el elemento ms a la izquierda sale por izquierda e
ingresa por la derecha, es decir.

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-20

Procesamiento Digital de Seales

x (n)=[x (0) , x (1), x(2)]

(3.33)
x(n+ 1)=[x (1) , x(2 ), x(0)]

3.3.4 Desplazamiento hacia atrs de una secuencia peridica


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(2)]

(3.34)
x(n1)=[x (2) , x( 0), x(1)]

3.3.5 Definicin de la convolucin circular


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:
N1

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

Captulo 03. Convolucin discreta 3-21

Procesamiento Digital de Seales

f g(0 )=f (0) g(0) + f (1) g (1) + f (2) g(2)


f g(1)=f (0) g(1) + f (1) g(0) + f (2) g(1)

(3.37)

f g(2)=f (0) g(2) + f (1) g(1) + f (2) g(0)


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)
g(2)=g(1) (3.38)
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).]

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-22

Procesamiento Digital de Seales

Entonces las ecuaciones de la convolucin se escriben como:


f g(0)=f (0) g(0) + f (1) g(2) + f (2) g(1)
f g(1)=f (0) g(1) + f (1) g(0) + f (2) g( 2) (3.39)
f g(2)=f (0) g(2) + f (1) g(1) + f (2) g(0)

3.3.6 Propiedad de longitud de la convolucin circular


Definicin 3.8 Longitud de la secuencia de convolucin circuilar. Dadas dos secuencias f y g de
cardinalidad N , la convolucin circular de ambas funciones f (n )g (n) es otra funcin f g( n) de
cardinalidad N y cuyo origen es el primer elemento que aparece en la secuencia.

Illustration 3.3: aplicacin del mtodo de los crculos conentricos.


MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-23

Procesamiento Digital de Seales

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

3.3.8 Mtodo de los crculos concntricos


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.
Ya dispuestos los crculos, se realiza el siguiente algoritmo:

l 0

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= 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)

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-24

Procesamiento Digital de Seales

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 g(0)=f (0) g(0) + f (1) g(2) + f (2) g(1)
f g(1)=f (0) g(1) + f (1) g(0) + f (2) g( 2)
f g(2)=f (0) g(2) + f (1) g(1) + f (2) g(0)
Ahora las frmulas se expresan en forma matricial de la forma siguiente:

[ ][

][ ]

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)

Simplificando la frmula se tiene que


[f g]=G F (3.44)
En donde

[
[ ]

g (0) g (2) g (1)


G= g (1) g (0) g (2)
g (2) g (1) g (0)
f (0 )
F= f (1 )
f (2 )

(3.45)

(3.46)

Obsrvense las columnas de la matriz G y ntese que los elementos de la secuencia


por columnas que se rotan hacia abajo.

MI. Mario Alfredo Ibarra Carrillo

g ( n)

se acomodan

Ao 2012

Captulo 03. Convolucin discreta 3-25

Procesamiento Digital de Seales

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

Finalmente, la secuencia de convolucin es:


f g=[12,34,11,31]

3.3.12 Teorema de aproximacin de la convolucin lineal con la convolucin


circular
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 f g . Para calcular la convolucin lineal a partir de la
convolucin circular se agregan ceros a las dos secuencias de tal forma que su cardinalidad sea N f + N g 1 .

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

Captulo 03. Convolucin discreta 3-26

Procesamiento Digital de Seales

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]

Finalmente la convolucin circular se calcula como:

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.

3.6 Propiedades de la convolucin circular

Teorema 3.2 Asociatividad.


f (t ) g( t )h(t )=f (t ) ( g(t ) h( t ) )
(3.44)
=( f (t ) g(t ) ) h(t )

Teorema 3.3 Distributividad.


f (t ) [ g(t )+h(t) ] =f (t ) g( t)+f (t) h(t) (3.45)

Teorema 3.4 Homogeneidad.


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)
MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-27

Procesamiento Digital de Seales

Teorema 3.5 Impulso. El impulso es el elemento identidad de la convolucin


f (t ) (t)= f (t ) (3.49)

Teorema 3.6 Invarianza temporal.


Dada la convolucin

f (t ) g( t )=h(t ) se tiene que:

f (t ) h(t)= y (t ) (3.50)
f (t ) h (t)= y (t ) (3.51)
f (t ) h(t)= y (t ) (3.52)

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-28

Procesamiento Digital de Seales

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:

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

Br: filtro Bartlett

3.4.1 Filtros suavizantes


Los filtros suavizantes que sern tratados a continuacin son:

El filtro suavizante de bloque

El filtro suavizante binomial

Los filtros suavizantes tienen las siguientes caractersticas:

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

Captulo 03. Convolucin discreta 3-29

Procesamiento Digital de Seales

Suprimen detalles finos que pudieran estorbar en algn procesamiento.

Los contornos y detalles se difuminan.

3.4.2 Filtro 1D suavizante de bloque


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 A ; N ( n)=

1
(n+ N2 i) ;
N +1 i=0

n[0, N ] (3.53)

Este tipo de filtro tiene las siguientes caractersticas:

La transicin abrupta de 0 a 1 del filtro provoca rizos armnicos en su respuesta en frecuencia, lo


que en el dominio del tiempo podra implicar la aparicin de estructuras (grupos de pixeles contiguos)
que no eran parte de la imagen. Estos rizos armnicos se ven atenuados por el factor 1/( N+1) .

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

Captulo 03. Convolucin discreta 3-30

Procesamiento Digital de Seales

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.

3.4.3 Ejemplo de filtro 1D suavizante de bloque


Dada la siguiente secuencia y que se ilustra en la figura 3.4.a
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.
h A ; 2=

1
11 1
3

(3.55)

La secuencia de convolucin es entonces:


f h A ; 2 =[0.3, 0.7 ,1, 2.3 ,3.6 ,5 ,3.6 , 2.3, 1, 0.7, 0.3 ] (3.56)

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.

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-31

Procesamiento Digital de Seales

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

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 !

coeficientes de la piramide de Pascal (3.58)

Este tipo de filtro tiene las siguientes caractersticas:

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.

3.6.3 Ejemplo de filtro 1D suavizante binomial


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
hB ; 2=

1
12 1
4

(3.59)

La secuencia de convolucin es entonces:


f h B ; 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.

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-32

Procesamiento Digital de Seales

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
Definicin 3.12. El proceso de sobremuestreo Sea f (n ) una secuencia finita y un factor de sobremuestreo
S perteneciente al conjunto de los enteros. El sobremuestreo de f (n ) es otra funcin denotada como
f (n )S y consiste de intercalar S 1 ceros entre los elementos de la secuencia.
Defincin 3.13 El factor de sobremuestreo es un entero que indica cuanto crece la longitud de la secuencia,
es decir:
N f S = S N f

(3.61)

Para ilustrar considrese la secuencia siguiente:


f =[ A , B , C , D ] (3.62)

entonces se le aplica un factor de sobremuestreo de S=2


f (n )2=[ A , 0,B ,0, C , 0, D , 0 ] (3.63)
as, puede notarse que la cardinalidad de la secuencia sobremuestreada es:
N f 2=2 N f =24=8 (3.64)
Si ahora la secuencia original se sobremuestrea en S=3
f (n)3=[ A , 0,0, B , 0,0,C ,0,0, D , 0,0] (3.65)
consecuentemente, puede notarse que la cardinalidad de la secuencia sobremuestreada es:
N f 3=3 N f =34=12 (3.66)

3.6.6 Sobremuestreo en matlab


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)
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 ]

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-33

Procesamiento Digital de Seales

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.

Factor de interpolacin: cuantas muestras se interpolan

Grado de interpolacin: es el grado del polinomio que se usa para interpolar.

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:

grado 0, el polinomio es una constante: ventana Haar

grado 1, el polinomio es una recta: ventana Bartlett

grado 2, el polinomio es del tipo cuadrtico

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

3.6.6 Interpolacin con ventana Haar


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 Sh0 ; S1 (3.70)
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

h0; S1 ( n)= (ni );

N: orden del filtro (3.71)

i=0

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-34

Procesamiento Digital de Seales

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.

3.6.7 Ejemplo de interpolacin Haar


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)

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

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-35

Procesamiento Digital de Seales

[ ]

h0; 1 = 1 1

(3.74)

La secuencia de convolucin es entonces:


f 2h0 ; 1=[1 133553 3110] (3.75)

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.

3.6.8 Interpolacin con ventana Bartlett


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 Sh1 ; 2( S1) (3.76)
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
2

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:

Ventana de grado 1 y orden 2

1
h1 ; 2= [1 , 2 , 1 ] (3.78)
2

Ventana de grado 1 y orden 4

1
h1 ; 4= [1, 2, 3 , 2, 1] (3.79)
3

1; 6

Ventana de grado 1 y orden 6


1
= [1 , 2 , 3 , 4 ,3 ,2 ,1 ] (3.80)
4

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-36

Procesamiento Digital de Seales

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.

3.6.9 Ejemplo de interpolacin Bartlett


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]

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

Captulo 03. Convolucin discreta 3-37

Procesamiento Digital de Seales

La secuencia de convolucin es entonces:


f 2h1 ;2 =[0.5, 1 , 2,3, 4,5, 4,3, 2,1, 0.5,0] (3.81)

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.

3.4 Convolucin lineal 2D en tiempo discreto


La convolucin 2D se suele aplicar en imgenes

Obtenidas con sensores pticos en el rango visible

Obtenidas con sensores pticos en rangos no viisibles como el infrarrojo, el ultravioleta, rayos gama,
rayos X., etc.

Obtenidas por radar.

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.

3.4.1 Convolucin 2D para matrices infinitas


Dadas las matrices f (m ,n ) y g( m , n) no peridicas e infinitas, mismas que se illustran a continuacin

[
[

...
...
...
...
...
... 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)

La convolucin entre ambas secuencias es:


f g( m , n)=

r=

f ( r , c) g(mr , nc) (3.84)

c =

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-38

Procesamiento Digital de Seales

3.4.2 Convolucin 2D para matrices finitas


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) .
Dadas las matrices f (m , n) y g( m , n) no peridicas y finitas, mismas que se illustran a continuacin:

[
[

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)

y cuyas dimensiones son


size(f)=( M f , N f )
size(g)=( M g , N g )

(3.87)

La convolucin lineal 2D se puede describir como sigue:

f g( m , n)=

M f 1

N f 1

r=0

c =0

f (r , c) g(mr , nc);

m [0, M f + M g2] n[0, N f +N g 2] (3.88)

3.4.3 Las dimensiones de la matriz de convolucin


Dadas las matrices f (m ,n ) y g( m , n) no peridicas y finitas cuyas dimensiones son:
size(f)=( M f , N f )
(3.89)
size(g)=( M g , N g )
Las dimensiones de la matriz de convolucin son:
size ( f*g )=( M f + M g1 , N f + N g 1) (3.90)
MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-39

Procesamiento Digital de Seales

3.4.4 Reflexin de una matriz


Para reflejar una matriz se realizan dos pasos. El orden de los pasos no importa

Se reflejan las columnas de la matriz

Se reflejan los renglones de la matriz

A modo de ejemplo, considera la siguiente matriz

g(0,0) g(0,1) g(0,2)


g(m , n)= g(1,0) g(1,1) g(1,2)
g(2,0) g(2,1) g(2,2)

(3.91)

Primero se reflejan las columnas

g(2,0) g(2,1) g(2,2)


g(1,0) g(1,1) g(1,2)
g(0,0) g(0,1) g(0,2)

(3.92)

Segundo se reflejan los renglones

g(2,2) g(2,1) g(2,0)


g R (m , n)= g(1,2) g(1,1) g(1,0)
g(0,2) g(0,1) g( 0,0)

(3.93)

3.4.5 Algoritmo visual para la convolucin lineal 2D de secuencias finitas


El algoritmo es simple,
f (m ,n ) se mantiene sin cambios

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).

Este algoritmo se repite para cada paso que se desplaza la matriz

g( m, n) .

Este algoritmo queda ilustrado en la tabla 3.10

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-40

Procesamiento Digital de Seales

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)

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-41

Procesamiento Digital de Seales

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

Las dimensiones de las matrices son


size(f)=( M f , N f )=(3,3)
size(g)=( M g , N g )=(3,3)
Eso quiere decir que la matriz de convolucin tiene dimensiones de
size ( f*g )=( M f + M g1 , N f + N g 1)=(5,5)
La tabla 3.11 ilustra el proceso completo de convolucin. As entonces, resulta la siguiente matriz

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

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Captulo 03. Convolucin discreta 3-42

Procesamiento Digital de Seales


Tabla 3.11 Convolucin 2D por el mtoo deslizante.
1

1x1

2x1 1x1

1x1 2x1 1x1

1x1

2x1

4x1 2x1

2x1 4x1 2x1

2x1 4x1

2x1

1x1

2x1 1x1

1x1 2x1 1x1

1x1 2x1

1x1

= 12

1x1 2x1

1x1

2x1 1x1

1x1 2x1 1x1

1x1 2x1

1x1

2x1

4x1 2x1

2x1 4x1 2x1

2x1 4x1

2x1

1x1

2x1 1x1

1x1 2x1 1x1

1x1 2x1

1x1

= 12
1

= 16
1

= 12
1

1x1

2x1 1x1

1x1 2x1 1x1

1x1 2x1 1x1

1x1

2x1

4x1 2x1

2x1 4x1 2x1

2x1 4x1 2x1

2x1

2x1 1x1

1x1 2x1 1x1

= 12

1x1 2x1 1x1

1x1

1x1

= 4x1

2x1 1x1

1x1 2x1 1x1

MI. Mario Alfredo Ibarra Carrillo

1x1 2x1

Ao 2012

Captulo 03. Convolucin discreta 3-43

Procesamiento Digital de Seales

3.5 Convolucin circular 2D en tiempo discreto

3.5.1 Mtodo matricial para la convolucin circular 2D.


Se considera que las siguientes matrices deben convolucionarse circularmente

f (0,0) f (0,1) f (0,2)


f (m , n)= f (1,0) f (1,1) f (1,2)
f (2,0) f (2,1) f (2,2)

g (0,0) g( 0,1) g( 0,2)


g( m, n)= g (1,0) g( 1,1) g(1,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

Tabla 3.12 Proceso de convolucin circular 2D.


h(0,0)

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)

MI. Mario Alfredo Ibarra Carrillo

Ao 2012

Potrebbero piacerti anche