55
La Transformada rápida de Fourier Expositor: José Luis Oropeza Rodríguez México D. F., a 17 de agosto de 2006

Transformada Rapida de Fourier

Embed Size (px)

DESCRIPTION

transformada de fourier

Citation preview

Page 1: Transformada Rapida de Fourier

La Transformada rápida de Fourier

Expositor: José Luis Oropeza Rodríguez

México D. F., a 17 de agosto de 2006

Page 2: Transformada Rapida de Fourier

OBJETIVO

• Presentar al alumno la forma de obtención de la Transformada Discreta de Fourier de un conjunto de muestras mediante el algoritmo de la Transformada Rápida de Fourier.

BOSQUEJO DE LA PRESENTACIÓN

• Introducción• Antecedentes• Representación y fórmula

matemática• Aplicaciones

Page 3: Transformada Rapida de Fourier
Page 4: Transformada Rapida de Fourier
Page 5: Transformada Rapida de Fourier
Page 6: Transformada Rapida de Fourier
Page 7: Transformada Rapida de Fourier
Page 8: Transformada Rapida de Fourier
Page 9: Transformada Rapida de Fourier
Page 10: Transformada Rapida de Fourier
Page 11: Transformada Rapida de Fourier
Page 12: Transformada Rapida de Fourier
Page 13: Transformada Rapida de Fourier
Page 14: Transformada Rapida de Fourier
Page 15: Transformada Rapida de Fourier
Page 16: Transformada Rapida de Fourier

Transformada Discreta de Fourier

» x=[1 2 1 0]

x =

1 2 1 0» X=fft(x)

X =

4.0000 -0.0000 - 2.0000i 0 -0.0000 + 2.0000i

Page 17: Transformada Rapida de Fourier

EL ALGORITMO DE LA FFT

1

0

