Vous êtes sur la page 1sur 46

EQUIPO FFT

Fast furious Fourier transform 7


Integrantes:
Aguilar ramos Mario
Gonzales Ziga Luis Orlando
Aldrin Senz
Pablo Santiago Martnez

Temas

1.-Definicion FFt
2.-FFT Decimacion en el tiempo
3.-TFD en matlab
4.-Aplicaciones de la FFT
Introduccin
A principios del siglo XIX, a partir de
problemas fsicos como la vibracin de una
cuerda o la propagacin del calor, Joseph
Fourier desarrollo una teora matemtica
sobre la representacin de funciones por
medio de series trigonomtricas, que mas
tarde terminara en llamarse Anlisis de
Fourier.

FFT
Sin embargo, si durante casi 200 aos el
Anlisis de Fourier no ha pasado de ser un
importante campo de estudio dentro de la
matemtica, con aplicaciones a la fsica o a
otras ciencias, a partir del ao 1965 la historia
cambia por completo. Ese ao, Cooley y
Tukey publicaron un mtodo para calcular
transformadas de Fourier que significaba un
ahorro de tiempo importante respecto de todos
los mtodos conocidos hasta entonces, y que
posteriormente se denominara transformada
rpida de Fourier(o FFT, por sus iniciales en
ingles).

FFT
Este descubrimiento significo que muchos
problemas, de muy diversos campos, que
antes no podan resolverse por la
complicacin de los clculos de los
coeficientes de Fourier, ahora estn al alcance
de la mano. O que se hayan encontrado en los
ltimos aos muchas nuevas aplicaciones,
insospechadas hasta entonces. Entre estas
aplicaciones, una de las mas importantes es la
del procesamiento de seales digitales.

La Transformada Rpida de Fourier
Cuando la funcin f(t) est dada por una lista de N
valores f(t
1
), f(t
2
), ...f(t
N
) se dice que est
discretizada o muestreada, entonces la integral
que define la Transformada de Fourier:


Se convierte en la sumatoria



(Donde k es la frecuencia discreta)
Llamada Transformada Discreta de Fourier
}


