5º Curso-Tratamiento Digital de Señal




           Transformada Discreta de Fourier
                       (DFT)
            Ì   Transformada Discreta de Fourier
            Ì   FFT (Fast Fourier Transform)




17/11/99                            Capítulo 6: Transformada Discreta de Fourier (DFT)   1
5º Curso-Tratamiento Digital de Señal


               Transformada Discreta de Fourier
 Ì    Antes de definir la DFT, analizaremos primero la Transforma-
      da de Fourier en tiempo discreto (DTFT).
 Ì    La DTFT describe el espectro de señales discretas. Deducire-
      mos la DFT a partir de la convolución discreta explicada en el
      Capítulo 2.
 Ì    Allí se definió la convolución discreta como
                                   ∞
                      y[n] = x[n]∗ h[n] =     ∑ x [k ]h [n − k ]
                                             k =−∞
                                                     s    s

       x   Si tenemos una señal de entrada armónica x[n]=exp(j2πnfts), la
           respuesta y[n] es ∞
                       y[n] = ∑ exp[ j 2π (n − k ) ft s ] ⋅ h[k ]
                             k =−∞
                                              ∞
                           = exp( j 2πnft s ) ∑ exp( − j 2πkft s ) ⋅ h[k ] = x[n]⋅ H ( f )
                                             k =−∞

       x   H(f) es la DTFT de la señal discreta h[n]. Nótese que la función H(f)
           es periódica, debido a que h[n] es una función discreta.
17/11/99                                       Capítulo 6: Transformada Discreta de Fourier (DFT)    2
5º Curso-Tratamiento Digital de Señal


                Transformada Discreta de Fourier
 Ì    Se define la DTFT de una señal discreta x[n] como
                         ∞
                              X( f ) =       ∑ x[k ]exp(− j 2πkfts )
                                            k =−∞

 Ì    Dualidad entre las series de Fourier y la DTFT
       x   Tenemos una señal periódica continua xp(t). Mediante las series de
           Fourier transformamos esa señal periódica continua en una función
           aperiódica y discreta (los coeficientes espectrales XS[k]).
                                                                  ∞
                       1
             X S [k ] = ∫ x p (t ) exp(− j 2πkf0 t )dt x p (t ) = ∑ X S [k ]exp( j 2πkf0 t )
                       T T
                                                                                    k =−∞
       x   De una manera dual, podemos intercambiar tiempo y frecuencia de
           forma                                    ∞
                   xS [k] =             X P ( f )exp( j2πkfts )df      XP ( f ) =   ∑x [n]exp(− j2πkft )
                      1
                              SF   ∫
                                   SF
                                                                                    k =−∞
                                                                                            S               s


           donde SF=1/ts . Ahora tenemos una señal aperiódica discreta xs[k] y la
           transformamos en una señal periódica continua (Xp(f)) mediante la
           DTFT.


17/11/99                                                       Capítulo 6: Transformada Discreta de Fourier (DFT)            3
5º Curso-Tratamiento Digital de Señal


                  Transformada Discreta de Fourier
     x     El comportamiento dual entre las series de Fourier y la DTFT se
           manifiesta en lo siguiente :
            3   En las series de Fourier parto de una señal x(t), temporal, continua y perió-
                dica (periodo T) y obtengo los coeficientes X[k], que es una función de la
                frecuencia, aperiódica y discreta con una distancia entre dos valores
                consecutivos de f0=1/T.
            3   En la DTFT parto de una señal discreta en el tiempo x[n], con periodo de
                muestreo ts=1/fs y aperiódica y obtengo una función X(f), que es función
                continua de la frecuencia y periódica con periodo fs.
     x     Todas las propiedades que se vieron para las series de Fourier tienen su
           correspondientes equivalencias en la DTFT.
     x     Ejemplo : DTFT de la ∞      secuencia x[n]=δ[n] :
                          X ( f ) = ∑ δ [k ] exp(− j 2πkft s ) = 1
                                    k =−∞
           Si tenemos una secuencia x[n]={1,0,3,-2}, a partir de la anterior ecuación
           y aplicando la propiedad del desplazamiento,
                           X ( f ) = 1 + 3 exp(− j 4πft s ) − 2 exp(− j 6πft s )

17/11/99                                            Capítulo 6: Transformada Discreta de Fourier (DFT)     4
5º Curso-Tratamiento Digital de Señal


             Transformada Discreta de Fourier
 Ì    Sin embargo, a la hora de realizar operaciones tenemos los
      mismos problemas que en las series de Fourier ya que
      seguimos tratanto con señales continuas o con series de datos
      de longitud infinita. La electrónica nos obliga a trabajar con
      un número finito de datos discretos que además tienen una
      precisión finita.
 Ì    De lo que se trata es de conseguir discretizar las variables
      continuas y de limitar el números de muestras en los dos
      dominios (temporal y frecuencial).
 Ì    Esto nos lleva a definir las series discretas de Fourier y la
      Transformada Discreta de Fourier (DFT).



17/11/99                           Capítulo 6: Transformada Discreta de Fourier (DFT)   5
5º Curso-Tratamiento Digital de Señal


                Transformada Discreta de Fourier
 Ì    De las Series de Fourier a las Series Discretas de Fourier
       x   Para las Series de Fourier se cumple (f0=1/T)
                              ∞
                   xP (t ) = ∑ X S [k ]exp( j 2πkf0t ) X S [k ] = ∫ xP (t )⋅ exp(− j2πkf0t )⋅ dt
                                                                 1
                            k =−∞                                T T
       x   Para limitar xp(t), tomamos N muestras de xp(t) durante un periodo a
           intervalos ts, de forma que N·ts=T. Al calcular los coeficientes X[k] me
           queda,                   1 N −1
                       X [k ] =          ∑ x [n]⋅ exp(− j 2πkf nt )⋅ t
                                                    P              0   s   s
                                  Nt s   n =0
                                     N −1

                                     ∑ x [n]⋅ exp(− j 2πkn / N )
                               1
                             =                  P                          k = 0,1,2  , N − 1
                               N     n =0

       x   La cantidad X[k] es la serie de Fourier Discreta de la señal periódica
           muestreada xP[n].




17/11/99                                                Capítulo 6: Transformada Discreta de Fourier (DFT)      6
5º Curso-Tratamiento Digital de Señal


               Transformada Discreta de Fourier
 Ì    De la DTFT a la DFT
       x   Tenemos una señal x[n] limitado a N muestras con un periodo de
           muestreo ts.                          N −1

       x   La DTFT se define como X P ( f ) = ∑ x[ n] ⋅ exp(− j 2πnft s )
                                                 n=0
       x    XP(f) es periódica con periodo 1/ts. Muestreamos esta señal N veces
           sobre un periodo, por tanto XT[k] será sustituir f por k/(Nts) :
                                                  [                    ]
                                   N −1
                         X T [ k ] = ∑ x[n] ⋅ exp − j 2πnkt s / ( Nt s )
                                   n=0
                                   N −1
                                = ∑ x[n] ⋅ exp[− j 2πnk / N ]              k = 0,1,2, , N − 1
                                   n=0



       x   Esta última expresión resultante es la Transformada Discreta de
           Fourier de una señal x[n]. Excepto por el término 1/N es idéntica a la
           Serie Discreta de Fourier.


17/11/99                                          Capítulo 6: Transformada Discreta de Fourier (DFT)        7
5º Curso-Tratamiento Digital de Señal


                Transformada Discreta de Fourier
 Ì    Transformada Discreta inversa (IDFT),
                  1 N −1
            x[n] = ∑ X T [k ]exp( j 2πnk / N )        n = 0,1,2,, N − 1
                  N k =0

 Ì    Convolución Circular o Cíclica
       x   La convolución normal entre dos señales periódicas es cero o infinito. Para
           este tipo de señales se define la convolución circular de dos secuencias xp[n] y
           hp[n] con periodo N :
                                                    1 N −1
                       y p [n] = x p [n] • h p [n] = ∑ x p [k ]h p [n − k ]
                                                    N k =0
       x   La convolución circular requiere que las dos secuencias sean del mismo
           tamaño. Si no fuera así habría que llenar de ceros la secuencia más corta.




17/11/99                                      Capítulo 6: Transformada Discreta de Fourier (DFT)   8
5º Curso-Tratamiento Digital de Señal


                  Transformada Discreta de Fourier
 Ì    Propiedades de la DFT
           Simetria Conjugada      X T [− k ] = X T [k ] = X T [ N − k ]
                                                  ∗


           Linealidad             αx[n] + βy[n] ↔ αX T [k ] + βYT [k ]
           Desplazamiento          x[n − m ] ↔ X T [k ] ⋅ exp(− j 2πkm / N ) = X T [k ] ⋅ WN
                                                                                           km


           Modulacion              WN nm ⋅ x[n] ↔ X T [k − m]
                                    −


                                                1
           Producto                x[n]y[n] ↔     X T [k ] • YT [k ]
                                                N
           Simetria                x[− n] ↔ X T [− k ] = X T [k ]
                                                            ∗


           Conjugado               x ∗ [n] ↔ X T [− k ]
                                               ∗


           Convolucion Circular x[n] • y[n] ↔ X T [k ]YT [k ]
           Correlacion             x[n] • y ∗ [− n] ↔ X T [k ]YT∗ [k ]
                                                   1
                                   ∑   x[n] =        ∑ X T [k ]
                                             2                  2
           Ecuacion de Parseval
                                                   N


17/11/99                                           Capítulo 6: Transformada Discreta de Fourier (DFT)       9
5º Curso-Tratamiento Digital de Señal


                 Transformada Discreta de Fourier
 Ì    Ejemplos
       x   x[n]={1,2,1,0}
           k=0     XT [0] = ∑ x[n] = 1 + 2 + 1 + 0 = 4
           k = 1 X T [1] = ∑ x[n]exp(− j 2π / 4) = 1 + 2 exp(− jπ / 2 ) + exp(− jπ ) = − j 2
           k=2     X T [2] = ∑ x[n]exp(− j 2π 2 / 4) = 1 + 2 exp(− jπ ) + exp(− j 2π ) = 0
           k=3     XT [3] = ∑ x[n]exp(− j 2π 3 / 4) = 1 + 2 exp(− j 3π / 2) + exp(− j 3π ) = j 2

       por tanto la DFT de x[n] es XT[k]={4,-j2,0,j2} para k=0,1,2,3




17/11/99                                         Capítulo 6: Transformada Discreta de Fourier (DFT)   10
5º Curso-Tratamiento Digital de Señal


               Transformada Discreta de Fourier
 Ì    Podemos interpretar los resultados del DFT de una secuencia
      xs[n] desde dos puntos de vista:
       x   Como los coeficientes espectrales (series de Fourier) de una señal
           periódica discreta cuyos muestreos coinciden con la secuencia xs[n].
       x   Como el espectro de una señal aperiódica discreta cuyos muestreos
           corresponden a la secuencia xs[n].
 Ì    EL DFT es una aproximación al espectro de la señal analógica
      original. Su magnitud se ve influenciada por el intervalo de
      muestreo, mientras que su fase depende de los instantes de
      muestreo.




17/11/99                                 Capítulo 6: Transformada Discreta de Fourier (DFT)   11
5º Curso-Tratamiento Digital de Señal


               Transformada Discreta de Fourier
 Ì    Como hacer la DFT a partir de una señal x(t), muestreada
      durante D segundos, con periodo de muestreo ts :
       x   Elegir el intervalo de muestreo ts de forma que se cumpla el Teorema
           del muestreo.
       x   Crear la expensión periodica (xp(t)) de x(t) con periodo D.
       x   Tomar N muestras de xp(t) empezando en t=0.
       x   Si hay discontinuidades, los valores de muestreo los tomaremos en el
           punto medio de la señal.
                             x(t)                                              x p (t)




              -3   -2   -1          0   1   2   3   T           -3   -2   -1             0   1   2   3   T




17/11/99                                                Capítulo 6: Transformada Discreta de Fourier (DFT)         12
5º Curso-Tratamiento Digital de Señal


               Transformada Discreta de Fourier
 Ì    DFT de señales periódicas
       x   Siendo x(t)=sin(2πft), con f=1KHz, D=1ms y N=8 tenemos la siguien-
           te secuencia de muestreos :
                      x[n]={0,0.7071,1,0.7071,0,-0.7071,-1,-0.7071}
                                              Sinusoide 1KHz, D=1ms, N=8
                                         1

                                       0.5
                            Amplitud
                                         0

                                       -0.5

                                        -1
                                          0    0.2     0.4      0.6    0.8      -3 1
                                                       Tiempo (s)            x 10

            El resultado de hacer el DFT es XT[k]={0,-4j,0,0,0,0,0,4j}.
            XS[k]=1/8{0,-4j,0,0,0,0,0,4j}={0,-j/2,0,0,0,0,0,j/2}


17/11/99                                              Capítulo 6: Transformada Discreta de Fourier (DFT)        13
5º Curso-Tratamiento Digital de Señal


                             Transformada Discreta de Fourier
                                      DFT                                                       DFT
                     5                                                          5

                     4                                                          4
      Magnitud DFT




                                                                Magnitud DFT
                     3                                                          3

                     2                                                          2

                     1                                                          1
                     00                                                         0
                              2         4    6     8
                                                                               -4000   -2000         0    2000
                                  Indice k
                                                                                        Frecuencia (Hz)


                x        x(t)=sin(2πft), con f=1KHz, D=0.5ms y N=8, tenemos la secuencia de
                         muestreos: x[n]={0,0.3827,0.7071,0.9239,1,0.9239,0.7071, 0.3827}.
                           Los coeficientes del DFT son
                           {5.0273,-1.7654,0.4142,-0.2346,-0.1989,-0.2346,-0.4142,-1.7654}
                          Y los coeficientes del DFS son
                     X[k]=1/8{5.0273,-1.7654,0.4142,-0.2346,-0.1989,-0.2346,-0.4142,-1.7654}



