cap-4 FFT

download cap-4 FFT

of 15

Transcript of cap-4 FFT

  • 8/8/2019 cap-4 FFT

    1/15

    CAPITULO IV

    OBJETIVOS:

    Replantear el mecanismo de clculo de la Transformada (y Transformada Inversa)

    Discreta de Fourier, de modo de hacer ms eficiente su cmputo. Esto es, establecerlos fundamentos del algoritmo de la Transformada Rpida de Fourier (FFT).

    Elaborar un Diagrama de Flujo que permita un mecanizado racional del algoritmoque sea lo ms general posible. Pasando por el anlisis, utilizando la teora degrafos, desde un ejemplo particular.

    22 - LA TRANSFORMADA RAPIDA DE FOURIER

    Considrese la Transformada Discreta de Fourier (DFT):

    X( )n

    = 0

    N 1

    k

    .x 0( )k exp....j 2 n k

    N ..n 0 N 1 (22-1)

    donde se ha reemplazado k.T porky n/N.T porn por conveniencia de notacin.Se percibe que la ecuacin (22-1) describe el cmputo de N ecuaciones. Por ejemplo, si

    N = 4 y si se hace:

    W exp..j 2

    N (22-2)

    la expresin (22.1) puede ser escrita como:

    X( )0 .x 0( )0 W0 .x 0( )1 W

    0 .x 0( )2 W0 .x 0( )3 W

    0

    X( )1 .x 0( )0 W0 .x 0( )1 W

    1 .x 0( )2 W2 .x 0( )3 W

    3

    (22-3)

    X( )2 .x 0( )0 W0 .x 0( )1 W

    2 .x 0( )2 W4 .x 0( )3 W

    6

    X( )3 .x 0( )0 W0 .x 0( )1 W

    3 .x 0( )2 W6 .x 0( )3 W

    9

    Las ecuaciones anteriores pueden ser ms fcilmente representadas en forma matricial:

    X( )0

    X( )1

    X( )2

    X( )3

    .

    W0

    W0

    W0

    W0

    W0

    W1

    W2

    W3

    W0

    W2

    W4

    W6

    W0

    W3

    W6

    W9

    x 0( )0

    x 0( )1

    x 0( )2

    x 0( )3

    (22-4)

    o ms compactamente:

  • 8/8/2019 cap-4 FFT

    2/15

    X( )n .W.n k

    x 0( )k (22-5)

    El examen de (22-4) revela que ya que W y posiblemente x0(k) sean complejas,

    entonces son necesarias N2 multiplicaciones complejas y N.(N-1) adiciones pararealizar el cmputo matricial requerido.

    La FFT debe su xito al hecho que el algoritmo reduce el nmero de multiplicaciones yadiciones requeridas en el clculo de (22-4). Ahora se discutir, a nivel intuitivo, comose lleva a cabo esta reduccin.

    23 - DESARROLLO INTUITIVO

    Para ilustrar el algoritmo FFT, es conveniente elegir el nmero de puntos muestras de

    x0(k) de acuerdo a la relacin N = 2

    , donde es un entero. Recurdese que laecuacin (22-4) resulta de la eleccin N = 4 = 2 = 22 por lo tanto, se puede aplicarla FFT al cmputo de (22-4).

    El primer paso en el desarrollo del algoritmo FFT para este ejemplo es reescribir(22.4) como:

    X( )0

    X( )1

    X( )2

    X( )3

    .

    1

    1

    1

    1

    1

    W1

    W2

    W3

    1

    W2

    W0

    W2

    1

    W3

    W2

    W1

    x 0( )0

    x 0( )1

    x 0( )2

    x 0( )3

    (23-1)

    La matriz de la ecuacin (23-1) se deriva de la (22-4) usando la relacin:

    W.n k

    Wmod( ),.n k N

    Recerdese que mod(n.k,N) es el resto de la divisin entre n.ky N, por lo tanto si N=4,n=2 y k=3 entonces:

    W6

    W2 (23-2)

    ya que

    W.n k

    W6

    exp ...j 2

    4( )6 exp( )..j 3 exp( ).j

    exp ...j 2

    4( )2 W

    2W

    mod( ),.n k N

    (23-3)

    El segundo paso en el desarrollo es factorear la matriz cuadrada en (23-1) como sigue:

  • 8/8/2019 cap-4 FFT

    3/15

    X( )0

    X( )2

    X( )1

    X( )3

    ..

    1

    1

    0

    0

    W0

    W2

    0

    0

    0

    0

    1

    1

    0

    0

    W1

    W3

    1

    0

    1

    0

    0

    1

    0

    1

    W0

    0

    W2

    0

    0

    W0

    0

    W2

    x 0( )0

    x 0( )1

    x 0( )2

    x 0( )3

    (23-4)

    Se puede demostrar fcilmente que el producto de las dos matrices cuadradas da porresultado la matriz cuadrada de (23-1). Con la excepcin que las filas 1 y 2 han sidointercambiadas. Note que el intercambio ha sido tomado en cuenta en (23-4)reescribiendo el vector columna X(n), se denota el vector con la fila intercambiada por:

    X d( )n

    X( )0

    X( )2

    X( )1

    X( )3

    (23-5)

    Esta factorizacin es la clave de la eficiencia del algoritmo FFT.Habiendo aceptado el hecho que (23-4) es correcta, aunque los resultados estn"revueltos", se puede observar el nmero de multiplicaciones requeridas para computarla ecuacin. Hgase primero:

    x 1( )0

    x 1( )1

    x 1( )2

    x 1( )3

    .

    1

    0

    1

    0

    0

    1

    0

    1

    W0

    0

    W2

    0

    0

    W0

    0

    W2

    x 0( )0

    x 0( )1

    x 0( )2

    x 0( )3

    (23-6)

    Esto es, el vector columna x1(k) es igual al producto entre el vector y la matriz a la

    derecha de la ecuacin (23-4).El elemento x1(0) es computado por una multiplicacin compleja y una adicin

    compleja (W0 no es reducido a la unidad para desarrollar un resultado general).

    x 1( )0 x 0( )0.W0 x 0( )2

    (23-7)

    El elemento x1(1) est tambin determinado por una multiplicacin compleja y una

    adicin. Slo una adicin compleja se realiza para computar x1(2). Esto deviene del

    hecho que W0 = - W2.Por lo tanto

    x 1( )2 x 0( )0

    .W2

    x 0( )2 x 0( )0.W

    0x 0( )2

    (23-8)

  • 8/8/2019 cap-4 FFT

    4/15

    donde la multiplicacin compleja W0.x0(2) ya ha sido computada en la determinacin

    de x1(0).

    Por el mismo razonamiento, x1(3) es computada por slo por una adicin compleja y

    ninguna multiplicacin. El vector intermedio x1(k) es entonces determinado por cuatro

    adiciones y dos multiplicaciones complejas.

    X( )0

    X( )2

    X( )1

    X( )3

    x 2( )0

    x 2( )1

    x 2( )2

    x 2( )3

    .

    1

    1

    0

    0

    W0

    W2

    0

    0

    0

    0

    1

    1

    0

    0

    W1

    W3

    x 1( )0

    x 1( )1

    x 1( )2

    x 1( )3

    (23-9)

    El elemento x2

    (0) est determinado por una multiplicacin y una adicin complejas:

    x 2( )0 x 1( )0.W

    0x 1( )1

    (23-10)

    El elemento x2(1) est determinado por una adicin compleja porque

    W0 = - W2.

    Con un razonamiento similarx2(2) est determinado por una multiplicacin compleja y

    una adicin y x2(3) por slo una adicin.

    Luego el cmputo de (23-4) requiere un total de cuatro multiplicaciones complejas yocho sumas complejas. En cambio el cmputo de (22-4) requiere diecisismultiplicaciones complejas y 12 sumas complejas.

    Ntese que el proceso de factorizacin de la matriz introduce ceros en las matricesfactoreadas y, como resultado, reduce el nmero requerido de multiplicaciones. Paraeste ejemplo, el proceso de factorizacin de matriz ha reducido el nmero requerido demultiplicaciones en un factor de dos.Ya que el tiempo de cmputo es fuertemente gobernado por el nmero demultiplicaciones, se ve la razn de la eficiencia del algoritmo FFT.

    Para N = 2 el algoritmo FFT es entonces simplemente un proceso de factorizacin deuna matriz N x N en matrices (cada una de N x N) de modo tal que cada una de lasmatrices factoreadas tenga una propiedad especial de minimizar el nmero demultiplicaciones y adiciones.Si se extiende el resultado del ejemplo previo, se nota que la FFT requiere N. /2 = 4multiplicaciones complejas y N. = 8 adiciones complejas, mientras que el mtododirecto requiere N2 multiplicaciones complejas y N.(N-1) adiciones complejas.Si se supone que el tiempo de cmputo es proporcional al nmero de multiplicaciones,entonces la razn aproximada de tiempo de cmputo del mtodo directo al de la FFTest dado por:

  • 8/8/2019 cap-4 FFT

    5/15

    N2

    .N

    2

    .2 N

    (23-11)

    la cual para N =1024 = 210 es una reduccin computacional de ms de 200 a 1. LaFigura 23.1 ilustra la relacin entre el nmero de multiplicaciones requeridas usando elalgoritmo FFT comparada con el nmero de multiplicaciones del mtodo directo.

    fdir( )N N2 ffft( )N

    .N

    2

    ln( )N

    ln( )2 N ..2 1024

    El procedimiento de factorizacin introduce una discrepancia. Recurdese que elcmputo de (23-4) produce:

    X d( )n en vez de X( )n

    este reordenamiento es inherente al proceso de factorizacin de la matriz y es unproblema menor debido a que es sencillo generalizar una tcnica de "reordenamiento"de Xd(n) para obtenerX(n).

    Reescribiendo Xd(n) reemplazando el argumento n con sus equivalentes binarios:

    X( )0

    X( )2

    X( )1

    X( )3

    se convierte en

    X( )00

    X( )10

    X( )01

    X( )11

    (23-12)

    Obsrvese que si los argumentos binarios de (18) son "flippeados" o "bit reversed" (esdecir, 10 se transforma en 01, etc.) En otras palabras, la imagen del espejo del binario.entonces

  • 8/8/2019 cap-4 FFT

    6/15

    X d( )n

    X( )00

    X( )10

    X( )01

    X( )11

    flipea a

    X( )00

    X( )01

    X( )10

    X( )11

    X( )n

    (23-13)

    Es sencillo desarrollar un resultado generalizado para "reordenar" la FFT.Para N mayor que 4, es voluminoso describir el proceso de factorizacin de la matrizanloga a (23-4). Por esta razn es conveniente interpretar a (23-4) de manera grfica.Usando esta formulacin grfica se puede describir en forma suficientementegeneralizada un diagrama de flujo para un programa de computadora.

    24 - GRAFICO DE FLUJO DE SEAL

    Se convertir la expresin (23-4) en un grfico de flujo como el de la Figura 24.1.

    Como se muestra, se representa el vector de datos o arreglo x0(k) por una columna

    vertical de nodos sobre la izquierda del grfico. El segundo arreglo vertical de nodos esel vectorx1(k) computado en la ecuacin (23-6), y el prximo arreglo corresponde el

    vectorx0(k) = X

    d(n), ecuacin (23-9). En general, se computarn arreglos, donde

    N =2 .El flujo de seal se interpreta como sigue. A cada nudo ingresan dos lneas slidasrepresentando "sendas de transmisin" desde nudos previos. Una senda transmite o trae

    una cantidad desde un nodo en un arreglo, multiplica la cantidad por Wp, y saca el

    resultado por el nudo del prximo arreglo. El factorWp aparece cerca de la flecha de la

    senda de transmisin, la ausencia de este factor implica que Wp = 1.Los resultados entrantes en un nudo desde dos sendas de transmisin son combinadosaditivamente.Para ilustrar la interpretacin del grfico de flujo de seal, considrese el nudo x1(2) de

    la Figura 24.1.De acuerdo a las reglas para interpretar el grfico de flujo de seal:

  • 8/8/2019 cap-4 FFT

    7/15

    x 1( )2 x 0( )0.W

    2x 0( )2

    (24.1)

    lo cual es simplemente la ecuacin (23-8). Cada nodo del grfico de flujo de seal esexpresado similarmente.Este mtodo es entonces un mtodo conciso para representar los cmputos requeridosen la matriz factorizada del algoritmo FFT (23-4). Cada columna del grficocorresponde a una matriz factorizada; se requieren arreglos verticales de N puntoscada uno (N=2 ). La utilizacin de esta presentacin grfica permite fcilmentedescribir el proceso de factorizacin para N grande.Se muestra en grfico aparte (Figura 24.2) el diagrama de flujo de seal para N=16.Con un diagrama de flujo de seal de este tamao, es posible desarrollar las propiedadesconcernientes al proceso de factorizacin de la matriz y as proveer de un marco para eldesarrollo de un diagrama de flujo para un programa de computadora que aplique elalgoritmo FFT.

    25 - NODOS DUALES

    La inspeccin de la Figura 24.2 revela que en cada arreglo siempre se pueden encontrardos nodos cuyas entradas de senda de transmisin provienen del mismo par de nudos enel arreglo previo. Por ejemplo, los nodos x1(0) y x1(8) son computados en trminos de

    los nodos x0(0) y x0(8). Note que los nodos x0(0) y x0(8) no entran en el cmputo de

    cualquier otro nodo. Se define a tales nodos como Par de Nodos Duales.Ya que le cmputo de un par de nodos duales es independiente de los otros nodos, es

    posible realizar cmputo "in-place". Para ilustrar, ntese de la Figura 24.2 que se

    pueden calcular simultneamente x1(0) y x1(8) en trminos de x0(0) y x0(8) y retornarel resultado a las locaciones de almacenamiento previamente ocupadas por x0(0) y

    x0(8). Los requerimientos de almacenaje estn entonces limitados solamente al arreglo

    de datos x0(k). A medida que cada arreglo es computado, los resultados son retornados

    a este arreglo.

    26 - ESPACIAMIENTO DE NODOS DUALES

    Se investigar ahora el espaciamiento (medido verticalmente en trminos del indice k)entre un par de nodos duales. La siguiente discusin se referir a la Figura 24.2.

    Primero, en el arreglo l=1, un par de nodos duales, como x1(0) y x1(8), estn separados

    pork= 8=N/2l=21.En el arreglo l=2, un par de nodos duales, como x2(8) y x2(2), estn separados por

    k= 4=N/2l=22Similarmente, un par de nodos duales, como x3(4) y x3(6), en el arreglo l=3, estn

    separados k= 2=N/2l=23.Generalizando estos resultados, se observa que el espaciamiento entre nodos duales en

    el arreglo I est dado porN/2I. As, si se considera un nodo en particularxl(k), entonces

    su nodo dual es xl(k+N/2). Esta propiedad permite fcilmente identificar un par de

    nodos duales.

  • 8/8/2019 cap-4 FFT

    8/15

    27 - COMPUTO DE NODO DUAL

    El cmputo de un par de nodos duales requiere slo una multiplicacin compleja.Para clarificar este punto, considrese el nodo x2(8) y su dual x2(12) ilustrados en la

    Figura 24.2. Las sendas de transmisin provenientes del nodo x1(12) estn

    multiplicadas por W4 y W12 antes de ingresar en los nudos x2(8) y x2(12),

    respectivamente.

    Es importante notar que W4 = - W12 y que slo una de las multiplicaciones requeridasdesde el mismo dato x1(12) est para ser multiplicada por estos factores. En general, si

    el factor ponderante en el nodo es Wp = - Wp-N/2, slo se requiere una multiplicacinen el cmputo de un par de nodos duales. El cmputo de cualquier par de nodos dualesest dado por el par de ecuaciones:

    En el cmputo de un arreglo, normalmente se comienza con el nodo k=0 ysecuencialmente se trabaja hacia abajo del arreglo, computando el par de ecuaciones(27-1). Como se estableci previamente, el dual de cualquier nodo en el l-simo arreglo

    est siempre N/2l abajo en el arreglo. Ya que el espaciamiento es N/2, entonces se

    deduce que se deben saltar despus cada N/2l.En la Figura 27.1, si se comienza con el nodo k=0, entonces de acuerdo a la discusin

    previa, el nodo dual est localizado en k=N/2l =4 lo cual puede ser verificado porinspeccin de la figura. Procediendo hacia abajo en este arreglo, se nota que el nododual est siempre localizado 4 posiciones por debajo en el arreglo hasta alcanzar el nodo4.En este punto se ha ingresado un conjunto de nodos previamente encontrados; esto es,estos nodos son los nodos duales k=0, 1 , 2 y 3. Es necesario saltar sobre los nodos k=4,5, 6 y 7. Los nodos 8, 9, 10 y 11 siguen la convencin original del nodo dual localizado4 posiciones ms abajo en el arreglo.

    En general, si se trabaja desde la cima al fondo en el arreglo l, entonces se computar laecuacin (27-1) para los primeros N/2l nodos, salta a los prximos N/2l, etc. Sedetienen los "saltos" cuando se alcanza un ndice de nodo superior a N-1.

    28 - DETERMINACION DE Wp

    En base a las discusiones precedentes, se han definido las propiedades de cada arreglocon la excepcin de los valores de p en (27-1). El valor p se determina p con elsiguiente procedimiento:

    (a) Se escribe el ndice ken forma binaria con bits,

  • 8/8/2019 cap-4 FFT

    9/15

    (b) Se desliza el nmero binario encintrado en a) - l bits a la derecha,llenndose las nuevas posiciones de bit abiertas a la izquierda con ceros y(c) Finalmente, se invierte el orden de los bits.

    Este nmero "bit-reversed" es el p.

    Para ilustrar el procedimiento, refirase a la Figura 24.2 y considrese el nodo x3(8).Ya que = 4, k =8 y l = 3, entonces k en binario es 1000. Se desplaza este nmero - l = 4-3 = 1 lugares a la derecha llenando con ceros los lugares libres, resultando 0100.Entonces se revierte el orden de los bits producindose 0010 o el entero 2. Finalmente,el valor de p es 2.Considrese ahora el procedimiento para implementar esta operacin de reversin de

    bits. Se sabe que un nmero binario, por ejemplo a4a3a2a1 puede ser escrito en base 10

    como a4.23 + a3.2

    2 + a2.21 + a1.2

    0 . El nmero bit-reversed que se est intentando

    describir est dado entonces por a1.23 + a2.2

    2 + a3.21 + a4.2

    0 . Si se encuentra una

    tcnica para determinar los bits binarios a4 , a3 , a2 , a1, entonces se habr definido laoperacin "bit-reversng".Supngase que M es un nmero binario igual a a4 a3 a2 a1. Divdase a M por 2,

    trnquese y multiplquese el resultado truncado por 2. Luego comptese [a4a3a2a1 - 2

    (a4a3a2)]. Si el bit a1 es cero, entonces esta diferencia ser cero porque la divisin por

    2, el truncamiento, y la subsecuente multiplicacin por 2 no altera M.Sin embargo, si el bit a1 es 1, el truncamiento cambia el valor de M y la expresin

    diferencia de arriba no ser cero. Se observa que con esta tcnica se puede determinar siel bit a1 es 0 1.

    Se puede verificar el bit a2 de una forma similar. La expresin diferencia apropiada es[a4a3a2 - 2 (a4a3)]. Si esta diferencia es cero, entonces a2 es cero. Los bits a3 y a4 se

    determinan de la misma manera. Este procedimiento formar las bases del desarrollo deun programa de computadora para bit-reversing.

    29 - REORDENAMIENTO DE LA FFT

    El paso final en el cmputo de la FFT es "reordenar" los resultados anlogos a laecuacin (23-13). Recurdese que el procedimiento para reordenar el vector Xd(n) es

    para escribir n en binario y revertir o "flipear" el nmero binario. Se muestra en laFigura 29.1 el resultado de la operacin bit-reversing; los trminos x

    4(k) y x

    4(i) han

    sido simplemente intercambiados donde i es el entero obtenido por bit-reversing delentero k.

    Ntese que una situacin similar al concepto de nodo dual existe cuando se "reordena"el arreglo de salida. Si se procede hacia abajo en el arreglo, intercambiando x(k) con elapropiado x(i), eventualmente se encuentra un nodo el cual ha sido previamenteintercambiado.Por ejemplo, en la Figura 29.1, el nodo k=0 permanece en su ubicacin, los nodos k=1,2, y 3 son intercambiados con los nodos 8, 4 y 12 respectivamente. El prximo nodo aser considerado es el 4, pero este nodo fue previamente intercambiado con el 2.Para eliminar la posibilidad de considerar un nodo que ha sido previamente

    intercambiado, simplemente chequese para ver si i (el entero obtenido por bit-reversingde k) es menor que k. Si es as, esto implica que el nodo ha sido intercambiado por una

  • 8/8/2019 cap-4 FFT

    10/15

    operacin previa. Con este chequeo se puede asegurar un sencillo procedimiento dereordenamiento.

    30 - DIAGRAMA DE FLUJO PARA EL COMPUTO DE LA FFT

    Usando las propiedades discutidas para el grfico de flujo de seal de la FFT, se puedefcilmente desarrollar una diagrama de flujo para programar el algoritmo sobre unacomputadora digital. Se sabe de las discusiones previas que primero se computa elarreglo l=1 arrancando por el nodo k=0 y trabajando hacia abajo en el arreglo. En cadanodo k se computa el par de ecuaciones (27-1) donde p est determinado por el

    procedimiento descripto. Se contina hacia abajo en el arreglo computando el par deecuaciones (27-1) hasta alcanzar la regin de los nodos que deben ser saltadas.Se salta sobre los nodos apropiados y se contina hasta haber computado el arregloentero. Luego se procede a computar los arreglos remanentes usando el mismo

    procedimiento. Finalmente se reordena el arreglo final para obtener los resultadosdeseados.

    El diagrama de flujo de la Figura 30.1 sirve para elaborar un programa de computadoraque realiza el algoritmo FFT.La caja 1 describe los datos de entrada necesarios. El vector de datos x0(k) se supone

    que es un complejo y est indexado como k = 0, 1, ..., N-1. Si x0(k) es real., entonces la

    parte imaginaria debera ser puesta a cero. El nmero de puntos muestra N debe

    satisfacer la relacin N = 2 , con entero.La inicializacin de varios parmetros del programa se lleva a cabo en la caja 2. El

    parmetro l es el nmero de arreglo que est siendo considerado. Se arranca con elarreglo l=1.El espaciamiento entre los nodos duales est dado por el parmetro N2; para el arreglo

    l=1, N2=N/2 y es inicializado como tal. El parmetro NU1 es el desplazamiento aderecha requerido en la determinacin del valor de p en la ecuacin (27-1); esinicializado a -1. El ndice kdel arreglo es inicializado a k=0, as trabajar desde lacima y progresar hacia abajo en el arreglo.La caja 3 chequea para ver si el arreglo l a ser computado es mayor que . De ser as,el programa bifurca a la caja 13 para reordenar los resultados computados por inversinde bit. Si todos los arreglos no han sido computados, se procede a la caja 4.La caja 4 pone un contador I =1. Este contador monitorea el nmero de pares de nodosduales que han de ser considerados. Recurdese que es necesario saltar ciertos nodoscon el objeto de asegurar que los nodos previamente considerados no son encontrados

    una segunda vez. El contador I es el control para determinar cundo el programa debesaltar.Las cajas 5 y 6 realizan el cmputo de la ecuacin (27-1). Ya que K y l han sidoiniciializados a 0 y 1 respectivamente, el nodo inicial considerado es el primer nodo del

    primer arreglo. Para determinar el factorp para este nodo, recurdese que primero sedebe escalar el nmero binario k a la derecha -l bits. Para llevar a cabo esto, secomputa el valor entero de k/2 l= k/2NUl , y se pone el resultado en M como semuestra en la caja 5. De acuerdo a los procedimientos para la determinacin de p, sedebe bit-reverse M, donde M est representado por = NU bits.La funcin IBR(M) denotada en la caja 5 es una rutina especial para reversin de bit yser descripta ms adelante.

  • 8/8/2019 cap-4 FFT

    11/15

    La caja 6, es el cmputo de (27-1). Se computa el producto Wp.(x(k+N/2) y se asigna elresultado a una locacin de almacenamiento temporario. Despus se suma y se resta estetrmino de acuerdo con (27-1). El resultado es la salida del nodo dual.Luego se procede hacia abajo en el arreglo en el prximo nodo. Como se muestra en lacaja 7, kse incrementa en 1.

    Para evitar el cmputo de un nodo dual que ha sido considerado previamente, sechequea en la caja 8 para determinar si el contadorI es igual a N/2. Para el arreglo 1, elnmero de nodos que pueden ser considerados consecutivamente sin saltar es igual a

    N/2=N2. La caja 8 determina esta condicin. Si I no es igual a N2, entonces se procedehacia abajo en el arreglo y se incrementa el contador I como se muestra en la caja 9.Recurdese que kya ha sido incrementado en la caja 7.Las cajas 5 y 6 son entonces repetidas para el nuevo valor de k.Si I = N/2 en la caja 8, entonces se sabe que se ha alcanzado un nodo previamenteconsiderado. Luego se saltan N2 nodos poniendo k=k+N2. Debido a que kya ha sidoincrementado en 1 en la caja 7, es suficiente saltar a los nodos previamenteconsiderados incrementando a ken N2.Antes de realizar los cmputos indicados en las cajas 5 y 6 para el nuevo nodo k=k+N2,se debe chequear primero para ver que no se haya excedido el tamao del arreglo. Comose muestra en la caja 11, si kes menor que N-1 (recurdese que kest indexado desde 0a N-1), se resetea el contadorI a 1 en la caja 4 y se repiten las cajas 5 y 6.Si k > N - 1 en la caja 11, se sabe que se debe proceder al prximo arreglo. Por lo tanto,como se muestra en la caja 12, I es indexado por 1. El nuevo espaciamiento N2 es

    simplemente N2/2 (recurdese que el espaciamiento es N/2l, NU1 es decrementado en 1(NU1 es igual a - l) y kes reseteado a 0. Luego se chequea la caja 3 para ver si todoslos arreglos han sido computados. Si es as, se procede a reordenar el resultado final.Esta operacin es realizada en las cajas 13 a 17.

    La caja 13 revierte los bits del entero kpara obtener el entero i. De nuevo, se usa lafuncin de reversin de bit IBR(k) la cual se explicar posteriormente. Recurdese que

    para reordenar la FFT simplemente de intercambian x(k) con x(i). Esta manipulacin esrealizada por las operaciones indicadas en la caja 15. Sin embargo, antes de ingresar enla caja 15 es necesario determinar, como se muestra en la caja 14, si i es menor que oigual a k. Este paso es necesario para prohibir la alteracin de los nodos previamentereordenados.La caja 16 determina cundo todos los nodos han sido reordenados y la caja 17 essimplemente un ndice para k.En la caja 18, se describe la lgica de la funcin de reversin de bit IBR(k). Se haimplementado el procedimiento de reversin de bit descripto en un pargrafo anterior.

    Cuando se procede a implementar el diagrama de flujo de la figura adjunta en unprograma de computadora, es necesario considerar las variables x(k) y Wp comonmeros complejos y ellas deben ser manejadas acordemente.

  • 8/8/2019 cap-4 FFT

    12/15

    Figura 24.2

  • 8/8/2019 cap-4 FFT

    13/15

    Figura 27.1

  • 8/8/2019 cap-4 FFT

    14/15

    Figura 29.1

  • 8/8/2019 cap-4 FFT

    15/15

    Figura 30.1