Utp pdiva_s6_fundamento matematico del pdi

55
Procesamiento Digital de Imágenes y Visión Artificial (PS02) Facultad de Ingeniería Electrónica y Mecatrónica (PS02) Sesión: 6 Ing. José C. Benítez P. Fundamentos matemáticos del PDI

Transcript of Utp pdiva_s6_fundamento matematico del pdi

Page 1: Utp pdiva_s6_fundamento matematico del pdi

Procesamiento Digital de Imágenes

y Visión Artificial

(PS02)

Facultad de Ingeniería Electrónica y Mecatrónica

(PS02)

Sesión: 6

Ing. José C. Benítez P.

Fundamentos matemáticos del PDI

Page 2: Utp pdiva_s6_fundamento matematico del pdi

Sesión 6. Fundamentos matemáticos

� Secuencias

� Tipos básicos de secuencias

� Propiedades de una secuencia

� Números complejos:

� Representación cartesiana: Operaciones básicas

� Representación polar: Operaciones básicas

� Teorema de De Moivre

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.2

� Transformada de Fourier: Twiddle

� Propiedades de la DFT:

� Periodicidad de la DFT

� Simetría de la DFT

� Inversa de la DFT

� Respuesta en frecuencia de un sistema

� Transformada rápida de Fourier (FFT)

� Mariposa de N puntos

� Aplicaciones de la FFT

Page 3: Utp pdiva_s6_fundamento matematico del pdi

Secuencias

� Una secuencia es una función cuyo dominio es el conjunto de los números enteros. Se expresan mediante:

� Enumeración: x[n] = {1; 2; 3; 4; 5}

� Formulación: x[n] = n + 1, 0 <= n <= 4

� El primer elemento definido corresponde a x[0] (en caso contrario el elemento correspondiente a x[0] se subraya) y

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.3

contrario el elemento correspondiente a x[0] se subraya) y los valores no definidos se consideran nulos:

� x[n] = {1; -1; 1; -1; 1}

� La longitud de una secuencia se define como el número de muestras contenidas en el intervalo más estrecho que recoge todas las muestras no nulas y que contiene a x[0]:

� x[n] = {1; 1; 0; 2; 3; 0; 0; 1} => long(x[n]) = 8

Page 4: Utp pdiva_s6_fundamento matematico del pdi

Tipos básicos de secuencias

� Muestra unitaria (MU) o delta:

� δ[n] = 1, n = 0

� Escalón unitario:

� µ[n] = 1, n >= 0

� Signo:

� signo[n] = 1, n > 0

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.4

� signo[n] = 1, n > 0

� signo[n] = 0, n = 0

� signo[n] = -1, n < 0

� Pulso:

� pL[n] = 1, 0 <= n < L

� Exponencial:

� x[n] = an

� Sinusoidal:

� x[n] = A sen(w0n + R)

Page 5: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

� Suma: consiste en sumar sus elementos de dos en dos (tomando uno de cada secuencia). Ejemplo:

a[n] = {1; 2; 3; 4; 5}b[n] = {1; 0; 1; -1; -2}a[n] + b[n] = {2; 2; 4; 3; 3}

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.5

a[n] + b[n] = {2; 2; 4; 3; 3}

� Escalado: consiste en multiplicar una secuencia a[n] por un escalar K. Es decir, multiplicar cada elemento de a[n] por K. Ejemplo:

a[n] = {1; 2; 3; 4; 5}2a[n] = {2; 4; 6; 8; 10}

Page 6: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

� Producto: Consiste en multiplicar sus elementos de dos en dos (tomando uno de cada secuencia).

Ejemplo:

a[n] = {1; 2; 3; 4; 5}

b[n] = {1; 0; 1; -1; -2}

a[n]b[n] = {1; 0; 3; -4; -10}

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.6

Nota. En matLab: a[n].*b[n]

� Desplazamiento: la operación de desplazamiento (también llamada retardo) consiste en desplazar los elementos de una secuencia a[n] un determinado número K de muestras.