17/11/99                                                 Capítulo 6: Transformada Discreta de Fourier (DFT)               14
5º Curso-Tratamiento Digital de Señal


                                       Transformada Discreta de Fourier
                          Sinusoide 1KHz, D=1ms, N=8                                               DFT
                                                                                 8                                           0.7
             1
           0.8                                                                   7                                           0.6
           0.6                                                                   6
                                                                                                                             0.5
           0.4
                                                                                 5




                                                                  Magnitud DFT
           0.2                                                                                                               0.4
Amplitud




             0                                                                   4
                                                                                                                             0.3
           -0.2                                                                  3
           -0.4                                                                                                              0.2
                                                                                 2
           -0.6
           -0.8                                                                  1                                           0.1

            -1                                                                   0
                                                                                  0   1   2   3      4       5   6   7   8     0
              0       1          2            3    4          5                                                               -8000   -6000   -4000   -2000   0   2000   4000   6000
                                     Tiempo (s)           -4                                      Indice k
                                                       x 10




                  x       En este nuevo ejemplo, la frecuencia de muestreo es 16KHz. Los X[k]
                          son reales, por lo que la función tiene simetría par. Para la onda dada,
                          los coeficientes exactos de Fourier son :
                             3        XS[0]=1/π XS[k]=2/π(1-4k2)
                             3        Comparando XS[0]≈X[0]
                                                XS[1]≈X[1] dentro del 5% de precisión
                             3        Para los términos con k=2,3..., X[k] se desvía bastante del término exacto
                                      debido a que la señal no tiene un espectro limitado, produciéndose aliasing.
17/11/99                                                                                          Capítulo 6: Transformada Discreta de Fourier (DFT)                             15
5º Curso-Tratamiento Digital de Señal


                                 Transformada Discreta de Fourier
       x              x(t)=sin(2πft), con f=1KHz, D=1.5ms y N=24.
                                   Sinusoide 1KHz, D=1ms, N=8                                                                              DFT

                        1
                      0.8
                                                                                                                 20
                      0.6
                      0.4
                                                                                                                 15




                                                                                                  Magnitud DFT
                      0.2
           Amplitud




                        0
                      -0.2                                                                                       10

                      -0.4
                      -0.6                                                                                        5
                      -0.8
                       -1
                                                                                                                  0
                             0       0.5                         1           1.5                                      0      5       10              15   20
                                           Tiempo (s)                            -3                                                       Indice k
                                                                          x 10

                                                                                            DFT


                                                                     20
                                                  Magnitud DFT




                                                                     15

                                                                     10

                                                                      5

                                                                      0
                                                                           -5000              0                           5000
                                                                                      Frecuencia (Hz)

17/11/99                                                                                Capítulo 6: Transformada Discreta de Fourier (DFT)                        16
5º Curso-Tratamiento Digital de Señal


                       Transformada Discreta de Fourier
                 3    En este ejemplo se ha producido el denominado “leakage”, que consiste
                      en que las componentes originales de la señal se derraman hacia las
                      nuevas componentes de la señal. Para evitarlo, se debe muestrear un
                      número entero de periodos, o bien utilizar alguna de las ventanas
                      espectrales (ventana de Hamming, etc).
       x   Podría ocurrir que no conocieramos el periodo de la señal de la cual
           queremos calcular el DFT. En ese caso se muestrea una señal de
           duración lo más larga posible. De esta forma, se reduce el “leakage” y
           el espacio entre frecuencias obteniéndose una buena estimación del
           espectro original.            Sinusoide 1KHz
                        1

                      0.5
           Amplitud




                        0

                      -0.5

                       -1
                         0   0.001   0.002   0.003   0.004    0.005 0.006   0.007     0.008   0.009   0.01
                                                             Tiempo (s)

17/11/99                                                     Capítulo 6: Transformada Discreta de Fourier (DFT)      17
5º Curso-Tratamiento Digital de Señal


                            Transformada Discreta de Fourier
                                                      DFT
                            80

                            60
             Magnitud DFT
                            40

                            20

                             0
                            -4000 -3000 -2000 -1000    0     1000   2000    3000
                                                 Frecuencia (Hz)

 Ì    DFT de señales aperiódicas
       x   La señal aperiódica x(t) debe ser muestreada durante un tiempo D. El
           DFT produce los coeficientes espectrales correspondientes a la
           extensión periódica de x(t) con periodo D. El espacio entre frecuencias
           es f0=1/D. A f0 se le denomina resolución frecuencial. Esta depende
           sólo de la duración. Si la señal está limitada en el tiempo, la forma de
           aumentar la duración es añadir ceros.

17/11/99                                               Capítulo 6: Transformada Discreta de Fourier (DFT)   18
5º Curso-Tratamiento Digital de Señal


                                         Transformada Discreta de Fourier
                                               Señal x(t)=exp(-t)                                                               Señal x(t)=exp(-t)
                     1.5                                                                                   5

                                                                                                         4.5

                                                                                                           4

                                                                                                         3.5
                       1
                                                                                                           3
   Magnitud




                                                                                              Magnitud
                                                                                                         2.5

                                                                                                           2
                     0.5
                                                                                                         1.5

                                                                                                           1

                                                                                                         0.5

                       0                                                                                   0
                           0             0.5              1               1.5         2                     -4   -3     -2     -1       0        1      2    3    4
                                                     Tiempo (s)                                                                  Frecuencia (Hz)


                                                Señal x(t)=exp(-t)                                                              Señal x(t)=exp(-t)
                      1.5                                                                                2.5



                                                                                                           2


                           1
                                                                                                         1.5
          Magnitud




                                                                                              Magnitud
                                                                                                           1
                      0.5


                                                                                                         0.5



                           0                                                                               0
                               0   0.5     1   1.5       2          2.5    3    3.5   4                     -2   -1.5   -1     -0.5      0        0.5   1   1.5   2
                                                     Tiempo (s)                                                                   Frecuencia (Hz)




17/11/99                                                                                  Capítulo 6: Transformada Discreta de Fourier (DFT)                          19
5º Curso-Tratamiento Digital de Señal


               Transformada Discreta de Fourier
 Ì    Tal y como se observa en las figuras de la páginas anteriores
      hay varias formas de dibujar la gráfica de la DFT de una
      secuencia de datos.
 Ì    Una de ellas es indicarlo directamente mediante el índice k. Se
      puede observar que |XT[k]| es simétrico respecto a N/2.
 Ì    Otra forma es reordenando los datos en función de la frecuen-
      cia. De la definición de DFT sabemos que cada intervalo de la
      DFT es 1/(Nts). La DFT nos da la Transformada de Fourier
      para las frecuencias
           f          -(N/2)/(Nts),...,-1/(Nts),0, 1/(Nts), 2/(Nts)...(N/2-1)/(Nts)
           k               (N/2) ,..., N-1 ,0,        1     ,      2 ...       (N/2-1)
 Ì    La máxima frecuencia detectable por la DFT es lógicamente
      fs/2, de acuerdo con el Teorema del Muestreo.
17/11/99                                 Capítulo 6: Transformada Discreta de Fourier (DFT)      20
5º Curso-Tratamiento Digital de Señal


            Transformada Discreta de Fourier
 Ì    En general, el DFT es una aproximación a las series o a la
      transformada de Fourier. Es muy importante elegir
      correctamente los parámetros del DFT (frecuencia de
      muestreo fs=1/ts, resolución de frecuencia f0=1/D).
 Ì    La frecuencia de muestreo se determina a partir del teorema
      de muestreo. Si queremos detectar el espectro de una señal
      hasta una máxima frecuencia B , la frecuencia de muestreo
      deberá ser 2B.
 Ì    La duración del muestreo se elige para una determinada
      resolución de frecuencia.
 Ì    Una regla de diseño muy útil es: Si queremos los M primeros
      armónicos de una señal con un error máximo del 5%, el
      número de muestreos N=8M.
17/11/99                          Capítulo 6: Transformada Discreta de Fourier (DFT)   21
5º Curso-Tratamiento Digital de Señal


               Transformada Discreta de Fourier
 Ì    Ejemplo: Queremos determinar mediante un algoritmo digital
      el espectro de la señal x(t)=exp(-t). La máxima frecuencia de
      la que pide su coeficiente es fB=1Hz. Además el armónico
      correspondiente a f=0.3Hz debe tener un error menor que el
      5%. Calcular fs,D y N.
       x   De acuerdo con el Teorema del Muestreo fs=2fB=2Hz.
       x   Escogemos una resolución frecuencial de f0=0.1Hz, de forma que
           D=1/0.1=10s.
       x   La frecuencia 0.3Hz se corresponde con el índice k=3, por lo que
           N=3· 8=24 muestreos. Esto me indica que fs=N/D=24/10=2.4  2.
       x   Si el objetivo es hacer que N sea lo menor posible (para facilitar los
           cálculos del DFT), se puede elegir f0=0.3Hz, D=1/0.3=3.33s, k=1 y
           N=1· 8=8.


17/11/99                                  Capítulo 6: Transformada Discreta de Fourier (DFT)   22
5º Curso-Tratamiento Digital de Señal


                                 Transformada Discreta de Fourier
                                     Señal x(t)=exp(-t)                                                                            Señal x(t)=exp(-t)
             1.5                                                                                     1.2


                                                                                                       1


               1                                                                                     0.8
  Magnitud




                                                                               Magnitud
                                                                                                     0.6


             0.5                                                                                     0.4


                                                                                                     0.2


               0                                                                                      0
                   0         2         4              6          8       10                           -1.5        -1        -0.5           0             0.5         1   1.5
                                              Tiempo (s)                                                                           Frecuencia (Hz)


                                     Señal x(t)=exp(-t)                                                                             Señal x(t)=exp(-t)
             1.5                                                                                           1

                                                                                                      0.9

                                                                                                      0.8

                                                                                                      0.7
               1
                                                                                                      0.6
  Magnitud




                                                                                          Magnitud
                                                                                                      0.5

                                                                                                      0.4
             0.5
                                                                                                      0.3

                                                                                                      0.2

                                                                                                      0.1

               0                                                                                           0
                   0   0.5       1         1.5        2    2.5       3                                     -1.5        -1           -0.5             0         0.5        1
                                           Tiempo (s)                                                                                Frecuencia (Hz)




17/11/99                                                                      Capítulo 6: Transformada Discreta de Fourier (DFT)                                               23
5º Curso-Tratamiento Digital de Señal


            Transformada Discreta de Fourier
 Ì    Ventanas espectrales: Si tenemos señales truncadas, el
      espectro de la señal muestra unos picos que no decaen lo
      suficientemente rápido con la frecuencia. Para ello podemos
      utilizar ventanas en el dominio temporal para suavizar esas
      discontinuidades. Los picos serán menores aunque el ancho de
      banda de cada lóbulo aumentará.




17/11/99                         Capítulo 6: Transformada Discreta de Fourier (DFT)   24
5º Curso-Tratamiento Digital de Señal


   Resumen de Series y Transformadas de Fourier

 Ì    Series de Fourier
       x   Señal Continua Periódica (periodo T), Espectro Discreto Aperiódico
           (intervalo de discretización 1/T)
 Ì    Transformada de Fourier
       x   Señal Continua Aperiódica, Espectro Continuo Aperiódico.
 Ì    Transformada de Fourier Discreta en el Tiempo
       x   Señal Discreta Aperiódica (intervalo de discretización ts), Espectro
           Continuo Periódico (periodo 1/ ts)
 Ì    Transformada Discreta de Fourier
       x   Señal Discreta Periódica (intervalo de discretización ts, periodo T),
           Espectro Discreto (intervalo de discretización 1/T)



17/11/99                                   Capítulo 6: Transformada Discreta de Fourier (DFT)   25
5º Curso-Tratamiento Digital de Señal


                  FFT (Fast Fourier Transform)
 Ì    La importancia de DFT estriba en que es posible utilizar un
      algoritmo, llamado FFT, que lo realiza de forma eficiente y
      rápida.
 Ì    El DFT de una secuencia x[n] es :
                      N −1
                    X[ k ] =   ∑ x[n]WNnk           k = 0,1, , N − 1
                               n=0

                    donde            WN = e − j 2π / N
           Una primera aproximación al cálculo del DFT requeriría la suma
           compleja de N multiplicaciones complejas para cada uno de las
           salidas. En total, N2 multiplicaciones complejas y N2 sumas complejas
           para realizar un DFT de N puntos.

           Lo que consigue el algoritmo FFT es simplicar enormemente el
           cálculo del DFT introduciendo “atajos” matemáticos para reducir
           drasticamente el número de operaciones.
