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.
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
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
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)
   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
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
Operaciones básicas con complejos en
notació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
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
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
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
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
Ejemplo de DFT




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


                 Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.   11
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
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 Señales - Prof. Ing. Jose C. Benitez P.   13
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
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
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
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
Tipos básicos de secuencias


                      Cuadro resumen




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


            Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.   18
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
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
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
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
Transformada rápida de Fourier (FFT)

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




                 Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.   23
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
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
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-2πi*2kr/N = e-2πi*kr/(N/2) = WN/2kr
                     Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.   26
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/2mWN/2N/2 = WN/2m
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
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],               k=0,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 2-
point transform graphically using the, so called, butterfly
                  Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.   27
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-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]
                Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.           28
Propiedades de una secuencia




           Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P.   29
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
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
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
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
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
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
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
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
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
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
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

Utp pds_s7y8_dft y fft

  • 1.
    Facultad de IngenieríaElectró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.
    Sesión 7 y8. 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.
    Representación cartesiana decomplejos 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.
    Operaciones básicas concomplejos 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) 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.
    Representación polar decomplejos 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.
    Operaciones básicas concomplejos en notació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.
    Teorema de DeMoivre 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.
    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.
    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.
    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.
    Ejemplo de DFT Ejemplode DFT: Señal suma de dos sinusoides de 1 Hz y 2 Hz respectivamente (fs = 5 Hz) Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 11
  • 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.
    Ejemplo de DFT Paravisualizar 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 Señales - Prof. Ing. Jose C. Benitez P. 13
  • 14.
    Periodicidad de laDFT 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.
    Simetría de laDFT 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.
    Inversa de laDFT 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.
    Respuesta en frecuenciade 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.
    Tipos básicos desecuencias Cuadro resumen H[k] = DFT{h[n]} Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 18
  • 19.
    Transformada rápida deFourier (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.
    Transformada rápida deFourier (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.
    Transformada rápida deFourier (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.
    Transformada rápida deFourier (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.
    Transformada rápida deFourier (FFT) Diagrama de flujo de una FFT de una señal de 16 elementos Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 23
  • 24.
    Mariposa de Npuntos • 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.
    Propiedades de unasecuencia • 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.
    Propiedades de unasecuencia 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-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.
    Propiedades de unasecuencia 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/2mWN/2N/2 = WN/2m 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 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], k=0,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 2- point transform graphically using the, so called, butterfly Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 27
  • 28.
    Propiedades de unasecuencia This graph can be further simplified using this identity: WNs+N/2 = WNs WNN/2 = -WNs 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] Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 28
  • 29.
    Propiedades de unasecuencia Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 29
  • 30.
    Aplicaciones de laFFT 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.
    Cálculo de laDFT 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.
    Cálculo de laIDFT 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.
    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.
    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.
    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.
    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.
    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.
    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.
    Presentación Todaslas 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.
    Sesión 7 y8. DFT y FFT Procesamiento Digital de Señales Procesamiento Digital de Señales - Prof. Ing. Jose C. Benitez P. 40