e
= e dt e ) t ( f ) ( F
t j
N n 1 para , e ) t ( f ) n ( F
N
1 k
) 1 k ( j
k
N
n 2
s s =

=

t
La Transformada Rpida de Fourier
La Transformada Discreta de Fourier (DFT)
requiere el clculo de N funciones exponenciales
para obtener F(n), lo cual resulta un esfuerzo de
clculo enorme para N grande.

Se han desarrollado mtodos que permiten
ahorrar clculos y evaluar de manera rpida la
Transformada discreta, a estos mtodos se les
llama

Transformada Rpida de Fourier (FFT)
FFT



fft
Decimacion en el tiempo
La idea bsica es hacer mas fcil el calculo de la DFT,
que se puede hacer de dos maneras decimando ( es
decir tomando menos muestras) o en frecuencia
(tomando distinta frecuencia para hacer los clculos,
aunque no es tan simple como eso hay que seguir
ciertas reglas), existen una serie de algoritmos que te
permiten calcular de una manera mas rpida esta
transformada, en conjunto todos estos algoritmos son
llamados FFT.
Algoritmo FFT de decimacion en el
tiempo
La eficiencia de este algoritmo radica en la decomposicion de la DFT en
DFTS mas pequeas, de menor numero de terminos. Este proceso se
puede hacer gracias a la simetria y periodicidad de la exponencial
compleja





Como primer paso, la secuencia original de datos muestreados en el tiempo
x(n) se debe dividir en sub secuencias ms pequeas. Para ilustrar sto, se
considera un nmero total de muestras N. El nmero de muestras N debe ser
potencia de 2, as: N=2

. Como se sabe que N es un numero par, se puede


separar la secuencia original x(n) en dos secuencias, cada una de N/2
elementos. La mejor forma es ubicar en una secuencia las componentes
pares y otra las impares.


esto se ve mejor matematicamente as:




Sustituyendo las variables n=2r si n es par y n=2r+1 para n impar
en la ecuacion anterior, se obtiene:




Pero como se puede expresar la ecuacion anterior de la
siguiente forma:







Cada una de las sumas de la ecuacion (4) corresponde a una DFT; la
primera sumatoria de los numeros pares y la segunda de los impares. A
pesar que el rango k va desde 0 hasta N-1, cada una de las sumas se
comptua solamente para k entre 0 y (N/2)-1
Luego que las dos DFT se han desarrollado, estas se combinan para obtener
la DTF de N puntos.

Por ejemplo, por medio del algoritmo de decimacion en el tiempo, una DFT de
8 puntos se puede convertir en una DFT de 2 puntos, como se muestra en la
figura:



En un caso mas general con N puntos , se puede proceder
a descomponer la DFT de N/4 puntos en N/8 puntos, y
continuar haciendo este tipo de diviciones hasta dejar tan
solo DFT de 2 puntos.

Esto requiere v etapas de computo donde v=
2


Si N=2

, este proceso se puede repetir un mximo de v=

2
veces, por lo que tras realizar la descomposicin
tantas veces como sea posible, el numero de
multiplicaciones y sumas es igual a Nv=
2



Computo tipo mariposa
El nmero de clculos necesarios se puede reducir an ms
explotando la simetra y la periodicidad de los coeficientes







Como: el factor

+/2
= -


Con esto solo se requiere una multiplicacion compleja en vez de dos.

Sustituyendo las mariposas de la figura 12.8(a) por el diagrama de la figura
12.8(b), nos queda el siguiente esquema, en donde el nmero de
multiplicaciones se reduce en un factor de 2.

Comando FFT de matlab
Matlab provee una funcin o comando fft que
permite calcular la TFD de un vector x.
invocando con la sentencia X=fft(x,N1) calcula
la TDF de N puntos de X, agregando ceros a
Ceros en caso de ser necesario. Si se omite el
argumento N el tamao de la TDF es el largo
del vector . si x es una matriz, entonces fft( x,
N) calcula la TDF de N puntos de cada una de
las columnas de x.


Comando fft matlab
Esta funcin esta codificada en lenguaje
maquina para calcular una TDF de orden N, la
librera descompone el problema utilizando el
algoritmo de cooley-turkey si N es compuesto
(es decir, N=N1N2) primero calcula N1
transformadas de largo N2, y luego N2
transformadas de N1 puntos.
Comando fft
El tiempo de ejecucin del comando fft
depende del nmero de puntos de la
transformada. Es decir cuando N es potencia
de 2 es mas velo. La velocidad es comparable
cuando N tiene factores primos pequeos, y
es considerablemente mas lenta para
longitudes que son primas, o que tienen
factores primos grandes. La transformada
inversa se calcula usando la funcin ifft, que
tiene las mismas caractersticas que fft
Ejemplo en matlab
Aplicar el comando fft(x,N) a la funcin
cos(2*pi*n/10) observar como varia la funcion
al cambiar los valores de N
The abs function finds the magnitude of the
transform
Aplicar diferentes valores de N

n=[0:30];
x=cos(2*pi*n/10);
N1=64;
N2=128;
N3=256;
X1=abs(fft(x,N1));
X2=abs(fft(x,N2));
X3=abs(fft(x,N3));
F1=[0:N1-1]/N1;
F2=[0:N2-1]/N2;
F3=[0:N3-1]/N3;
subplot(3,1,1)
plot(F1,X1,'-x'),title('N=64'),axis([0 1 0 20])
subplot(3,1,2)
plot(F2,X2,'-x'),title('N=128'),axis([0 1 0 20])
subplot(3,1,3)
plot(F3,X3,'-x'),title('N=256'),axis([0 1 0 20])


Ejemplo para determinar la
frecuencia de 2 seales
t=0:1/1000:3;
y=sin(2*pi*5*t);
y1=sin(2*pi*25*t);
y2=y+y1;
plot(t,y2)
FFT=fft(y2,1024);
FFT=FFT.*conj(FFT)/1024;
f=1000*(0:256)/1024;
plot(f,FFT(1:257));
ejemplo
Ejemplos

Aplicaciones
Tratamiento de imagen (JPEG) y audio (MP3)

Reduccin de ruido en seales, como el ruido blanco

Anlisis en frecuencia de cualquier seal discreta

Anlisis de materiales y estadstica

Sntesis, mediante la transformada inversa IFFT
Medidores Digitales
La FFT ha hecho posible el desarrollo de equipo
electrnico digital con la capacidad de clculo de
espectros de frecuencia para seales del mundo
real, por ejemplo:

1) Osciloscopio digital Fuke 123 ($ 18,600.00 M.N.)
2) Osc. digital Tektronix THS720P ($3,796 dls)
3) Power Platform PP-4300
Medidores Digitales
El Fluke 123 scope meter

Medidores Digitales
Tektronix THS720P (osciloscopio digital)

Medidores Digitales
Analizador de potencia PP-4300