2

)(1 N

k

N

nkj

ekTmNNT

nF

Njkn

N

k

kn

eWpara

WkTmNNT

nF

/2

1

0

)(1

Redefiniendo: Como:

La expansión al hacer uso de la expresión anterior se convierte en:

96301

0

3

1

0

64202

32101

0

1

0

00000

1

0

]3[]2[]1[]0[][]3[

]3[]2[]1[]0[][]2[

]3[]2[]1[]0[][]1[

]3[]2[]1[]0[][]0[

40][][

WxWxWxWxWkxx

WxWxWxWxWkxx

WxWxWxWxWkxX

WxWxWxWxWkxX

nparaWkxnX

N

k

k

N

k

k

N

k

k

N

k

N

k

nk

Page 18: Transformada Rapida de Fourier

EL ALGORITMO DE LA FFT

La expresión anterior toma la forma matricial:

]3[

]2[

]1[

]0[

1

1

1

1111

]3[

]2[

]1[

]0[

]3[

]2[

]1[

]0[

]3[

]2[

]1[

]0[

963

642

321

9630

6420

3210

0000

x

x

x

x

WWW

WWW

WWW

X

X

X

X

bieno

x

x

x

x

WWWW

WWWW

WWWW

WWWW

X

X

X

X

Page 19: Transformada Rapida de Fourier

EL ALGORITMO DE LA FFT

La expresión anterior se puede simplificar debido a que: Wnk=Wmod(nk,N), lo cual se puede verificar con:

Considerando en este caso que N=8

Page 20: Transformada Rapida de Fourier

EL ALGORITMO DE LA FFT

]3[

]2[

]1[

]0[

1

1

1

1111

]3[

]2[

]1[

]0[

123

202

321

x

x

x

x

WWW

WWW

WWW

X

X

X

X

Por lo tanto la expresión se convierte en:

La cual se puede descomponer en la forma:

]3[

]2[

]1[

]0[

010

001

010

001

100

100

001

001

]3[

]2[

]1[

]0[

2

2

0

0

3

1

2

0

x

x

x

x

W

W

W

W

W

W

W

W

X

X

X

X

Que contiene el segundo y tercer renglón invertidos con relación a la matriz original.

Page 21: Transformada Rapida de Fourier

EL ALGORITMO DE LA FFT

La matriz anterior puede ser descompuesta como el producto de 2 partes separables, de tal forma que la expresión para la primera de ellas queda de la forma:

3

1

2

0

2

2

0

0

100

100

001

001

*

]3[

]2[

]1[

]0[

010

001

010

001

]3[

]2[

]1[

]0[

W

W

W

W

x

x

x

x

W

W

W

W

X

X

X

X

)3()1()3(

)2()0()2(

)3()1()1(

)2()0()0(

21

21

01

01

xWxx

xWxx

xWxx

xWxx

)3()1()3(

)2()0()2(

)3()1()1(

)2()0()0(

01

01

01

01

xWxx

xWxx

xWxx

xWxx

Page 22: Transformada Rapida de Fourier

EL ALGORITMO DE LA FFT

Con lo que se llega a la siguiente expresión:

)3(

)2(

)1(

)0(

100

100

001

001

]3[

]2[

]1[

]0[

1

1

1

1

3

1

2

0

x

x

x

x

W

W

W

W

X

X

X

X

)3()2()3(

)3()2()2(

)1()0()1(

)1()0()0(

13

1

11

1

12

1

10

1

xWxX

xWxX

xWxX

xWxX

)3()2()3(

)3()2()2(

)1()0()1(

)1()0()0(

11

1

11

1

10

1

10

1

xWxX

xWxX

xWxX

xWxX

Generalizando el algoritmo se puede observar que el coste de cálculo se reduce del orden de O(Nlog2 N) frente al orden O(N2).

Page 23: Transformada Rapida de Fourier

EJEMPLO DE LA FFT

Suponga la secuencia de entrada dada por el ejercicio antes analizado en esta presentación:

Se aplica el algoritmo de la FFT (Cooley-Tukey) mencionado anteriormente para encontrar la DFT.

)3()1()3(

)2()0()2(

)3()1()1(

)2()0()0(

21

21

01

01

xWxx

xWxx

xWxx

xWxx

3

1

2

0

2

2

0

0

100

100

001

001

*

0

1

2

1

010

001

010

001

]3[

]2[

]1[

]0[

W

W

W

W

W

W

W

W

X

X

X

X

)3()1()3(

)2()0()2(

)3()1()1(

)2()0()0(

01

01

01

01

xWxx

xWxx

xWxx

xWxx

202)0(2)3(

011)1(1)2(

202)0(2)1(

211)1(1)0(

01

01

01

01

Wx

Wx

Wx

Wx

Page 24: Transformada Rapida de Fourier

EJEMPLO DE LA FFT

2

0

2

2

100

100

001

001

]3[

]2[

]1[

]0[

3

1

2

0

W

W

W

W

X

X

X

X

)3()2()3(

)3()2()2(

)1()0()1(

)1()0()0(

13

1

11

1

12

1

10

1

xWxX

xWxX

xWxX

xWxX

)3()2()3(

)3()2()2(

)1()0()1(

)1()0()0(

11

1

11

1

10

1

10

1

xWxX

xWxX

xWxX

xWxX

jjjseneWX

jjjseneWX

WX

WX

j

j

2)0(2))21()

21

(cos(2)(2)2(0)3(

2)0(2))21()

21

