Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analisis de Fourier: (Fundamentos)
Analisis de Fourier: (Fundamentos)
Analisis de Fourier: (Fundamentos)
[Fundamentos]
Luis Antonio Bautista Hernández
luisantonio.bautista@gmail.com
13/08/2011
x=2*sin(2.34*t)+6*sin(45*t)
10
-5
-10
0 1 2 3 4 5 6 7 8 9 10
t(seg)
Espectro de frecuencias
3000
2000
1000
0
0 100 200 300 400 500 600 700
Leonhard Euler (1707-1783) fue un matemático suizo considerado por algunos el mayor
analista que haya existido, en sus investigaciones aparecen las series de Fourier.
Poco después de esta observación, en 1754, Jean D'Alembert (1717-1783) obtuvo el desarrollo
trigonométrico en cosenos para el reciproco de la distancia entre dos planetas en términos de
ángulos entre los vectores del origen a los planetas.
Así, a mediados del siglo XVIII, empezaron a aparecer las series trigonométricas y los
matemáticos mas importantes las estudiaron e hicieron cálculos con ellas.
Hacia 1750, las formulas integrales para los coeficientes de Fourier ya eran conocidas, si bien
no siempre se confiaba en ellas.
Matemáticos como Euler preferían obtener las series trigonométricas de otra manera.
Como estudiante Joseph fourier mostró talento para las matemáticas, pero las tomo como
profesión únicamente cuando su origen (era hijo de un sastre) le impidió obtener un cargo
militar.
Un problema muy importante a principios del siglo XIX era la descripción matemática de la
conducción del calor en diferentes medios. En 1807, Fourier envió un artículo sobre este
tema a la prestigiosa Academia de Ciencias de Paris, en calidad de concursante a un premio
que se había ofrecido al estudio mas exitoso de este problema. Gigantes de las matemáticas
como Laplace, Lagrange y Legendre fueron quienes calificaron el trabajo y lo rechazaron por
falta de rigor. Sin embargo alentaron a Fourier a que continuara con su investigación y
completara los detalles que había omitido. En 1811, Fourier envió una versión corregida de su
artículo y ganó el premio de la academia. Por ultimo en 1822, Fourier publicó el que ahora es
su clásico trabajo Theorie analytique de la chaleur, incorporando la mayor parte de sus
resultados de 1811 junto con algunos nuevos [1].
Podemos decir con seguridad que la teoría de Fourier nacida en el siglo XVIII, ha transcendido
hasta nuestros tiempos para imponerse ya que ha fundamentado el principio de la era digital
abarcando campos nunca antes imaginados por la mente humana. Se ha constituido en el
peldaño de las modernas tecnologías tales como las telecomunicaciones modernas, el
procesamiento de señales, la industria militar de avanzada, la electrónica y la visión por
computadora entre otras aplicaciones.
De otra parte debe darse especial reconocimiento al desarrollo de los algoritmos de Cooley y
Tukey (1965) conocidos como las transformadas rápidas de Fourier y que se constituyó en la
pieza fundamental que hizo posible la implementación de la teoría de Fourier en las
computadoras reduciendo el tiempo de procesamiento, y sin el cual la teoría de Fourier no
1
sería más que una teoría poco práctica en el caso del tratamiento del sonido y de la imagen
aun disponiendo de la velocidad de los modernos procesadores.
Tal como lo asegura Oppenheim la importancia del tratamiento discreto posible mediante el
análisis de Fourier, continuará creciendo casi con toda certeza y es probable que los futuros
desarrollos en este campo sean incluso más importantes que los actuales [2].
Con este documento se pretende hacer un seguimiento de la teoría de Fourier partiendo del
concepto de series de Fourier en variable real y en variable compleja realizando sus
deducciones mediante las series de Taylor y la aproximación por mínimos cuadrados. Paso
seguido se estudia el concepto de la transformada de Fourier y su aplicación a las funciones
no periódicas, luego se estudia el concepto de transformadas de Fourier en variable discreta
y finalmente se estudia la transformada rápida de Fourier donde se consideran los algoritmos
computacionales respectivos.
2
1 LAS SERIES DE TAYLOR
Se ha propuesto la deducción de las identidades de las series de Taylor debido a que se
consideran importantes para definir las identidades de Euler.
Taylor propone que una función f(x) se puede expresar como una suma infinita de
polinomios de la forma: f ( x ) a 0 a 1 ( x c) a 2 ( x c) a 3 ( x c)
2 3
f (x) a 0 a1 (x c) a 2 (x c) 2 a 3 (x c)3
f ' (x) a1 2a 2 (x c) 3a 3 (x c) 2 4a 4 (x c)3
f ' ' (x) 2a 2 2 3a 3 (x c) 3 4a 4 (x c) 2 4 5a 5 (x c)3
f ' ' ' (x) 2 3a 3 2 3 4a 4 (x c) 3 4 5a 5 (x c) 2 4 5 6a 6 (x c)3
f IV (x) 2 3 4a 4 2 3 4 5a 5 (x c) 3 4 5 6a 6 (x c) 2
Ahora evaluamos a cada polinomio en x c.
f (c) a 0
f ' (c) a1
f ' ' (c) 2a 2
f ' ' ' (c) 2 3a 3
f IV (c) 2 3 4.a4
f V (c) 2 3 4 5a 5
A partir de las anteriores ecuaciones podemos deducir el valor de los coeficientes
desconocidos así:
a 0 f (c)
a1 f ' (c)
f ' ' (c) f ' ' (c)
a2
2 2!
f ' ' ' (c) f ' ' ' (c)
a3
23 3!
f ' ' ' (c) f IV (c)
a4
23 4 4!
En consecuencia deducimos que.
f ( n ) (c) f ( n ) (c)
an
2 3 4 n n!
3
Reemplazando en la serie se obtiene.
f ( n ) ( c)
f (x) ( x c) n
n 0 n!
Como ejemplo de aplicación de las series de Taylor, podemos obtener las series de Taylor de
las funciones e x , sen ( x ) y cos(x ) .
4
1
a3
3!
a4 0
1
a5
5!
Reemplazando en el polinomio original se obtiene.
x3 x5 x7
sen ( x ) x se puede escribir en notación sumatoria.
3! 5! 7!
x 2 n 1
sen( x ) (1) n 1
n 1 (2n 1)!
n 0 n!
f ( n ) (c) f ( n ) (0)
f (x) ( x c) n f (x) (x) n
n 0 n! n 0 n!
x3 x5 x7
x 2 n 1
sen ( x ) x sen( x ) (1) n 1
3! 5! 7! n 1 (2n 1)!
x 2
x x 4 6
x 2n
cos( x ) 1 cos( x ) (1) n
2! 4! 6! n 0 (2n )!
x2 x3 x4 x5 xn
e 1 x
x
e
x
2! 3! 4! 5! n 0 n!
7
2 LAS IDENTIDADES DE EULER
En segundo lugar se propone el desarrollo de las identidades de Euler debido a que estas
identidades hacen parte fundamental de las identidades de los números complejos.
Con las fórmulas antes desarrolladas podemos obtener las identidades de Euler.
x2 x3 x4 x5 x6
e 1 ix
ix
i i
2! 3! 4! 5! 6!
Reagrupando la parte real y la parte imaginaria se obtiene.
x2 x4 x6 x3 x5 x7
e 1
ix
i x
2! 4! 6! 3! 5! 7!
Se concluye que.
eix Cos(x) iSen (x)
La identidad anterior se puede reescribir de otra manera si el argumento es un número
negativo.
e ix e ix e ix e ix
cos( x ) , sen ( x )
2 2i
Resumen (LAS IDENTIDADES DE EULER).
8
3 APROXIMACIÓN POR MÍNIMOS CUADRADOS
La técnica de aproximación por mínimos cuadrados se ha propuesto en tercer lugar debido a
que son la base fundamental de la técnica de aproximación de las series de Fourier.
La técnica de aproximación por mínimos cuadrados propone que a partir de una función f(x)
es posible encontrar una función g(x) que se aproxime a f(x) en un intervalo a≤x≤b.
La idea principal de esta técnica consiste en plantear la función de error entre f(x) y g(x)
para el intervalo dado.
b
E( x ) f ( x ) g( x ) dx Sin embargo este método contiene un error fundamental
a
ya que siempre existe la posibilidad de que un error positivo se anule con un error negativo.
Para evitar el problema anterior se puede plantear la integral del valor absoluto pero la
función valor absoluto presenta el inconveniente de no ser derivable en ciertos puntos. Los
matemáticos decidieron plantear la integral del cuadrado del error y esa es la principal razón
por la cual se propone la integral de error cuadrático así.
b
E ( x ) f ( x ) g( x ) dx
2 2
a
De otra parte la función de aproximación g(x) se puede proponer como una combinación
lineal de funciones generadoras.
Partimos de una base B {g1 (x), g2 (x), g3 (x),, g n (x)} de tal modo que
b b
E ( x ) f ( x ) g( x ) dx (f 2 2fg g 2 )dx
2 2
a a
Se plantean las derivadas parciales de la función error cuadrático con respecto a los
coeficientes desconocidos hasta ahora.
E 2 ( x ) f 2 g g
b
( 2f 2g )dx 0
ck a
c k c k c k
Para k=1,2,3,….,n
9
f 2
0 Porque f(x) no depende de Ck
c k
g
(c1g1 (x) c2g 2 (x) c3g3 (x) ck g k (x) cn g n (x)) g k (x)
ck ck
g
2g 2(c1g1 ( x ) c2g 2 ( x ) cn g n ( x ))g k ( x )
ck
Reemplazando en la integral preliminar se obtiene.
b b
2 (fg k )dx 2 (c1g1 c2g 2 cn g n )g k )dx 0
a a
Eliminando el factor común (2) se obtiene la ecuación característica.
b b
(c g
a
1 1 c2g 2 cn g n )g k dx (fg k )dx
a
Para k=1,2,3,….,n
Reemplazando para cada uno de los valores de (k) se obtiene el siguiente sistema de
ecuaciones.
b b b b
c1 g1g1dx c 2 g 2g1dx c n g n g1dx fg1dx
a a a a
b b b b
c1 g1g 2dx c 2 g 2g 2dx c n g n g 2dx fg 2dx
a a a a
b b b b
c1 g1g 3dx c 2 g 2g 3dx c n g n g 3dx fg 3dx
a a a a
b b b b
c1 g1g n dx c 2 g 2g n dx c n g n g n dx fg n dx
a a a a
10
El sistema de ecuaciones anterior se puede reescribir como una matriz ampliada así.
b b b b
g1g1dx g 2g1dx g n g1dx a 1
fg dx
a a a
b b b b
g1g 2 dx g g dx
2 2 g g dx
n 2 a fg 2dx
a a a
b b b b
g1g 3dx g g dx
2 3 g g dx
n 3 a fg 3dx
a a a
b b b b
g1g n dx
a
g g dx
a
2 n g g dx
a
n n a fg n dx
1 0 0 c1
0 1 0 c2
0 0 0 c3
0 0 1 c n
Enseguida se resumen el método de aproximación por mínimos cuadrados.
11
RESUMEN DEL MÉTODO (APROXIMACIÓN POR MINIMOS CUADRDOS).
b b b b
g1g1dx g 2g1dx g n g1dx a 1
fg dx
a a a
b b b b
g1g 2 dx g g dx 2 2 g g dx
n 2 a fg 2dx
a a a
b b b b
g1g 3dx g g dx 2 3 g g dx
n 3 a fg 3dx
a a a
b b b b
g1g n dx
a
g g dx 2 n g g dx
n n a fg n dx
a a ( n ) x ( n 1)
Ejemplo.
Encuentre una aproximación a la función f (x) sen(x) mediante un polinomio de la
forma: g( x ) a 0 a 1 x a 2 x 2 a 3 x 3 en el intervalo 0 x 2.
Solución.
Se propone una base de la forma. B {1, x, x 2 , x 3} que es la base de los polinomios de
grados tres.
Se plantea la matriz.
2 2 2 2 2
dx xdx x dx
2
x dx
3
sen(x)dx
0 0 0 0 0
2 2 2 2 2
xdx 0 x 2
dx 0 x 3
dx 0 x 4
dx 0 xsen ( x ) dx
0
2 2 2 2 2
x 2 dx 0 x 3
dx 0 x 4
dx 0 x 5
dx 0 x 2
sen ( x ) dx
0
2 2 2 2 2
x 3 dx 0 x 4
dx 0 x 5
dx 0 x 6
dx 0 x 3
sen ( x ) dx
0
12
Paso seguido se evalúa la matriz.
2 2 8/3 4 - cos(2) + 1
2 8/3 4 32/5 sin(2) - 2cos(2)
8/3 4 32/5 32/3 - 2cos(2) + 4sin(2) - 2
4 32/5 32 / 3 128 / 7 4cos(2) + 6sin(2)
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
13
4 SERIES DE FOURIER
La idea básica de la teoría de Fourier consiste en proponer que toda función periódica por
compleja que esta sea, se puede expresar como la suma de muchas funciones senoidales o
cosenoidales de diferente amplitud y frecuencia. En la gráfica siguiente podemos observar
como la función de abajo que tiene una apariencia irregular, es la suma de las funciones de
arriba las cuales son funciones senoidales con amplitudes y frecuencias distintas.
3sin(2t)
5
-5
0 1 2 3 4 5 6 7 8 9 10
2sin(4t)
2
-2
0 1 2 3 4 5 6 7 8 9 10
4sin(5t)
5
-5
0 1 2 3 4 5 6 7 8 9 10
3sin(2t)+2sin(4t)+4sin(5t)
10
0
-10
0 1 2 3 4 5 6 7 8 9 10
En términos matemáticos la teoría de Fourier propone que toda función periódica f ( t ) con
periodo T , definida en el intervalo T / 2 t T / 2 se puede expresar como una suma infinita
de señales armónicas así.
f ( t ) a 0 a n sen (nt ) b n cos(nt )
n 1 n 1
14
Se trata entonces de encontrar el valor de los coeficientes de la serie de Fourier. Para
encontrar estos coeficientes, nos basamos en el hecho de que los coeficientes corresponden a
la expresión que mejor se ajusta y para ello se propone el método de aproximación por
mínimos cuadrados como se explica enseguida.
dt T
T / 2
T/2
sen(nt)dt 0
T / 2
T/2
cos(nt )dt 0
T / 2
T/2
1 cos(2nt ) cos(2nt )
T/2 T/2 T/2 T/2
1 T
sen (nt)dt dt dt dt
2
T / 2 T / 2
2 T / 2
2 T / 2
2 2
1 cos(2nt ) cos(2nt )
T/2 T/2 T/2 T/2
1 T
cos (nt )dt dt dt dt
2
T / 2 T / 2
2 T / 2
2 T / 2
2 2
15
T/2 T/2 T/2 T/2 T/2 T/2
dt
T / 2
sen(t)dt
T / 2
sen(2t)dt
T / 2
cos(t)dt
T / 2
cos(2t)dt
T / 2
f (t)dt
T / 2
T/2 T/2 T/2 T/2 T/2 T/2
sen (t )dt sen 2
( t ) dt sen ( t ) sen ( 2 t ) dt sen ( t )s cos( t ) dt sen ( t ) cos( 2 t ) dt sen ( t ) f ( t ) dt
T / 2 T / 2 T / 2 T / 2 T / 2 T / 2
T/2 T/2 T/2 T/2 T/2 T/2
sen (2t )dt sen ( 2 t ) sen ( t ) dt sen 2
( 2 t ) dt sen ( 2 t ) cos( t ) dt sen ( 2 t ) cos( 2 t ) dt sen ( 2 t ) f ( t ) dt
T / 2 T / 2 T / 2 T / 2 T / 2 T / 2
T/2 T/2 T/2 T/2 T/2 T/2
cos(t )dt sen ( t ) cos( t ) dt sen ( 2 t ) cos( t ) dt cos 2
( t ) dt cos( 2 t ) cos( t ) dt cos( t ) f ( t ) dt
T / 2 T / 2 T / 2 T / 2 T / 2 T / 2
T/2 T/2 T/2 T/2 T/2 T/2
cos(2t )dt cos( 2 t )sen ( t ) dt cos( 2 t ) sen ( 2 t ) dt cos( 2 t ) cos( t ) dt cos 2
( 2t ) dt cos( 2 t ) f ( t ) dt
T / 2 T / 2 T / 2 T / 2 T / 2 T / 2
T/2
T
0 0 0 0 f (t )dt
T / 2
T/2
0 T/2 0
0 0 sen
T / 2
( t ) f ( t ) dt
T/2
0
0 T/2 0 0 sen (2t )f ( t )dt
T / 2
T/2
0
0 0 T/2 0 cos(t )f ( t )dt
T / 2
T/2
0
0 0 0 T/2 cos(
T / 2
2 t ) f ( t ) dt
1
T/2
1
0 0 0 0
T
T / 2
f ( t )dt
2
T/2
T T/ 2
0 1 0 0 0 sen ( t ) f ( t ) dt
2
T/2
0
0 1 0 0 sen (2t )f ( t )dt
T T / 2
2
T/2
0
0 0 1 0
T T / 2
cos(t )f ( t )dt
2
T/2
0
0 0 0 1 cos(2t )f ( t )dt
T T / 2
El resultado obtenido se emplea para generalizar la serie de Fourier de orden (n) al concluirse
finalmente que.
f ( t ) a 0 a n sen (nt ) b n cos(nt )
n 1 n 1
Donde.
T/2 T/2 T/2
1 2 2
a0 f ( t )dt , a n
T T / 2 sen (nt )f ( t )dt , b n
T T / 2 T T/ 2
cos(nt )f ( t )dt , n=0,1,2,…
16
Resumen del método (SERIES DE FOURIER).
Dada una función periódica f(t) con periodo T, definida en el intervalo –T/2≤t≤T/2, dicha
función se puede expresar como la suma infinita de términos de la forma.
f ( t ) a 0 a n sen (nt ) b n cos(nt )
n 1 n 1
2
Donde.
T
T/2 T/2 T/2
1 2 2
a0 f ( t )dt , a n
T T / 2 sen (nt )f ( t )dt , b n
T T / 2 T T/ 2
cos(nt )f ( t )dt , n 0,1,2,
Ejemplo.
Encuentre la serie de Fourier de orden tres para función que se muestra en la figura
asumiendo T=5, k=2.
1 2 2 1 4 2 6 1 8
g( t )
sen ( t ) sen ( t ) sen ( t ) sen ( t )
2 5 5 3 5 2 5
4 2 4 6
2 cos( t ) 2 cos( t )
5 9 5
17
1/2+2/ sin(2/5 t)-...-1/2/ sin(8/5 t)
1.5
0.5
0 5 10 15
t
Aproximación de Fourier de orden cuatro.
1/2-...-4/1369/ 2 cos(74/5 t)
1.5
0.5
0 5 10 15
t
Aproximación de Fourier de orden 40.
18
5 SERIES DE FOURIER EN VARIABLE COMPLEJA
La ventaja del empleo de notación en variable compleja para la representación de las series
de Fourier radica en el hecho de que esta notación conduce a expresiones más sencillas que
las desarrolladas en variable real. Esta es con seguridad la principal razón por la cual la
mayoría de textos han abordado la teoría del análisis de Fourier en el campo de la variable
compleja.
Para obtener el desarrollo de las series de Fourier en variable compleja se propone una base
de expresiones complejas así.
f (t ) c2e2 jt c1e jt c0e0 jt c1e jt c2e2 jt
Escrito de una manera más compacta.
f (t ) c e
n
n
jnt
Partimos del hecho de que los coeficientes deben corresponder a los valores que mejor
ajustan la serie a la función f(t). Para encontrar los coeficientes que mejor ajustan la serie
de Fourier a la función f(t), se propone el método de mínimos cuadrados.
Por cuestión de espació proponemos la demostración de la serie de Fourier de orden dos, pero
cuyos resultados se extienden a la serie de Fourier de orden n.
T / 2 T / 2 T / 2 T / 2 T / 2 T / 2
T/2 T/2 T/2 T/2 T/2 T/2
e 2 jt dt e
jt
dt e
0 jt
dt e dt e dt e f ( t )dt
jt 2 jt 0 jt
T / 2 T / 2 T / 2 T / 2 T / 2 T / 2
T/2 T/2 T/2 T/2 T/2 T/2
e jt dt e
0 jt
dt e
jt
dt e 2 jt
dt e 3 jt
dt e jt
f ( t ) dt
T / 2 T / 2 T / 2 T / 2 T / 2 T / 2
T / 2 0 jt T/2 T/2 T/2 T/2 T/2
e dt e
jt
dt e
2 jt
dt e 3 jt
dt e 4 jt
dt e 2 jt
f ( t ) dt
T / 2 T / 2 T / 2 T / 2 T / 2 T / 2
19
Ahora calculamos cada una de las integrales.
T/2
e
njt
dt 0 , n 0
T / 2
T/2 T/2
e dt T
0 jt
dt
T / 2 T / 2
Reemplazando se tiene.
T/2
0 0 0 0 T e f ( t )dt
2 jt
T / 2
T/2
0 0 0 T 0 e f ( t )dt
jt
T / 2
T/2
0 0 T 0 0
f (t )dt
T / 2
T/2
j t
0 T 0 0 0 e f ( t ) dt
T / 2
T/2
2 jt
T 0 0 0 0 e f ( t ) dt
T / 2
Efectuando la eliminación Gaussiana se obtiene.
1
T/2
T T/ 2
0 0 0 0 1 e 2 jt
f ( t ) dt
1
T/2
T T/ 2
0 0 0 1 0 e jt
f ( t )dt
1
T/2
T T/ 2
0 0 1 0 0 f ( t )dt
1
T/2
T T/ 2
jt
0 1 0 0 0 e f ( t )dt
1
T/2
T T/ 2
2 jt
1 0 0 0 0 e f ( t )dt
Se concluye finalmente que.
20
1 T / 2 2 jt 2 jt 1 T / 2 jt jt
f ( t ) e
T T / 2
f ( t ) dt
e
e
T T / 2
f ( t ) dt e
1 T/2 0 jt 1 T / 2 jt jt 1 T / 2 2 jt 2 jt
T T T
f ( t ) dt e e f ( t ) dt e e f ( t ) dt e
T / 2 T / 2 T / 2
Se escribe en forma mas compacta mediante la notación sumatorias así.
c e
T/2
jnt 1
f (t) n tal que. cn e jnt f ( t )dt
n T T / 2
Dada una función periódica f(t) con periodo T, definida en el intervalo –T/2 ≤ t ≤ T/2.
Esta función se puede expresar como una suma infinita de la forma.
c e
T/2
jnt 1
f (t) n tal que. c n
e jnt f ( t )dt con, 2
n T T / 2 T
21
6 ESPECTRO DE FRECUENCIAS
El espectro de frecuencia de un fenómeno ondulatorio (sonoro, luminoso o electromagnético)
que es la superposición de ondas de varias frecuencias, es una medida de la distribución de
amplitudes de cada frecuencia. También se llama espectro de frecuencia al gráfico de
intensidad frente a frecuencia de una función desde el punto de vista de las matemáticas.
La gran fortaleza del análisis de Fourier radica en el hecho de que permite identificar el
contenido de frecuencias de una función. Al igual que un prisma descompone la luz blanca en
sus correspondientes ondas electromagnéticas de diferente frecuencia; el análisis de Fourier
permite identificar el contenido de frecuencias de una función f(t).
Espectro de frecuencias de la luz emitida por átomos de hierro libres en la región visible
del espectro electromagnético.
Un prisma sobre el cual incide la luz blanca, tiene la capacidad de separar las diferentes
frecuencias las cuales son visibles al ojo humano.
22
El espectro de frecuencias de una señal puede ser interpretado como una serie de bandas
de amplitud y frecuencia definidas.
La figura anterior es un buen ejemplo gráfico para comprender como una función en el
dominio del tiempo f(t), la cual es la superposición de funciones senoidales o cosenoidales,
puede observarse como una función de apariencia irregular desde el punto de vista del
tiempo y de la amplitud. Si disponemos de un método para separar las diferentes
componentes senoidales se la función original, entonces podemos identificar las amplitudes y
frecuencias de cada una de estas componentes las cuales son visibles desde el punto de vista
de la frecuencia y la amplitud como una serie de líneas. La vista de la izquierda se conoce
como función en el dominio del tiempo mientras que la vista de la derecha se conoce como la
función en el dominio de la frecuencia.
x=3sen(150t)+2sin(30t)
5
-5
0 0.5 1 1.5 2 2.5
Espectro de frecuencias
1500
1000
500
0
0 20 40 60 80 100 120 140 160 180
23
x=3sen(150t)
5
-5
0 1 2 3 4 5 6 7 8 9 10
Espectro de frecuencias
1500
1000
500
0
0 20 40 60 80 100 120 140 160
Las componentes de Fourier en variable real, pueden ser consideradas como fasores ó
vectores rotantes.
24
A partir de la anterior gráfica es fácil concluir que las componentes de las series de Fourier en
variable real pueden ser analizadas como la combinación de vectores rotantes los cuales giran
en sentido antihorario formado un ángulo (nωt) con el eje (X) para el vector de amplitud (a n)
y un ángulo (nωt) con el eje (Y) para el vector de amplitud (b n), de tal modo que estos dos
vectores siempre se encuentran rotando a la misma frecuencia formando un ángulo de 90º. A
partir del anterior hecho podemos concluir que estos dos vectores se pueden sumar
generando una resultante de amplitud (cn) el cual rota a la misma frecuencia de sus
componentes, cumpliéndose que.
bb
cn a b 2
n
2
n ,
tan()
an
Se concluye que.
a nsen(nt ) bn cos(nt ) cnsen(nt )
Visto de esta manera, las series de Fourier en variable real se pueden reescribir así.
f ( t ) a 0 c n sen (nt ) , tal que.
n 1
T/2 T/2 T/2
1 2 2
a0 f ( t )dt , a n
T T / 2 sen (nt )f ( t )dt , b n
T T / 2 T T/ 2
cos(nt )f ( t )dt ,
bn T/2
cn a b tan() 1
T T/ 2
2 2
n n , , n 1,2,3, C 0 f ( t )dt
an
Luego el espectro de fourier estará compuesto por una serie discreta de ordenadas de
amplitud cn , con una serie de abscisas de frecuencia n .
Enseguida se indica una lista de órdenes para ejecutar en Matlab que permita obtener el
espectro de frecuencias de una función periódica dada.
syms t
f=4/5*t*(heaviside(t)-heaviside(t-5/2));
T=5;
w=2*pi/T;
s=1/T*int(f,t,-T/2,T/2);
for n=1:40
a(n)=2/T*int(f*sin(n*w*t),t,-T/2,T/2);
b(n)=2/T*int(f*cos(n*w*t),t,-T/2,T/2);
s=s+a(n)*sin(n*w*t)+b(n)*cos(n*w*t);
end
d=[eval(1/T*int(f,t,-T/2,T/2)) eval(sqrt(a.^2+b.^2))];
g=s;
subplot(2,1,1);
ezplot(g,[0,6*T/2]);
subplot(2,1,2);
stem(d);title('Espectro de frecuencias');
25
1/2-4/441/ 2 cos(42/5 t)-...-1/20/ sin(16 t)
1.5
0.5
0 5 10 15
t
Espectro de frecuencias
0.8
0.6
0.4
0.2
0
0 5 10 15 20 25 30 35 40 45
c e
T/2
jnt 1
f (t) n tal que. c n
e jnt f ( t )dt con, 2
n T T / 2 T
En primer lugar debe aclararse que la serie de Fourier en variable compleja, es la suma de
pares conjugados de tal manera que al ser sumados se anulan las componentes imaginarias.
T/2 T/2
jnt 1 T / 2 jnt jnt
1 1
f (t)
T T/ 2
f ( t ) dt T
n 1
e jnt
f ( t ) dt
e T
e f ( t ) dt e
T / 2 T / 2
Podemos observar que.
T/2 T/2
1
1
cos(nt ) jsen (nt)f (t )dt
T T/ 2
e jnt f ( t )dt
T T / 2
T/2 T/2
1
1
cos(nt ) jsen (nt )f (t )dt
T T/ 2
e jnt f ( t )dt
T T / 2
26
Las dos expresiones anteriores son en consecuencia expresiones conjugadas.
T/2 T/2
1 1 1 1
e jnt f ( t )dt re j ,
T T / 2 T e jnt f ( t )dt re j ,
T T / 2 T
de tal modo que r es la
1
T/2
1
f (t) f
T T / 2
( t ) dt
T n 1
re j e jnt re j e jnt
Efectuando productos se tiene.
1
T/2
1
f (t ) f ( t )dt re jnt re jnt
T T / 2 T n 1
Desarrollando las expresiones exponenciales se tiene.
1
T/2
1
f ( t )dt 2r cos( nt )
T T/ 2
f (t)
T n 1
Recordemos que
T/2
e
jnt
r f ( t )dt , es el módulo de la integral.
T / 2
2
T/2 T/2
1
f (t) f ( t )dt e jnt f ( t )dt cos( nt )
T T / 2 T n 1 T / 2
Escrito de otra forma.
f ( t ) c0 c n cos( nt )
n 1
T/2 T/2
1 2
Con c0 f ( t )dt , c n
T T / 2 e jnt f ( t )dt , n 1,2,3,
T T / 2
Luego el espectro de Fourier estará compuesto por una serie discreta de ordenadas de
amplitud c n , con una serie de abscisas de frecuencia n , cuyos valores se indican
anteriormente.
27
Enseguida se indica una lista de órdenes para ejecutar en Matlab que permita obtener el
espectro de frecuencias de una función periódica dada a partir de la serie de Fourier en
variable compleja.
syms t
f=4/5*t*(heaviside(t)-heaviside(t-5/2));
T=5;
w=2*pi/T;
s=0;
for n=1:40
a(n)=eval(simple(eval(1/T*int(f*exp(-j*n*w*t),t,-
T/2,T/2))*exp(j*n*w*t)+eval(1/T*int(f*exp(j*n*w*t),t,-T/2,T/2))*exp(-j*n*w*t)));
h(n)=2*eval(1/T*int(f*exp(-j*n*w*t),t,-T/2,T/2));
s=s+a(n);
end
g=s;
h=[eval(1/T*int(f,t,-T/2,T/2)) h];
subplot(2,1,1);
ezplot(g,[0,6*T/2]);
subplot(2,1,2);
stem(abs(h));
-...-4587328911378127/288230376151711744 sin(16 t)
1.5
1
0.5
-0.5
0 5 10 15
t
0.8
0.6
0.4
0.2
0
0 5 10 15 20 25 30 35 40 45
28
8 TRANSFORMADAS DE FOURIER
Una de las desventajas de las series de Fourier radica en el hecho de que solo sirve para
modelar funciones periódicas. La transformada de Fourier permite aplicar las series de
Fourier a situaciones no periódicas.
Nota.
A partir de este momento los cálculos se desarrollarán solo en variable compleja por la
ventaja de la simplicidad.
c e
T/2
jnt 1
f (t) n tal que. c n
e jnt f ( t )dt con, 2
n T T / 2 T
c e
T/2
e jt f ( t )dt , 0 2
jt 1
f (t) n , cn
n T T / 2 T
n n0
n 1 (n 1)0
n1 n (n 1)0 n0 0
Luego
0
Como.
2 1
0 , entonces
T T 2
Reemplazamos en la serie de Fourier las anteriores expresiones.
1 T / 2 jt jt
T/2
jt
f ( t ) e f ( t ) dt
e = f ( t )
e jt
f ( t ) dt e
n T T / 2 n 2 T / 2
29
Reordenando términos se tiene.
1 T / 2 jt jt
f ( t ) e f ( t ) dt e
n 2 T / 2
Tomando el límite al infinito se obtiene.
1 T / 2 jt
jt
1
jt
f ( t ) lim e f ( t ) dt
e 2
e jt
f ( t ) dt e
T
n 2 T / 2 n
Sea.
1
G()
2
e jt f ( t )dt
Luego la serie de Fourier se transforma en.
f (t) G()e
n
jt
2
Puesto que y se ha acordado que T , es una expresión infinitesimal.
T
Luego se concluye que.
f (t) G()e
n
jt
es una suma de Rienman que puede ser expresable en forma
integral.
f (t) G()e
n
jt
G()e jt d
1
G()
2
e jt f ( t )dt Es la transformada de Fourier.
f ( t ) G ()e jt d Es la transformada inversa de Fourier.
30
Debe observarse aquí algo interesante y es el hecho de que la transformada de Fourier puede
ser vista como una función que tiene como parámetro de entrada a f(t) que es la función en
el dominio del tiempo y tiene como salida a G(ω) que es la función en el dominio de la
frecuencia. De otra parte la transformada inversa de Fourier tiene como parámetro de
entrada a G(ω) y como parámetros de salida a f(t).
Se tiene entonces un par de ecuaciones de transformación que son invertibles una a otra.
Nota.
Es importante aclarar que las transformadas de Fourier pueden presentarse en diferentes
formas dependiendo del autor.
1
f (t) G()e jt d G() e jt f ( t )dt
2
3). Otra forma es la siguiente.
1 1
G()e e
jt jt
f (t) d G() f ( t )dt
2 2
Debe observarse que las tres formas antes presentadas no son más que reacomodaciones del
factor multiplicador.
31
9 TRANSFORMADAS DISCRETAS DE FOURIER
Una de las desventajas de las transformadas de Fourier en variable continua, es la dificultad
de emplearlas en computadoras. Para resolver este inconveniente se ha propuesto una forma
discreta de las transformadas de Fourier cuya deducción se muestra enseguida.
-1
-2
-3
-3 -2 -1 0 1 2 3
3 x 3, con x 0.25 .
x Es el incremento de la variable X ó valor de discretización.
x nx Se asume que la variable X solo asumirá valores múltiplos del incremento de
discretización.
La mayoría de autores relacionados con estos temas prefieren eliminar el término x del
parámetro de la función quedando así.
y ( n) 6 n 4 2
Tomando valores de
n 12,11,10,9,8,7,6,5,4,3,2,1,0,1,2,3,4,5,6,7,8,9,10,11,12
En este caso el aspecto de la función en forma discreta es el siguiente.
-1
-2
-3
-15 -10 -5 0 5 10 15
Las líneas de órdenes requeridas para obtener la gráfica anterior en Matlab son las siguientes.
n=-12:1:12;
y=eval(vectorize('6-(n/4)^2'));
stem(n,y);
Para discretizar este par de ecuaciones es necesario tener en cuenta las siguientes
consideraciones de equivalencia entre variable continua y variable discreta.
33
Variable Continua Variable Discreta.
dt t
d 0
t nt
k0
0 2
T
T Nt
Asumimos que la función en el dominio del tiempo consta de un notal de N muestras discretas
separadas en el tiempo por un incremento t . De otra parte asumimos que el tiempo en el
cual se registran las N muestras corresponde a un periodo T.
k 2
j nt
G( ) e jt
x(t )dt se transforma en. G(k0 ) e Nt
x(nt )t
Simplificando se tiene.
34
2kn
j
G(k0 ) x(nt )e N
t , se escribe simplemente.
2kn
j
G ( k ) x ( n)e N
t
1
G( )e
jt
x(t ) d se transforma en.
2
2kn 2kn
1 1 2
G ( k )e G ( k )e
j j
x(nt ) N
N
2 2 Nt
Se escribe simplemente que.
2kn
1 1
G ( k )e
j
x ( n) N
N t
Resumiendo se tiene el siguiente par de ecuaciones.
2kn
j
G ( k ) x ( n)e N
t
2kn
1 1
G ( k )e
j
x ( n) N
N t
Si combinamos el par de ecuaciones entonces podemos eliminar t .
Y se llega finalmente al siguiente par de ecuaciones.
2kn 2kn
j 1
G ( k ) x ( n)e G ( k )e
j
N
, x ( n) N
N
El siguiente paso consiste en determinar los límites de cada una de las sumatorias.
En primer lugar para la primer sumatoria tiene como parámetro a f(n) o X(n).
35
De acuerdo a la anterior gráfica podemos observar que (n) toma valores que van desde cero,
hasta (N-1). n=0,1,2,3,… , N-1
N 1 2kn
j
G ( k ) x ( n)e N
n 0
N 1 2kn
1
G ( k )e
j
x ( n) N
N k 0
n 0 N k 0
Se obtiene un par de ecuaciones nuevas que nos permiten obtener las transformadas de
Fourier en variable discreta.
36
10 CALCULO DIRECTO DE LA TRANSFORMADA
DISCRETA DE FOURIER
La aplicación de las transformadas de Fourier en variable discreta requiere del empleo de
programas de computadora debido a la gran cantidad de operaciones necesarias para su
cómputo. Esta ha sido seguramente la razón por la cual el análisis de Fourier fué poco
reconocido en su tiempo cuando no se disponía de máquinas de computo como las que
tenemos en nuestros tiempos.
Al partir de su definición.
N 1 2kn
j
G ( k ) x ( n )e N
n 0
Para su cómputo podemos ir haciendo reemplazos término a término así.
2
j
Con objeto de simplificar la notación se asume lo siguiente. WN e N
G( N 1) x(0) x(1)W N 1 x(2)W 2( N 1) x(3)W 3( N 1) x( N 1)W ( N 1)( N 1)
Las anteriores operaciones pueden ser escritas como un producto matricial así.
1 1 1 1 1 x(0) G (0)
1 W W2 W3 W N 1 x(1) G (1)
1 W 2 W4 W6 W 2( N 1) x(2) G (2)
1 W N 1 W 2( N 1) W 3( N 1) W ( N 1)( N 1) x( N 1) G ( N 1)
2
j
Siendo WN e N
2
Se puede observar que para el cómputo se requiere un total de N productos, lo cual exige
gran cantidad de operaciones lo que la hace realmente ineficiente en aplicaciones reales
tales como el tratamiento de voz o imagen.
37
Como ejemplo se ha propuesto un programa en Matlab para el cálculo directo de la
transformada de Fourier, cuyas líneas de programa se muestran en seguida.
function y=four(x)
N=size(x,1)*size(x,2);
W=exp(-j*2*pi/N);
for s=1:N
for t=1:N
M(s,t)=W^((s-1)*(t-1));
end
end
y=M*x';
Para probar la eficiencia del algoritmo se han propuesto las siguientes líneas de programa.
tic;x=rand(1,N);y=four(x);toc
Para ejecutar los cálculos, se ha empleado una computadora portátil TOSHIBA CORE 3, que
dispone de un procesador con velocidad de cómputo de 3000 millones de operaciones por
segundo y un sistema operativo Windows 7.
N vs T(seg)
160
140
120
100
80
60
40
20
0
0 500 1000 1500 2000 2500 3000
38
Log(N) Vs Log(T)
6
2
Log(T)
-1
-2
-3
-4
4.5 5 5.5 6 6.5 7 7.5 8 8.5
Log(N)
39
11 CALCULO DIRECTO DE LA TRANSFORMADA
DISCRETA DE FOURIER INVERSA (TDFI)
N 1 2kn
1
G ( k )e
j
Partimos de su definición. x ( n) N
, n 0,1,2, , N 1
N k 0
N 1 2kn
TDFI x(n)
1
G ( k )e
j
N
N k 0
2
j
Con objeto de simplificar la notación se asume lo siguiente. WN e N
x(0)
1
G(0) G(1) G(2) G(3) G( N 1)
N
x(1)
N
1
G(0) G(1)W x(2)W 2 x(3)W 3 x( N 1)W N 1
x(2)
1
N
G(0) G(1)W 2 G(2)W 4 G(3)W 6 G( N 1)W 2( N 1)
x(3)
1
N
G(0) G(1)W 3 G(2)W 6 G(3)W 9 G( N 1)W 3( N 1)
1
x( N 1) G(0) G(1)W N 1 G(2)W 2( N 1) G(3)W 3( N 1) G( N 1)W ( N 1)( N 1)
N
Esta serie de expresiones pueden reescribirse como un producto matricial.
1 1 1 1 1 G (0) x(0)
1 W W2 W3 W N 1 G (1) x(1)
1
1 W2 W4 W6 W 2( N 1) G (2) x(2)
N
1 W N 1 W 2( N 1) W 3( N 1) W ( N 1)( N 1) G ( N 1) x( N 1)
2
j
Con WN e N
Para el cómputo directo de la TDFI, se han diseñado las siguientes líneas de programa.
function y=ifour(x)
N=size(x,1)*size(x,2);
W=exp(j*2*pi/N);
for s=1:N
for t=1:N
M(s,t)=W^((s-1)*(t-1));
end
end
y=1/N*(M*x');
40
Con objeto de probar la efectividad del algoritmo anterior se propone una secuencia de N
datos, evaluar su TDF y a partir de la TDF, calcular TDFI.
X=rand(1,20);
Y=four(x);
Ifour(four(x)’);
x TDF(x) TDFI(TDF(x))
0.5828 9.6136 0.5828 + 0.0000i
0.4235 -0.8622 + 0.2904i 0.4235 - 0.0000i
0.5155 -0.4435 - 0.1277i 0.5155 - 0.0000i
0.3340 0.9588 - 0.7826i 0.3340 - 0.0000i
0.4329 -0.7030 - 0.5464i 0.4329 - 0.0000i
0.2259 0.7547 + 0.0622i 0.2259 - 0.0000i
0.5798 -0.2459 + 0.5619i 0.5798 - 0.0000i
0.7604 -0.3923 - 1.1458i 0.7604 - 0.0000i
0.5298 -0.1398 - 0.3760i 0.5298 - 0.0000i
0.6405 1.4096 - 0.5717i 0.6405 - 0.0000i
0.2091 1.3692 + 0.0000i 0.2091 - 0.0000i
0.3798 1.4096 + 0.5717i 0.3798 - 0.0000i
0.7833 -0.1398 + 0.3760i 0.7833 - 0.0000i
0.6808 -0.3923 + 1.1458i 0.6808 + 0.0000i
0.4611 -0.2459 - 0.5619i 0.4611 + 0.0000i
0.5678 0.7547 - 0.0622i 0.5678 + 0.0000i
0.7942 -0.7030 + 0.5464i 0.7942 + 0.0000i
0.0592 0.9588 + 0.7826i 0.0592 + 0.0000i
0.6029 -0.4435 + 0.1277i 0.6029 + 0.0000i
0.0503 -0.8622 - 0.2904i 0.0503 + 0.0000i
41
12 LA TRANSFORMADA RÁPIDA DE FOURIER
La transformada rápida de Fourier (FFT) es un algoritmo eficiente para calcular la
transformada discreta de Fourier y su inversa. Hay muchos algoritmos FFT diferentes con una
amplia participación de las matemáticas, desde la simple aritmética de números complejos
hasta la teoría de grupos y teoría de números.
Una Transformada discreta de Fourier (TDF), descompone una secuencia de valores en sus
componentes frecuenciales. Esta operación es útil en muchos campos pero su cómputo
directo a partir de su definición es muy lento para ser práctico como se observó en el capítulo
anterior.
La FFT presenta una forma alternativa para calcular la DFT con mayor rapidez. El cómputo
de la TDF de N puntos en la forma directa según la definición, toma (N2) operaciones
aritméticas, mientras que la FFT permite calcular el mismo resultado en sólo (N log 2N)
operaciones.
La diferencia de velocidad puede ser considerable, especialmente para los conjuntos de datos
grandes, donde N puede estar en los miles o millones. En la práctica, el tiempo de cálculo
puede ser reducido por varios órdenes de magnitud en estos casos, y la mejora es más o
menos proporcional a N/log2(N). Esta gran mejora hizo que muchos algoritmos basados en la
práctica (FFT) sean de gran importancia en una amplia variedad de aplicaciones, desde
procesamiento digital de señales, la solución de ecuaciones diferenciales parciales y
algoritmos para la multiplicación rápida de números enteros grandes [5].
La idea básica de la DFT es que a partir de una secuencia de N valores X(n), que van desde
X(0) hasta X(N-1). Se obtienen sus componentes frecuenciales mediante la siguiente
expresión.
N 1 2kn
j
G ( k ) x ( n)e N
n 0
Ahora si asumimos que N es un número par, entonces la sumatoria anterior se descompone en
dos sumatorias así.
n 0 n 0 n N / 2
n 0 n 0 n 0
42
Factorizando.
2kn
x(n) (1)
N / 2 1 j
G (k ) k
x(n N / 2) e N
n 0
De otra parte, teniendo en cuenta que (1) k toma signos positivos o negativos dependiendo
de si k es par o impar.
Se obtienen las dos expresiones siguientes.
N / 2 1 2kn
j
G ( 2k ) x(n) x(n N / 2)e
n 0
( N / 2)
, para k 0,1,2,, N / 2
N / 2 1 2 ( 2 k 1) n
j
G(2k 1) x(n) x(n N / 2)e
n 0
N
,para k 0,1,2,, N / 2
N / 2 1 2kn 2n
j j
G(2k 1) x(n) x(n N / 2)e
n 0
N /2
e N
2
j
Asumiendo que. WN e N
y reemplazando se tiene.
N 1
G(k ) x(n)WNkn , para k 0,1,2,, N 1
n 0
Es la transformada de Fourier de la serie x(n) , con n 0,1,2,, N 1
N / 2 1
G ( 2k ) x(n) x(n N / 2)W
n 0
kn
N / 2 , para k 0,1,2,, N / 2 1
N 1
G(k ) x(n)WNkn TDFx(n)
n 0
43
Resumen IDENTIDADES NECESARIAS PARA LA EVALUACIÓN DE LA FFT
N 1
G(k ) x(n)WNkn TDFx(n), k 0,1,2,, N 1
n 0
Se puede concluir que la TDF de una secuencia X(n) de N datos, se puede expresar como la
composición de dos TDF de secuencias con N/2 datos. La primera componente será
equivalente a la TDF de la secuencia de la suma x(n) x(n N / 2) , con
n 0,1,2,, N / 2 1 pero debe tenerse en cuenta que estas serán las TDF
de orden par.
La segunda componente será equivalente a la TDF de la secuencia de la suma
x(n) x(n N / 2)W , con n 0,1,2,, N / 2 1 y en este caso debe tener en cuenta
n
N
que estas serán las TDF de orden impar.
Puede observarse que este es un típico problema de recursividad donde la TDF de una
secuencia X(n) de N datos, se puede expresar como la composición de dos TDF de secuencias
de longitud N/2. Luego cada una de las TDF de longitud N/2 se expresan como la composición
de dos TDF de longitud N/4 y el proceso deberá repetirse a cada subsecuencia de tal modo
que al final se disponga de un dato por cada secuencia, caso en el cual, algoritmo recursivo
debe detenerse.
Para que el algoritmo recursivo del cálculo de la TDF tenga aplicabilidad será necesario que el
número de datos de la secuencia inicial x(n), sea una potencia de dos de tal modo que
N 2p .
La técnica fundamental conocida como algoritmo mariposa recibe su nombre por la apariencia
que presentan las líneas cruzadas que indican como fluye la información durante el cómputo
de la FFT. Las dos siguientes gráficas se han planteado como ejemplo para el cómputo de la
FFT para una secuencia de 16 datos.
Puede observarse que inicialmente la secuencia de 16 datos de la forma X(n) a los cuales se
evaluará su FFT se disponen en la primera columna, la segunda columna estará compuesta por
dos secuencias cada una de 8 datos de tal modo que la primer secuencia será la suma de
términos de la forma x(n) x(n N / 2) y la segunda secuencia de dato será de la forma
2
x(n) x(n N / 2)W
j
con n 0,1,2,3,4,5,6,7 y WN e N .
n
N Las columnas
siguientes se obtienen aplicando el mismo proceso a cada una de las subsecuencias de la
44
columna anterior y este proceso se repite hasta que el algoritmo mariposa tenga la forma más
elemental posible.
Podemos observar que la última columna estará compuesta por las componentes de la
transformada de Fourier las cuales están en un aparente desorden.
Para encontrar el orden de la secuencia de datos de la última columna, se procede a listar los
números consecutivos partiendo desde 0,1,2, hasta N-1, de tal modo que N=2p. Paso seguido
estos números se expresan en notación binaria da tal modo que cada binario se representa
solo mediante (p) bits. Paso seguido los bits de los números en notación binaria se invierten y
se traducen a notación decimal; el número decimal obtenido corresponderá al orden
adecuado de cada elemento dentro de la secuencia de datos. Con objeto de ilustrar el
procedimiento anterior se presenta la siguiente tabla.
45
Numero Binario Binario Decimal
Decimal Equivalente Inverso Equivalente
0 0000 0000 0
1 0001 1000 8
2 0010 0100 4
3 0011 1100 12
4 0100 0010 2
5 0101 1010 10
6 0110 0110 6
7 0111 1110 14
8 1000 0001 1
9 1001 1001 9
10 1010 0101 5
11 1011 1101 13
12 1100 0011 3
13 1101 1011 11
14 1110 0111 7
15 1111 1111 15
Puede observarse que en efecto la secuencia obtenida en esta tabla coincide con la secuencia
obtenida en el cálculo de la FFT. Surge entonces la pregunta; “cómo explicar
matemáticamente porque este método funciona?”.
Para dar una respuesta a esta pregunta procedemos a hacer un seguimiento al proceso en
notación binaria. Disponemos en columna la secuencia de binarios desde el 0000 hasta el
1111 y procedemos a registrar en la siguiente columna una primera secuencia de números
pares y luego una segunda secuencia de los números impares.
46
Binario Binarios
Reordenado Reordenados
0000 0000
0010 0100
0100 1000
0110 1100
1000 0010
1010 0110
1100 1010
1110 1110
0001 0001
0011 0101
0101 1001
0111 1101
1001 0011
1011 0111
1101 1011
1111 1111
reordenar transrf
invec
pares nones
El programa denominado (flt), se encarga de invocar dos funciones: la función (transrf) que se
encarga de evaluar la FFT y luego invoca a la función (reordenar) que se encarga de
reorganizar la secuencia G(k) de las componentes de la FFT.
La función (transrf), evalúa la FFT en forma recursiva invocándose así misma pero
adicionalmente invoca a las funciones: (pares) y (nones).
function y=flt(x)
y=reordenar(transrf(x));
function y=transrf(x)
s1=pares(x);
s2=nones(x);
if size(s1,1)*size(s1,2)==1
y=[s1 s2];
else
y=[transrf(pares(x)) transrf(nones(x))];
end
function y=pares(x)
N=size(x,1)*size(x,2);
for k=1:N/2
y(k)=x(k)+x(k+N/2);
end
function y=nones(x)
N=size(x,1)*size(x,2);
w=exp(-j*2*pi/N);
for k=1:N/2
y(k)=(x(k)-x(k+N/2))*w^(k-1);
end
function y=reordenar(x)
N=size(x,1)*size(x,2);
M=log2(N);
y=x;
for k=0:N-1
y(bin2dec(invec(dec2bin(k,M)))+1)=x(k+1);
end
function y=invec(x)
N=size(x,1)*size(x,2);
y=x;
for k=1:N
y(k)=x(N-k+1);
end
Para medir la eficiencia del algoritmo, se ha empleado una computadora portátil TOSHIBA
CORE 3, que dispone de un procesador con velocidad de cómputo de 3000 millones de
operaciones por segundo y un sistema operativo Windows 7.
48
Se propuso en Matlab la siguiente línea de órdenes para diferentes valores de (p).
x=rand(1,2^p);tic;flt(x);toc
p 2p Tiempo(seg)
8 256 0.057
9 512 0.094
10 1024 0.211
11 2048 0.535
12 4096 1.542
13 8192 3.744
14 16384 8.602
15 32768 19.496
N vs T(s)
20
18
16
14
12
10
0
0 0.5 1 1.5 2 2.5 3 3.5
4
x 10
Puede observarse como se ha reducido considerablemente el tiempo de cómputo requerido
para el cálculo de la FFT con respecto al algoritmo que calcula la FFT en forma directa.
Nota:
Debe aclararse que el tiempo registrado en la anterior tabla corresponde al tiempo de
cómputo de los algoritmos desarrollados en este documento y ejecutados en Matlab sin
embargo si ejecutamos estos mismos cálculo mediante el algoritmo FFT que dispone Matlab,
el tiempo empleado es considerablemente más bajo como se muestra enseguida.
49
p 2p Tiempo(seg) Tiempo (seg)
Algoritmo Algoritmo
(FLT) (FFT) Matlab
8 256 0.063 0
9 512 0.131 0
10 1024 0.229 0
11 2048 0.588 0
12 4096 1.638 0.001
13 8192 3.781 0.001
14 16384 8.639 0.001
15 32768 19.46 0.003
50
14 ALGORITMO PARA EL CÁLCULO DE LA FFT
INVERSA
Para el cálculo de la IFFT, partimos de su definición.
N 1 2kn
1
G ( k )e
j
x ( n) N
N k 0
Para ello se han diseñado las siguientes líneas para ejecutar en Matlab.
function y=iflt(x)
N=size(x,1)*size(x,2);
y=real(reordenar(itransrf(x))/N);
function y=itransrf(x)
s1=ipares(x);
s2=inones(x);
if size(s1,1)*size(s1,2)==1
y=[s1 s2];
else
y=[itransrf(ipares(x)) itransrf(inones(x))];
end
function y=ipares(x)
N=size(x,1)*size(x,2);
for k=1:N/2
y(k)=x(k)+x(k+N/2);
end
function y=inones(x)
N=size(x,1)*size(x,2);
w=exp(j*2*pi/N);
for k=1:N/2
y(k)=(x(k)-x(k+N/2))*w^(k-1);
end
function y=reordenar(x)
N=size(x,1)*size(x,2);
M=log2(N);
y=x;
for k=0:N-1
y(bin2dec(invec(dec2bin(k,M)))+1)=x(k+1);
end
function y=invec(x)
N=size(x,1)*size(x,2);
y=x;
for k=1:N
y(k)=x(N-k+1);
end
51
15 INTERPRETACIÓN DE LA FFT
Para hacer una adecuada interpretación de la FFT, es importante partir de su definición.
N 1 2
G(k ) x(n)W TDFx(n), con WN e
kn j
N
N
n 0
2
0 es la frecuencia fundamental en radianes por segundo.
T
T Nt es el periodo.
N es el número de datos de la secuencia G(k).
t es el incremento de tiempo de la secuencia x(n).
Reemplazando se tiene.
2k
G (k ) G
Nt
De otra parte es importante aclarar que la TDF corresponde al contenido de frecuencias de la
Secuencia x(n) pero por sus propiedades de simetría debe considerarse el doble de la
amplitud como se indica al final del capítulo siete de este documento.
Se propone el siguiente ejemplo cuyas líneas de programa para ejecutar en Matlab son las
siguientes.
Ejemplo 1.
Se propone una función de la forma y(t ) 2sen(1300t ) 3sin(5000t ) , discretizada en
los siguientes términos: para una velocidad de muestreo de 2000 muestras por segundo y un
total de 210 muestras. Determine su espectro de frecuencias.
N=2^10;
n=0:1:N-1;
mps=2000;
Dt=1/mps;
t=n*Dt;
y=2*sin(1300*t)+3*sin(5000*t);
z=fft(y);
k=n;
w=k*2*pi/(N*Dt);
plot(w,2*abs(z));
title('Espectro de frecuencias');
xlabel('Frecuencia (r/s)');
ylabel('Amplitud');
52
La respuesta gráfica del problema es la siguiente.
Espectro de frecuencias
2500
2000
1500
Amplitud
1000
500
0
0 2000 4000 6000 8000 10000 12000 14000
Frecucencia (r/s)
Puede observarse la simetría de la respuesta del espectro de frecuencias.
Espectro de frecuencias
2000
1500
Amplitud
1000
500
0
1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 6000
Frecucencia (r/s)
53
Podemos observar en la gráfica que en efecto las frecuencias predominantes son de 1300
(r/seg) y 5000 (r/seg).
Se propone ahora un ejemplo donde la cantidad de datos no sea una potencia de dos.
54
BIBLIOGRAFÍA
[3]. Roberto Rodríguez del Río y Enrique Zuazua. Series de Fourier y Fenómeno de Gibbs.
http://www.uam.es/personal_pdi/ciencias/ezuazua/informweb/cubo.pdf
55