17/11/99                                                 Capítulo 6: Transformada Discreta de Fourier (DFT)   26
5º Curso-Tratamiento Digital de Señal


                  FFT (Fast Fourier Transform)
 Ì    La optimización del proceso de cálculo del DFT está basado
      en las siguientes ideas :
       x   Simetría y Periodicidad de los términos WN.
                           WN + N = WN
                            n        n
                                                       WNNk = 1
                           WN + N / 2 = − WN
                            n              n
                                                       WN = WN / 2
                                                        2


       x   Elegimos el valor de N de forma que N=rm. Al factor r se le denomina
           radix y su valor más habitual es 2, de forma que N=2m y algoritmo se
           denomina FFT radix-2.
 Ì    Radix-2 FFT-Decimación en el Tiempo.
       x   Dividimos la secuencia de datos de entrada x[n] en dos grupos, uno de
           índices par y el otro de índices impar. Con estas sub-secuencias se
           realiza el DFT de N/2 puntos y sus resultados se combinan para formar
           el DFT de N puntos.


17/11/99                                       Capítulo 6: Transformada Discreta de Fourier (DFT)   27
5º Curso-Tratamiento Digital de Señal


                           FFT (Fast Fourier Transform)
               N / 2 −1                  N / 2 −1                                 N / 2 −1                N / 2 −1
     X[k ] =    ∑ x[2n]W      2 nk
                              N      +    ∑ x[2n + 1]W         ( 2 n +1) k
                                                               N              =    ∑ x[2n]W  2 nk
                                                                                             N      +Wk
                                                                                                      N    ∑ x[2n + 1]WN2 nk
                n=0                       n=0                                      n=0                     n=0

     Sustituimos          x1 [n] = x[2 n]
                          x 2 [n] = x[2 n + 1]
                          WN nk = WN / 2
                           2       nk

               N / 2 −1                        N / 2 −1
     X[k ] =    ∑ x1 [n]W     nk
                              N /2   +W    k
                                           N    ∑ x 2 [n]WNnk/ 2 = Y[k ] + WNk Z[k ]                 k = 0,1,2,, N − 1
                n=0                             n=0


 x   Esta última ecuación muestra que el DFT de N puntos es la suma de dos
     DFTs de N/2 puntos (Y[k], Z[k]) realizadas con las secuencias par e impar
     de la secuencia original x[n]. Cada término Z[k] es multiplicado por un
     factor WNk, llamado “twiddle factor”. Ya que WNk+N/2=-WNk y debido a la
     periodicidad de Y[k] y Z[k] (periodo N/2) podemos poner X[k] como
                                          X [ k ] = Y [ k ] + WN [ k ] ⋅ Z [ k ]
                                                               k


                                          X [ k + N / 2] = Y [ k ] − WN [ k ] ⋅ Z [ k ]
                                                                      k


                                          Para            k = 0,1, , N / 2 − 1

17/11/99                                                                     Capítulo 6: Transformada Discreta de Fourier (DFT)      28
5º Curso-Tratamiento Digital de Señal


                                      FFT (Fast Fourier Transform)
                                                             Y[0]

                           x[0]
                                                                                                +      X[0]




                                                             Y[1]

                           x[2]
                                                                                                +      X[1]




                                            DFT
                                         N/2 Puntos
                                                         Y[N/2-1]

                  x[N-2]
                                                                                                +      X[N/2-1]




                                                                     W0
                           x[1]
                                                            Z[0]

                                                                      x               -1        +      X[N/2]




                                                                     W1
                           x[3]
                                                            Z[1]

                                                                      x                    -1   +      X[N/2+1]




                                            DFT
                                         N/2 Puntos
                                                                    WN / 2 - 1
                  x[N-1]
                                                         Z[N/2-1]

                                                                      x                    -1   +      X[N-1]




 x    Los dos DFT de N/2 puntos se puede a su vez dividir para formar 4 DFTs
      de N/4 puntos, lo que produce las siguientes ecuaciones
       Y [k ] = U[k ] + WN k V [k ]
                         2
                                             Z[k ] = R[k ] + WN k S[k ]
                                                              2


           Y [k + N / 4] = U[k ] − WN k V [k ]
                                    2
                                                                                 Z[k + N / 4] = R[k ] − WN k S[k ]
                                                                                                         2


           Para                   k = 0,1,, N / 4 − 1                           Para      k = 0,1,, N / 4 − 1
17/11/99                                                             Capítulo 6: Transformada Discreta de Fourier (DFT)              29
5º Curso-Tratamiento Digital de Señal


                  FFT (Fast Fourier Transform)
       x   El proceso puede repetirse sucesivamente hasta llegar a computar el
           DFT de dos valores x[n], en concreto x[k] y x[k+N/2], para
           k=0,1,...,N/2-1. Para una DFT de N=8 puntos tenemos el siguiente
           esquema Butterfly
                   x[0]                    +                     +                            +     X[0]
                                  0
                          W



                   x[4]       x       -1
                                           +                     +                            +     X[1]
                                                       0
                                               W



                   x[2]                    +       x       -1
                                                                 +                            +     X[2]
                                  0                    2
                          W                    W



                   x[6]       x       -1
                                           +       x       -1
                                                                 +                            +     X[3]



                                                                              0
                                                                          W



                   x[1]                    +                     +        x          -1
                                                                                              +     X[4]
                                  0                                           1
                          W                                               W



                   x[5]       x       -1
                                           +                     +        x          -1
                                                                                              +     X[5]
                                                       0                      2
                                               W                          W



                   x[3]                    +       x       -1
                                                                 +        x          -1
                                                                                              +     X[6]
                                  0                    2                      3
                          W                    W                          W



                   x[7]       x       -1
                                           +       x       -1
                                                                 +        x          -1
                                                                                              +     X[7]

                              Etapa 1              Etapa 2                        Etapa 3

17/11/99                                                        Capítulo 6: Transformada Discreta de Fourier (DFT)   30
5º Curso-Tratamiento Digital de Señal


                    FFT (Fast Fourier Transform)
       x   Las características de una FFT de N puntos decimada en el tiempo se
           sumarizan en la siguiente tabla :
                             Etapa 1       Etapa 2         Etapa 3          Etapa log2N
        Número de               N/2          N/4              N/8                  1
          Grupos
       Butterflies por           1             2                4                 N/2
           Grupo
        Exponentes            (N/2)k,       (N/4)k,        (N/8)k,        k,
      Twiddle Factors          k=0           k=0,1        k=0,1,2,3 k=0,1,...,N/2-1

       x   Por cada butterfly tenemos una multiplicación y dos sumas complejas.
           Hay N/2 butterflies por etapa y log2N etapas.
            3   El número total de multiplicaciones es ½N·log2N .
            3   El número total de sumas es N·log2N .



17/11/99                                     Capítulo 6: Transformada Discreta de Fourier (DFT)   31
5º Curso-Tratamiento Digital de Señal


                   FFT (Fast Fourier Transform)
       x   Para pequeños valores de N, la diferencia puede parecer pequeña, pero
           para valores grandes la diferencia es enorme. Para un DFT de 1024
           puntos, el número de multiplicaciones en un FFT es aprox. 5000
           mientras que para un DFT normal es de aprox. 106.
 Ì    Radix-2 FFT-Decimación en Frecuencia
       x   Expresaremos el FFT como suma de los FFT de dos secuencias, la
           primera con los N/2 primeros datos y la segunda con los N/2 últimos.
                           N −1                N / 2 −1                        N −1
                 X[k ] =   ∑ x[n]W    nk
                                      N    =    ∑ x[n]W              nk
                                                                     N    +    ∑ x[n]WNnk
                           n=0                  n=0                           n= N / 2
                           N / 2 −1            N / 2 −1
                      =     ∑ x[n]W   nk
                                      N    +     ∑ x[n + N / 2]WN( n+ N / 2 )k
                            n=0                  n=0
                           N / 2 −1                           N / 2 −1
                      =     ∑ x[n]W   nk
                                      N    + (−1)         k
                                                               ∑ x[n + N / 2]WNnk
                            n=0                                n=0
                           N / 2 −1
                      =     ∑ [x[n] + (−1)k x[n + N / 2]]WNnk                            k = 0,1,2, , N − 1
                            n=0


17/11/99                                                        Capítulo 6: Transformada Discreta de Fourier (DFT)           32
5º Curso-Tratamiento Digital de Señal


                       FFT (Fast Fourier Transform)
       x       La decimación en frecuencia se obtiene dividiendo la secuencia de
               salida (X[k]) en dos ecuaciones, una para los índices pares y otro para
               los impares.
                                 N / 2 −1
                     X[2 k ] =    ∑ [ x[n] + x[n + N / 2]]WN2 nk
                                  n=0
                                 N / 2 −1
                            =     ∑ [ x[n] + x[n + N / 2]]WNnk/ 2        k = 0,1, , N / 2 − 1
                                  n=0

                                      N / 2 −1
                     X[2 k + 1] =       ∑ [ x[n] − x[n + N / 2]]WNn(2 k +1)
                                        n=0
                                      N / 2 −1
                                  =     ∑ [[ x[n] − x[n + N / 2]]WNn ]WNnk/ 2       k = 0,1, , N / 2 − 1
                                        n=0



           x   X[2k] y X[2k+1] son los resultados del DFT de N/2 puntos realizado
               con las suma y la diferencia entre la primera y segunda mitades de la
               secuencia de entrada.

17/11/99                                                 Capítulo 6: Transformada Discreta de Fourier (DFT)      33
5º Curso-Tratamiento Digital de Señal


                      FFT (Fast Fourier Transform)
               x[0]                 +                                              X[0]

               x[1]                 +                                              X[2]
                                                         DFT
                                                      N/2 Puntos

           x[N/2-1]                 +                                              X[N-2]

                                            0
                                        W



             x[N/2]       -1
                                    +   x                                          X[1]
                                            1
                                        W



           x[N/2+1]            -1
                                    +   x                                          X[3]
                                                         DFT
                                                      N/2 Puntos
                                            N/2-1
                                        W



             x[N-1]            -1
                                    +   x                                          X[N-1]




17/11/99                                            Capítulo 6: Transformada Discreta de Fourier (DFT)   34
5º Curso-Tratamiento Digital de Señal


                  FFT (Fast Fourier Transform)
                                                        Butterfly


           x[0]               +               +                      +        X[0]
                                                                         W0
           x[1]               +               +                 -1   +   x    X[4]
                                                   W0
                                         -1
           x[2]               +               +    x                 +        X[2]
                                                   W2                    W0
           x[3]               +          -1   +    x            -1   +   x    X[6]



                                  W0
           x[4]     -1        +   x           +                      +        X[1]
                                  W1                                     W0
           x[5]     -1        +   x           +
                                                                -1   +   x    X[5]
                                  W2              W0
                    -1        +   x      -1   +   x                  +        X[3]
           x[6]
                                  W3              W2                     W0
           x[7]     -1        +   x      -1   +    x            -1   +   x    X[7]

                    Etapa 1             Etapa 2                Etapa 3

17/11/99                               Capítulo 6: Transformada Discreta de Fourier (DFT)      35
5º Curso-Tratamiento Digital de Señal


                  FFT (Fast Fourier Transform)
       x   Las característica del FFT decimado en frecuencia son
                         Etapa 1       Etapa 2           Etapa 3        Etapa log2N
       Número de
                           1             2             4                      N/2
         Grupos
      Butterflies por
                         N/2           N/4           N/8                       1
          Grupo
       Exponentes         n,           2n,           4n,                    (N/2)n,
     Twiddle Factors n=0,...,N/2-1 n=0,...,N/4-1 k=0,...,N/8-1               n=0

 Ì    Se puede observar que en el caso de decimación en el tiempo, la secuencia
      de entrada debe ser reordenada mientras que la salida aparece en el orden
      correcto.
 Ì    Para la decimación en frecuencia, la secuencia está en orden mientras que
      la salida habrá que reordenarla.
 Ì    Se da la circunstancia que esa reordenación es simplemente invertir el
      índice en binario. Por ejemplo, en la misma posición que x[1] aparece
      X[4], y 001 invertido es 100.
17/11/99                                 Capítulo 6: Transformada Discreta de Fourier (DFT)   36
5º Curso-Tratamiento Digital de Señal


                                FFT (Fast Fourier Transform)
 Ì    DFT en 2 dimensiones
       x         En aplicaciones como procesamiento de imagen, las señales dependen
                 de dos variables n1 y n2 (el eje x y el eje y en una imagen bidimensio-
                 nal). Por tanto necesitamos extender el concepto de DFT a dos dimen-
                 siones.
       x         Dada una secuencia x(n1,n2), se define la DFT como
                               N1 −1N 2 −1     − j (2 π            )            (           )
                               = =
                                           (
                               ∑ ∑ x n1 , n2 e      )         N1 k1 n1
                                                                          e
                                                                              − j 2 π N 2 k 2 n2
                                                                                                          0 ≤ n1 ≤ N 1 − 1, 0 ≤ n2 ≤ N 2 − 1
             (
           X k1 , k 2   )   =  n1 0 n2 0
                              0 , en otro caso
                              
                              

       x         La IDFT de X(k1,k2) se define como
                              1 N1 −1N1 −1                       j (2 π         )               (    )
                                      ∑∑                (      )
                                                     X k1 , k 2 e
                                                                              N1 k1 n1
                                                                                         e
                                                                                             j 2 π N 2 k2 n2
                                                                                                               0 ≤ n1 ≤ N 1 − 1, 0 ≤ n2 ≤ N 2 − 1
                              N 1 N 2 k1 = 0 k2 = 0
             (
            x n1 , n2   )   =
                             0 , en otro caso
                             
                             