(cos(2)(2)2(0)2(

022)2(2)1(

422)2(2)0(

4/21

)4/21

0

0

X(0)=4

X(1)=-2j

X(2)=0

X(3)=2j

Aplicando bit reversi

Page 25: Transformada Rapida de Fourier

Se puede observar que en el caso de la 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á ordenada mientras que la salida habrá que reordenarla.

Se da la circunstancia que esa reordenación es implemente invertir el índice en binario. Por ejemplo, en la misma posición x[1[] aparece X[4], y 001 invertido es 100.

Page 26: Transformada Rapida de Fourier

En donde , y cada una de los términos de la sumatoria es reducido a N/2 puntos de la DFT. Gráficamente, el cálculo se ha reducido a:

DECIMACIÓN EN TIEMPO

NjN

N

m

kmN

N

m

mkN

parn imparn

knN

knN

N

n

nkN

eWdonde

WmxWmxkX

WnxWnx

NkWnxkX

/2

1)2/(

0

)12(1)2/(

0

2

1

0

:

)12()2()(

)()(

,.....,2,1,0)()(

nN

nN WW 2/2

Otra forma de visualizar la descomposición de la FFT es factorizar la expresión de la DFT en muestras de entrada par e impar, tal que:

Considerando que f1 y f2 representen las componentes de la muestra de entrada par e impar respectivamente; esto es, f1(m)=x(2m) y f2(m)=x(2m+1), m=0,1,…..,(N/2)-1, la suma anterior puede escribirse de la forma.

1)2/(

02/2

1)2/(

02/1 )()()(

N

m

mkN

N

m

kN

mkN WmfWWmfkX

Page 27: Transformada Rapida de Fourier

DECIMACIÓN EN TIEMPO

)()( 21 kFykF

La forma general que adoptan las ecuaciones anteriores es:

Ya que la salida de la DFT es periódica, X1(k)=X1(k+N/2) y X2(k)=X2(k+N/2). La última ecuación es comúnmente llamada la mariposa de la FFT de la Decimación en Tiempo.

Tomando en consideración el hecho de que:

12

,....,1,0

,

)()(

)()()2/(

)()()(

2/)2/(

2/2/

21

22/

1

21

Nkcon

WWyWW

donde

kFWkF

kFWkFNkX

kFWkFkX

mkN

NkmN

kN

NkN

kN

NkN

kN

Son las DFT’s de N/2 puntos de las secuencias f1(m) y f2(m), respectivamente

Page 28: Transformada Rapida de Fourier

DECIMACIÓN EN TIEMPO

1)2/(,....,1,0)()()2

(

1)2/(,....,1,0)()()(

21

21

NkkGkGN

kX

NkkGkGkX

Para ser consistentes con la notación que anteriormente se utilizó, se tiene:

Así la DFT X(k) se puede expresar como:

1)2/(,....,2,1,0)()(

1)2/(,.....,1,0)()(

)()()(

22

11

21

NkkFWkG

NkkFkG

kFWkFkX

kN

kN

Este cálculo se muestra en la siguiente figura:

Page 29: Transformada Rapida de Fourier

DECIMACIÓN EN TIEMPO

x(0)x(2)

x(4)

x(N-2)

x(1)x(3)

DFT de

N/2 puntosF1(0)

F1(1)F1(2)

F1(N/2-1)

F2(0)

F2(1)

X(N/2-1)

X(N-1)

X(N/2)

X(N/2+1)

DFT de

2 puntos

X(0)X(1)

G1(k)

G2(k)

Factores de fase k

NW

Page 30: Transformada Rapida de Fourier

DECIMACIÓN EN TIEMPOHabiendo realizado el diezmado en tiempo una vez, se puede repetir el proceso para cada una de las secuencias f1(n) y f2(n). Por lo tanto, f1(n) dará lugar a las dos secuencias de N/4 puntos.

y f2(n) dará lugar a:

14

,.....,1,0)12()(

14

,.....,1,0)2()(

112

111

Nnnfnv

Nnnfnv

14

,.....,1,0)12()(

14

,.....,1,0)2()(

222

221

Nnnfnv

Nnnfnv

Page 31: Transformada Rapida de Fourier

DECIMACIÓN EN TIEMPOCalculando las DFTs de N/4 puntos obtendremos las DFTs de dos puntos F1(k) y F2(k) a partir de las relaciones.

14

,.......,1,0)()()4

(

14

,.......,1,0)()()(

14

,.......,1,0)()()4

(

14

,.......,1,0)()()(

222/212

222/212

122/111

122/111

NkkVWkV

NkF

NkkVWkVkF

NkkVWkV

NkF

NkkVWkVkF

kN

kN

kN

kN

Page 32: Transformada Rapida de Fourier
Page 33: Transformada Rapida de Fourier
Page 34: Transformada Rapida de Fourier
Page 35: Transformada Rapida de Fourier
Page 36: Transformada Rapida de Fourier
Page 37: Transformada Rapida de Fourier
Page 38: Transformada Rapida de Fourier

EJEMPLO

)()()2/(

)()()(

)12()(,)2()(

:exp

)12()2()2/(

)12()2()(

122cos

11,012

,0,4

)12()2()2/(

)12()2()2/(

)12()2()(

,,,:

21

21

1)2/(

0

22

1)2/(

0

21

1)2/(

0

21)2/(

0

2

1)2/(

0

21)2/(

0

2

222/2

2/122/12/

1)2/(

0

2/221)2/(

0

2/2/22

1)2/(

0

2/21)2/(

0

2/2/2

1)2/(

0

21)2/(

0

2

3210

kfWkfNkX

kfWkfkX

WnxkfWnxkf

anterioresresioneslasreduciendo

WnxWWnxNkX

WnxWWnxkX

finalalquedando

njsenneneWWademás

eeWWN

kNpara

WWnxWWWnxNkX

WnxWWnxNkX

WnxWWnxkX

xxxxnxsiendo

kN

kN

N

n

nkNo

N

n

nkNe

N

n

nkNo

N

n

kN

nkNe

N

n

nkNo

N

n

kN

nkNe

njnjnnNN

jjNN

N

m

nNN

nkNo

N

n

NkN

nNN

nkNe

N

m

NknNo

N

n

NkN

NknNe

N

n

nkNo

N

n

kN

nkNe

Page 39: Transformada Rapida de Fourier

)3()1()2()0()3(

)3()1()2()0()1(

1

)3()1()2()0()2(

)3()1()2()0()0(

0

)3()1()3()1()1(

)3()1()3()1()0(

)2()0()2()0()1(

)2()0()2()0()0(

,)1(),0(

)1(),0(

)3()1()12()1(

)2()0()2()1(

)3()1()12()0(

)2()0()2()0(

)1()1()3(

)1()1()1(

1

)0()0()2(

)0()0()0(

0

04

14

04

04

14

04

04

04

04

04

04

04

04

04

04

04

04

24

042

04

04

04

042

04

24

041

04

04

04

041

22

11

24

04

1)2/(

0

22

24

04

1)2/(

0

21

04

04

1)2/(

0

22

04

04

1)2/(

0

21

2141

2141

2041

2041

xWxWxWxX

xWxWxWxX

kpara

WxWxWWxWxX

WxWxWWxWxX

kpara

xWxWxWxf

WxWxWxWxf

xWxWxWxf

WxWxWxWxf

salidasanalizandomariposaotraladesalidaslassonffquemientras

ymariposaunadesalidassonffqueobservasefiguralaen

WxWxWnxf

WxWxWnxf

WxWxWnxf

WxWxWnxf

doSustituyen

fWfX

fWfX

kpara

fWfX

fWfX

kpara

N

n

nkNo

N

n

nkNe

N

n

nkNo

N

n

nkNe

X0

X1

X2

X3

f1(0)

f1(1)

f2(0)

f2(1)

x(0)

x(2)

x(1)

x(3)W0

4

W04

W04

W14

-1

-1

-1

-1

Page 40: Transformada Rapida de Fourier

DECIMACIÓN EN TIEMPO

W80

W80

W80

W80

W80

W82

W80

W82

W82

W83

W81

W80

-1 -1 -1

-1-1-1

-1

-1

-1

-1

-1

-1

Page 41: Transformada Rapida de Fourier

MARIPOSA BÁSICA DEL ALGORITMO DE LA FFT DE DIEZMADO EN EL TIEMPO

Obsérvese que el cálculo básico que se realiza en cada etapa, como se muestra en la figura de la diapositiva anterior, consiste en tomar dos números complejos, esto es (a,b), multiplicar por , y restar el producto obtenido de a para obtener los dos nuevos números complejos (A,B). Este cálculo básico, que se ilustra en la siguiente figura

rNW

A=a+WN’b

B=a-WN’bWN’

-1

Page 42: Transformada Rapida de Fourier

DECIMACIÓN EN FRECUENCIA

Page 43: Transformada Rapida de Fourier

ALGORITMO DE LA FFT POR DECIMACIÓN EN FRECUENCIA CON

RADIX-2Considere una secuencia de entrada en el dominio del tiempo x(n) que se puede separar en dos mitades

)1(),......,1(),0( 2 Nxxx

1)2/(

0

1

2/

)()()(N

n

N

Nn

nknk WnxWnxkX

1)2/(

0

1)2/(

0

)2

()()(N

n

N

n

nknk WN

nxWnxkX

2/Nnn

kkkjjkkN jseneeW 1cos2/

2/kNW

y 1,.......,12

,2

Nx

Nx

N

Tomando la DFT de cada conjunto de secuencia en las expresiones anteriores, queda

Considerando en la segunda suma de 6.8; X(k) se convierte en

En donde se toma fuera de la seguna sumatoria debido a que no es una función de n. Utilizando

Page 44: Transformada Rapida de Fourier

Debido a que para cada k par y -1 para k impar, la ecuación anterior puede ser separada para k par e impar, o bien

1. Para k impar:

2. Para k par:

DECIMACIÓN EN FRECUENCIA

nkN

n

k WN

nxnxkX

1)2/(

0 21)()(

nkN

n

WN

nxnxkX

1)2/(

0 2)()(

nkN

n

WN

nxnxkX

1)2/(

0 2)()(

Sustituyendo k=2k para k par, y k=2k+1 para k impar, las expresiones anteriores pueden escribirse de la forma k=0,1,…..,(N/2)-1 como

nkN

n

WN

nxnxkX 21)2/(

0 2)()2(

nknN

n

WWN

nxnxkX 21)2/(

0 2)()12(

k1

Page 45: Transformada Rapida de Fourier

)2/()()(

)2/()()(

Nnxnxnb

Nnxnxna

2/NWNWDebido a que la constante twiddle W es una función de longitud N, ésta puede ser representada como . Entonces se puede escribir como . Considere

2NW

Las ecuaciones anteriores pueden ser escritas de forma más clara como DFTs de (N/2) puntos, o bien

1)2/(

02/

12/

02/

)()12(

)()2(

N

n

nkN

nN

N

n

nkN

WWnbkX

WnakX

Page 46: Transformada Rapida de Fourier

La siguiente figura muestra la descomposición de una DFT de N puntos en dos DFTs de (N/2)-puntos para N=8. Como un resultado del proceso de descomposición, las Xs en la figura son pares en la mitad superior y los impares en la mitad más baja. El proceso de descomposición se puede repetir de tal forma que cada (N/2)-puntos será descompuesto en dos DFTs de (N/4) puntos, como se ilustra en la figura de la derecha, también para N=8.

Page 47: Transformada Rapida de Fourier

Considere que la entrada x(n) representa una forma de onda rectangular, o x(0)=x(1)=x(2)=x(3)=1 y x(4)=x(5)=x(6)=x(7)=0. Los ocho puntos del diagrama de flujo de la figura anterior se pueden utilizar para encontrar las secuencias de salida X(k), k=0,1,…..,7. Con N=8, cuatro constantes gemelos (twiddle) a ser calculadas, o

7071.07071.0

7071.07071.0)4/sin()4/cos(

1

8/63

8/42

8/21

0

jeW

jeW

jjeW

W

j

j

j

La salida de secuencia intermedia se puede encontrar después de cada etapa.

Page 48: Transformada Rapida de Fourier

)7('7071.07071.0)7()3(

)6(')6()2(

)5('7071.07071.0)5()1(

)4('1)4()0(

3'1)7()3(

2'1)6()2(

1'1)5()1(

0'1)4()0(

1

3

2

1

0

xjWxx

xjWxx

xjWxx

xWxx

xxx

xxx

xxx

xxx

Etapa

En donde x’(0), x’(1),…..,x’(7) representa la secuencia de la salida intermedia después de la primera iteración, lo cual se convierte en la entrada a la segunda etapa.

Page 49: Transformada Rapida de Fourier

7''41.1)7(')5('

6''1)6(')4('

5''41.1)7071.07071.0()7071.07071.0()7(')5('

4''1)6(')4('

3''0)3(')1('

2''0)2(')0('

1''2)3(')1('

0''2)2(')0('

2

2

0

2

0

xjWxx

xjWxx

xjjxx

xjxx

xWxx

xWxx

xxx

xxx

Etapa

El resultado intermedio, la secuencia de salida de la segunda etapa x’’(0), x’’(1),……..,x’’(7) se convierte en la secuencia de entrada de la tercera etapa.

Page 50: Transformada Rapida de Fourier

41.21)7('')6('')7(

41.0141.11)7('')6('')3(

41.01)5('')4('')5(

41.2141.11)5('')4('')1(

0)3('')2('')6(

0)3('')2('')2(

0)1('')0('')4(

4)1('')0('')0(

3

jxxX

jjjxxX

jxxX

jjjxxX

xxX

xxX

xxX

xxX

Etapa

Ahora se utiliza la notación de X’s para representar la secuencia de salida final. Los valores de X(0), X(1), …… , X(7) froman la secuencia de salida invertida. Estos resultados pueden ser verificados con MATLAB, la secuencia de salida se debe de reordenar y con ellos graficar la magnitud de salida.La FFT de 16 puntos. Dados los valores de una señal de entrada x(0)=x(1)=……=x( 7)=1, y x(8)=x(9)=….=x(15)=0, la cual representa una secuencia de entrada rectangular. La secuencia de salida puede encontrarse utilizando el grafo de 16 puntos que se ilustra en la siguiente figura. Los resultados intermedios de la salida de cada etapa se encuentran de una forma similar a la del ejercicio anterior. Ocho constantes gemelas W0, W1,….,W7 se requieren calcular para N=16.

Page 51: Transformada Rapida de Fourier
Page 52: Transformada Rapida de Fourier

El algoritmo se estructura en niveles de cómputo . Para el desarrollo de este algoritmo deben tenerse en cuenta los siguientes puntos:

•Cada par de puntos de un cierto nivel s obtienen a partir de otros dos del nivel anterior. Estos dos puntos origen se dicen que son nodos duales.

•El espaciado entre dos nodos duales es

•Cómputo de nodos duales: mariposas. El cómputo de dos nuevos nodos a partir de dos nuevos nodos duales se denomina mariposa. Su estructura se muestra en la gráfica (b) y se corresponde con la siguiente expresión:

DECIMACIÓN EN FRECUENCIA

)2/()()2/(

)2/()()(

11

11

ll

pl

ll

ll

pll

NkxWkxNkx

NkxWkxkx

N2log

Lo cual se puede simplificar a la estructura mostrada en la parte c de la figura.

,.....,3,2,1

Page 53: Transformada Rapida de Fourier

Determinación de Wp

1.Escribir k (nodo actual) en forma de número binario de bits

2.Desplazar bits a la derecha (rellenando con ceros)

3.Invertir el orden de los bits (001 pasa a 100). El resultado es p.

DECIMACIÓN EN FRECUENCIA

,.....,3,2,1

log 2

N

1

Page 54: Transformada Rapida de Fourier

PSEUDOCÓDIGO PARA IMPLEMENTAR LA TRANSFORMADA RÁPIDA DE FOURIER

m=LOG(N)/LOG(2)N2=NDO k=1, m N1=N2 N2=N2/2 angle=0 arg=2(pi)/N1 DO j=0, N2-1

c=cos(angle) s=-sin(angle) DO i=j, N-1, N1 kk=i+N2 xt=x(i)-x(kk) x(i)=x(i)+x(kk) yt=y(i)-y(kk) y(i)=y(i)+y(kk) x(kk)=xt*c-yt*s y(kk)=yt*c+xt*sEND DO angle=(j+1)*arg

END DOEND DO

j=0DO i=0, N-2 IF (i<j) THEN xt=xj xj=xi xi=xt yt=yj yj=yi yi=yt END IF k=N/2 DO IF (k>=j+1) EXIT j=j-k k=k/2 END DO j=j+kEND DODO i=0, N-1 x(i)=x(i)/N y(i)=y(i)/NEND DO

Page 55: Transformada Rapida de Fourier

CONCLUSIONES

• Se realizó un breve panorama histórico del algoritmo de la trasformada rápida de Fourier

• Se demostró la representación en algebra lineal del algoritmo de la FFT.

• Se encontraron los elementos adecuados para determinar de manera adecuada un algoritmo sencillo y práctico para determinar la Transformada rápida de Fourier.