Вы находитесь на странице: 1из 56

ANALISIS DE FOURIER

[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

[Este documento es una recopilación breve de la teoría básica de Fourier. Se ha procurado


hacer un seguimiento lógico del contenido de modo que resulte ser un documento de guía a
quienes desconozcan por completo de los fundamentos necesarios para abordar este tema.]
INTRODUCCIÓN
El análisis de Fourier recibe el nombre en honor a Joseph Fourier (1768-1830), matemático
francés que vivió durante la era napoleónica y acompañó a Napoleón en su campaña a
Egipto). Fourier es honrado justamente al tener su nombre vinculado a esta importante rama
del análisis. Sin embargo, como podíamos esperar, muchos de los contemporáneos de Fourier
y predecesores inmediatos contribuyeron a esta gran obra.

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.

Las formulas integrales para los coeficientes de fourier aparecieron en el trabajo de


D’Alembert.

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.

La importancia de la teoría de Fourier no fue totalmente entendida en ese tiempo y algunos


de los cálculos simplemente eran incorrectos. Sin embargo su aparición en conexión con
problemas importantes planteó preguntas y condujo a una mayor investigación sobre ellas.
Una pregunta, por ejemplo, era como una función no periódica podía ser representada
mediante una serie en senos y cosenos, que son periódicos.

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.

Adicional a los conceptos teóricos, se considerarán algunos ejemplos y rutinas de programas


elaborados en Matlab por ser una herramienta adecuada para este tipo de problemas que
involucran operaciones entre vectores y matrices además de su facilidad de programación.

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

Luego el objeto de este método es disponer de un procedimiento que permita obtener el


valor de los coeficientes a0 a1 ··· an. La clave consiste en computar las derivas sucesivas de
la serie y luego proceder a evaluar las derivadas de la serie para x  c .

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  
23 3!
f ' ' ' (c) f IV (c)
a4  
23 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 ' ' (c) f ' ' ' (c)


f ( x )  f (c)  f ' (c)(x  c)  ( x  c) 2  ( x  c) 3  
2! 3!
Luego se puede escribir esta serie en notación sumatoria.


f ( n ) ( c)
f (x)   ( x  c) n
n 0 n!

Para el caso en que c  0 , la serie de Taylor se transforma en.



f ( n ) (0) n
f (x)   (x) la cual se conoce como serie de Maclaurin.
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 ) .

DESARROLLO DE LA FUNCIÓN SENOIDAL MEDIANTE SERIES DE MACLAURIN

Calculo de las derivadas


sen(x)  a 0  a1 (x)  a 2 (x) 2  a 3 (x)3  
cos(x)  a1  2a 2 (x)  3a 3 (x) 2  4a 4 (x)3  
 sen(x)  2a 2  2  3a 3 (x)  3  4a 4 (x) 2  4  5a 5 (x)3  
 cos(x)  2  3a 3  2  3  4a 4 (x)  3  4  5a 5 (x) 2  4  5  6a 6 (x)3 
sen(x)  2  3  4a 4  2  3  4  5a 5 (x)  3  4  5  6a 6 (x) 2  
Evaluación de las derivadas
sen(0)  a 0
cos(0)  a1
 sen(0)  2a 2
 cos(0)  2  3a 3
sen(0)  2  3  4a 4
Despejando las incógnitas se tiene.
a0  0
a1  1
a2  0

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)!

DESARROLLO DE LA FUNCIÓN COSENOIDAL MEDIANTE SERIES DE MACLAURIN

Calculo de las derivadas


cos(x)  a 0  a1 (x)  a 2 (x) 2  a 3 (x)3  
 sen(x)  a1  2a 2 (x)  3a 3 (x) 2  4a 4 (x)3  
 cos(x)  2a 2  2  3a 3 (x)  3  4a 4 (x) 2  4  5a 5 (x)3  
sen(x)  2  3a 3  2  3  4a 4 (x)  3  4  5a 5 (x) 2  4  5  6a 6 (x)3 
cos(x)  2  3  4a 4  2  3  4  5a 5 (x)  3  4  5  6a 6 (x) 2  
Evaluación de las derivadas
cos(0)  a 0
 sen(0)  a1
 cos(0)  2a 2
sen(0)  2  3a 3
cos(0)  2  3  4a 4
Despejando las incógnitas se tiene.
a0  1
a1  0
1
a2 
2!
a3  0
1
a4 
4!
5
a5  0
Reemplazando en el polinomio original se obtiene.
x2 x4 x6
cos( x )  1     se puede escribir en notación sumatoria.
2! 4! 6!
 2n
n x
cos( x )   (1)
n 0 (2n )!