17/11/99                                                                       Capítulo 6: Transformada Discreta de Fourier (DFT)                   37
5º Curso-Tratamiento Digital de Señal


                          FFT (Fast Fourier Transform)
 Ì    FFT-2D
       x   Al igual que en el caso de señales unidimensionales, disponemos de un
           eficiente algoritmo para realizar el DFT.
       x   Descomposición Fila-Columna
            3   Reescribimos la ecuación anterior
                         N −1N −1
                                          − j ( 2 π N ) k n − j (2 π N )k n
                  (           ) ∑∑ (                     )
                                 1       2

                X k ,k =
                      1   2      x n ,n e        1   2     e              1   1 1                 2   2 2


                                n1 = 0 n2 = 0

                                N1 −1                                                                         N 2 −1
                              = ∑ f (k1 , n2 )e
                                                (                     )                                                             (       )
                                                     − j 2 π N 2 k 2 n2
                                                                                              (
                                                                              , donde f k1 , n2 =           ) ∑ x (n        )
                                                                                                                       1 , n2 e
                                                                                                                                  − j 2 π N1 k1 n1

                                n1 = 0                                                                        n2 = 0


            3   Si consideramos n2 fijo (pe, n2 =0), f(k1,n2) es el DFT unidimensional de
                x(n1,n2)|n2=0 con respecto a la variable n1. De esta forma obtenemos una
                matriz f(k1,n2) para todos los posibles valores de n2 (Figura).
            3   Ahora podemos calcular X(k1,k2) a partir de f(k1,n2),
                                                             N 2 −1
                                                                                          (           )
                                             (
                                         X k1 , k 2 =) ∑ f (k             1   , n2 e)   − j 2 π N 2 k2 n2

                                                             n2 = 0



17/11/99                                                                  Capítulo 6: Transformada Discreta de Fourier (DFT)                         38
5º Curso-Tratamiento Digital de Señal


                        FFT (Fast Fourier Transform)
                3   Fijamos k1 (pe, k1=0), por lo que f(k1,n2)|k1=0 es una columna de f(k1,n2) y
                    X(0,k2) es la DFT unidimensional de f(k1,n2)|k1=0 con respecto a la variable
                    n2. Obtendremos X(k1,k2) haciendo N1 DFT 1D para cada valor de k1
                    (Figura).

           n2           x(n 1,n 2)                                    n2            f(k 1,n 2)
    N 2-1                                                         N 2-1




                                                      FFT 1D
                                                     N 1 puntos


                                                n1                                                            k1
                                        N 1-1                                                         N 1-1



17/11/99                                              Capítulo 6: Transformada Discreta de Fourier (DFT)      39
5º Curso-Tratamiento Digital de Señal


                 FFT (Fast Fourier Transform)
            n2   f(k 1 ,n 2 )                                             k2               X(k 1 ,k 2 )
   N 2 -1                                                        N 2 -1




                                                     FFT 1D
                                                    N 2 puntos




                                            k1                                                                     k1
                                   N 1 -1                                                                 N 1 -1


                                                  Número de                    Número de
                                                 Multiplicaciones               Sumas
                       Calculo Directo                 N12 N 2
                                                             2
                                                                                 N12 N 2
                                                                                       2


                      Descomposición
                     Fila-Columna con
                                                 N1 N 2
                                                            (
                                                        log2 N1 N 2   )               (
                                                                          N1 N 2 log2 N1 N 2   )
                                                   2
                          FFT 1D


17/11/99                                               Capítulo 6: Transformada Discreta de Fourier (DFT)               40
5º Curso-Tratamiento Digital de Señal


                            FFT con MATLAB
       X = fft(x)
          Hace la FFT del vector x. “X” es un vector de números complejos
          ordenados desde k=0...N-1. Se recomienda que la longitud del vector
          x sea una potencia de 2. Lo que no se recomienda es que la longitud
          de x sea un número primo.
          Otra opción del la FFT es especificar el número de puntos con el
          que se quiere hacer la FFT.
           X = fft(x,N)
              Si la longitud de x es menor que N, el vector se rellena con
              ceros. Si es mayor, el vector es truncado.
       x = ifft(X)
          Hace la FFT inversa del vector X. También se puede especificar el
          número de puntos N con el que quiero hacer la IFFT.
           x = ifft(X,N)

        X = fftshift(X)
           Reordena el vector X en orden creciente de frecuencia. Si “X” es el
           vector resultante de hacer una FFT, utilizando esta función
           reordenamos los puntos en función de la frecuencia.


 Ì    A continuación tienen unos ejemplos del uso de las FFT. Los programas de
      MATLAB utilizados los pueden conseguir en el Web de la asignatura.

17/11/99                                   Capítulo 6: Transformada Discreta de Fourier (DFT)   41
5º Curso-Tratamiento Digital de Señal

           FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40)
                               N=128 D=1 s
                                                              x(t)
                           2
                        1.5
                           1
                        0.5
                           0
                 x(t)


                        -0.5
                          -1
                        -1.5
                          -2
                               0         0.2           0.4           0.6             0.8          1
                                                          Tiempo (s)

                                         Módulo de Coeficientes Espectrales |X[k]|
                        0.6

                        0.5

                        0.4
               |X[k]|




                        0.3
                        0.2

                        0.1
                          0
                          -80      -60      -40      -20      0        20      40          60    80
                                                       Frecuencia (Hz)


17/11/99                                                     Capítulo 6: Transformada Discreta de Fourier (DFT)         42
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40)
                                                    N=128 D=1 s
                                             Fase de Coeficientes Espectrales X[k]
                       2000

                       1500
            Fase (º)   1000

                         500

                            0

                        -500

                       -1000-80      -60      -40       -20      0        20         40          60   80
                                                          Frecuencia (Hz)

                                   Comparación entre x(t) y su reconstrucción a partir de X[k]
                           2.5
                             2
                           1.5
                             1
                           0.5
               x(t)




                             0
                          -0.5
                            -1
                          -1.5
                            -2 0            0.2           0.4                0.6          0.8         1
                                                                Tiempo (t)

17/11/99                                                        Capítulo 6: Transformada Discreta de Fourier (DFT)     43
5º Curso-Tratamiento Digital de Señal

              FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40)
                                            N=128 D=1 s

                           Comparación entre x(t) y su reconstrucción a partir de X[k]

                 2

               1.5

                 1

               0.5
       x(t)




                 0

              -0.5

                -1

              -1.5
                  0.91   0.92    0.93     0.94     0.95      0.96    0.97     0.98       0.99
                                                    Tiempo (t)




17/11/99                                                  Capítulo 6: Transformada Discreta de Fourier (DFT)    44
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40)
                                                            N=32 D=1 s
                                              Módulo de Coeficientes Espectrales |X[k]|
                           0.6
                                                              Aliasing 32-20=12 Hz
                           0.5

           |X[k]|          0.4

                           0.3

                           0.2

                           0.1

                             0
                             -20        -15           -10      -5        0        5             10    15
                                                             Frecuencia (Hz)
                                     Comparación entre x(t) y su reconstrucción a partir de X[k]
                             2.5
                               2
                             1.5
                               1
                             0.5
                    x(t)




                               0
                            -0.5
                              -1
                            -1.5
                              -2
                            -2.5 0              0.2          0.4          0.6             0.8         1
                                                                Tiempo (t)


17/11/99                                                          Capítulo 6: Transformada Discreta de Fourier (DFT)        45
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100)
                                             N=256 D=1 s
                                         x(t)=exp(-2t)+0.2·chirp(60-100)
                        1.2
                          1
                        0.8
                        0.6
                x(t)
                        0.4
                        0.2
                          0
                       -0.2 0      0.2             0.4          0.6        0.8          1
                                                      Tiempo (s)

                                  Módulo de los coeficientes espectrales |X[k]|
                       0.45
                        0.4
                       0.35
                        0.3
                       0.25
             |X[k]|




                        0.2
                       0.15
                        0.1
                       0.05
                           0
                          -150   -100        -50           0          50          100   150
                                                    Frecuencia (Hz)


17/11/99                                                Capítulo 6: Transformada Discreta de Fourier (DFT)    46
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100)
                                                      N=256 D=1 s
                                              Fase de los coeficientes espectrales X[k]
                               1500

                               1000


              Fase(X[k]) (º)
                                500

                                  0

                               -500

                           -1000

                           -1500
                               -150      -100         -50          0                 50    100       150
                                                            Frecuencia (Hz)

                                         Comparación entre x(t) y su reconstrucción a partir de X[k]
                                1.4
                                1.2
                                   1
                                0.8
                        x(t)




                                0.6
                                0.4
                                0.2
                                   0
                                -0.2 0       0.2            0.4                0.6        0.8          1
                                                                  Tiempo (t)


17/11/99                                                            Capítulo 6: Transformada Discreta de Fourier (DFT)       47
5º Curso-Tratamiento Digital de Señal

                  FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100)
                                               N=256 D=1 s



                           Comparación entre x(t) y su reconstrucción a partir de X[k]
                      1

                    0.8

                    0.6
           x(t)




                    0.4

                    0.2

                      0

                              0.96            0.97           0.98            0.99            1
                                                     Tiempo (t)




17/11/99                                                 Capítulo 6: Transformada Discreta de Fourier (DFT)       48
5º Curso-Tratamiento Digital de Señal
               FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100)
                                                            N=64 D=0.1 s
                                             Módulo de los coeficientes espectrales |X[k]|
                            0.1
                           0.09
                           0.08
                           0.07
                           0.06
           |X[k]|


                           0.05
                           0.04
                           0.03
                           0.02
                           0.01
                               0
                              -400       -300     -200     -100      0       100       200          300   400
                                                              Frecuencia (Hz)
                                      Comparación entre x(t) y su reconstrucción a partir de X[k]
                            1.2

                            1.1

                              1
                    x(t)




                            0.9

                            0.8

                            0.7

                            0.6
                                  0             0.02         0.04           0.06             0.08         0.1
                                                                 Tiempo (t)


17/11/99                                                             Capítulo 6: Transformada Discreta de Fourier (DFT)        49
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej3.m → x(t)=exp(-2·t)·sin(2· π·200·t)
                                                N=128 D=0.2 s
                                                x(t)=exp(-2t)·sin(2· p·200· t)
                         1
                       0.8
                       0.6
                       0.4
                       0.2

               x(t)
                         0
                      -0.2
                      -0.4
                      -0.6
                      -0.8
                        -1 0             0.05                0.1                 0.15           0.2
                                                          Tiempo (t)

                                   Módulo de los coeficientes espectrales de x(t)
                      0.09
                      0.08
                      0.07
                      0.06
                      0.05
             |X[k]|




                      0.04
                      0.03
                      0.02
                      0.01
                          0
                         -400   -300    -200       -100       0       100        200    300     400
                                                      Frecuencia (Hz)


17/11/99                                                   Capítulo 6: Transformada Discreta de Fourier (DFT)        50
5º Curso-Tratamiento Digital de Señal
                        FFT con MATLAB: fftej3.m → x(t)=exp(-2·t)·sin(2· π·200·t)
                                                 N=128 D=0.2 s


                                         Fase de los coeficientes espectrales X[k]
                       200

                       150
                       100

                         50
           Fase X[k]




                          0
                        -50

                       -100
                       -150

                       -200
                          -400   -300   -200     -100       0       100          200       300      400
                                                    Frecuencia (Hz)




17/11/99                                                    Capítulo 6: Transformada Discreta de Fourier (DFT)        51
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t))
                                                N=256 D=0.5 s
                                               x(t)=sin(2·pi·200·t+5·sin(2· pi·2· t)
                               1
                             0.8
                             0.6
                             0.4
                             0.2

                     x(t)
                               0
                            -0.2
                            -0.4
                            -0.6
                            -0.8
                              -1 0       0.1              0.2                0.3         0.4          0.5
                                                                Tiempo (t)

                                      Módulo de los coeficientes espectrales de x(t)
                             0.1
                            0.09
                            0.08
                            0.07
                            0.06
                 |X[k]|




                            0.05
                            0.04
                            0.03
                            0.02
                            0.01
                                0
                               -300   -200         -100           0                100     200       300
                                                          Frecuencia (Hz)


17/11/99                                                     Capítulo 6: Transformada Discreta de Fourier (DFT)           52
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t))
                                              N=256 D=0.5 s



                                      Fase de los coeficientes espectrales X[k]
                        7000

                        6000
                        5000

                        4000
            Fase X[k]




                        3000
                        2000

                        1000
                               0

                        -1000
                            -300   -200         -100           0            100          200         300
                                                       Frecuencia (Hz)




17/11/99                                                 Capítulo 6: Transformada Discreta de Fourier (DFT)        53
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t))
                                                N=128 D=0.2 s
                                            x(t)=sin(2·pi·200·t+5·sin(2· pi·2· t)
                            1
                         0.8
                         0.6
                         0.4
                         0.2
                 x(t)       0
                        -0.2
                        -0.4
                        -0.6
                        -0.8
                           -1 0           0.05                 0.1                  0.15            0.2
                                                           Tiempo (t)
                                         Módulo de los coeficientes espectrales de x(t)
                        0.06

                        0.05

                        0.04
               |X[k]|




                        0.03

                        0.02

                        0.01

                           0
                          -400    -300   -200       -100       0       100          200    300     400
                                                       Frecuencia (Hz)


17/11/99                                                   Capítulo 6: Transformada Discreta de Fourier (DFT)         54
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t))
                                                N=128 D=0.2 s

                                      Fase de los coeficientes espectrales X[k]
                       700

                       600

                       500

                       400
           Fase X[k]




                       300

                       200

                       100

                         0
                        -400   -300      -200      -100       0       100         200      300      400
                                                      Frecuencia (Hz)