Ejemplo:

a[n] = {1; 2; 3; 4; 5}a[n − 3] = {0; 0; 0; 1; 2; 3; 4; 5}

Page 7: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

� Convolución (Suma de): se denota con un asterisco (*) y se calcula como:

c[n] = a[n] * b[n] = Σk=-∞,∞ a[k]b[n – k]

� Longitud de la convolucion siempre es 1 menos que la

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.7

� Longitud de la convolucion siempre es 1 menos que la suma de las longitudes:

long(a[n] * b[n]) = long(a[n]) + long(b[n]) - 1

Page 8: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

� Diagrama de flujo de una convolución (c[n] = a[n] * b[n])

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.8

� Técnica rápida para calcular la convolución entre a[n] = {1; -2; 3} y b[n] = {-1; 0; 2}. Deben multiplicarse los elementos entre sí y sumar las diagonales: a[n] * b[n] = {-1; 2; -1; -4; 6}.

Page 9: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

Convolucion Discreta: Método de la Tira Deslizante (Sliding Strip Method)

Dado x[n]={2;5;0;4} h[n]={4;1;3}.

Hallar la convolucion y[n]=x[n]*h[n]

Nota. Las dos secuencias empiezan en 0 (cero).

Hacemos el “reflejo” de una

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.9

Hacemos el “reflejo” de una de ellas: h[-n]={3;1;4}

Convolucion Discreta es: y[n]={8,22,11,31,4,12}Dado ts=1/2.La Convolucion numérica es: {4,11,5.5,15.5,2,6}

Page 10: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

Convolucion Discreta: Método de la Suma por columnas

Hacemos el mismo ejemplo:

Dado x[n]={2;5;0;4} h[n]={4;1;3}. Hallar la convolucion y[n]=x[n]*h[n]

Nota. Las dos secuencias empiezan en 0 (cero).

“No es necesario reflejar” una de las secuencias.

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.10

“No es necesario reflejar” una de las secuencias.

Convolucion Discreta es: [8,22,11,31,4,12]

Page 11: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

Convolucion Discreta: Método de la MallaHacemos el mismo ejemplo:

Dado x[n]={2;5;0;4} h[n]={4;1;3}. Hallar la convolucion y[n]=x[n]*h[n]

Nota. Las dos secuencias empiezan en 0 (cero).

“No es necesario reflejar” una de las secuencias.

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.11

Page 12: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

� Propiedades de la convolución:

� Conmutativa:

a[n] * b[n] = b[n] * a[n]

� Asociativa:

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.12

(a[n] * b[n]) * c[n] = a[n] * (b[n] * c[n])

� Distributiva respecto a la suma:

a[n] * (b[n] + c[n]) = a[n] * b[n] + a[n] * c[n]

� Elemento neutro (δ[n] es la secuencia delta):

a[n] * δ[n] = a[n]

Page 13: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

� Correlación y autocorrelacion:

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.13

Page 14: Utp pdiva_s6_fundamento matematico del pdi

Operaciones con secuencias

� Correlación y autocorrelacion:

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.14

Page 15: Utp pdiva_s6_fundamento matematico del pdi

Propiedades de una secuencia

� Una secuencia es causal si y sólo si todas sus muestras anteriores a n = 0 son nulas:

causal(x[n]) <=> x[n] = 0, n < 0

� En oposición a esto podemos hablar de secuencias anticausales. Es decir, secuencias cuyas muestras

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.15

anticausales. Es decir, secuencias cuyas muestras son nulas para n >= 0:

anticausal(x[n]) <=> x[n] = 0, n >= 0

Page 16: Utp pdiva_s6_fundamento matematico del pdi

Propiedades de una secuencia

� Se definen como parte causal y parte anticausal de una secuencia los conjuntos de muestras correspondientes:

� La parte causal de una secuencia x[n] es el conjunto de muestras correspondientes a n >= 0

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.16

conjunto de muestras correspondientes a n >= 0

� La parte anticausal es el conjunto de muestras correspondientes a n < 0