DESARROLLO DE LA FUNCIÓN EXPONENCIAL MEDIANTE SERIES DE MACLAURIN

Calculo de las derivadas


e x  a 0  a1 ( x)  a 2 ( x) 2  a 3 (x)3  
e x  a1  2a 2 (x)  3a 3 (x) 2  4a 4 (x)3  
e x  2a 2  2  3a 3 (x)  3  4a 4 (x) 2  4  5a 5 (x)3  
e x  2  3a 3  2  3  4a 4 (x)  3  4  5a 5 (x) 2  4  5  6a 6 (x)3 
e x  2  3  4a 4  2  3  4  5a 5 (x)  3  4  5  6a 6 (x) 2  
Evaluación de las derivadas
e0  a 0
e0  a1
e 0  2a 2
e 0  2  3a 3
e 0  2  3  4a 4
Despejando las incógnitas se tiene.
a0  1
a1  1
1
a2 
2!
1
a3 
3!
1
a4 
4!
1
a5 
5!
Reemplazando en el polinomio original se obtiene.
6
x2 x3 x4 x5
e  1 x 
x
    se puede escribir en notación sumatoria.
2! 3! 4! 5!

xn
e 
x

n 0 n!

Resumen Series de Taylor de Algunas Funciones Básicas.

 
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.

Partimos de la serie de Maclaurin de la función exponencial.


x 2 x3 x 4 x5
e  1 x 
x
   
2! 3! 4! 5!
Si reemplazamos el argumento de la función por ix tal que i   1 , se obtiene.

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  Cos(x)  iSen (x)


A partir de las identidades anteriores podemos deducir dos nuevas identidades.

e ix  e ix e ix  e ix
cos( x )  , sen ( x ) 
2 2i
Resumen (LAS IDENTIDADES DE EULER).

eix  Cos(x)  iSen (x)


e ix  Cos(x)  iSen (x)
e ix  e ix
cos( x ) 
2
e ix  e ix
sen ( x ) 
2i

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

g(x)  c1g1 (x)  c2g2 (x)  c3g3 (x)    cn g n (x)


Se trata de encontrar el valor de los coeficientes c1, c2, c3, cn de g(x) que minimicen la
integral del error cuadrático.

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

Se resuelven cada una de las derivadas parciales.

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

La anterior expresión se puede expresar así.


b b b b
c1  g1g k dx  c2  g 2g k dx    cn  g n g k dx   fg k dx
a a a 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 

Finalmente, para obtener los coeficientes, se procede a realizar la eliminación gaussiana de


la matriz ampliada.

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).

Dada una función f (x)


, Existe una función g( x ) que es la combinación lineal de un
conjunto de funciones que conforman una base generadora de la forma.
B  {g1 (x), g2 (x), g3 (x),, g n (x)} Tal que.
g(x)  c1g1 (x)  c2g2 (x)  c3g3 (x)    cn g n (x)

El valor de los coeficientes c1 , c2 , c3 ,, cn se obtiene eliminado la matriz ampliada


siguiente.

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) 

Ahora se efectúa la eliminación gaussiana y se obtiene.


 2 2 8/3 4 - cos(2) + 1  1 0 0 0 - 0.007 
   
 2 8/3 4 32/5 sin(2) - 2cos(2)  0 1 0 0 1.0668 
 8/3 =
4 32/5 32/3 - 2cos(2) + 4sin(2) - 2  0 0 1 0 - 0.1360 
   
 4 32/5 32 / 3 128 / 7 4cos(2) + 6sin(2)  0 0 0 1 - 0.0852 
 

g(x)  0.007  1.0668x  0.136x 2  0.0852x 3


sin(x)

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2


x
Gráficamente podemos observar en la gráfica de f(x) que g(x) es una buena aproximación.

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 1sen(t )  a 2sen(2t )  a 3sen(3t )    a n sen (nt ) 


b1 cos(t )  b 2 cos(2t )  b 3 cos(3t )    b n cos(nt )
 , la frecuencia fundamental y n
Siendo es una frecuencia de orden superior tal que.
2

T
Escrito en forma más compacta se tiene.

 
f ( t )  a 0   a n sen (nt )   b n cos(nt )
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.

Se parte de la base generadora.


B  {1, sen(t ), sen(2t ),sen(nt ), cos(t ), cos(2t ),cos(nt )}
A partir de la base generadora se propone la matriz ampliada del sistema de ecuaciones
correspondientes.
Por razones de espacio se propone la matriz ampliada para la series de Fourier de orden dos.

 T/2 T/2 T/2 T/2 T/2 T/2




  dt
T / 2
 sen(t)dt
