Sunteți pe pagina 1din 43

Procesamiento Digital de Seales

en Sistemas de Informacin y Telecomunicaciones

(PD01)

Sesin: 7 y 8

DFT y FFT
Ing. Jos C. Bentez P.

Sesin 7 y 8. FFT
Nmeros complejos: Representacin cartesiana: Operaciones bsicas Representacin polar: Operaciones bsicas Teorema de De Moivre Transformada de Fourier Twiddle Ejemplo de DFT Periodicidad de la DFT Simetra de la DFT Inversa de la DFT Respuesta en frecuencia de un sistema Transformada rpida de Fourier (FFT) Tipos bsicos de secuencias Mariposa de N puntos Propiedades de una secuencia Aplicaciones de la FFT
2

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

Representacin cartesiana de complejos


El conjunto de los nmeros complejos (C) supone la conjuncin de los nmeros reales y de los nmeros imaginarios. Cualquier nmero complejo x ser un vector de dos componentes: una real, denominada parte real, Re(x), y otra imaginaria, parte imaginaria, Im(x): x = Re(x) + j Im(x) Para representar un nmero complejo, es necesario hacerlo en un diagrama de Argand: diagrama bidimensional cuyos ejes de abscisas y ordenadas representan la parte real e imaginaria respectivamente.

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

Operaciones bsicas con complejos en notacin cartesiana


Igualdad: a + jb = c + jd <=> a = c y b = d Adicin: (a + jb) + (c + jd) = (a + c) + j(b + d) Sustraccin: (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) Conjugacin: (a + jb)* = a - jb

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

Representacin polar de complejos


Complejo: x = Re(x) + j Im(x) Equivalencias: |x| = (Re2(x) + Im2(x)) = A fase(x) = arctan[Im(x) / Re(x)] = a Re(x) = |x|cos fase(x) Im(x) = |x|sen fase(x) Funcin exponencial compleja: x = |x|ej fase(x) = Aeja

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

Operaciones bsicas con complejos en notacin polar


Producto: Aeja Bejb = ABej(a + b) Cociente: Aeja / Bejb = (A / B)ej(a - b) Equivalencia trigonomtrica: Aeja = A(cos a + j sen a) Conjugacin: (Aeja)* = Ae-ja

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

Teorema de De Moivre
En la exponenciacin de complejos no pueden emplearse las reglas algebraicas. Hay que seguir el teorema de De Moivre: Zk => [A(cos a + j sen a)]k => (Aeja)k = Akejka => Ak(cos ka + j sen ka) Para Zk existe ms de una solucin por lo que hay que poner especial cuidado en la exponenciacin de complejos.

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

Transformada de Fourier
Debe su nombre al matemtico francs Jean Baptiste Joseph Fourier (1768-1830). Esta transformacin consigue llevar una seal expresada en el dominio del tiempo al dominio de la frecuencia expresndola como la suma de muchas funciones exponenciales complejas. En funcin de su continuidad, existen dos transformadas de Fourier utilizadas en el PDS: Discrete Time Fourier Transform (DTFT) Discrete Fourier Transform (DFT)

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

Transformada de Fourier
Transformacin: llevar una seal expresada en el dominio del tiempo al dominio de la frecuencia expresndola como la suma de muchas funciones exponenciales complejas. Discrete Time Fourier Transform (DTFT): Transforma una secuencia en el tiempo, a su equivalente frecuencial en forma de funcin compleja continua: X() = DTFT{x[n]} = n=-, x[n]e-jn Discrete Fourier Transform (DFT): Transforma una secuencia en el tiempo, a su equivalente frecuencial en forma de funcin compleja discreta (es la que puede calcularse en un computador): X[k] = DFT{x[n]} = n=0,N-1 x[n]e-j2nk/N
Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

Twiddle

Considerando la ecuacin de la DFT: X[k] = DFT{x[n]} = n=0,N-1 x[n]e-j2nk/N Teniendo en cuenta que N es la longitud de x[n], es muy comn extraer el factor WN = e-j2/N, llamado twiddle, con lo que la ecuacin de la DFT queda as:

X[k]

= DFT{x[n]} = n=0,N-1 x[n]WNnk = x[0]WN0k + x[1]WN1k + + x[N-1]WN(N-1)k

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