Es un equipo especializado en monitoreo de la
calidad de la energa: permite medicin de 4
seales simultneas (para sistemas trifsicos)
Obtener la FFT de una seal senoidal de 20 Hz sumada a una
seal tipo chirp con un desplazamiento desde 5 hasta 40 Hz en
un tiempo D.
RESPUESTA EN FRECUENCIA
Obtener la FFT de una seal exponencial modulada en amplitud con
una frecuencia portadora de 200 Hz. N es el nmero de puntos de
muestreo durante D segundos de la seal. Se requiere una frecuencia
de muestreo de por lo menos 400 Hz, N/D>400
MODULACIN EN AMPLITUD
La FFT y la Serie de Fourier
Podemos hacer uso de la FFT para calcular los
coeficientes c
n
y c
-n
de la Serie compleja de
Fourier como sigue:

Ejemplo: Sea f(t) el tren de pulsos de ancho p y
periodo T.
1
f(t)
t
. . . -T -T
/
2
0

T
/
2
T . . .
p
-p
/
2

p
/
2
La FFT y la Serie de Fourier
La versin muestreada f(k) de f(t) slo puede
tomar un nmero finito de puntos. Tomemos por
ejemplo N=32 puntos cuidando que cubran el
intervalo de 0 a T (con p=1, T=2):
0 1 2
0
0.5
1
1.5
32 muestras de f(t), de 0 a T
k
f
(
k
)

La FFT y la Serie de Fourier
Para obtener estas 32 muestras usando Matlab
se puede hacer lo siguiente:

k=0:31
f=[(k<8)|(k>23)]
Plot(k,f,o)

La FFT y la Serie de Fourier
Con los 32 puntos f(k) calculamos F(n) mediante
la FFT, por ejemplo, en Matlab:
F=fft(f)/N;

Con lo que obtenemos 32 valores complejos de
F(n). Estos valores son los coeficientes de la
serie compleja ordenados como sigue:

n 1 2 3 4 ... 16 17 18 19 ... 32
F(n) c
0
c
1
c
2
c
3
... c
15
c
-16
c
-15
c
-14
... c
-1
La FFT y la Serie de Fourier
Podemos graficar el espectro de amplitud
reordenando previamente F(n) como sigue
aux=F;
F(1:16)=aux(17:32);
F(17:32)=aux(1:16);
F(n) queda:






Y para graficar el espectro de amplitud:
stem(abs(F))
Obtenindose:
n 1 ... 13 14 15 16 17 18 19 ... 32
F(n) c
-16
...
c
-3
c
-2
c
-1
c
0
c
1
c
2
c
3
... c
15
La FFT y la Serie de Fourier









Si deseamos una escala horizontal en unidades
de frecuencia (rad/seg):
0 10 20 30
0
0.2
0.4
0.6
Para el tren de pulsos p=1,
T=2
n
|
F
(
n
)
|

Espectro de Amplitud |F(n)|
La FFT y la Serie de Fourier
w0=2*pi/T;
n=-16:15;
w=n*w0;
Stem(w,abs(F))




Obteniendo:
-50 0 50
0
0.2
0.4
0.6
para el tren de pulsos, p=1,T=2
w
|
F
(
w
)
|

Espectro de Amplitud |F(n)|
La FFT y la Serie de Fourier
Tambin podemos obtener los coeficientes de la
forma trigonomtrica, recordando que:


Podemos obtener

Para el ejemplo se obtiene: a
0
=0.5, a
n
=b
n
=0
(para n par), adems para n impar:
) jb a ( c ), jb a ( c
n n 2
1
n n n 2
1
n
+ = =

) c Im( 2 b ), c Re( 2 a , c a
n n n 0 0
= = =
n 1 3 5 7 9 11 13 15
a
n
0.6346 -0.2060 0.1169 -0.0762 0.0513 -0.0334 0.0190 -0.0062
b
n
-0.0625 0.0625
-
0.0625
0.0625 -0.0625 0.0625 -0.0625 0.0625
La FFT y la Serie de Fourier
Como el tren de pulsos es una funcin par, se
esperaba que b
n
=0; (el resultado obtenido es
errneo para b
n
, pero el error disminuye para N
grande):
0 10 20 30
-0.5
0
0.5
1
Coeficientes b
n
Coeficientes a
n
a
0
La FFT y la Serie de Fourier
Tarea: Usar el siguiente cdigo para generar 128
puntos de una funcin peridica con frecuencia
fundamental e
0
=120t (60 hertz) y dos armnicos
impares en el intervalo [0,T]:
N=128;
w0=120*pi;
T=1/60;
t=0:T/(N-1):T;
f=sin(w0*t)+0.2*sin(3*w0*t)+0.1*sin(11*w0*t);

Usando una funcin peridica diferente a la
subrayada:
a) Graficar la funcin.
b) Obtener y graficar el espectro de amplitud de la
seal usando la funcin FFT

Vous aimerez peut-être aussi