T / 2
 sen(2t)dt
T / 2
 cos(t)dt
T / 2
 cos(2t)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 (2t )dt T / 2
sen ( 2 t )sen (  t ) dt T / 2
sen 2
( 2 t ) dt T / 2
sen ( 2  t ) cos(  t ) dt T / 2
sen ( 2  t ) cos( 2 t ) dt T / 2
sen ( 2  t ) f ( t ) dt 
 T / 2 
 T/2 T/2 T/2 T/2 T/2 T/2 
  cos(t )dt T / 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 2 T / 2 T / 2 T / 2 T / 2 
 T/2 T/2 T/2 T/2 T/2 T/2 
  cos(2t )dt T / cos( 2t )sen (t )dt  cos(2t )sen (2t )dt  cos(2t ) cos(t )dt  cos 2 (2t )dt  cos(2t )f ( t )dt 
 T / 2 2 T / 2 T / 2 T / 2 T / 2 

Enseguida se calcula cada una de las integrales requeridas.


T/2

 dt  T
T / 2
T/2

 sen(nt)dt  0
T / 2
T/2

 cos(nt )dt  0
T / 2
T/2

 sen(nt) cos(mt)dt  0 para


T / 2
nm

1  cos(2nt ) cos(2nt )
T/2 T/2 T/2 T/2
1 T
 sen (nt)dt   dt   dt   dt 
2

T / 2 T / 2
2 T / 2
2 T / 2
2 2
1  cos(2nt ) cos(2nt )
T/2 T/2 T/2 T/2
1 T
 cos (nt )dt   dt   dt   dt 
2

T / 2 T / 2
2 T / 2
2 T / 2
2 2

Al reemplazar en la matriz se obtiene lo siguiente.

15
 T/2 T/2 T/2 T/2 T/2 T/2


  dt
T / 2
 sen(t)dt
T / 2
 sen(2t)dt
T / 2
 cos(t)dt
T / 2
 cos(2t)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 (2t )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(2t )dt  cos( 2  t )sen (  t ) dt  cos( 2  t ) sen ( 2  t ) dt  cos( 2  t ) cos(  t ) dt  cos 2
( 2t ) 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 (2t )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 

Se efectúa la eliminación gaussiana de la matriz.

 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 (2t )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(2t )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 (nt )   b n cos(nt )
n 1 n 1
Donde.
T/2 T/2 T/2
1 2 2
a0   f ( t )dt , a n 
T T / 2  sen (nt )f ( t )dt , b n 
T T / 2 T T/ 2
cos(nt )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 (nt )   b n cos(nt )
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 (nt )f ( t )dt , b n 
T T / 2 T T/ 2
cos(nt )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.

Definida en el intervalo -T/2≤t≤T/2


 0 T/2  t  0
f (t)  
4 / 5t 0  t  5 / 2
Solución.
Al calcular los coeficientes de Fourier hasta orden cuatro, se obtiene la siguiente expresión.

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

La gráfica de g(x) se muestra enseguida.

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.

Puede observarse que a medida que se incrementa la cantidad de términos, la serie de


Fourier se asemeja más a la función original. Otro aspecto importante a observar es que en
las discontinuidades de la función original, se presentan oscilaciones denominadas fenómeno
de Gibbs en honor al Físico Matemático que las estudió [3].

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í.

B  {e 3 jt , e 2 jt , e  jt , e 0 jt , e jt , e 2 jt , e3 jt ,}


Ahora se propone un polinomio de la forma.

f (t )    c2e2 jt  c1e jt  c0e0 jt  c1e jt  c2e2 jt  
Escrito de una manera más compacta.

f (t )  c e
n  
n
jnt

Se trata entonces de calcular el valor de los coeficientes cn de la expresión anterior.

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 4 jt T/2 T/2 T/2 T/2 T/2



  e dt e
3 jt
dt e
 2 jt
dt e
 jt
dt e
0 jt
dt e  2 j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 
  e 3 jt dt e
 2 jt
dt e
 jt
dt  e dt  e dt
0 jt jt
 e f ( t )dt 
 jt

 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 jt dt e
 jt
dt e
0 jt
dt  e dt  e dt  e f ( t )dt 
jt 2 jt 0 jt

 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  jt dt e
0 jt
dt e
jt
dt  e 2 jt
dt  e 3 jt
dt  e jt
f ( t ) dt 
 T / 2 T / 2 T / 2 T / 2 T / 2 T / 2 
 T / 2 0 jt T/2 T/2 T/2 T/2 T/2 
  e dt e
jt
dt e
2 jt
dt  e 3 jt
dt  e 4 jt
dt  e 2 jt
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
 njt