17/11/99                                                   Capítulo 6: Transformada Discreta de Fourier (DFT)      55
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej5.m → x(t)=sin(2· π·200·t-5· exp(-2·t))
                                              N=256 D=0.5 s
                                            x(t)=sin(2·pi·200·t-5·exp(-2t))
                         1
                       0.8
                       0.6
                       0.4
                       0.2
               x(t)      0
                      -0.2
                      -0.4
                      -0.6
                      -0.8
                        -1
                              0      0.1             0.2                0.3         0.4         0.5
                                                           Tiempo (t)
                                  Módulo de los coeficientes espectrales de x(t)
                      0.18
                      0.16
                      0.14
                      0.12
             |X[k]|




                        0.1
                      0.08
                      0.06
                      0.04
                      0.02
                          0
                         -300     -200        -100           0                100     200       300
                                                     Frecuencia (Hz)

17/11/99                                                    Capítulo 6: Transformada Discreta de Fourier (DFT)       56
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej5.m → x(t)=sin(2· π·200·t-5· exp(-2·t))
                                                  N=256 D=0.5 s
                          150                  Fase de los coeficientes espectrales X[k]

                          100

                           50

              Fase X[k]
                            0

                          -50

                     -100

                     -150
                        -300       -200           -100           0               100         200        300
                                                         Frecuencia (Hz)
                                        Comparación entre el espectro de señales moduladas
                                          en amplitud (x) y moduladas en frecuencia (o)
                           80
                           70
                           60
                           50
                           40
                           30
                           20
                           10
                            0
                            160   170       180      190       200         210         220     230     240

17/11/99                                                      Capítulo 6: Transformada Discreta de Fourier (DFT)              57
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej7.m → x(t)=exp(-2·t)·sin(2· π·3·t)
                                                    N=16 D=1 s
                          1     Puntos de muestreo (--) y Reconstrucción a partir de X[k] (o)
                        0.8
                        0.6
                        0.4
                        0.2

               x(t)
                          0
                       -0.2
                       -0.4
                       -0.6
                       -0.8 0            0.2           0.4           0.6             0.8           1
                                                          Tiempo (s)


                       0.25             Módulo de los coeficientes espectrales de x(t)

                        0.2

                       0.15
              |X[k]|




                        0.1

                       0.05

                          0
                           -8      -6          -4     -2       0        2        4          6      8
                                                        Frecuencia (Hz)

17/11/99                                                    Capítulo 6: Transformada Discreta de Fourier (DFT)            58
5º Curso-Tratamiento Digital de Señal
           FFT con MATLAB: fftej7.m → x(t)=exp(-2·t)·sin(2· π·3·t)
                                                    N=16 D=1 s
                                          Fase de los coeficientes espectrales X[k]
                           200
                           150
                           100
                            50


               Fase X[k]
                              0
                           -50
                     -100
                     -150
                     -200-8          -6       -4       -2       0        2            4        6      8
                                                         Frecuencia (Hz)


                                    Comparación entre x(t) y su reconstrucción a partir de X[k]
                              1
                            0.8
                            0.6
                            0.4
                            0.2
                 x(t)




                              0
                           -0.2
                           -0.4
                           -0.6
                           -0.8 0             0.5               1                 1.5                 2
                                                            Tiempo (t)

17/11/99                                                    Capítulo 6: Transformada Discreta de Fourier (DFT)             59
5º Curso-Tratamiento Digital de Señal
     FFT con MATLAB: fftej7.m → x(t)= (1+t2/2)·sin(2· π·5·t)+ 0.2·chirp(20-60)
                                                      N=128 D=1 s
                                             Módulo de los coeficientes espectrales de x(t) |X[k]|
                               0.6

                               0.5

                               0.4


                      |X[k]|
                               0.3

                               0.2

                               0.1

                                 0
                                 -80   -60      -40      -20      0        20         40        60     80
                                                           Frecuencia (Hz)

                                                 Fase de los coeficientes espectrales X[k]
                           2000
                           1500
                           1000
               Fase X[k]




                               500
                                 0
                           -500
                      -1000
                      -1500
                           -80         -60      -40      -20      0        20         40        60     80
                                                           Frecuencia (Hz)


17/11/99                                                        Capítulo 6: Transformada Discreta de Fourier (DFT)            60
5º Curso-Tratamiento Digital de Señal
     FFT con MATLAB: fftej8.m → x(t)= (1+t2/2)·sin(2· π·5·t)+ 0.2·chirp(20-60)
                                                        N=128 D=1 s

                             Comparación entre x(t) y su reconstrucción a partir de X[k]
                  2.5
                     2
                  1.5
                     1
                  0.5
           x(t)




                     0
                  -0.5
                    -1
                  -1.5
                    -2
                  -2.5
                         0                        0.5                           1                        1.5
                                                            Tiempo (t)




17/11/99                                                       Capítulo 6: Transformada Discreta de Fourier (DFT)       61
5º Curso-Tratamiento Digital de Señal
                                  FFT con MATLAB: goodbye.m
                                  N=4096 Fs=22050 Hz Nh=1000
                                                        goodbye.au
            0.25
              0.2
            0.15
              0.1
            0.05
                0
           -0.05
             -0.1
           -0.15
             -0.2
           -0.25 0                      0.05                0.1               0.15               0.2
                                                         Tiempo (s)
                             -4
                    9 x 10                      Espectro de goodbye.au
                    8
                    7
           |X[k]|




                    6
                    5
                    4
                    3
                    2
                    1
                    0
                    -1.5           -1          -0.5          0          0.5            1         1.5
                                                                                                  4
                                                      Frecuencia (Hz)                        x 10


17/11/99                                                  Capítulo 6: Transformada Discreta de Fourier (DFT)          62
5º Curso-Tratamiento Digital de Señal
                                    FFT con MATLAB: goodbye.m
                                    N=4096 Fs=22050 Hz Nh=1000
                          -4
                   x 10                 Espectro de goodbye.au filtrado
               9
               8
               7
               6

       |X[k]   5
               4
               3
               2
               1
                0
               -1.5            -1        -0.5          0           0.5        1             1.5
                                                                                            4
                                                                                     x 10




17/11/99                                              Capítulo 6: Transformada Discreta de Fourier (DFT)   63
5º Curso-Tratamiento Digital de Señal
                                         FFT con MATLAB: good_wnd.m
                                    Ni=1245 Nw=128 Nh=10 Fs=22050 Hz
                                            Señal (--) y Recontrucción con 10 armónicos (--)
                              0.03
                              0.02
                              0.01



           Amplitud y(t)
                                    0
                            -0.01
                            -0.02
                            -0.03
                            -0.04
                               0.056      0.057   0.058       0.059    0.06        0.061       0.062    0.063
                                                                Tiempo (s)

                                                  Espectro de la señal (--) y filtrado (--)
                                0.9
                                0.8
                                0.7
                                0.6
                                0.5
                           |Y[k]|




                                0.4
                                0.3
                                0.2
                                0.1
                                   0
                                  -1.5       -1        -0.5          0           0.5            1          1.5
                                                              Frecuencia (Hz)                               4
                                                                                                       x 10

17/11/99                                                         Capítulo 6: Transformada Discreta de Fourier (DFT)            64

Más contenido relacionado

PDF
TRANSFORMADA RAPIDA DE FOURIER
PPT
Transformada Discreta de Fourier
PPT
Transformada De Fourier
PDF
Solución ejercicios 9 12
PPT
TRANSFORMADA DISCRETA DE FOURIER
PDF
Practica3
PDF
Utp pds_l5_transformada discreta de fourier
PDF
TRANSFORMADA RAPIDA DE FOURIER
Transformada Discreta de Fourier
Transformada De Fourier
Solución ejercicios 9 12
TRANSFORMADA DISCRETA DE FOURIER
Practica3
Utp pds_l5_transformada discreta de fourier

La actualidad más candente (20)

DOCX
Matematica iv transformada de fourier 2.doc
PDF
Ecuacion de furrier
PDF
Convolución y su transformada de fourier
DOCX
Tarea tress de comunicaciones3333333333333
PDF
PDF
Transformaciones de procesos
PDF
Transformada de Fourier
PDF
Analisis de algoritmos tarea 2
PDF
Actividad Aprentic
PDF
1 Principios De MecáNica CuáNtica
PDF
Implicit
PDF
PDF
Ultrasonido
PDF
Capítulo 7 integral_de_duhamel
PDF
Analissis espectral
PDF
La Transformada de Fourier
PDF
Intro parte4
PDF
Procesamiento digital de señales con matlab
DOC
Cap 8 ondas 205-225
DOC
Cap 8 ondas 205-225 (1)
Matematica iv transformada de fourier 2.doc
Ecuacion de furrier
Convolución y su transformada de fourier
Tarea tress de comunicaciones3333333333333
Transformaciones de procesos
Transformada de Fourier
Analisis de algoritmos tarea 2
Actividad Aprentic
1 Principios De MecáNica CuáNtica
Implicit
Ultrasonido
Capítulo 7 integral_de_duhamel
Analissis espectral
La Transformada de Fourier
Intro parte4
Procesamiento digital de señales con matlab
Cap 8 ondas 205-225
Cap 8 ondas 205-225 (1)
Publicidad

Destacado (10)

PPT
Semiconductores IES Astures
PPT
Electrónica digital
PDF
Señales
PPT
Señales datos
PPTX
Presentación tema 2 - señales analógicas
PPT
Unidad 1 fundamentos de circuitos logicos
PPT
Sesion 2 - Señales Analógica y Digital
PPTX
Señales analogicas
PPT
Señal Digital y Señal Analógica
PPT
5º Jornadas AMUVA - Sensores
Semiconductores IES Astures
Electrónica digital
Señales
Señales datos
Presentación tema 2 - señales analógicas
Unidad 1 fundamentos de circuitos logicos
Sesion 2 - Señales Analógica y Digital
Señales analogicas
Señal Digital y Señal Analógica
5º Jornadas AMUVA - Sensores
Publicidad

Similar a Tema6 t fourier (20)

PDF
147994600 transformada-de-fourier
PPT
Balotario-Examen-Parcial-verano-2024.ppt
PPT
transformadadiscretadefourier-1229983928901537-2.ppt
PPTX
Transformada-Discreta-FourierSDAdaDadADadasdas.pptx
PPT
mapa mental. Transformada Discreta de Fourier.ppt
PDF
Utp pds_s7y8_dft y fft
PDF
MA185 MATEMÁTICA V 3era Práctica Calificada
PDF
Analisis de señales discretas en t
PDF
Procesamiento Digital de Señales, Filtros
DOCX
Practica no. 1 espectros de frecuencia
PDF
Intro parte3
PDF
semna2.pdf
PDF
Problemas resueltoscap4
PDF
PPT
Teorema del muestro y PCM
PDF
Solucionario Final de Matemática V - FIEE UNI 2016 II
PPTX
Transformada de Fourier.pptx
DOCX
Aplicaicones de las series de fourier
PDF
Trabajo fourier
147994600 transformada-de-fourier
Balotario-Examen-Parcial-verano-2024.ppt
transformadadiscretadefourier-1229983928901537-2.ppt
Transformada-Discreta-FourierSDAdaDadADadasdas.pptx
mapa mental. Transformada Discreta de Fourier.ppt
Utp pds_s7y8_dft y fft
MA185 MATEMÁTICA V 3era Práctica Calificada
Analisis de señales discretas en t
Procesamiento Digital de Señales, Filtros
Practica no. 1 espectros de frecuencia
Intro parte3
semna2.pdf
Problemas resueltoscap4
Teorema del muestro y PCM
Solucionario Final de Matemática V - FIEE UNI 2016 II
Transformada de Fourier.pptx
Aplicaicones de las series de fourier
Trabajo fourier