Page 17: Utp pdiva_s6_fundamento matematico del pdi

Propiedades de una secuencia

� Una secuencia es finita si y sólo si su longitud lo es (en caso contrario se trataría de una secuencia infinita):

finita(x[n]) <=> long(x[n]) < ∞

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.17

finita(x[n]) <=> long(x[n]) < ∞

� Una secuencia es acotada si y sólo si todas sus muestras tienen un valor finito:

acotada(x[n]) <=> |x[n]| < ∞

Page 18: Utp pdiva_s6_fundamento matematico del pdi

Representación cartesiana de complejos

� El conjunto de los números complejos (C) supone la conjunción de los números reales y de los números imaginarios.

� Cualquier número complejo x será un vector de dos componentes: una real, denominada parte real, Re(x), y otra imaginaria, parte imaginaria, Im(x):

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.18

Re(x), y otra imaginaria, parte imaginaria, Im(x):

x = Re(x) + j Im(x)

� Para representar un número complejo, es necesario hacerlo en un diagrama de Argand: diagrama bidimensional cuyos ejes de abscisas y ordenadas representan la parte real e imaginaria respectivamente.

Page 19: Utp pdiva_s6_fundamento matematico del pdi

Operaciones básicas con complejos en notación cartesiana

� Igualdad:

a + jb = c + jd <=> a = c y b = d

� Adición:

(a + jb) + (c + jd) = (a + c) + j(b + d)

� Sustracción:

(a + jb) - (c + jd) = (a - c) + j(b - d)

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.19

(a + jb) - (c + jd) = (a - c) + j(b - d)

� Producto:

(a + jb)(c + jd) = (ac - bd) + j(ad + bc)

� Cociente:

(a + jb) / (c + jd) = [(ac + bd) + j(bc - ad)] / (c2 - d2)

� Conjugación:

(a + jb)* = a - jb

Page 20: Utp pdiva_s6_fundamento matematico del pdi

Representación polar de complejos

�Complejo:

x = Re(x) + j Im(x)

�Equivalencias:

|x| = √(Re2(x) + Im2(x)) = A

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.20

fase(x) = arctan[Im(x) / Re(x)] = a

Re(x) = |x|cos fase(x)

Im(x) = |x|sen fase(x)

�Función exponencial compleja:

x = |x|ej fase(x) = Aeja

Page 21: Utp pdiva_s6_fundamento matematico del pdi

Operaciones básicas con complejos en notación polar

�Producto:

Aeja Bejb = ABej(a + b)

�Cociente:

Aeja / Bejb = (A / B)ej(a - b)

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.21

� Equivalencia trigonométrica:

Aeja = A(cos a + j sen a)

�Conjugación:

(Aeja)* = Ae-ja

Page 22: Utp pdiva_s6_fundamento matematico del pdi

Teorema de De Moivre

�En la exponenciación de complejos no pueden emplearse las reglas algebraicas. Hay que seguir el teorema de DeMoivre:

Zk => [A(cos a + j sen a)]k

=> (Aeja)k = Akejka

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.22

=> (Aeja)k = Akejka

=> Ak(cos ka + j sen ka)

�Para Zk existe más de una solución por lo que hay que poner especial cuidado en la exponenciación de complejos.

Page 23: Utp pdiva_s6_fundamento matematico del pdi

Transformada de Fourier

� Debe su nombre al matemático francés Jean Baptiste Joseph Fourier (1768-1830).

� Esta transformación consigue llevar una señal expresada en el dominio del tiempo al dominio de la frecuenciaexpresándola como la suma de muchas funciones exponenciales complejas.

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.23

exponenciales complejas.

� En función de su continuidad, existen dos transformadas de Fourier utilizadas en el PDS:

� Discrete Time Fourier Transform (DTFT)

� Discrete Fourier Transform (DFT)

Page 24: Utp pdiva_s6_fundamento matematico del pdi

Transformada de Fourier

