Utp pds_s7y8_dft y fft

6,158 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
6,158
On SlideShare
0
From Embeds
0
Number of Embeds
4,188
Actions
Shares
0
Downloads
297
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Utp pds_s7y8_dft y fft

  1. 1. Facultad de Ingeniería Electrónica y Mecatrónica Procesamiento Digital de Señales (TC61) Sesión: 7 y 8 DFT y FFT Ing. José C. Benítez P.
  2. 2. Sesión 7 y 8. FFT Números complejos: Representación cartesiana: Operaciones básicas Representación polar: Operaciones básicas Teorema de De Moivre Transformada de Fourier Twiddle Ejemplo de 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) Tipos básicos de secuencias Mariposa de N puntos Propiedades de una secuencia Aplicaciones de la FFT Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 2
  3. 3. 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): 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. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 3
  4. 4. Operaciones básicas con complejos ennotació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) 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 Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 4
  5. 5. Representación 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) Función exponencial compleja: x = |x|ej fase(x) = Aeja Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 5
  6. 6. Operaciones básicas con complejos ennotación polar Producto: Aeja Bejb = ABej(a + b) Cociente: Aeja / Bejb = (A / B)ej(a - b) Equivalencia trigonométrica: Aeja = A(cos a + j sen a) Conjugación: (Aeja)* = Ae-ja Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 6
  7. 7. Teorema de De Moivre En la exponenciación 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 más de una solución por lo que hay que poner especial cuidado en la exponenciación de complejos. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 7
  8. 8. 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 frecuencia expresándola como la suma de muchas funciones 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) Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 8
  9. 9. 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 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 Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 9
  10. 10. 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í: 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 Señales - Prof. Ing. Jose C. Benitez P. 10
  11. 11. Ejemplo de DFTEjemplo de DFT: Señal suma dedos sinusoides de 1 Hz y 2 Hzrespectivamente (fs = 5 Hz) Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 11
  12. 12. 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) 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 Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 12
  13. 13. Ejemplo de DFTPara visualizar la DFT hay que tener en cuenta que el vectorH contiene valores complejos, por lo que tendremos querepresentar 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 Señales - Prof. Ing. Jose C. Benitez P. 13
  14. 14. 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 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 Señales - Prof. Ing. Jose C. Benitez P. 14
  15. 15. 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 Digital de Señales - Prof. Ing. Jose C. Benitez P. 15
  16. 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-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 (Inverse 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. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 16
  17. 17. 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 transformada de Fourier de la respuesta al impulso unitario del sistema: H(ω) = DTFT{h[n]} H[k] = DFT{h[n]} Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 17
  18. 18. Tipos básicos de secuencias Cuadro resumen H[k] = DFT{h[n]} Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 18
  19. 19. 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 calcular la DFT en tiempo logarítmico. Debería por tanto considerarse más bien como algoritmo FFT para hallar la DFT. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 19
  20. 20. 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). El objetivo de la FFT es calcular la DFT en orden logarítmico: o(n log2 n). Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 20
  21. 21. Transformada rápida de Fourier (FFT) Diagrama de flujo de una FFT de una señal de 4 elementos Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 21
  22. 22. Transformada rápida de Fourier (FFT) Diagrama de flujo de una FFT de una señal de 8 elementos Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 22
  23. 23. Transformada rápida de Fourier (FFT)Diagrama de flujo de una FFT deuna señal de 16 elementos Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 23
  24. 24. 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 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). Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 24
  25. 25. 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 Digital de Señales - Prof. Ing. Jose C. Benitez P. 25
  26. 26. Propiedades de una secuenciaThe standard strategy to speed up an algorithm is to divide andconquer. We have to find some way to group the terms in the equationV[k] = Σn=0..N-1 WNkn v[n]Lets see what happens when we separate odd ns from even ns (fromnow on, lets 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-2πi*2kr/N = e-2πi*kr/(N/2) = WN/2kr Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 26
  27. 27. Propiedades de una secuenciaNotice an interesting thing: the two sums are nothing else but N/2-point Fourier transforms of, respectively, the even subset and theodd subset of samples. Terms with k greater or equal N/2 can bereduced using another identity:WN/2m+N/2 = WN/2mWN/2N/2 = WN/2mwhich 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 subdivisionrecursively 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], k=0,1The 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 2-point transform graphically using the, so called, butterfly Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 27
  28. 28. Propiedades de una secuenciaThis graph can be furthersimplified using this identity:WNs+N/2 = WNs WNN/2 = -WNswhich is true becauseWNN/2 = e-2πi(N/2)/N = e-πi = cos(-π) + isin(-π) = -1Heres the simplified butterfly: Y[0] = x[0] + x[1] Y[1] = x[0] - x[1] Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 28
  29. 29. Propiedades de una secuencia Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 29
  30. 30. 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 Digital de Señales - Prof. Ing. Jose C. Benitez P. 30
  31. 31. 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 Digital de Señales - Prof. Ing. Jose C. Benitez P. 31
  32. 32. 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]} = (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]*}* Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 32
  33. 33. 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 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. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 33
  34. 34. 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 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 Señales - Prof. Ing. Jose C. Benitez P. 34
  35. 35. 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]: 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 Señales - Prof. Ing. Jose C. Benitez P. 35
  36. 36. Interpolación mediante FFT NOTA: Como se verá en el último capítulo, cuando se comente la transformada discreta en dos dimensiones, esta técnica de interpolación puede extrapolarse a datos bidimensionales con lo que se convierte también en una técnica de zoom para imágenes digitales. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 36
  37. 37. Ejemplo de interpolación Ejemplo de interpolación (de 16 a 256 muestras) Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 37
  38. 38. Tarea 5 1. Realizar los mapas semántico y/o mapas conceptuales de todo el contenido de la Diapositiva de la Sesión 9 y 10.- La Transformada Z. 2. Adjuntar fuentes que le han ayudado a consolidar la tarea. 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. • En USB adjuntar las fuentes (05 PDFs, 05 PPTs y 01 Video.). • La fuente debe provenir de una universidad. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 38
  39. 39. 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_T5 La fuente debe conservar el nombre original y agregar _tema. Las Tareas que no cumplan las indicaciones no serán recepcionados por el profesor. Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 39
  40. 40. Sesión 7 y 8. DFT y FFT Procesamiento Digital de Señales Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 40

×