Tema6 t fourier

  • 1. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier (DFT) Ì Transformada Discreta de Fourier Ì FFT (Fast Fourier Transform) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 1
  • 2. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Antes de definir la DFT, analizaremos primero la Transforma- da de Fourier en tiempo discreto (DTFT). Ì La DTFT describe el espectro de señales discretas. Deducire- mos la DFT a partir de la convolución discreta explicada en el Capítulo 2. Ì Allí se definió la convolución discreta como ∞ y[n] = x[n]∗ h[n] = ∑ x [k ]h [n − k ] k =−∞ s s x Si tenemos una señal de entrada armónica x[n]=exp(j2πnfts), la respuesta y[n] es ∞ y[n] = ∑ exp[ j 2π (n − k ) ft s ] ⋅ h[k ] k =−∞ ∞ = exp( j 2πnft s ) ∑ exp( − j 2πkft s ) ⋅ h[k ] = x[n]⋅ H ( f ) k =−∞ x H(f) es la DTFT de la señal discreta h[n]. Nótese que la función H(f) es periódica, debido a que h[n] es una función discreta. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 2
  • 3. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Se define la DTFT de una señal discreta x[n] como ∞ X( f ) = ∑ x[k ]exp(− j 2πkfts ) k =−∞ Ì Dualidad entre las series de Fourier y la DTFT x Tenemos una señal periódica continua xp(t). Mediante las series de Fourier transformamos esa señal periódica continua en una función aperiódica y discreta (los coeficientes espectrales XS[k]). ∞ 1 X S [k ] = ∫ x p (t ) exp(− j 2πkf0 t )dt x p (t ) = ∑ X S [k ]exp( j 2πkf0 t ) T T k =−∞ x De una manera dual, podemos intercambiar tiempo y frecuencia de forma ∞ xS [k] = X P ( f )exp( j2πkfts )df XP ( f ) = ∑x [n]exp(− j2πkft ) 1 SF ∫ SF k =−∞ S s donde SF=1/ts . Ahora tenemos una señal aperiódica discreta xs[k] y la transformamos en una señal periódica continua (Xp(f)) mediante la DTFT. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 3
  • 4. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier x El comportamiento dual entre las series de Fourier y la DTFT se manifiesta en lo siguiente : 3 En las series de Fourier parto de una señal x(t), temporal, continua y perió- dica (periodo T) y obtengo los coeficientes X[k], que es una función de la frecuencia, aperiódica y discreta con una distancia entre dos valores consecutivos de f0=1/T. 3 En la DTFT parto de una señal discreta en el tiempo x[n], con periodo de muestreo ts=1/fs y aperiódica y obtengo una función X(f), que es función continua de la frecuencia y periódica con periodo fs. x Todas las propiedades que se vieron para las series de Fourier tienen su correspondientes equivalencias en la DTFT. x Ejemplo : DTFT de la ∞ secuencia x[n]=δ[n] : X ( f ) = ∑ δ [k ] exp(− j 2πkft s ) = 1 k =−∞ Si tenemos una secuencia x[n]={1,0,3,-2}, a partir de la anterior ecuación y aplicando la propiedad del desplazamiento, X ( f ) = 1 + 3 exp(− j 4πft s ) − 2 exp(− j 6πft s ) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 4
  • 5. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Sin embargo, a la hora de realizar operaciones tenemos los mismos problemas que en las series de Fourier ya que seguimos tratanto con señales continuas o con series de datos de longitud infinita. La electrónica nos obliga a trabajar con un número finito de datos discretos que además tienen una precisión finita. Ì De lo que se trata es de conseguir discretizar las variables continuas y de limitar el números de muestras en los dos dominios (temporal y frecuencial). Ì Esto nos lleva a definir las series discretas de Fourier y la Transformada Discreta de Fourier (DFT). 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 5
  • 6. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì De las Series de Fourier a las Series Discretas de Fourier x Para las Series de Fourier se cumple (f0=1/T) ∞ xP (t ) = ∑ X S [k ]exp( j 2πkf0t ) X S [k ] = ∫ xP (t )⋅ exp(− j2πkf0t )⋅ dt 1 k =−∞ T T x Para limitar xp(t), tomamos N muestras de xp(t) durante un periodo a intervalos ts, de forma que N·ts=T. Al calcular los coeficientes X[k] me queda, 1 N −1 X [k ] = ∑ x [n]⋅ exp(− j 2πkf nt )⋅ t P 0 s s Nt s n =0 N −1 ∑ x [n]⋅ exp(− j 2πkn / N ) 1 = P k = 0,1,2 , N − 1 N n =0 x La cantidad X[k] es la serie de Fourier Discreta de la señal periódica muestreada xP[n]. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 6
  • 7. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì De la DTFT a la DFT x Tenemos una señal x[n] limitado a N muestras con un periodo de muestreo ts. N −1 x La DTFT se define como X P ( f ) = ∑ x[ n] ⋅ exp(− j 2πnft s ) n=0 x XP(f) es periódica con periodo 1/ts. Muestreamos esta señal N veces sobre un periodo, por tanto XT[k] será sustituir f por k/(Nts) : [ ] N −1 X T [ k ] = ∑ x[n] ⋅ exp − j 2πnkt s / ( Nt s ) n=0 N −1 = ∑ x[n] ⋅ exp[− j 2πnk / N ] k = 0,1,2, , N − 1 n=0 x Esta última expresión resultante es la Transformada Discreta de Fourier de una señal x[n]. Excepto por el término 1/N es idéntica a la Serie Discreta de Fourier. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 7
  • 8. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Transformada Discreta inversa (IDFT), 1 N −1 x[n] = ∑ X T [k ]exp( j 2πnk / N ) n = 0,1,2,, N − 1 N k =0 Ì Convolución Circular o Cíclica x La convolución normal entre dos señales periódicas es cero o infinito. Para este tipo de señales se define la convolución circular de dos secuencias xp[n] y hp[n] con periodo N : 1 N −1 y p [n] = x p [n] • h p [n] = ∑ x p [k ]h p [n − k ] N k =0 x La convolución circular requiere que las dos secuencias sean del mismo tamaño. Si no fuera así habría que llenar de ceros la secuencia más corta. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 8
  • 9. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Propiedades de la DFT Simetria Conjugada X T [− k ] = X T [k ] = X T [ N − k ] ∗ Linealidad αx[n] + βy[n] ↔ αX T [k ] + βYT [k ] Desplazamiento x[n − m ] ↔ X T [k ] ⋅ exp(− j 2πkm / N ) = X T [k ] ⋅ WN km Modulacion WN nm ⋅ x[n] ↔ X T [k − m] − 1 Producto x[n]y[n] ↔ X T [k ] • YT [k ] N Simetria x[− n] ↔ X T [− k ] = X T [k ] ∗ Conjugado x ∗ [n] ↔ X T [− k ] ∗ Convolucion Circular x[n] • y[n] ↔ X T [k ]YT [k ] Correlacion x[n] • y ∗ [− n] ↔ X T [k ]YT∗ [k ] 1 ∑ x[n] = ∑ X T [k ] 2 2 Ecuacion de Parseval N 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 9
  • 10. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Ejemplos x x[n]={1,2,1,0} k=0 XT [0] = ∑ x[n] = 1 + 2 + 1 + 0 = 4 k = 1 X T [1] = ∑ x[n]exp(− j 2π / 4) = 1 + 2 exp(− jπ / 2 ) + exp(− jπ ) = − j 2 k=2 X T [2] = ∑ x[n]exp(− j 2π 2 / 4) = 1 + 2 exp(− jπ ) + exp(− j 2π ) = 0 k=3 XT [3] = ∑ x[n]exp(− j 2π 3 / 4) = 1 + 2 exp(− j 3π / 2) + exp(− j 3π ) = j 2 por tanto la DFT de x[n] es XT[k]={4,-j2,0,j2} para k=0,1,2,3 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 10
  • 11. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Podemos interpretar los resultados del DFT de una secuencia xs[n] desde dos puntos de vista: x Como los coeficientes espectrales (series de Fourier) de una señal periódica discreta cuyos muestreos coinciden con la secuencia xs[n]. x Como el espectro de una señal aperiódica discreta cuyos muestreos corresponden a la secuencia xs[n]. Ì EL DFT es una aproximación al espectro de la señal analógica original. Su magnitud se ve influenciada por el intervalo de muestreo, mientras que su fase depende de los instantes de muestreo. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 11
  • 12. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Como hacer la DFT a partir de una señal x(t), muestreada durante D segundos, con periodo de muestreo ts : x Elegir el intervalo de muestreo ts de forma que se cumpla el Teorema del muestreo. x Crear la expensión periodica (xp(t)) de x(t) con periodo D. x Tomar N muestras de xp(t) empezando en t=0. x Si hay discontinuidades, los valores de muestreo los tomaremos en el punto medio de la señal. x(t) x p (t) -3 -2 -1 0 1 2 3 T -3 -2 -1 0 1 2 3 T 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 12
  • 13. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì DFT de señales periódicas x Siendo x(t)=sin(2πft), con f=1KHz, D=1ms y N=8 tenemos la siguien- te secuencia de muestreos : x[n]={0,0.7071,1,0.7071,0,-0.7071,-1,-0.7071} Sinusoide 1KHz, D=1ms, N=8 1 0.5 Amplitud 0 -0.5 -1 0 0.2 0.4 0.6 0.8 -3 1 Tiempo (s) x 10 El resultado de hacer el DFT es XT[k]={0,-4j,0,0,0,0,0,4j}. XS[k]=1/8{0,-4j,0,0,0,0,0,4j}={0,-j/2,0,0,0,0,0,j/2} 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 13
  • 14. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier DFT DFT 5 5 4 4 Magnitud DFT Magnitud DFT 3 3 2 2 1 1 00 0 2 4 6 8 -4000 -2000 0 2000 Indice k Frecuencia (Hz) x x(t)=sin(2πft), con f=1KHz, D=0.5ms y N=8, tenemos la secuencia de muestreos: x[n]={0,0.3827,0.7071,0.9239,1,0.9239,0.7071, 0.3827}. Los coeficientes del DFT son {5.0273,-1.7654,0.4142,-0.2346,-0.1989,-0.2346,-0.4142,-1.7654} Y los coeficientes del DFS son X[k]=1/8{5.0273,-1.7654,0.4142,-0.2346,-0.1989,-0.2346,-0.4142,-1.7654} 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 14
  • 15. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Sinusoide 1KHz, D=1ms, N=8 DFT 8 0.7 1 0.8 7 0.6 0.6 6 0.5 0.4 5 Magnitud DFT 0.2 0.4 Amplitud 0 4 0.3 -0.2 3 -0.4 0.2 2 -0.6 -0.8 1 0.1 -1 0 0 1 2 3 4 5 6 7 8 0 0 1 2 3 4 5 -8000 -6000 -4000 -2000 0 2000 4000 6000 Tiempo (s) -4 Indice k x 10 x En este nuevo ejemplo, la frecuencia de muestreo es 16KHz. Los X[k] son reales, por lo que la función tiene simetría par. Para la onda dada, los coeficientes exactos de Fourier son : 3 XS[0]=1/π XS[k]=2/π(1-4k2) 3 Comparando XS[0]≈X[0] XS[1]≈X[1] dentro del 5% de precisión 3 Para los términos con k=2,3..., X[k] se desvía bastante del término exacto debido a que la señal no tiene un espectro limitado, produciéndose aliasing. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 15
  • 16. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier x x(t)=sin(2πft), con f=1KHz, D=1.5ms y N=24. Sinusoide 1KHz, D=1ms, N=8 DFT 1 0.8 20 0.6 0.4 15 Magnitud DFT 0.2 Amplitud 0 -0.2 10 -0.4 -0.6 5 -0.8 -1 0 0 0.5 1 1.5 0 5 10 15 20 Tiempo (s) -3 Indice k x 10 DFT 20 Magnitud DFT 15 10 5 0 -5000 0 5000 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 16
  • 17. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier 3 En este ejemplo se ha producido el denominado “leakage”, que consiste en que las componentes originales de la señal se derraman hacia las nuevas componentes de la señal. Para evitarlo, se debe muestrear un número entero de periodos, o bien utilizar alguna de las ventanas espectrales (ventana de Hamming, etc). x Podría ocurrir que no conocieramos el periodo de la señal de la cual queremos calcular el DFT. En ese caso se muestrea una señal de duración lo más larga posible. De esta forma, se reduce el “leakage” y el espacio entre frecuencias obteniéndose una buena estimación del espectro original. Sinusoide 1KHz 1 0.5 Amplitud 0 -0.5 -1 0 0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009 0.01 Tiempo (s) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 17
  • 18. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier DFT 80 60 Magnitud DFT 40 20 0 -4000 -3000 -2000 -1000 0 1000 2000 3000 Frecuencia (Hz) Ì DFT de señales aperiódicas x La señal aperiódica x(t) debe ser muestreada durante un tiempo D. El DFT produce los coeficientes espectrales correspondientes a la extensión periódica de x(t) con periodo D. El espacio entre frecuencias es f0=1/D. A f0 se le denomina resolución frecuencial. Esta depende sólo de la duración. Si la señal está limitada en el tiempo, la forma de aumentar la duración es añadir ceros. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 18
  • 19. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Señal x(t)=exp(-t) Señal x(t)=exp(-t) 1.5 5 4.5 4 3.5 1 3 Magnitud Magnitud 2.5 2 0.5 1.5 1 0.5 0 0 0 0.5 1 1.5 2 -4 -3 -2 -1 0 1 2 3 4 Tiempo (s) Frecuencia (Hz) Señal x(t)=exp(-t) Señal x(t)=exp(-t) 1.5 2.5 2 1 1.5 Magnitud Magnitud 1 0.5 0.5 0 0 0 0.5 1 1.5 2 2.5 3 3.5 4 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2 Tiempo (s) Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 19
  • 20. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Tal y como se observa en las figuras de la páginas anteriores hay varias formas de dibujar la gráfica de la DFT de una secuencia de datos. Ì Una de ellas es indicarlo directamente mediante el índice k. Se puede observar que |XT[k]| es simétrico respecto a N/2. Ì Otra forma es reordenando los datos en función de la frecuen- cia. De la definición de DFT sabemos que cada intervalo de la DFT es 1/(Nts). La DFT nos da la Transformada de Fourier para las frecuencias f -(N/2)/(Nts),...,-1/(Nts),0, 1/(Nts), 2/(Nts)...(N/2-1)/(Nts) k (N/2) ,..., N-1 ,0, 1 , 2 ... (N/2-1) Ì La máxima frecuencia detectable por la DFT es lógicamente fs/2, de acuerdo con el Teorema del Muestreo. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 20
  • 21. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì En general, el DFT es una aproximación a las series o a la transformada de Fourier. Es muy importante elegir correctamente los parámetros del DFT (frecuencia de muestreo fs=1/ts, resolución de frecuencia f0=1/D). Ì La frecuencia de muestreo se determina a partir del teorema de muestreo. Si queremos detectar el espectro de una señal hasta una máxima frecuencia B , la frecuencia de muestreo deberá ser 2B. Ì La duración del muestreo se elige para una determinada resolución de frecuencia. Ì Una regla de diseño muy útil es: Si queremos los M primeros armónicos de una señal con un error máximo del 5%, el número de muestreos N=8M. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 21
  • 22. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Ejemplo: Queremos determinar mediante un algoritmo digital el espectro de la señal x(t)=exp(-t). La máxima frecuencia de la que pide su coeficiente es fB=1Hz. Además el armónico correspondiente a f=0.3Hz debe tener un error menor que el 5%. Calcular fs,D y N. x De acuerdo con el Teorema del Muestreo fs=2fB=2Hz. x Escogemos una resolución frecuencial de f0=0.1Hz, de forma que D=1/0.1=10s. x La frecuencia 0.3Hz se corresponde con el índice k=3, por lo que N=3· 8=24 muestreos. Esto me indica que fs=N/D=24/10=2.4 2. x Si el objetivo es hacer que N sea lo menor posible (para facilitar los cálculos del DFT), se puede elegir f0=0.3Hz, D=1/0.3=3.33s, k=1 y N=1· 8=8. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 22
  • 23. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Señal x(t)=exp(-t) Señal x(t)=exp(-t) 1.5 1.2 1 1 0.8 Magnitud Magnitud 0.6 0.5 0.4 0.2 0 0 0 2 4 6 8 10 -1.5 -1 -0.5 0 0.5 1 1.5 Tiempo (s) Frecuencia (Hz) Señal x(t)=exp(-t) Señal x(t)=exp(-t) 1.5 1 0.9 0.8 0.7 1 0.6 Magnitud Magnitud 0.5 0.4 0.5 0.3 0.2 0.1 0 0 0 0.5 1 1.5 2 2.5 3 -1.5 -1 -0.5 0 0.5 1 Tiempo (s) Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 23
  • 24. 5º Curso-Tratamiento Digital de Señal Transformada Discreta de Fourier Ì Ventanas espectrales: Si tenemos señales truncadas, el espectro de la señal muestra unos picos que no decaen lo suficientemente rápido con la frecuencia. Para ello podemos utilizar ventanas en el dominio temporal para suavizar esas discontinuidades. Los picos serán menores aunque el ancho de banda de cada lóbulo aumentará. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 24
  • 25. 5º Curso-Tratamiento Digital de Señal Resumen de Series y Transformadas de Fourier Ì Series de Fourier x Señal Continua Periódica (periodo T), Espectro Discreto Aperiódico (intervalo de discretización 1/T) Ì Transformada de Fourier x Señal Continua Aperiódica, Espectro Continuo Aperiódico. Ì Transformada de Fourier Discreta en el Tiempo x Señal Discreta Aperiódica (intervalo de discretización ts), Espectro Continuo Periódico (periodo 1/ ts) Ì Transformada Discreta de Fourier x Señal Discreta Periódica (intervalo de discretización ts, periodo T), Espectro Discreto (intervalo de discretización 1/T) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 25
  • 26. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) Ì La importancia de DFT estriba en que es posible utilizar un algoritmo, llamado FFT, que lo realiza de forma eficiente y rápida. Ì El DFT de una secuencia x[n] es : N −1 X[ k ] = ∑ x[n]WNnk k = 0,1, , N − 1 n=0 donde WN = e − j 2π / N Una primera aproximación al cálculo del DFT requeriría la suma compleja de N multiplicaciones complejas para cada uno de las salidas. En total, N2 multiplicaciones complejas y N2 sumas complejas para realizar un DFT de N puntos. Lo que consigue el algoritmo FFT es simplicar enormemente el cálculo del DFT introduciendo “atajos” matemáticos para reducir drasticamente el número de operaciones. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 26
  • 27. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) Ì La optimización del proceso de cálculo del DFT está basado en las siguientes ideas : x Simetría y Periodicidad de los términos WN. WN + N = WN n n WNNk = 1 WN + N / 2 = − WN n n WN = WN / 2 2 x Elegimos el valor de N de forma que N=rm. Al factor r se le denomina radix y su valor más habitual es 2, de forma que N=2m y algoritmo se denomina FFT radix-2. Ì Radix-2 FFT-Decimación en el Tiempo. x Dividimos la secuencia de datos de entrada x[n] en dos grupos, uno de índices par y el otro de índices impar. Con estas sub-secuencias se realiza el DFT de N/2 puntos y sus resultados se combinan para formar el DFT de N puntos. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 27
  • 28. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) N / 2 −1 N / 2 −1 N / 2 −1 N / 2 −1 X[k ] = ∑ x[2n]W 2 nk N + ∑ x[2n + 1]W ( 2 n +1) k N = ∑ x[2n]W 2 nk N +Wk N ∑ x[2n + 1]WN2 nk n=0 n=0 n=0 n=0 Sustituimos x1 [n] = x[2 n] x 2 [n] = x[2 n + 1] WN nk = WN / 2 2 nk N / 2 −1 N / 2 −1 X[k ] = ∑ x1 [n]W nk N /2 +W k N ∑ x 2 [n]WNnk/ 2 = Y[k ] + WNk Z[k ] k = 0,1,2,, N − 1 n=0 n=0 x Esta última ecuación muestra que el DFT de N puntos es la suma de dos DFTs de N/2 puntos (Y[k], Z[k]) realizadas con las secuencias par e impar de la secuencia original x[n]. Cada término Z[k] es multiplicado por un factor WNk, llamado “twiddle factor”. Ya que WNk+N/2=-WNk y debido a la periodicidad de Y[k] y Z[k] (periodo N/2) podemos poner X[k] como X [ k ] = Y [ k ] + WN [ k ] ⋅ Z [ k ] k X [ k + N / 2] = Y [ k ] − WN [ k ] ⋅ Z [ k ] k Para k = 0,1, , N / 2 − 1 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 28
  • 29. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) Y[0] x[0] + X[0] Y[1] x[2] + X[1] DFT N/2 Puntos Y[N/2-1] x[N-2] + X[N/2-1] W0 x[1] Z[0] x -1 + X[N/2] W1 x[3] Z[1] x -1 + X[N/2+1] DFT N/2 Puntos WN / 2 - 1 x[N-1] Z[N/2-1] x -1 + X[N-1] x Los dos DFT de N/2 puntos se puede a su vez dividir para formar 4 DFTs de N/4 puntos, lo que produce las siguientes ecuaciones Y [k ] = U[k ] + WN k V [k ] 2 Z[k ] = R[k ] + WN k S[k ] 2 Y [k + N / 4] = U[k ] − WN k V [k ] 2 Z[k + N / 4] = R[k ] − WN k S[k ] 2 Para k = 0,1,, N / 4 − 1 Para k = 0,1,, N / 4 − 1 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 29
  • 30. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) x El proceso puede repetirse sucesivamente hasta llegar a computar el DFT de dos valores x[n], en concreto x[k] y x[k+N/2], para k=0,1,...,N/2-1. Para una DFT de N=8 puntos tenemos el siguiente esquema Butterfly x[0] + + + X[0] 0 W x[4] x -1 + + + X[1] 0 W x[2] + x -1 + + X[2] 0 2 W W x[6] x -1 + x -1 + + X[3] 0 W x[1] + + x -1 + X[4] 0 1 W W x[5] x -1 + + x -1 + X[5] 0 2 W W x[3] + x -1 + x -1 + X[6] 0 2 3 W W W x[7] x -1 + x -1 + x -1 + X[7] Etapa 1 Etapa 2 Etapa 3 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 30
  • 31. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) x Las características de una FFT de N puntos decimada en el tiempo se sumarizan en la siguiente tabla : Etapa 1 Etapa 2 Etapa 3 Etapa log2N Número de N/2 N/4 N/8 1 Grupos Butterflies por 1 2 4 N/2 Grupo Exponentes (N/2)k, (N/4)k, (N/8)k, k, Twiddle Factors k=0 k=0,1 k=0,1,2,3 k=0,1,...,N/2-1 x Por cada butterfly tenemos una multiplicación y dos sumas complejas. Hay N/2 butterflies por etapa y log2N etapas. 3 El número total de multiplicaciones es ½N·log2N . 3 El número total de sumas es N·log2N . 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 31
  • 32. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) x Para pequeños valores de N, la diferencia puede parecer pequeña, pero para valores grandes la diferencia es enorme. Para un DFT de 1024 puntos, el número de multiplicaciones en un FFT es aprox. 5000 mientras que para un DFT normal es de aprox. 106. Ì Radix-2 FFT-Decimación en Frecuencia x Expresaremos el FFT como suma de los FFT de dos secuencias, la primera con los N/2 primeros datos y la segunda con los N/2 últimos. N −1 N / 2 −1 N −1 X[k ] = ∑ x[n]W nk N = ∑ x[n]W nk N + ∑ x[n]WNnk n=0 n=0 n= N / 2 N / 2 −1 N / 2 −1 = ∑ x[n]W nk N + ∑ x[n + N / 2]WN( n+ N / 2 )k n=0 n=0 N / 2 −1 N / 2 −1 = ∑ x[n]W nk N + (−1) k ∑ x[n + N / 2]WNnk n=0 n=0 N / 2 −1 = ∑ [x[n] + (−1)k x[n + N / 2]]WNnk k = 0,1,2, , N − 1 n=0 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 32
  • 33. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) x La decimación en frecuencia se obtiene dividiendo la secuencia de salida (X[k]) en dos ecuaciones, una para los índices pares y otro para los impares. N / 2 −1 X[2 k ] = ∑ [ x[n] + x[n + N / 2]]WN2 nk n=0 N / 2 −1 = ∑ [ x[n] + x[n + N / 2]]WNnk/ 2 k = 0,1, , N / 2 − 1 n=0 N / 2 −1 X[2 k + 1] = ∑ [ x[n] − x[n + N / 2]]WNn(2 k +1) n=0 N / 2 −1 = ∑ [[ x[n] − x[n + N / 2]]WNn ]WNnk/ 2 k = 0,1, , N / 2 − 1 n=0 x X[2k] y X[2k+1] son los resultados del DFT de N/2 puntos realizado con las suma y la diferencia entre la primera y segunda mitades de la secuencia de entrada. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 33
  • 34. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) x[0] + X[0] x[1] + X[2] DFT N/2 Puntos x[N/2-1] + X[N-2] 0 W x[N/2] -1 + x X[1] 1 W x[N/2+1] -1 + x X[3] DFT N/2 Puntos N/2-1 W x[N-1] -1 + x X[N-1] 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 34
  • 35. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) Butterfly x[0] + + + X[0] W0 x[1] + + -1 + x X[4] W0 -1 x[2] + + x + X[2] W2 W0 x[3] + -1 + x -1 + x X[6] W0 x[4] -1 + x + + X[1] W1 W0 x[5] -1 + x + -1 + x X[5] W2 W0 -1 + x -1 + x + X[3] x[6] W3 W2 W0 x[7] -1 + x -1 + x -1 + x X[7] Etapa 1 Etapa 2 Etapa 3 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 35
  • 36. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) x Las característica del FFT decimado en frecuencia son Etapa 1 Etapa 2 Etapa 3 Etapa log2N Número de 1 2 4 N/2 Grupos Butterflies por N/2 N/4 N/8 1 Grupo Exponentes n, 2n, 4n, (N/2)n, Twiddle Factors n=0,...,N/2-1 n=0,...,N/4-1 k=0,...,N/8-1 n=0 Ì Se puede observar que en el caso de decimación en el tiempo, la secuencia de entrada debe ser reordenada mientras que la salida aparece en el orden correcto. Ì Para la decimación en frecuencia, la secuencia está en orden mientras que la salida habrá que reordenarla. Ì Se da la circunstancia que esa reordenación es simplemente invertir el índice en binario. Por ejemplo, en la misma posición que x[1] aparece X[4], y 001 invertido es 100. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 36
  • 37. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) Ì DFT en 2 dimensiones x En aplicaciones como procesamiento de imagen, las señales dependen de dos variables n1 y n2 (el eje x y el eje y en una imagen bidimensio- nal). Por tanto necesitamos extender el concepto de DFT a dos dimen- siones. x Dada una secuencia x(n1,n2), se define la DFT como  N1 −1N 2 −1 − j (2 π ) ( )  = = (  ∑ ∑ x n1 , n2 e ) N1 k1 n1 e − j 2 π N 2 k 2 n2 0 ≤ n1 ≤ N 1 − 1, 0 ≤ n2 ≤ N 2 − 1 ( X k1 , k 2 ) =  n1 0 n2 0 0 , en otro caso   x La IDFT de X(k1,k2) se define como  1 N1 −1N1 −1 j (2 π ) ( )  ∑∑ ( ) X k1 , k 2 e N1 k1 n1 e j 2 π N 2 k2 n2 0 ≤ n1 ≤ N 1 − 1, 0 ≤ n2 ≤ N 2 − 1  N 1 N 2 k1 = 0 k2 = 0 ( x n1 , n2 ) = 0 , en otro caso   17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 37
  • 38. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) Ì FFT-2D x Al igual que en el caso de señales unidimensionales, disponemos de un eficiente algoritmo para realizar el DFT. x Descomposición Fila-Columna 3 Reescribimos la ecuación anterior N −1N −1 − j ( 2 π N ) k n − j (2 π N )k n ( ) ∑∑ ( ) 1 2 X k ,k = 1 2 x n ,n e 1 2 e 1 1 1 2 2 2 n1 = 0 n2 = 0 N1 −1 N 2 −1 = ∑ f (k1 , n2 )e ( ) ( ) − j 2 π N 2 k 2 n2 ( , donde f k1 , n2 = ) ∑ x (n ) 1 , n2 e − j 2 π N1 k1 n1 n1 = 0 n2 = 0 3 Si consideramos n2 fijo (pe, n2 =0), f(k1,n2) es el DFT unidimensional de x(n1,n2)|n2=0 con respecto a la variable n1. De esta forma obtenemos una matriz f(k1,n2) para todos los posibles valores de n2 (Figura). 3 Ahora podemos calcular X(k1,k2) a partir de f(k1,n2), N 2 −1 ( ) ( X k1 , k 2 =) ∑ f (k 1 , n2 e) − j 2 π N 2 k2 n2 n2 = 0 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 38
  • 39. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) 3 Fijamos k1 (pe, k1=0), por lo que f(k1,n2)|k1=0 es una columna de f(k1,n2) y X(0,k2) es la DFT unidimensional de f(k1,n2)|k1=0 con respecto a la variable n2. Obtendremos X(k1,k2) haciendo N1 DFT 1D para cada valor de k1 (Figura). n2 x(n 1,n 2) n2 f(k 1,n 2) N 2-1 N 2-1 FFT 1D N 1 puntos n1 k1 N 1-1 N 1-1 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 39
  • 40. 5º Curso-Tratamiento Digital de Señal FFT (Fast Fourier Transform) n2 f(k 1 ,n 2 ) k2 X(k 1 ,k 2 ) N 2 -1 N 2 -1 FFT 1D N 2 puntos k1 k1 N 1 -1 N 1 -1 Número de Número de Multiplicaciones Sumas Calculo Directo N12 N 2 2 N12 N 2 2 Descomposición Fila-Columna con N1 N 2 ( log2 N1 N 2 ) ( N1 N 2 log2 N1 N 2 ) 2 FFT 1D 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 40
  • 41. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB X = fft(x) Hace la FFT del vector x. “X” es un vector de números complejos ordenados desde k=0...N-1. Se recomienda que la longitud del vector x sea una potencia de 2. Lo que no se recomienda es que la longitud de x sea un número primo. Otra opción del la FFT es especificar el número de puntos con el que se quiere hacer la FFT. X = fft(x,N) Si la longitud de x es menor que N, el vector se rellena con ceros. Si es mayor, el vector es truncado. x = ifft(X) Hace la FFT inversa del vector X. También se puede especificar el número de puntos N con el que quiero hacer la IFFT. x = ifft(X,N) X = fftshift(X) Reordena el vector X en orden creciente de frecuencia. Si “X” es el vector resultante de hacer una FFT, utilizando esta función reordenamos los puntos en función de la frecuencia. Ì A continuación tienen unos ejemplos del uso de las FFT. Los programas de MATLAB utilizados los pueden conseguir en el Web de la asignatura. 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 41
  • 42. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40) N=128 D=1 s x(t) 2 1.5 1 0.5 0 x(t) -0.5 -1 -1.5 -2 0 0.2 0.4 0.6 0.8 1 Tiempo (s) Módulo de Coeficientes Espectrales |X[k]| 0.6 0.5 0.4 |X[k]| 0.3 0.2 0.1 0 -80 -60 -40 -20 0 20 40 60 80 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 42
  • 43. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40) N=128 D=1 s Fase de Coeficientes Espectrales X[k] 2000 1500 Fase (º) 1000 500 0 -500 -1000-80 -60 -40 -20 0 20 40 60 80 Frecuencia (Hz) Comparación entre x(t) y su reconstrucción a partir de X[k] 2.5 2 1.5 1 0.5 x(t) 0 -0.5 -1 -1.5 -2 0 0.2 0.4 0.6 0.8 1 Tiempo (t) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 43
  • 44. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40) N=128 D=1 s Comparación entre x(t) y su reconstrucción a partir de X[k] 2 1.5 1 0.5 x(t) 0 -0.5 -1 -1.5 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 Tiempo (t) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 44
  • 45. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej1.m → x(t)=sin(2· π·20·t)+chirp(5-40) N=32 D=1 s Módulo de Coeficientes Espectrales |X[k]| 0.6 Aliasing 32-20=12 Hz 0.5 |X[k]| 0.4 0.3 0.2 0.1 0 -20 -15 -10 -5 0 5 10 15 Frecuencia (Hz) Comparación entre x(t) y su reconstrucción a partir de X[k] 2.5 2 1.5 1 0.5 x(t) 0 -0.5 -1 -1.5 -2 -2.5 0 0.2 0.4 0.6 0.8 1 Tiempo (t) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 45
  • 46. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100) N=256 D=1 s x(t)=exp(-2t)+0.2·chirp(60-100) 1.2 1 0.8 0.6 x(t) 0.4 0.2 0 -0.2 0 0.2 0.4 0.6 0.8 1 Tiempo (s) Módulo de los coeficientes espectrales |X[k]| 0.45 0.4 0.35 0.3 0.25 |X[k]| 0.2 0.15 0.1 0.05 0 -150 -100 -50 0 50 100 150 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 46
  • 47. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100) N=256 D=1 s Fase de los coeficientes espectrales X[k] 1500 1000 Fase(X[k]) (º) 500 0 -500 -1000 -1500 -150 -100 -50 0 50 100 150 Frecuencia (Hz) Comparación entre x(t) y su reconstrucción a partir de X[k] 1.4 1.2 1 0.8 x(t) 0.6 0.4 0.2 0 -0.2 0 0.2 0.4 0.6 0.8 1 Tiempo (t) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 47
  • 48. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100) N=256 D=1 s Comparación entre x(t) y su reconstrucción a partir de X[k] 1 0.8 0.6 x(t) 0.4 0.2 0 0.96 0.97 0.98 0.99 1 Tiempo (t) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 48
  • 49. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej2.m → x(t)=exp(-2·t)+0.2·chirp(60-100) N=64 D=0.1 s Módulo de los coeficientes espectrales |X[k]| 0.1 0.09 0.08 0.07 0.06 |X[k]| 0.05 0.04 0.03 0.02 0.01 0 -400 -300 -200 -100 0 100 200 300 400 Frecuencia (Hz) Comparación entre x(t) y su reconstrucción a partir de X[k] 1.2 1.1 1 x(t) 0.9 0.8 0.7 0.6 0 0.02 0.04 0.06 0.08 0.1 Tiempo (t) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 49
  • 50. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej3.m → x(t)=exp(-2·t)·sin(2· π·200·t) N=128 D=0.2 s x(t)=exp(-2t)·sin(2· p·200· t) 1 0.8 0.6 0.4 0.2 x(t) 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.05 0.1 0.15 0.2 Tiempo (t) Módulo de los coeficientes espectrales de x(t) 0.09 0.08 0.07 0.06 0.05 |X[k]| 0.04 0.03 0.02 0.01 0 -400 -300 -200 -100 0 100 200 300 400 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 50
  • 51. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej3.m → x(t)=exp(-2·t)·sin(2· π·200·t) N=128 D=0.2 s Fase de los coeficientes espectrales X[k] 200 150 100 50 Fase X[k] 0 -50 -100 -150 -200 -400 -300 -200 -100 0 100 200 300 400 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 51
  • 52. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t)) N=256 D=0.5 s x(t)=sin(2·pi·200·t+5·sin(2· pi·2· t) 1 0.8 0.6 0.4 0.2 x(t) 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.1 0.2 0.3 0.4 0.5 Tiempo (t) Módulo de los coeficientes espectrales de x(t) 0.1 0.09 0.08 0.07 0.06 |X[k]| 0.05 0.04 0.03 0.02 0.01 0 -300 -200 -100 0 100 200 300 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 52
  • 53. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t)) N=256 D=0.5 s Fase de los coeficientes espectrales X[k] 7000 6000 5000 4000 Fase X[k] 3000 2000 1000 0 -1000 -300 -200 -100 0 100 200 300 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 53
  • 54. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t)) N=128 D=0.2 s x(t)=sin(2·pi·200·t+5·sin(2· pi·2· t) 1 0.8 0.6 0.4 0.2 x(t) 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.05 0.1 0.15 0.2 Tiempo (t) Módulo de los coeficientes espectrales de x(t) 0.06 0.05 0.04 |X[k]| 0.03 0.02 0.01 0 -400 -300 -200 -100 0 100 200 300 400 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 54
  • 55. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej4.m → x(t)=sin(2· π·200·t+5·sin(2· π·2· t)) N=128 D=0.2 s Fase de los coeficientes espectrales X[k] 700 600 500 400 Fase X[k] 300 200 100 0 -400 -300 -200 -100 0 100 200 300 400 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 55
  • 56. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej5.m → x(t)=sin(2· π·200·t-5· exp(-2·t)) N=256 D=0.5 s x(t)=sin(2·pi·200·t-5·exp(-2t)) 1 0.8 0.6 0.4 0.2 x(t) 0 -0.2 -0.4 -0.6 -0.8 -1 0 0.1 0.2 0.3 0.4 0.5 Tiempo (t) Módulo de los coeficientes espectrales de x(t) 0.18 0.16 0.14 0.12 |X[k]| 0.1 0.08 0.06 0.04 0.02 0 -300 -200 -100 0 100 200 300 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 56
  • 57. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej5.m → x(t)=sin(2· π·200·t-5· exp(-2·t)) N=256 D=0.5 s 150 Fase de los coeficientes espectrales X[k] 100 50 Fase X[k] 0 -50 -100 -150 -300 -200 -100 0 100 200 300 Frecuencia (Hz) Comparación entre el espectro de señales moduladas en amplitud (x) y moduladas en frecuencia (o) 80 70 60 50 40 30 20 10 0 160 170 180 190 200 210 220 230 240 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 57
  • 58. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej7.m → x(t)=exp(-2·t)·sin(2· π·3·t) N=16 D=1 s 1 Puntos de muestreo (--) y Reconstrucción a partir de X[k] (o) 0.8 0.6 0.4 0.2 x(t) 0 -0.2 -0.4 -0.6 -0.8 0 0.2 0.4 0.6 0.8 1 Tiempo (s) 0.25 Módulo de los coeficientes espectrales de x(t) 0.2 0.15 |X[k]| 0.1 0.05 0 -8 -6 -4 -2 0 2 4 6 8 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 58
  • 59. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej7.m → x(t)=exp(-2·t)·sin(2· π·3·t) N=16 D=1 s Fase de los coeficientes espectrales X[k] 200 150 100 50 Fase X[k] 0 -50 -100 -150 -200-8 -6 -4 -2 0 2 4 6 8 Frecuencia (Hz) Comparación entre x(t) y su reconstrucción a partir de X[k] 1 0.8 0.6 0.4 0.2 x(t) 0 -0.2 -0.4 -0.6 -0.8 0 0.5 1 1.5 2 Tiempo (t) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 59
  • 60. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej7.m → x(t)= (1+t2/2)·sin(2· π·5·t)+ 0.2·chirp(20-60) N=128 D=1 s Módulo de los coeficientes espectrales de x(t) |X[k]| 0.6 0.5 0.4 |X[k]| 0.3 0.2 0.1 0 -80 -60 -40 -20 0 20 40 60 80 Frecuencia (Hz) Fase de los coeficientes espectrales X[k] 2000 1500 1000 Fase X[k] 500 0 -500 -1000 -1500 -80 -60 -40 -20 0 20 40 60 80 Frecuencia (Hz) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 60
  • 61. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: fftej8.m → x(t)= (1+t2/2)·sin(2· π·5·t)+ 0.2·chirp(20-60) N=128 D=1 s Comparación entre x(t) y su reconstrucción a partir de X[k] 2.5 2 1.5 1 0.5 x(t) 0 -0.5 -1 -1.5 -2 -2.5 0 0.5 1 1.5 Tiempo (t) 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 61
  • 62. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: goodbye.m N=4096 Fs=22050 Hz Nh=1000 goodbye.au 0.25 0.2 0.15 0.1 0.05 0 -0.05 -0.1 -0.15 -0.2 -0.25 0 0.05 0.1 0.15 0.2 Tiempo (s) -4 9 x 10 Espectro de goodbye.au 8 7 |X[k]| 6 5 4 3 2 1 0 -1.5 -1 -0.5 0 0.5 1 1.5 4 Frecuencia (Hz) x 10 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 62
  • 63. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: goodbye.m N=4096 Fs=22050 Hz Nh=1000 -4 x 10 Espectro de goodbye.au filtrado 9 8 7 6 |X[k] 5 4 3 2 1 0 -1.5 -1 -0.5 0 0.5 1 1.5 4 x 10 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 63
  • 64. 5º Curso-Tratamiento Digital de Señal FFT con MATLAB: good_wnd.m Ni=1245 Nw=128 Nh=10 Fs=22050 Hz Señal (--) y Recontrucción con 10 armónicos (--) 0.03 0.02 0.01 Amplitud y(t) 0 -0.01 -0.02 -0.03 -0.04 0.056 0.057 0.058 0.059 0.06 0.061 0.062 0.063 Tiempo (s) Espectro de la señal (--) y filtrado (--) 0.9 0.8 0.7 0.6 0.5 |Y[k]| 0.4 0.3 0.2 0.1 0 -1.5 -1 -0.5 0 0.5 1 1.5 Frecuencia (Hz) 4 x 10 17/11/99 Capítulo 6: Transformada Discreta de Fourier (DFT) 64