dt  0 , n  0
T / 2

T/2 T/2

e  dt  T
0 jt
dt 
T / 2 T / 2

Reemplazando se tiene.

 T/2

0 0 0 0 T e f ( t )dt 
 2 jt

 T / 2 
 T/2 
0 0 0 T 0  e f ( t )dt 
 jt

 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 jt
 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 jt
f ( t ) dt 
 
 1
T/2 
T T/ 2
0 0 0 1 0 e  jt
f ( t )dt 
 
 1
T/2 
T T/ 2
0 0 1 0 0 f ( t )dt 
 
 1
T/2 
T T/ 2
jt
0 1 0 0 0 e f ( t )dt 
 
 1
T/2 
T T/ 2
2 jt
 1 0 0 0 0 e f ( t )dt 
 
Se concluye finalmente que.

20
 1 T / 2 2 jt  2 jt  1 T / 2 jt   jt
f ( t )      e
 T T / 2
f ( t ) dt 


e  
  e
 T T / 2
f ( t ) dt e 


 1 T/2  0 jt  1 T / 2  jt  jt  1 T / 2 2 jt  2 jt
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
jnt 1
f (t)  n tal que. cn   e  jnt f ( t )dt
n  T T / 2

Resumen SERIES DE FOURIER EN VARIABLE COMPLEJA.

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
jnt 1
f (t)  n tal que. c n  
e  jnt 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.

El espectro de frecuencias o descomposición espectral de frecuencias puede aplicarse a


cualquier concepto asociado con frecuencia o movimientos ondulatorios como son los colores,
las notas musicales, la voz humana, las ondas electromagnéticas de radio o TV [4].

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.

Señal de voz y su correspondiente espectro de frecuencias.

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

Como se puede apreciar en la gráfica anterior, una función de la forma.


X=3sen(150t)+2sen(30t), se aprecia como dos franjas en el dominio de la frecuencia; una
franja para cada una de las frecuencias de 30 y 150.

La gráfica de abajo corresponde a una función de la forma. X=3sen(150t), cuyo espectro de


frecuencias corresponde a una única franja en la frecuencia de 150.

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

7 RELACIÓN ENTRE LAS AMPLITUDES EN


VARIABLE REAL Y VARIABLE COMPLEJA DE LAS
SERIES DE FOURIER.

Enseguida se muestra la forma de obtener el espectro de frecuencias de una función a partir


de las series de Fourier tanto en variable real como en variable compleja.

Series de Fourier en Variable Real.


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 (nt )   b n cos(nt )
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 (nt )f ( t )dt , b n 
T T / 2 T T/ 2
cos(nt )f ( t )dt , n  0,1,2, 

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(nt )  bn cos(nt )  cnsen(nt  )
Visto de esta manera, las series de Fourier en variable real se pueden reescribir así.


f ( t )  a 0   c n sen (nt  ) , tal que.
n 1
T/2 T/2 T/2
1 2 2
a0   f ( t )dt , a n 
T T / 2  sen (nt )f ( t )dt , b n 
T T / 2 T T/ 2
cos(nt )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

Respuesta gráfica obtenida a partir de las líneas de programación propuestas


anteriormente.

Series de Fourier en Variable Compleja.


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
jnt 1
f (t)  n tal que. c n  
e  jnt 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.

En ese caso la serie de Fourier se puede reescribir en la siguiente forma.

T/2   T/2
  jnt  1 T / 2 jnt  jnt
1 1
f (t) 
T T/ 2
f ( t ) dt   T 

n 1 
e  jnt
f ( t ) dt 
e  T 
 e f ( t ) dt e

T / 2   T / 2 
Podemos observar que.
T/2 T/2
1

1
cos(nt )  jsen (nt)f (t )dt
T T/ 2
e  jnt f ( t )dt 
T T / 2
T/2 T/2
1

1
cos(nt )  jsen (nt )f (t )dt
T T/ 2
e jnt f ( t )dt 
T T / 2

26
Las dos expresiones anteriores son en consecuencia expresiones conjugadas.

Podemos entonces escribir estas expresiones en notación polar.

T/2 T/2
1 1 1 1
 e  jnt f ( t )dt  re  j ,
T T / 2 T  e jnt f ( t )dt  re j ,
T T / 2 T
de tal modo que r es la

magnitud de los complejos conjugados.

Reemplazando se puede expresar la serie de Fourier en la forma.

1 
   
T/2
1
f (t)   f
T T / 2
( t ) dt  
T n 1
re  j e  jnt  re j e jnt
Efectuando productos se tiene.

1 
   