� Transformación: llevar una señal expresada en el dominio del tiempo al dominio de la frecuencia expresándola como la suma de muchas funciones exponenciales complejas.

� Discrete Time Fourier Transform (DTFT):

Transforma una secuencia en el tiempo, a su equivalente

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.24

Transforma una secuencia en el tiempo, a su equivalente frecuencial en forma de función compleja continua:

X(ω) = DTFT{x[n]} = Σn=-∞,∞ x[n]e-jωn

� Discrete Fourier Transform (DFT):

Transforma una secuencia en el tiempo, a su equivalente frecuencial en forma de función compleja discreta (es la que puede calcularse en un computador):

X[k] = DFT{x[n]} = Σn=0,N-1 x[n]e-j2πnk/N

Page 25: Utp pdiva_s6_fundamento matematico del pdi

Twiddle

� Considerando la ecuación de la DFT:

X[k] = DFT{x[n]} = Σn=0,N-1 x[n]e-j2πnk/N

� Teniendo en cuenta que N es la longitud de x[n], es muy común extraer el factor WN = e-j2π/N, llamado twiddle, con lo que la ecuación de la DFT queda así:

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.25

que la ecuación de la DFT queda así:

X[k] = DFT{x[n]} = Σn=0,N-1 x[n]WNnk

= x[0]WN0k + x[1]WN

1k + … + x[N-1]WN(N-1)k

Page 26: Utp pdiva_s6_fundamento matematico del pdi

Ejemplo de DFT

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.26

� Ejemplo de DFT: Señal suma de

dos sinusoides de 1 Hz y 2 Hz

respectivamente (fs = 5 Hz)

Page 27: Utp pdiva_s6_fundamento matematico del pdi

Ejemplo de DFT

• Ejercicio. Visualizar la DFT de una señal discreta, que es calculada como un conjunto finito de frecuencias. Sea la señal (secuencia)

h[n] = δ [n] + 0.5 δ [n − 1] + 0.2 δ[n − 2]

>> h=[1 0.5 0.2]

>> stem(h)

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.27

>> stem(h)

Calculamos 128 valores de la DFT:

>> H=fft(h,128);

El vector H recoge los valores de la función H(ejw) en las siguientes frecuencias:

wk =2πk/128 , k = 0, · · · , 127

Page 28: Utp pdiva_s6_fundamento matematico del pdi

Ejemplo de DFT

Para visualizar la DFT hay que tener en cuenta que el vector H contiene valores complejos, por lo que tendremos que representar por separado su magnitud y su fase:>> stem(2*pi*(0:127)/128,abs(H));>> stem(2*pi*(0:127)/128,angle(H));

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.28

Page 29: Utp pdiva_s6_fundamento matematico del pdi

Periodicidad de la DFT

� Consiste en que la DFT, X[k], de una señal en tiempo discreto x[n], es periódica (su periodo es la longitud de x[n]: N)

� Sea x[n] una señal en tiempo discretode longitud N. Se cumple que:

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.29

X[k] = DFT{x[n]} => X[k] = X[k mod N]

� Lo que equivale a decir que:

X[k] = DFT{x[n]} => X[k] = X[k + aN], a εεεε Z

Page 30: Utp pdiva_s6_fundamento matematico del pdi

Simetría de la DFT

�Consiste en que la transformada discreta de Fourier, X[k], de una señal real en tiempo discreto, x[n], presenta simetría hermítica:

x[n] ∈ ℝ y X[k] = DFT{x[n]} => X[k] = X[-k]*

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.30

∈ ℝ

X[k] = DFT{x[n]} => X[k] = X[-k]*

Page 31: Utp pdiva_s6_fundamento matematico del pdi

Inversa de la DFT

� La transformada discreta de Fourier (DFT), se calcula:

X[k] = DFT{x[n]} = Σn=0,N-1 x[n] e-j2πnk/N

X[k] = DFT{x[n]} = Σn=0,N-1 x[n] WNnk ; WN = e-j2π/N

� La inversa de la transformada discreta de Fourier (InverseDiscrete Fourier Transform, IDFT) se calcula de manera muy

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.31

