10
UNIVERSIDAD AUT ´ ONOMA DE M ´ EXICO Una Versi´ on Matricial para los Algoritmos R´ apidos en el Calculo de la Transformada de Fourier Discreta AN ´ ALISIS NUM ´ ERICO I Alumno JORGE ZAVALETA S ´ ANCHEZ Profesor DR. PABLO BARRERA S ´ ANCHEZ exico D.F., a 05 de Diciembre de 2008.

TransformadaFourierDiscreta.pdf

  • Upload
    moises

  • View
    213

  • Download
    1

Embed Size (px)

Citation preview

  • UNIVERSIDAD AUTONOMA DE MEXICO

    Una Version Matricial para los Algoritmos Rapidos en el Calculo dela Transformada de Fourier Discreta

    ANALISIS NUMERICO I

    Alumno

    JORGE ZAVALETA SANCHEZ

    Profesor

    DR. PABLO BARRERA SANCHEZ

    Mexico D.F., a 05 de Diciembre de 2008.

  • Una version matricial para los algoritmos rapidos en el calculo de latransformada de Fourier discreta.

    La transformada de Fourier DiscretaLa representacion de Fourier de una funcion f(x) diferenciable 2pi-periodica es bien conociday esta dada por:

    f(x) =

    ckeikx

    donde

    ck =1

    2pi

    2pi0

    f(z)eikzdz.

    Las ck son llamadas coeficientes de Fourier de la funcion.

    Algoritmos de Cooley-Tukey.

    Otras variantes para la factorizacion de W2k se han encontrado en la practica, las consider-aremos ahora.Tenemos

    W2k = V2kV2k1 V2Qkalgunas veces es mas conveniente hacer un reordenamiento de las columnas y los renglonesde las matrices V2r (r = 1, 2, . . . , k) lo que da lugar a la factorizacion siguiente

    W2k = Qk(QkV2kQk)(QkV2k1Qk) . . . (QkV2Qk)

    = QkU2kU2k1 U2,

    dondeU2r = QkV2rQk 1 r k.

    Para entender claramente este nuevo reordenamiento necesitamos la estructura de las matri-ces U2r , esta se obtendra como consecuencia del lema siguiente cuya demostracion es inmedi-ata

    Lema 0.1. Si r(u) es la reversion binaria del numero u en r bits, y r < k entonces

    1. si 0 u < 2kr implica k(u) = 2rkr(u).2. si v = ` 2kr y 0 ` < 2r implica (v) = (2(kr)v).3. si u y v satisfacen 1) y 2) implica k(u+ v) = k(u) + k(v)

  • Un calculo directo permite obtener las formulas siguientes

    U2res+`2kr+1 = es+`2kr+1 + es+`2kr+1+2kr

    U2res+`2kr+1+2kr = (es+`2kr+1 es+`2kr+1+2kr)qr1(`)2rdonde es+`2kr+1 y es+`2kr+1+2kr son los vectores de la base canonica {e0, . . . .e2k1}, por lotanto las estructuras de las matrices queda

    U2 =

    I2k1 I2k1I2k1 I2k1

    ; r = 1

    U22 =

    I2k1 I2k1

    0I2k1 I2k1

    I2k1 122I2k1

    0I2k1 122I2k1

    ; r = 2en bloques

    U22 =

    G(0)2k1 00 G

    (1)

    2k1

    donde

    G(t)

    2k1 =

    I2k1 t22I2k1I2k1 t22I2k1

    en general

    U2r =

    I2kr I2krI2kr I2kr

    0 0 0 0 00

    I2kr d1I2krI2kr d1I2kr

    0 0 0 0. . .

    0 0 0

    I2kr d`I2krI2kr d`I2kr

    0 0. . .

    0 0 0 0 0

    I2kr d2r1I2krI2kr d2r1I2kr

    3

  • donded` =

    r1(`)2r , ` = 0, . . . , 2

    r1 1.En forma compacta la U2r es

    U2r = diag(G

    (`)

    2kr+1

    )donde

    G(`)

    2k+1r =

    I2kr r1(`)2r I2krI2kr r1(`)2r I2kr

    a partir de la ultima expresion se obtiene el algoritmo siguiente

    4

  • >incrementa r

    >incrementa `

    p p 2kr+1>incrementa t

    zp+t zp+t + zp+2kr+t zp+t + zp+2kr+t

    Para t = 0, 1, , 2kr 1 b2rb (`)r1Calculo de G

    (`)

    2kr+1zt,r

    Para r = 1, , kp 0

    Calculo de U2rz

    Para r = 1, , kEntrada

    (N = 2k, z

    )Algoritmo de Cooley-Tukey para T.F.D

    5

  • Salida z = 12kz

    >incrementa t

    zt TZb ztT zbsi (b t); incrementa tb k(t)

    Para t = 0, . . . , N 1Intercambio z zt

    Calculo de Qz

    Salida

    >incrementa `

    j m 2 + (j 2m)m [j2]Para ` = 0, . . . , s 1 0j tFuncion s(t)

    Los algoritmos anteriores, son conocidos en la literatura bajo el nombre de Transformada deFourier rapida, se usan las iniciales F.F.T. Si la reversion binaria se aplica al principio se diceque el algoritmo con decimacion en el tiempo y si se aplica al final, que opera con decimacionen la frecuencia.

    Factorizacion de la matriz WN , en el caso general N = mn.Sea Pmn la permutacion de las columnas de Wmn que agrupa por bloques las columnas segunsu residuo modulo n, es decir

    Pmn = y = y; ymn(c) = yc,

    entonces la funcion mn asociada a la permutacion nos queda

    mn(c) = `m+ q

    si c = qn+ ` 0 ` < n.

    6

  • Si a su vez formamos bloques de dimension m con los renglones de la matriz permutadaobtenemos.

    WmnPmn =

    B0,0 B0,0 B0,n1B1,0 B1,1 B1,n1...

    ......

    Bs,0 Bs,1 Bs,n1...

    ......

    Bn1,0 Bn1,1 Bn1,n1

    A continuacion veremos como queda cada bloque explcitamente. Si los bloque son de laforma

    Bs,` =((s,`)p,q

    )entonces los elementos para cada bloque estaran dados por la relacion

    (s,`)p,q = rcmn

    donde r y c son los ndices de el renglon p y la columna q en Wmn respectivamente.El renglon r esta dado por la expresion

    r = sm+ p

    debido a que el elemento (s,l)p,q pertenece al s-esimo bloque de los renglones y esta en el lugar

    p-esimo, por otro lado ya vimos que la expresion para las columnas es c = qn+ `, entonces

    (s,`)p,q = (sm+p)(qn+`)mn

    = pqn+s`m+p`mn= s`n

    pqm

    p`mn

    por lo tanto explcitamente cada bloque es

    Bs,1 = s`n

    (pqm

    p`mn

    )= s`n diag (

    pmn)

    ` (pqm )

    entoncesBs,` =

    s`n D

    `NWm, N = mn

    dondeDmn = diag (

    pmn) , p = 0, 1, . . . ,m 1

    Sustituyendo en WNPN es inmediato obtener

    WNPN =

    Im DN D2N D`N Dn1N

    Im nDN 2nD

    2N `nD`N (n1)n Dn1N

    ......

    ......

    ...

    Im snDN

    2sn D

    2N `sn D`N s(n1)n Dn1N

    ......

    ......

    ...

    Im (n1)n DN

    2(n1)n D2N `(n1)n D`N (n1)

    2

    n Dn1N

    diag(Wm)

    7

  • en terminos del producto de Kronecker la factorizacion queda

    WNPN = (Wn Im)diag(D`n)(In Wn)Caso N = nk. La relacion para N = nk nos da

    WnkPnk = Fnk diag(W k1n )donde

    Fnk = (Wn Ink1)diag(D`nk= B(s, t), 0 < s, t < n

    cada Bs,t es un bloque de orden nk1 dado por la igualdad

    Bs,t = stnD

    tnk1

    yDnk1 = diag

    (`n), 0 ` < nk1

    ademas la funcion k(c) asociada a la permutacion Pnk es

    k(c) = rnk1 + s

    sic = sn+ r, 0 r < n.

    De manera al caso clasico N = 2k, se obtiene la factorizacion

    WnkQk = VnkVnk1 Vndonde Vnr = diag(Fnr), la matriz de permutacion es

    Qk = Pnkdiag(Pnk1) . . . diag(Pn2)diag(Pn)

    Es inmediato generalizar los resultados anteriores, entonces

    Lema 0.2. Sea r la funcion asociada a la permutacion Pnr . Si

    s = sr1nr1 + sr2nr2 + + s1n+ s0donde 0 s < nr, implica

    r(s) = s0nr1 + sr1nr2 + sr2nr3 + + s2n+ s1

    Teorema 0.1. Sea r la funcion asociada a la permutacion diag(Pnr), si

    s = sk1nk1 + sk2nk2 + + srnr + sr1nr1 + + s1n+ s0y 0 s < nk, implica

    r(s) = sk1nk1 + sk2nk2 + + srnr + s0nr1 + sr1nr2 + + s2n+ s1

    8

  • Corolario 0.1. La funcion k asociada a la permutacion Qk es la reversion n-aria en kdgitoses decir si

    s = sk1nk1 + sk2nk2 + + s1n+ s0implica

    k(s) = s0nk1 + s1nk2 + + sk2n+ sk1, y Qk = Qtk.

    Con base en los resultados anteriores se tiene

    Wnk = VnkVnk1 VnQk.Caso N = mn, (m,n)=1. Otro resultado conocido es el siguiente: si N = mn, donde m y nson primos relativos, entonces es posible reordenar las columnas y los renglones de WN parafactorizarla tensorialmente en terminos deWn yWm, es decir existen matrices de permutacionP y Q tales que

    PWnQt = Wn Wm,

    esta factorizacion se comprueba de la manera siguiente: primero fijemonos que los bloquesdel producto tensorial son

    Wn Wm = k`n Wm,si P y Q son matrices de permutacion tales que producen una particion de WN en bloquesde orden m, entonces

    PWN = Qt =Mk`, 0 k, ` < n

    para establecer la igualdad anterior es necesario que se cumpla

    Mk` = k`n Wm

    denotamos a los elementos cuyos bloques son Mk` como k,lp,q, donde los ndices p, q indican

    el lugar renglon-columna respectivo dentro del bloque, entonces

    k,`p,q = k`n

    pqm

    = k`mmn pqnmn

    = k`m+pqnN ,

    por otro lado k,lp,q = rcN , como el elemento

    k,lp,q esta en el renglon r = km+ p, por medio de

    las condiciones siguientes

    r k(mod n),r p(mod m),

    se calcula el renglon original r, dados k, p usando el teorema chino del residuo, como es bienconocida la solucion de este teorema se tiene

    r pn1n+ kn2m(mod N)

    9

  • donde n1n+ n2m = 1.Tambien e debe cumplir que k,`p,q este en la columna c = `m+ q, por consiguiente la funcion(c) asociada a la matriz de permutacion Q es

    (c) = c = `m+ q

    entonces la columna c original debe satisfacer las condiciones

    c `m(mod n)c qn(mod m)

    para que los bloques Mk` cumplan con la igualdad

    Mk` k`n WmUna vez mas usamos el Teorema chino del residuo y obtenemos

    c qn+ `m(mod N)

    es decir

    r = 1(km+ p) pn1n+ kn2m(mod N),c = 1(`m+ q) qn+ `m(mod N).

    Ahora verifiquemos que en efecto (r) y (c) son las funciones apropiadas.Ya que

    k.`p,q = rcN =

    (pn1n+kn2m)(qn+`m)

    entonces(pn1n+ kn2m)(qn+ `m) pqn+ k`m (mod N)

    por lo tantok,lp,q =

    pqm

    k`n

    10