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