Discrete Fourier Transform, IDFT) se calcula de manera muy similar a la transformada directa de acuerdo con la siguiente ecuación (N es la longitud de x[n]):

x[n] = IDFT{X[k]} = (1 / N) Σn=0,N-1 X[k] WN-nk

� Como se verá más adelante esta similitud entre las dos formas de la transformada (forma directa y forma inversa) nos permite calcular la inversa a partir de la directa y, por tanto, aprovechar cualquier algoritmo que calcule la transformada directa para obtener la forma inversa.

Page 32: Utp pdiva_s6_fundamento matematico del pdi

Respuesta en frecuencia de un sistema

� El modelo de respuesta en frecuencia de un sistema describe su comportamiento en términos de su efecto en la amplitud y la fase de las componentes frecuenciales que lo atraviesan.

� Esta descripción se realiza mediante la función de respuesta en frecuencia que se calcula como la

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.32

respuesta en frecuencia que se calcula como la transformada de Fourier de la respuesta al impulso unitario del sistema:

H(ω) = DTFT{h[n]}

H[k] = DFT{h[n]}

Page 33: Utp pdiva_s6_fundamento matematico del pdi

Tipos básicos de secuencias

Cuadro resumen

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.33

H[k] = DFT{h[n]}

Page 34: Utp pdiva_s6_fundamento matematico del pdi

Transformada rápida de Fourier (FFT)

� La transformada rápida de Fourier (Fast Fourier Transform, FFT) fue descrita por James Cooley y John W. Tukey en 1965 y no es propiamente una transformada.

� Se trata en realidad de un algoritmo que permite

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.34

� Se trata en realidad de un algoritmo que permite calcular la DFT en tiempo logarítmico.

� Debería por tanto considerarse más bien como algoritmo FFT para hallar la DFT.

Page 35: Utp pdiva_s6_fundamento matematico del pdi

Transformada rápida de Fourier (FFT)

�Si observamos la fórmula de la DFT:

X[k] = DFT{x[n]} = Σn=0,N-1 x[n]e-j2πnk/N

vemos que su aplicación directa es de orden: o(n2).

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.35

vemos que su aplicación directa es de orden: o(n2).

�El objetivo de la FFT es calcular la DFT en orden logarítmico: o(n log2 n).

Page 36: Utp pdiva_s6_fundamento matematico del pdi

Transformada rápida de Fourier (FFT)

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.36

Diagrama de flujo de una FFT de una señal de 4 elementos

Page 37: Utp pdiva_s6_fundamento matematico del pdi

Transformada rápida de Fourier (FFT)

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.37

Diagrama de flujo de una FFT de una señal de 8 elementos

Page 38: Utp pdiva_s6_fundamento matematico del pdi

Transformada rápida de Fourier (FFT)

Diagrama de flujo de una FFT de una señal de 16 elementos

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.38

Page 39: Utp pdiva_s6_fundamento matematico del pdi

Mariposa de N puntos

• Cómo puede observarse, el algoritmo FFT es recursivo.

• El caso base de cualquier procesamiento FFT es la mariposa.

• Una mariposa de N puntos es una

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.39

• Una mariposa de N puntos es una función/circuito (según se trate de una implementación software o hardware) capaz de calcular la FFT de una secuencia de N elementos de manera directa (sin necesidad de recursión).

Page 40: Utp pdiva_s6_fundamento matematico del pdi

Propiedades de una secuencia

• El caso base más habitual es la mariposa de 2 puntos:

X[k] = DFT{x[n]} = Σn=0,N-1 x[n]e-j2πnk/N

Y[0] = x[0] + x[1]

Y[1] = x[0] - x[1]

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.40

Page 41: Utp pdiva_s6_fundamento matematico del pdi

Propiedades de una secuencia

The standard strategy to speed up an algorithm is to divide and conquer. We have to find some way to group the terms in the equation

V[k] = Σn=0..N-1 WNkn v[n]