T/2
1
f (t )   f ( t )dt   re  jnt   re jnt 
T T / 2 T n 1
Desarrollando las expresiones exponenciales se tiene.

1 
T/2
1
f ( t )dt   2r cos(  nt )
T T/ 2
f (t) 
T n 1
Recordemos que
T/2

e
 jnt
r f ( t )dt , es el módulo de la integral.
T / 2

Luego la serie de Fourier se puede escribir en la forma.

2 
T/2 T/2
1
f (t)   f ( t )dt    e  jnt f ( t )dt cos(  nt )
T T / 2 T n 1 T / 2
Escrito de otra forma.

f ( t )  c0   c n cos(  nt )
n 1
T/2 T/2
1 2
Con c0   f ( t )dt , c n 
T T / 2  e  jnt 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

Resultado gráfico obtenido.

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.

Para resolver el inconveniente de la aperiodicidad, los matemáticos adaptaron las series de


Fourier al caso en el cual el periodo tiende a infinito. Si considero que una función no
periódica es como tener una función periódica con periodo infinito, entonces tengo la
solución al problema de la aperiodicidad.

Nota.
A partir de este momento los cálculos se desarrollarán solo en variable compleja por la
ventaja de la simplicidad.

Partimos de la serie de Fourier en variable compleja.

Series de Fourier en Variable Compleja.


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
jnt 1
f (t)  n tal que. c n  
e  jnt f ( t )dt con,   2
n  T T / 2 T

Con el fin de evitar confusiones aclaramos las siguientes expresiones.


2
 0 Es la frecuencia fundamental.
T
n0   Es un múltiplo de la frecuencia fundamental ó armónica.

Luego la serie de Fourier queda así.

c e
T/2
e  jt f ( t )dt , 0  2
jt 1
f (t)  n , cn  
n   T T / 2 T
n  n0
n 1  (n  1)0
n1  n  (n  1)0  n0  0

Luego
  0
Como.
2 1 
0  , entonces 
T T 2
Reemplazamos en la serie de Fourier las anteriores expresiones.
  1 T / 2  jt  jt  

T/2
 jt
f ( t )     e f ( t ) dt 
 e = f ( t )   
  e  jt
f ( t ) dt e

n    T T / 2  n    2  T / 2 

29
Reordenando términos se tiene.

  1 T / 2  jt  jt
f ( t )     e f ( t ) dt e 

n  2  T / 2 
Tomando el límite al infinito se obtiene.

 1 T / 2  jt
  jt  
1

 jt
f ( t )  lim    e f ( t ) dt 
e     2 
 e  jt
f ( t ) dt e 

T
n  2  T / 2  n   
Sea.


1
G()  
2  
e  jt f ( t )dt
Luego la serie de Fourier se transforma en.


f (t)   G()e
n 
jt


2
Puesto que   y se ha acordado que T   ,  es una expresión infinitesimal.
T
Luego se concluye que.


f (t)   G()e
n 
jt
 es una suma de Rienman que puede ser expresable en forma

integral.
 
f (t)   G()e
n 
jt
   G()e jt d


Se concluye finalmente que.


 
1
f ( t )   G ()e d ,  e  jt f ( t )dt
jt
con G() 

2  
Este par de ecuaciones son conocidas como las transformadas de Fourier.


1
G()  
2  
e  jt f ( t )dt Es la transformada de Fourier.


f ( t )   G ()e jt 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). Una primer forma fue las desarrollada en este documento.


 
1
f ( t )   G ()e d  e  jt f ( t )dt
jt
G() 

2  
2). Otra forma puede ser la siguiente.

 
1
f (t)   G()e jt d G()   e  jt f ( t )dt
2   
3). Otra forma es la siguiente.
 
1 1
 G()e e
jt  jt
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.

Antes de entrar en detalles es importante aclarar la diferencia entre funciones en variable


continua y discreta, para lo cual proponemos el siguiente ejemplo.

Consideremos la función y  6  x2 para el intervalo. 3 x  3 cuya gráfica se


muestra enseguida.
Y=6-x 2
6

-1

-2

-3
-3 -2 -1 0 1 2 3

Se asume que aunque la variable X está restringida al intervalo  3  x  3 , la variable X


toma infinitos valores los cual la hace continua para el intervalo propuesto.

Para la situación de la misma función en variable discreta, es importante definir en primer


lugar los valores límites de X y su incremento, así.

 3  x  3, con x  0.25 .
x Es el incremento de la variable X ó valor de discretización.
x  nx Se asume que la variable X solo asumirá valores múltiplos del incremento de
discretización.

Para este caso se propone. y ( x)  6  ( x)2 , Reemplazando x  nx ,