10

Ejemplo de DFT

Ejemplo de DFT: Seal suma de dos sinusoides de 1 Hz y 2 Hz respectivamente (fs = 5 Hz)


Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

11

Ejemplo de DFT
Ejercicio. Visualizar la DFT de una seal discreta, que es calculada como un conjunto finito de frecuencias. Sea la seal (secuencia) h[n] = [n] + 0.5 [n 1] + 0.2 [n 2] >> h=[1 0.5 0.2] >> stem(h) Calculamos 128 valores de la DFT: >> H=fft(h,128); El vector H recoge los valores de la funcin H(ejw) en las siguientes frecuencias: wk =2k/128 , k = 0, , 127
12

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

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 Digital de Seales en Sistemas de Informacin y Telecomunicaciones

13

Periodicidad de la DFT

Consiste en que la DFT, X[k], de una seal en tiempo discreto x[n], es peridica (su periodo es la longitud de x[n]: N) Sea x[n] una seal en tiempo discreto de longitud N. Se cumple que: 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

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

14

Simetra de la DFT

Consiste en que la transformada discreta de Fourier, X[k], de una seal real en tiempo discreto, x[n], presenta simetra hermtica: x[n] y X[k] = DFT{x[n]} => X[k] = X[-k]*

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

15

Propiedades de la DFT

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

16

Inversa de la DFT
La transformada discreta de Fourier (DFT), se calcula: X[k] = DFT{x[n]} = n=0,N-1 x[n] e-j2nk/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 (Inverse Discrete Fourier Transform, IDFT) se calcula de manera muy similar a la transformada directa de acuerdo con la siguiente ecuacin (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 ms 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.
Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

17

Respuesta en frecuencia de un sistema


El modelo de respuesta en frecuencia de un sistema describe su comportamiento en trminos de su efecto en la amplitud y la fase de las componentes frecuenciales que lo atraviesan. Esta descripcin se realiza mediante la funcin de 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]}

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

18

Tipos bsicos de secuencias


Cuadro resumen

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

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

19

Transformada rpida de Fourier (FFT)


La transformada rpida 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 calcular la DFT en tiempo logartmico. Debera por tanto considerarse ms bien como algoritmo FFT para hallar la DFT.

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

20

Transformada rpida de Fourier (FFT)

Si observamos la frmula de la DFT: X[k] = DFT{x[n]} = n=0,N-1 x[n]e-j2nk/N vemos que su aplicacin directa es de orden: o(n2). El objetivo de la FFT es calcular la DFT en orden logartmico: o(n log2 n).

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

21

Transformada rpida de Fourier (FFT)

Diagrama de flujo de una FFT de una seal de 4 elementos

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

22

Transformada rpida de Fourier (FFT)

Diagrama de flujo de una FFT de una seal de 8 elementos


Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

23

Transformada rpida de Fourier (FFT)


Diagrama de flujo de una FFT de una seal de 16 elementos

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

24

Mariposa de N puntos

Cmo puede observarse, el algoritmo FFT es recursivo. El caso base de cualquier procesamiento FFT es la mariposa. Una mariposa de N puntos es una funcin/circuito (segn se trate de una implementacin software o hardware) capaz de calcular la FFT de una secuencia de N elementos de manera directa (sin necesidad de recursin).

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

25

Propiedades de una secuencia


El caso base ms habitual es la mariposa de 2 puntos: X[k] = DFT{x[n]} = n=0,N-1 x[n]e-j2nk/N Y[0] = x[0] + x[1] Y[1] = x[0] - x[1]

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

26

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] = n even WNkn v[n] + n odd WNkn v[n] = r=0..N/2-1 WNk(2r) v[2r] + r=0..N/2-1 WNk(2r+1) v[2r+1] = r=0..N/2-1 WNk(2r) v[2r] + r=0..N/2-1 WNk(2r) WNk v[2r+1] = r=0..N/2-1 WNk(2r) v[2r] + WNk r=0..N/2-1 WNk(2r) v[2r+1] = (r=0..N/2-1 WN/2kr v[2r]) + WNk (r=0..N/2-1 WN/2kr v[2r+1]) where we have used one crucial identity: WNk(2r) = e-2i*2kr/N = e-2i*kr/(N/2) = WN/2kr
Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