Let's see what happens when we separate odd ns from even ns (from now on, let's assume that N is even):

V[k] = Σ W kn v[n] + Σ W kn v[n]

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.41

V[k] = Σn even WNkn v[n] + Σn odd WN

kn v[n]

= Σr=0..N/2-1 WNk(2r) v[2r] + Σr=0..N/2-1 WN

k(2r+1) v[2r+1]

= Σr=0..N/2-1 WNk(2r) v[2r] + Σr=0..N/2-1 WN

k(2r) WNk v[2r+1]

= Σr=0..N/2-1 WNk(2r) v[2r] + WN

k Σr=0..N/2-1 WNk(2r) v[2r+1]

= (Σr=0..N/2-1 WN/2kr v[2r]) + WN

k (Σr=0..N/2-1 WN/2kr v[2r+1])

where we have used one crucial identity:

WNk(2r) = e-2πi*2kr/N = e-2πi*kr/(N/2) = WN/2

kr

Page 42: Utp pdiva_s6_fundamento matematico del pdi

Propiedades de una secuencia

Notice an interesting thing: the two sums are nothing else but N/2-point Fourier transforms of, respectively, the even subset and the odd subset of samples. Terms with k greater or equal N/2 can be reduced using another identity:

WN/2m+N/2 = WN/2

mWN/2N/2 = WN/2

m

which is true because Wmm = e-2πi = cos(-2π) + i sin(-2π)= 1.

If we start with N that is a power of 2, we can apply this subdivision

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.42

If we start with N that is a power of 2, we can apply this subdivision recursively until we get down to 2-point transforms.

We can also go backwards, starting with the 2-point transform:

V[k] = W20*k v[0] + W2

1*k v[1], k=0,1

The two components are:

V[0] = W20 v[0] + W2

0 v[1] = v[0] + W20 v[1]

V[1] = W20 v[0] + W2

1 v[1] = v[0] + W21 v[1]

We can represent the two equations for the components of the 2-point transform graphically using the, so called, butterfly

Page 43: Utp pdiva_s6_fundamento matematico del pdi

Propiedades de una secuencia

This graph can be further

simplified using this identity:

WNs+N/2 = WN

s WNN/2

= -WNs

which is true because

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.43

which is true because

WNN/2 = e-2πi(N/2)/N

= e-πi

= cos(-π) + isin(-π)

= -1

Here's the simplified butterfly:

Y[0] = x[0] + x[1]

Y[1] = x[0] - x[1]

Page 44: Utp pdiva_s6_fundamento matematico del pdi

Propiedades de una secuencia

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.44

Page 45: Utp pdiva_s6_fundamento matematico del pdi

Aplicaciones de la FFT

Tiene 3 aplicaciones fundamentales en DSP:

� Cálculo de la DFT en tiempo logarítmico.

� Cálculo de la IDFT en tiempo logarítmico.

� Interpolación de señales.

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.45

Page 46: Utp pdiva_s6_fundamento matematico del pdi

Cálculo de la DFT mediante FFT

• Esta aplicación es obvia y consiste simplemente en aplicar el algoritmo FFT a la señal:

X[k] = DFT{x[n]} = FFT{x[n]}

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.46

X[k] = DFT{x[n]} = FFT{x[n]}

Page 47: Utp pdiva_s6_fundamento matematico del pdi

Cálculo de la IDFT mediante FFT

• Para comprender la aplicación de la transformada rápida al cálculo de la inversa de la transformada discreta basta analizar la ecuación de esta última y comprobar cómo puede obtenerse a partir de la transformada discreta:

x[n] = IDFT{X[k]}

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.47

x[n] = IDFT{X[k]}

= (1 / N) (Σn=0,N-1 X[k]ej2πnk/N)**

= (1 / N) (Σn=0,N-1 X[k]*e-j2πnk/N)*

= (1 / N) DFT{X[k]*}*

= (1 / N) FFT{X[k]*}*

Page 48: Utp pdiva_s6_fundamento matematico del pdi

Interpolación mediante FFT