Se obtiene la siguiente expresión.
32
y(nx)  6  (nx)2

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);

Partimos de las transformadas de Fourier en variable continua.


 
1
G( )   e  jt
x(t )dt ; x(t )   G( )e
jt
d

2 

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 nt
 k0
0 2
T
T Nt
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.

A partir de estas gráficas tenemos que.


t  nt
T  Nt
Al reemplazar estas expresiones en las transformadas de Fourier se tienen las siguientes
expresiones.

 k 2
j nt
G( )   e  jt
x(t )dt se transforma en. G(k0 )   e Nt
x(nt )t


Simplificando se tiene.

34
2kn
j
G(k0 )   x(nt )e N
t , se escribe simplemente.
2kn
j
G ( k )   x ( n)e N
t

De otra parte se tiene que.


1
 G( )e
jt
x(t )  d se transforma en.
2 
2kn 2kn
1 1 2
 G ( k )e  G ( k )e
j j
x(nt )  N
  N
2 2 Nt
Se escribe simplemente que.
2kn
1  1
 G ( k )e
j
x ( n)  N
 
N  t 
Resumiendo se tiene el siguiente par de ecuaciones.
2kn
j
G ( k )   x ( n)e N
t
2kn
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.
2kn 2kn
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

Luego la primer sumatoria queda así.

N 1 2kn
j
G ( k )   x ( n)e N

n 0

Ahora definimos los límites de la siguiente sumatoria.


2kn
1
 G ( k )e
j
x ( n)  N
.
N
2kn
j
N
Considerando la expresión e podemos observar que para
2kn
j
k  0, e N 1
k  N , e j ( 2n)  1
Podemos entonces tomar valor de k que vayan desde cero hasta k  N  1 .

Luego la expresión sumatoria será.

N 1 2kn
1
 G ( k )e
j
x ( n)  N
N k 0

Resumen de las TRANSFORMADAS DE FOURIER EN VARIABLE DISCRETA.


N 1 2kn N 1 2kn
j 1
G ( k )   x ( n)e  G ( k )e
j
N
; x ( n)  N

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 2kn
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(0)  x(0)  x(1)  x(2)  x(3)    x( N 1)


G(1)  x(0)  x(1)W  x(2)W 2  x(3)W 3    x( N  1)W N 1
G(2)  x(0)  x(1)W 2  x(2)W 4  x(3)W 6    x( N  1)W 2( N 1)
G(3)  x(0)  x(1)W 3  x(2)W 6  x(3)W 9    x( N  1)W 3( N 1)

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

Se propone un vector de N datos aleatorios y se registra el tiempo empleado por el algoritmo


mediante las órdenes tic y toc para evaluar la TDF.

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.

Durante los experimentos se obtuvo la siguiente tabla.


N T(segundos)
100 0.037
500 1.024
1000 7.131
2000 48.763
3000 158.826

N vs T(seg)
160

140

120

100

80

60

40

20

0
0 500 1000 1500 2000 2500 3000

La misma gráfica en escala logarítmica presenta un aspecto lineal así.

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)

Se concluye que el tiempo de cómputo crece considerablemente a medida que N aumenta y


es evidente que un algoritmo como el anterior es extremadamente ineficiente para
aplicaciones como las de sonido e imagen donde la cantidad de datos es del orden de los
millones de datos como es el caso de las imágenes.

Afortunadamente J.W. Cooley y John Tukey en 1965 desarrollaron el algoritmo de la


transformada rápida de Fourier o la FFT (Fast Fourier Transform) los cuales permitieron
reducir el tiempo de cómputo de la transformada discreta de Fourier [5].

El desarrollo de la FFT se explica en el siguiente capítulo.

39
11 CALCULO DIRECTO DE LA TRANSFORMADA
DISCRETA DE FOURIER INVERSA (TDFI)
N 1 2kn
1
 G ( k )e
j
Partimos de su definición. x ( n)  N
, n  0,1,2, , N  1
N k 0
N 1 2kn
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.

Se ejecuta en Matlab las siguientes líneas.

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

En la anterior tabla puede observarse que se cumple la igualdad x=TDFI(TDF(x)).

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 2kn
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 1 2kn N / 2 1 2kn N 1 2kn


j j j
G ( k )   x ( n)e N
  x ( n)e N
  x ( n )e N

n 0 n 0 n N / 2

Realizando un corrimiento de límites en la segunda sumatoria se obtiene.


N 1 2kn N / 2 1 2kn N / 2 1 2k ( n  N / 2 )
j j j
G ( k )   x ( n )e N
  x ( n )e N
  x(n  N / 2)e N

n 0 n 0 n 0