27

Propiedades de una secuencia


Notice an interesting thing: the two sums are nothing else but N/2point 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/2mWN/2N/2 = WN/2m which is true because Wmm = e-2i = cos(-2) + i sin(-2)= 1. 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] + W21*k v[1], The two components are: V[0] = W20 v[0] + W20 v[1] = v[0] + W20 v[1] V[1] = W20 v[0] + W21 v[1] = v[0] + W21 v[1] We can represent the two equations for the components of the 2point transform graphically using the, so called, butterfly
Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

k=0,1

28

Propiedades de una secuencia


This graph can be further simplified using this identity: WNs+N/2 = WNs WNN/2 = -WNs which is true because WNN/2 = e-2i(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]
Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

29

Propiedades de una secuencia

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

30

Propiedades de una secuencia

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

31

Propiedades de una secuencia

X1[0]=X0[0]+W0X0[2] X1[2]=X0[1]+W0X0[3] X1[1]=X0[0]+W2X0[2] X1[3]=X0[1]+W2X0[3]


Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

32

Aplicaciones de la FFT

Tiene 3 aplicaciones fundamentales en DSP: Clculo de la DFT en tiempo logartmico. Clculo de la IDFT en tiempo logartmico. Interpolacin de seales.

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

33

Clculo de la DFT mediante FFT

Esta aplicacin es obvia y consiste simplemente en aplicar el algoritmo FFT a la seal: X[k] = DFT{x[n]} = FFT{x[n]}

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

34

Clculo de la IDFT mediante FFT


Para comprender la aplicacin de la transformada rpida al clculo de la inversa de la transformada discreta basta analizar la ecuacin de esta ltima y comprobar cmo puede obtenerse a partir de la transformada discreta: x[n] = IDFT{X[k]} = (1 / N) (n=0,N-1 X[k]ej2nk/N)** = (1 / N) (n=0,N-1 X[k]*e-j2nk/N)* = (1 / N) DFT{X[k]*}* = (1 / N) FFT{X[k]*}*

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

35

Interpolacin mediante FFT


Consiste en interpolar una secuencia mediante su paso al dominio frecuencial y posterior paso al dominio del tiempo. Esta tcnica se basa en calcular la transformada discreta y rellenarla con ceros en su zona central. 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 continuacin.

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

36

Interpolacin mediante FFT


El proceso de interpolacin puede realizarse a travs de los siguientes pasos: 1. Sean v[n] la secuencia original, N su longitud y M la cantidad de muestras deseada en la secuencia resultante. M > N. 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]}

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

37

Interpolacin 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]: 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]

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

38

Interpolacin mediante FFT

NOTA: Como se ver en el ltimo captulo, cuando se comente la transformada discreta en dos dimensiones, esta tcnica de interpolacin puede extrapolarse a datos bidimensionales con lo que se convierte tambin en una tcnica de zoom para imgenes digitales.

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

39

Ejemplo de interpolacin

Ejemplo de interpolacin (de 16 a 256 muestras)

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

40

Tarea 7 y 8

1. Hacer un resumen de todo el contenido de sta diapositiva mediante mapas semnticos, mapas conceptuales o mapas mentales. 2. Adjuntar fuentes que le han ayudado a consolidar sta tarea en su carpeta personal del Dropbox.

Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

41

Presentacin
Los mapas semnticos se deben hacer en PowerPoint, los mapas conceptuales en CMapTools y los mapas mentales en FreeMind. La fuente debe provenir de una universidad o libro. La fuente debe conservar el nombre original y agregar al final del nombre del archivo _T78. La tarea y las fuentes deben presentarse en su carpeta personal del Dropbox, dentro de una carpeta que lleve las iniciales del curso, sus Apellidos, guion bajo y luego el numero de la Tarea. Ejemplo: PDS_PaternoM_T78 Las Tareas que no cumplan las indicaciones no sern EVALUADOS por el profesor.
Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

42

Sesin 7 y 8. DFT y FFT

Blog del curso: http://pdsfimmas.blogspot.com


Procesamiento Digital de Seales en Sistemas de Informacin y Telecomunicaciones

43

S-ar putea să vă placă și