• Consiste en interpolar una secuencia mediante su paso al dominio frecuencial y posterior paso al dominio del tiempo.

• Esta técnica se basa en calcular la transformada discreta y rellenarla con ceros en su zona central. Al calcular ahora la inversa de la transformada se

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.48

Al calcular ahora la inversa de la transformada se obtiene la secuencia original pero interpolada.

• Sin embargo, durante este cambio de dominio se produce un desajuste en la amplitud de las muestras de la secuencia debido a que la longitud de la secuencia original es menor que la longitud de la nueva secuencia. Este efecto puede compensarse de una manera muy sencilla tal como se verá a continuación.

Page 49: Utp pdiva_s6_fundamento matematico del pdi

Interpolación mediante FFT

El proceso de interpolación puede realizarse a través de los siguientes pasos:

1. Sean v[n] la secuencia original, N su longitud y Mla cantidad de muestras deseada en la secuencia resultante. M > N.

2. Calculamos la transformada discreta de v[n]:

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.49

2. Calculamos la transformada discreta de v[n]:

V[k] = DFT{v[n]}

3. Dividimos la secuencia V[k] en dos mitades:

V[k] = {V1[k]; V2[k]}

Page 50: Utp pdiva_s6_fundamento matematico del pdi

Interpolación mediante FFT

4. Creamos una nueva secuencia W[k] a partir de estas dos mitades insertando en su centro los ceros necesarios para que su longitud sea igual a M:

W[k] = {V1[k]; 0; 0; 0; ...; 0; 0; 0; V2[k]}

5. Calculamos la transformada inversa de W[k]:

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.50

5. Calculamos la transformada inversa de W[k]:

w0[n] = IDFT{W[k]}

6. Corregimos el desajuste de amplitud:

w[n] = (M / N) w0[n]

7. Una vez terminado el proceso, la secuencia w[n] interpola a la secuencia v[n]

Page 51: Utp pdiva_s6_fundamento matematico del pdi

Interpolación mediante FFT

NOTA: Transformada discreta en dos dimensiones: La técnica de interpolación puede extrapolarse a datos bidimensionales con lo que se convierte

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.51

datos bidimensionales con lo que se convierte también en una técnica de zoom para imágenes digitales.

Page 52: Utp pdiva_s6_fundamento matematico del pdi

Ejemplo de interpolación

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.52

Ejemplo de interpolación (de 16 a 256 muestras)

Page 53: Utp pdiva_s6_fundamento matematico del pdi

Tarea 7

1. Realizar los mapas semántico y/o mapas conceptuales de

todo el contenido de la Diapositiva de la Sesión 7.-

Fundamentos de Visión Artificial.

2. Adjuntar fuentes que le han ayudado a consolidar la tarea.

Presentación:

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 53

Presentación:

• Impreso y en USB el desarrollo de la tarea.

• Los mapas semánticos se deben hacer en PowerPoint y los mapas conceptuales en CMapTools. Adjuntar los archivos.

• En USB adjuntar las fuentes (05 PDFs, 05 PPTs y 01 Video.).

• La fuente debe provenir de una universidad.

NOTA: Las tareas son opcionales: Sirven solo para aumentar puntos a las notas de las practicas calificadas del curso.

Page 54: Utp pdiva_s6_fundamento matematico del pdi

Presentación

� Todas las fuentes deben presentarse en formato digital

(USB), dentro de una carpeta que lleve las iniciales del curso,

sus Apellidos, guion bajo y luego el numero de la Tarea.

Ejemplo:

PDS_BenitezPalacios_T6

54Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P.

PDS_BenitezPalacios_T6

� La fuente debe conservar el nombre original y agregar

_tema.

Las Tareas que no cumplan las indicaciones

no serán recepcionados por el profesor.

Page 55: Utp pdiva_s6_fundamento matematico del pdi

Sesión 6. Fundamentos matemáticos

Procesamiento de Imagenes y Vision Artificial - Prof. Ing. Jose C. Benitez P. 55