Desarrollando potencias se tiene.


2k ( n  N / 2 ) 2kn 2kn
j j j
 jk
e N
e N
e  (1) e k N

Al reemplazar se tiene entonces.


N / 2 1 2kn N / 2 1 2kn
j j
G(k )  
n 0
x ( n) e N
 n 0
x(n  N / 2)(1) e k N

42
Factorizando.
2kn

 x(n)  (1) 
N / 2 1 j
G (k )  k
x(n  N / 2) e N

n 0

Puede observarse en este momento que ahora la cantidad de operaciones requeridas se ha


reducido a N(N/2)=N2/2.

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 2kn
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 2kn 2n
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

 x(n)  x(n  N / 2)W W


N / 2 1
G(2k  1)  n
N
kn
N / 2 , para k  0,1,2,, N / 2  1
n 0

N 1
G(k )   x(n)WNkn  TDFx(n)
n 0

G(2k )  TDFx(n)  x(n  N / 2)



G(2k  1)  TDF x(n)  x(n  N / 2)WNn 
Recordemos que para poder aplicar las anteriores identidades es necesario que N sea un
número par.

43
Resumen IDENTIDADES NECESARIAS PARA LA EVALUACIÓN DE LA FFT
N 1
G(k )   x(n)WNkn  TDFx(n), k  0,1,2,, N  1
n 0

G(2k )  TDFx(n)  x(n  N / 2) , k  0,1,2,, N / 2  1



G(2k  1)  TDF x(n)  x(n  N / 2)WNn  , k  0,1,2,, N / 2  1
2
j
Con WN  e N
, Siendo N un número par.

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 .

El anterior requisito del tamaño de N  2 , conduce a la pregunta “Entonces la FFT deja de


p

ser práctica si el tamaño de N no es potencia de dos?”; este inconveniente se resuelve


simplemente adicionando datos nulos a la secuencia preliminar X(n) de tal modo que se tenga
una cantidad de datos equivalentes a la potencia más cercana de dos.

Para el cálculo mediante computadora de la FFT, diferentes autores han propuestos


diferentes alternativas entre las cuales se ha propuesto el denominado algoritmo mariposa
que se explica enseguida.

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.

Debe observarse que durante el proceso de cálculo de la secuencia de datos inicialmente en


orden ascendente que va desde X(0) hasta X(15), se va desordenando de tal modo que en la
primer secuencia de la segunda columna se disponen los términos pares que van desde y(0)
hasta y(14) mientras que en la segunda secuencia de la segunda columna se disponen
términos desde y(1) hasta y(15).

X(0) X(0)+X(8)=y(0) y(0)+y(8)=z(0)


X(1) X(1)+X(9)=y(2) y(2)+y(10)=z(4)
X(2) X(2)+X(10)=y(4) y(4)+y(12)=z(8)
X(3) X(3)+X(11)=y(6) y(6)+y(14)=z(12)
X(4) X(4)+X(12)=y(8) [y(0)-y(8)](W8)0=z(2)
X(5) X(5)+X(13)=y(10) [y(2)-y(10)](W8)1=z(6)
X(6) X(6)+X(14)=y(12) [y(4)-y(12)](W8)2=z(10)
X(7) X(7)+X(15)=y(14) [y(6)-y(14)](W8)3=z(14)
X(8) [X(0)-X(8)](W16)0=y(1) y(1)+y(9)=z(1)
X(9) [X(1)-X(9)](W16)1=y(3) y(3)+y(11)=z(5)
X(10) [X(2)-X(10)](W16)2=y(5) y(5)+y(13)=z(9)
X(11) [X(3)-X(11)](W16)3=y(7) y(7)+y(15)=z(13)
X(12) [X(4)-X(12)](W16)4=y(9) [y(1)-y(9)](W8)0=z(3)
X(13) [X(5)-X(13)](W16)5=y(11) [y(3)-y(11)](W8)1=z(7)
X(14) [X(6)-X(14)](W16)6=y(13) [y(5)-y(13)](W8)2=z(11)
X(15) [X(7)-X(15)](W16)7=y(15) [y(7)-y(15)](W8)3=z(15)

z(0) z(0)+z(8)=s(0) s(0)+s(8)= G(0)


