Page 587 - Chapra y Canale. Metodos Numericos para Ingenieros 5edición_Neat
P. 587

19.6  TRANSFORMADA RÁPIDA DE FOURIER                             563


                                                              +
                                          f(0)                   F(0)  temporal  = real (0) + real (1)
                                                               +
                                                                      real (1)   = real (0) – real (1)
                                                                      real (0)   = temporal
                                                                      temporal   = imaginario (0) + imaginario (1)
                                                               +      imaginario (1) = imaginario (0) – imaginario (1)
                                          f(1)                   F(1)  imaginario (0) = temporal
                                                              –
                                                      a)                            b)

                                         FIGURA 19.17
                                         a) Una red mariposa que representa el cálculo fundamental de la fi gura 19.16.
                                         b) Seudocódigo para implementar a).



                                            Una inspección cercana a la figura 19.16 indica que su molécula computacional
                                         fundamental es la llamada red mariposa, ilustrada en la figura 19.17a. El seudocódigo
                                         para implementar una de esas moléculas se muestra en la figura 19.17b.
                                            El seudocódigo para la TRF se da en la figura 19.18. La primera parte consiste, en
                                         esencia, en tres ciclos anidados para implementar el cuerpo computacional de la figura
                                         19.16. Observe que los datos reales se guardan originalmente en el arreglo x. También
                                         observe que el ciclo exterior pasa a través de las M etapas [recuerde la ecuación (19.31)]
                                         del diagrama de flujo.
                                            Después de que se ejecuta esta primera parte, se habrán calculado las TDF, pero en
                                         desorden (véase el lado derecho de la figura 19.16). Es posible ordenar esos coeficientes



                 FIGURA 19.18            a)                                         b)
                 Seudocódigo para        m = LOG(N)/LOG(2)                          j = 0
                 implementar una         N2 = N                                     DOFOR i = 0, N – 2
                 TRF con partición en    DOFOR k = 1, m                               IF (i < J) THEN
                 frecuencia. Observe       N1 = N2                                        xt = x j
                 que el seudocódigo está     N2 = N2/2                                    x j  = x i
                 compuesto por dos partes:     angle = 0                                  x i  = xt
                 a) la TRF en sí y b) una     arg = 2π/N1                                 yt = y j
                 rutina de inversión de bits     DOFOR j = 0, N2 -1                       y j  = y i
                 para ordenar los coefi cientes       c = cos(ang1e)                       y i  = yt
                 de Fourier resultantes.      s = –sin(ang1e)                          END IF
                                             DOFOR i = j, N – 1, N1                    k = N/2
                                               kk = i + N2                             DOFOR
                                               xt = x(i) – x(kk)                         IF (k ≥ j + 1) EXIT
                                               x(i) = x(i) + x(kk)                       j = j – k
                                               y t  = y(i) – y(kk)                       k = k/2
                                               y(i) = y(i) + y(kk)                    END DO
                                               x(kk) = xt * c – yt * s                j = j + k
                                               y(kk) = yt * c + xt * s              END DO
                                             END DO                                 DOFOR i = 0, N – 1
                                             angle = (j + 1) * arg                    x(i) = x(i)/N
                                           END DO                                     y(i) = y(i)/N
                                         END DO                                     END DO




                                                                                                         6/12/06   13:58:26
          Chapra-19.indd   563                                                                           6/12/06   13:58:26
          Chapra-19.indd   563
   582   583   584   585   586   587   588   589   590   591   592