z(4) z(4)+z(12)=s(8) [s(0)-s(8)](W2)0= G(8)
z(8) [z(0)-z(8)](W4)0=s(4) s(4)+s(12)= G(4)
z(12) [z(4)-z(12)](W4)1=s(12) [s(4)-s(12)](W2)0= G(12)
z(2) z(2)+z(10)=s(2) s(2)+s(10)= G(2)
z(6) z(6)+z(14)=s(10) [s(2)-s(10)](W2)0= G(10)
z(10) [z(2)-z(10)](W4)0=s(6) s(6)+s(14)= G(6)
z(14) [z(6)-z(14)](W4)1=s(14) [s(6)-s(14)](W2)0= G(14)
z(1) z(1)+z(9)=s(1) s(1)+s(9)= G(1)
z(5) z(5)+z(13)=s(9) [s(1)-s(9)](W2)0= G(9)
z(9) [z(1)-z(9)](W4)0=s(5) s(5)+s(13)= G(5)
z(13) [z(5)-z(13)](W4)1=s(13) [s(5)-s(13)](W2)0= G(13)
z(3) z(3)+z(11)=s(3) s(3)+s(11)= G(3)
z(7) z(7)+z(15)=s(11) [s(3)-s(11)](W2)0= G(11)
z(11) [z(3)-z(11)](W4)0=s(7) s(7)+s(15)= G(7)
z(15) [z(7)-z(15)](W4)1=s(15) [s(7)-s(15)](W2)0= G(15)

Podemos observar que la última columna estará compuesta por las componentes de la
transformada de Fourier las cuales están en un aparente desorden.

Se ha encontrado que el aparente desorden de los datos de la última columna en realidad


involucra un orden el cual se expresa en los siguientes términos.

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.

Numero Binario Binario


Decimal Equivalente Reordenado
0 0000 0000
1 0001 0010
2 0010 0100
3 0011 0110
4 0100 1000
5 0101 1010
6 0110 1100
7 0111 1110
8 1000 0001
9 1001 0011
10 1010 0101
11 1011 0111
12 1100 1001
13 1101 1011
14 1110 1101
15 1111 1111

Sorprendentemente puede observarse que el proceso de reordenamiento es equivalente a


mover el primer bit de cada número binario a la posición final. Podemos observar
adicionalmente que la primera mitad de la secuencia obtenida termina en cero mientras que
la segunda mitad de la secuencia termina en uno. Teniendo en cuenta que las siguientes
operaciones involucran intercambio de números binarios entre cada media secuencia;
podemos concluir que dichos intercambios no afectarán la ubicación del último digito binario.

Ahora efectuamos el reordenamiento de las siguientes secuencias.

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

En esta etapa puede observarse como el intercambio de números binarios es equivalente a


remover el primer digito binario a la penúltima posición. En consecuencia de las anteriores
observaciones es fácil deducir que el proceso completo de intercambio de números binarios
mediante esta técnica conduce finalmente a la inversión de bits.

13 ALGORITMO PARA EL CÁLCULO DE LA FFT


Como resultado de la teoría estudiada sobre la FFT en este documento, se ha desarrollado un
programa recursivo para la evaluación de la FFT cuya estructura de programación se muestra
enseguida.
flt

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).

La función (pares) se encarga de evaluar la primer subsecuencia de la forma X(n)+X(n+N/2),


mientras que la función (nones) se encarga de evaluar la segunda subsecuencia de la forma
[X(n)-X(n+N/2)](WN)n.

De otra parte la función (reordenar) se encarga de invocar a la función (dec2bin) que


transforma el decimal en binario y luego invoca a la función (invec) que se encarga de invertir
47
los bits del binario de entrada correspondiente y finalmente invoca a la función (bin2dec)
para evaluar el decimal de salida.

La siguientes son las líneas del programa para ejecutar en Matlab.

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

Puede observarse la diferencia considerable de tiempo empleado por ambos algoritmos y la


pregunta es (Como logra el FFT de Matlab la reducción de tiempo de cómputo de esa manera
tan considerable?). Una posible respuesta seguramente nos conduzca al diseño de nuestro
propio algoritmo en lenguaje C para ejecutar desde Matlab. Esta hipótesis se deja como tema
de investigación para posteriores documentos.

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 2kn
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  TDFx(n), con WN  e
kn j
N
N
n 0

Recordemos que G(k ) hace referencia a G(k0 )


Donde
  k0 es un múltiplo de la frecuencia fundamental en radianes por segundo.

2
0  es la frecuencia fundamental en radianes por segundo.
T
T  Nt 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.

 2k 
G (k )  G 
 Nt 
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.

Ahora solo seleccionamos la primera mitad de la gráfica anterior haciendo acercamiento.

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

[1]. Historia del Análisis de Fourier.


http://proton.ucting.udg.mx/temas/matemati/guevara/Historia.htm.

[2]. Alan V. Oppenheim y Ronald W. Schafer. Tratamiento de Señales en tiempo discreto.


Editorial Prentice Hall, segunda edición.

[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

Вам также может понравиться