SlideShare una empresa de Scribd logo
D
Cálculo de series y transformadas de
Fourier usando Mathematica
En este apéndice se presenta una forma sencilla de calcular los coeficientes de Fourier
y las transformadas usando Mathematica. No pretende ser una introducción a un pro-
grama tan sofisticado, sino proveer algunas herramientas para evitar laboriosos cálculos
manuales.
La principal función a utilizar es Integrate[]. El comando
Integrate[f, {x, xmin, xmax}]
devuelve la integral definida
R xm´ax
xm´ın
f (x) dx. El uso de otros comandos se ilustra en el
siguiente ejemplo.
Fig. D.1. Señal periódica ˜x(t).
EJEMPLO D.1. Cálculo de la serie de Fourier de un tren de pulsos triangulares
Se desea calcular los coe…cientes de Fourier del tren de pulsos triangulares que se muestra en la
Fig. D.1. La expresión de los coe…cientes está dada por la ecuación (2.30), (página 85)
ck =
1
T0
Z
T0
x(t)e
j 2π
T0
kt
dt,
y en este caso es necesario separar la integral en seis partes, una para cada una de las rectas de
293
294 D. Cálculos con Mathematica
Fig. D.2. Detalle de un período del tren de pulsos triangular.
pendientes 12A/T0 como se representa en la Fig. D.2. Entonces,
ck =
1
T0
Z T0/6
T0/4
12A
T0
t + 3A e
j 2π
T0
kt
dt +
1
T0
Z T0/12
T0/6
12A
T0
t A e
j 2π
T0
kt
dt +
1
T0
Z 0
T0/12
12A
T0
t + A e
j 2π
T0
kt
dt +
1
T0
Z T0/12
0
12A
T0
t + A e
j 2π
T0
kt
dt +
1
T0
Z T0/6
T0/12
12A
T0
t A e
j 2π
T0
kt
dt +
1
T0
Z T0/4
T0/6
12A
T0
t + 3A e
j 2π
T0
kt
dt.
El código en Mathematica para calcular esta integral es casi una copia de la expresión anterior:
In[1]:= ck = (Integrate[((12 A /T0)t + 3A)Exp[-(I 2 π k/T0)t], {t, -T0/4, -T0/6}] +
Integrate[(-(12 A/T0)t - A)Exp[-(I 2 π k/T0)t], {t, -T0/6, -T0/12}] +
Integrate[((12 A/T0)t + A)Exp[-(I 2 π k/T0)t], {t, -T0/12, 0}] +
Integrate[(-(12 A/T0)t + A)Exp[-(I 2 π k/T0)t], {t, 0, T0/12}] +
Integrate[((12 A/T0)t - A)Exp[-(I 2 π k/T0)t], {t, T0/12, T0/6}] +
Integrate[(-(12 A/T0)t + 3A)Exp[-(I 2 π k/T0)t], {t, T0/6, T0/4}])/T0
Las letras griegas se pueden ingresar utilizando la tecla ‹Esc› y la letra latina equivalente: por
ejemplo, π se ingresa como ‹Esc›p‹Esc›, α como ‹Esc›a‹Esc›, etc. La etiqueta “In[1]:=” es
agregada por el programa cuando comienza a evaluar el comando, lo que ocurre apenas se presiona
la tecla ‹Intro› del teclado numérico, o la combinación ‹Mayus›+‹Intro› del teclado común.
Luego de algunos segundos, el programa responde con:
Out[1]:= ck= 1
T0
0
B
B
@
A 6 6
e
I
6 kπ
I kπ
!
T0
2k2
π2
A 6+6e
I
6 kπ
I kπ T0
2e
I
3 kπ
k2
π2
+
A 6 6e
I
6 kπ
+I kπ T0
2k2
π2
+
Ae
I
3 kπ
6 6e
I
6 kπ
+I kπ T0
2k2
π2
+
Ae
I
6 kπ
6+e
I
6 kπ
(6 I k π) T0
2k2
π2
+
A 6+e
I
6 kπ
(6 I kπ) T0
2e
I
2 kπ
k2
π2
1
A
Esta expresión se puede reducir utilizando el comando Simplify[] o FullSimplify[]:
In[2]:= Ck = Simplify[ck]
y, nuevamente, luego de algunos segundos, se obtiene
Out[2]:= Ck =
12A 1 + 2Cos[πk
3 ] Sin[πk
12 ]2
k2π2
Procesamiento Digital de Señales U.N.S. 2011
295
Fig. D.3. Grá…co de los 10 primeros coe…cientes de Fourier, para A = 1.
En Mathematica, los nombres de las funciones se escriben con mayúscula, y el argumento queda
encerrado entre corchetes. Por ejemplo, la expresion Cos[π/2] devuelve 0, pero cos(π/2) devuelve
(cos π)/2, que evidentemente es incorrecta.
La expresión de los coe…cientes ck se puede simpli…car aún más (esta vez “a mano”), y …nalmente
se obtiene que
ck =
A
12
h
1 + 2 cos πk
3
i h
sinc k
12
i2
La función Sinc[] no está disponible en Mathematica, pero se puede de…nir de la siguiente manera:
In[3]:= Sinc[x_]:=If[x==0,1,Sin[πx]/(πx)];
De esta forma, se puede de…nir los coe…cientes de Fourier como:
In[4]:= Ck = A
12 1 + 2Cos
h
πk
3
i
Sinc
h
k
12
i 2
;
Algunos valores de los coe…cientes se pueden generar utilizando el comando Table[]. En el siguiente
fragmento de código, este comando está incluido dentro de la instrucción FullSimplify[] para
obtener expresiones numéricas más sencillas:
In[5]:= TCk = FullSimplify[Table[Ck,{k,0,10}] ]
Out[5]:=
(
A
12
,
6( 2 +
p
3)A
π2
, 0,
2A
3π2
, 0,
6(2 +
p
3)A
25π2
,
A
π2
,
6(2 +
p
3)A
49π2
, 0,
2A
27π2
, 0
)
Los coe…cientes se pueden gra…car en función de k utilizando el comando ListPlot[]:
ListPlot[Table[{k,Ck/.A->1},{k,0,10}], PlotStyle -> PointSize[0.02] ]
obteniéndose el grá…co que se muestra en la Fig. D.3.
Finalmente, se puede gra…car la aproximación utilizando el comando Plot[]. En este caso, dentro
del comando Plot[] se efectúa la suma de un número …nito de términos de la serie. Si se supone
A = 1 y T0 = 1, las instrucciones necesarias para gra…car la aproximación son:
Plot[Sum[ 1
12 (1+2Cos[kπ
3 ]) (Sinc[ k
12 ])2Exp[I 2 π k t], {k, -10, 10}], {t, -1, 1},
PlotPoints -> 50, PlotRange -> All]
El grá…co de la aproximación para la suma de 21 términos de la serie se muestra en la Fig. D.4(a) ,
y para 101 términos en la Fig. D.4(b) .
Este ejemplo también muestra que el uso de las propiedades de la serie y la transformada
facilita el cálculo de los coeficientes, como se detalla a continuación.
Procesamiento Digital de Señales U.N.S. 2011
296 D. Cálculos con Mathematica
Fig. D.4. Reconstrucción del tren de pulsos triangulares a partir de la suma de 2 10 + 1 (a)
y 2 50 + 1 (b) términos de la serie de Fourier.
EJEMPLO D.2. Cálculo de los coe…cientes de Fourier del tren de pulsos triangulares utilizando
propiedades
La idea en este caso es calcular la transformada X(f ) de un período de la señal periódica (por
ejemplo, la que se muestra en la Fig. D.2), y a partir de ella calcular los coe…cientes de la serie,
ck =
1
T0
X(f )jf =k/T0
.
La manera más sencilla parecer ser comenzando con la transformada de Fourier del pulso triangular
que se extiende desde T0/12 hasta T0/12. Esta transformada se puede calcular a partir de la
convolución de dos pulsos rectangulares de ancho T0/12, y alto
p
A, como se propone en el Ejercicio
17. Aplicando la propiedad de convolución, se encuentra que la transformada de este único pulso
triangular es
X1(f ) = AT0
12
h
sinc T0
12 f
i2
.
Los transformadas de los dos pulsos triangulares a la izquierda y a la derecha del pulso central
se calculan aplicando la propiedad de desplazamiento. El pulso de la izquierda está adelantado
τ = T0/6 unidades de tiempo y el pulso de la derecha está atrasado en la misma cantidad. Por
lo tanto, la transformada del pulso de la izquierda es
X2(f ) = ej2π
T0
6 f
X1(f )
y la del pulso de la derecha
X3(f ) = e j2π
T0
6 f
X1(f ).
Combinando estos tres resultados,
X(f ) = AT0
12 1 + ej2π
T0
6 f
+ e j2π
T0
6 f
h
sinc T0
12 f
i2
= AT0
12
h
1 + 2 cos 2π T0
6 f
i h
sinc T0
12 f
i2
.
Finalmente, evaluando la transformada en f = k/T0, y escalando por 1/T0 se encuentra que
ck = A
12
h
1 + 2 cos π k
3
i h
sinc k
12
i2
,
que evidentemente coincide con el resultado del ejemplo anterior.
Procesamiento Digital de Señales U.N.S. 2011

Más contenido relacionado

DOCX
Una elipse es la curva simétrica cerrada que resulta al cortar la superficie ...
PDF
la-circunferencia
PDF
Certamen 3 calculo
PDF
Diseno frecuencial
PDF
Serie de fourier
PPTX
Inecuaciones de 2 do grado
PDF
Problemas resueltos de funciones reales pre u ccesa007
PDF
Frecuencia dados
Una elipse es la curva simétrica cerrada que resulta al cortar la superficie ...
la-circunferencia
Certamen 3 calculo
Diseno frecuencial
Serie de fourier
Inecuaciones de 2 do grado
Problemas resueltos de funciones reales pre u ccesa007
Frecuencia dados

La actualidad más candente (19)

PPTX
trabajo jose rossana
PPT
Lecture 16 probabilidad de error para señales en awgn parte 1
PDF
Lab 06 - Analisis de señales - UNTECS
PDF
Convolucion Tiempo Discreto
PDF
Clase3 serie de fourier
PPTX
LA CIRCUNFERENCIA
PDF
Series de Fourier
PPT
Lecture 14 modulacion digital parte 2
PPTX
Ecuacion general de la circunferencia
PDF
Utp pds_l5_transformada discreta de fourier
PPT
10 transformada fourier
PDF
Lab de tele 1 - Fourier using matlab - UNTECS
PDF
Fourier
PPTX
Ecuacion General De La Circunferencia
PPT
Lecture 18 channel capacity
PDF
Transformada inversa de laplace converted
PPT
Ecuacion general de la circunferencia
PDF
7.iniciacion derivadas
PPT
Lecture 7 probabilidad de error de transmisión pcm. formateo de señales dpcm,...
trabajo jose rossana
Lecture 16 probabilidad de error para señales en awgn parte 1
Lab 06 - Analisis de señales - UNTECS
Convolucion Tiempo Discreto
Clase3 serie de fourier
LA CIRCUNFERENCIA
Series de Fourier
Lecture 14 modulacion digital parte 2
Ecuacion general de la circunferencia
Utp pds_l5_transformada discreta de fourier
10 transformada fourier
Lab de tele 1 - Fourier using matlab - UNTECS
Fourier
Ecuacion General De La Circunferencia
Lecture 18 channel capacity
Transformada inversa de laplace converted
Ecuacion general de la circunferencia
7.iniciacion derivadas
Lecture 7 probabilidad de error de transmisión pcm. formateo de señales dpcm,...
Publicidad

Destacado (10)

PPTX
Mathematica
PDF
Praedo ii
PPSX
Diseñando actividades matemáticas con mathematica o wolfram_alpha
PDF
El Mathematica como herramienta para enseñanza de la Matemática
PPTX
Presentacion Visualizacion
PDF
Palabras marcadas
PPTX
Series de fourier
PPTX
Serie de Fourier
PDF
Series de fourier 22 Ejercicios Resueltos
PPT
Transformada De Fourier
Mathematica
Praedo ii
Diseñando actividades matemáticas con mathematica o wolfram_alpha
El Mathematica como herramienta para enseñanza de la Matemática
Presentacion Visualizacion
Palabras marcadas
Series de fourier
Serie de Fourier
Series de fourier 22 Ejercicios Resueltos
Transformada De Fourier
Publicidad

Similar a 02 cap02-13-mathematica (20)

PDF
Repaso senales Series de Fourier tipos señales.pdf
PDF
Ejercicios detallados del obj 8 mat iii 733
PPTX
Serie trigonometrica de fourier
PPT
Serie de Fourier
PDF
Ejercicios detallados del obj 7 mat iii 733
PDF
calculo III.pdf
PPT
Teleco1
PPT
52983063 series-de-fourier
PPT
Series de fodsfjwslurier
PPT
series_de_fourier.ppt
DOCX
Apuntes generación de codigo intermedio
PPT
ANALISIS DE ALGORITMOS
PPT
ANALISIS DE ALGORITMOS
PPTX
seriesdefourier-091023141421-phpapp02.pptx
PPT
Series de Fourier.ppt Analisis Matematico
PPTX
Arreglos bidimensionales o matrices
PDF
Solucion taller 1 de control 2
DOCX
Completo calculo-3-listo-para-imprimir
PDF
Integrales linea
DOC
Edwin contreras fourier
Repaso senales Series de Fourier tipos señales.pdf
Ejercicios detallados del obj 8 mat iii 733
Serie trigonometrica de fourier
Serie de Fourier
Ejercicios detallados del obj 7 mat iii 733
calculo III.pdf
Teleco1
52983063 series-de-fourier
Series de fodsfjwslurier
series_de_fourier.ppt
Apuntes generación de codigo intermedio
ANALISIS DE ALGORITMOS
ANALISIS DE ALGORITMOS
seriesdefourier-091023141421-phpapp02.pptx
Series de Fourier.ppt Analisis Matematico
Arreglos bidimensionales o matrices
Solucion taller 1 de control 2
Completo calculo-3-listo-para-imprimir
Integrales linea
Edwin contreras fourier

02 cap02-13-mathematica

  • 1. D Cálculo de series y transformadas de Fourier usando Mathematica En este apéndice se presenta una forma sencilla de calcular los coeficientes de Fourier y las transformadas usando Mathematica. No pretende ser una introducción a un pro- grama tan sofisticado, sino proveer algunas herramientas para evitar laboriosos cálculos manuales. La principal función a utilizar es Integrate[]. El comando Integrate[f, {x, xmin, xmax}] devuelve la integral definida R xm´ax xm´ın f (x) dx. El uso de otros comandos se ilustra en el siguiente ejemplo. Fig. D.1. Señal periódica ˜x(t). EJEMPLO D.1. Cálculo de la serie de Fourier de un tren de pulsos triangulares Se desea calcular los coe…cientes de Fourier del tren de pulsos triangulares que se muestra en la Fig. D.1. La expresión de los coe…cientes está dada por la ecuación (2.30), (página 85) ck = 1 T0 Z T0 x(t)e j 2π T0 kt dt, y en este caso es necesario separar la integral en seis partes, una para cada una de las rectas de 293
  • 2. 294 D. Cálculos con Mathematica Fig. D.2. Detalle de un período del tren de pulsos triangular. pendientes 12A/T0 como se representa en la Fig. D.2. Entonces, ck = 1 T0 Z T0/6 T0/4 12A T0 t + 3A e j 2π T0 kt dt + 1 T0 Z T0/12 T0/6 12A T0 t A e j 2π T0 kt dt + 1 T0 Z 0 T0/12 12A T0 t + A e j 2π T0 kt dt + 1 T0 Z T0/12 0 12A T0 t + A e j 2π T0 kt dt + 1 T0 Z T0/6 T0/12 12A T0 t A e j 2π T0 kt dt + 1 T0 Z T0/4 T0/6 12A T0 t + 3A e j 2π T0 kt dt. El código en Mathematica para calcular esta integral es casi una copia de la expresión anterior: In[1]:= ck = (Integrate[((12 A /T0)t + 3A)Exp[-(I 2 π k/T0)t], {t, -T0/4, -T0/6}] + Integrate[(-(12 A/T0)t - A)Exp[-(I 2 π k/T0)t], {t, -T0/6, -T0/12}] + Integrate[((12 A/T0)t + A)Exp[-(I 2 π k/T0)t], {t, -T0/12, 0}] + Integrate[(-(12 A/T0)t + A)Exp[-(I 2 π k/T0)t], {t, 0, T0/12}] + Integrate[((12 A/T0)t - A)Exp[-(I 2 π k/T0)t], {t, T0/12, T0/6}] + Integrate[(-(12 A/T0)t + 3A)Exp[-(I 2 π k/T0)t], {t, T0/6, T0/4}])/T0 Las letras griegas se pueden ingresar utilizando la tecla ‹Esc› y la letra latina equivalente: por ejemplo, π se ingresa como ‹Esc›p‹Esc›, α como ‹Esc›a‹Esc›, etc. La etiqueta “In[1]:=” es agregada por el programa cuando comienza a evaluar el comando, lo que ocurre apenas se presiona la tecla ‹Intro› del teclado numérico, o la combinación ‹Mayus›+‹Intro› del teclado común. Luego de algunos segundos, el programa responde con: Out[1]:= ck= 1 T0 0 B B @ A 6 6 e I 6 kπ I kπ ! T0 2k2 π2 A 6+6e I 6 kπ I kπ T0 2e I 3 kπ k2 π2 + A 6 6e I 6 kπ +I kπ T0 2k2 π2 + Ae I 3 kπ 6 6e I 6 kπ +I kπ T0 2k2 π2 + Ae I 6 kπ 6+e I 6 kπ (6 I k π) T0 2k2 π2 + A 6+e I 6 kπ (6 I kπ) T0 2e I 2 kπ k2 π2 1 A Esta expresión se puede reducir utilizando el comando Simplify[] o FullSimplify[]: In[2]:= Ck = Simplify[ck] y, nuevamente, luego de algunos segundos, se obtiene Out[2]:= Ck = 12A 1 + 2Cos[πk 3 ] Sin[πk 12 ]2 k2π2 Procesamiento Digital de Señales U.N.S. 2011
  • 3. 295 Fig. D.3. Grá…co de los 10 primeros coe…cientes de Fourier, para A = 1. En Mathematica, los nombres de las funciones se escriben con mayúscula, y el argumento queda encerrado entre corchetes. Por ejemplo, la expresion Cos[π/2] devuelve 0, pero cos(π/2) devuelve (cos π)/2, que evidentemente es incorrecta. La expresión de los coe…cientes ck se puede simpli…car aún más (esta vez “a mano”), y …nalmente se obtiene que ck = A 12 h 1 + 2 cos πk 3 i h sinc k 12 i2 La función Sinc[] no está disponible en Mathematica, pero se puede de…nir de la siguiente manera: In[3]:= Sinc[x_]:=If[x==0,1,Sin[πx]/(πx)]; De esta forma, se puede de…nir los coe…cientes de Fourier como: In[4]:= Ck = A 12 1 + 2Cos h πk 3 i Sinc h k 12 i 2 ; Algunos valores de los coe…cientes se pueden generar utilizando el comando Table[]. En el siguiente fragmento de código, este comando está incluido dentro de la instrucción FullSimplify[] para obtener expresiones numéricas más sencillas: In[5]:= TCk = FullSimplify[Table[Ck,{k,0,10}] ] Out[5]:= ( A 12 , 6( 2 + p 3)A π2 , 0, 2A 3π2 , 0, 6(2 + p 3)A 25π2 , A π2 , 6(2 + p 3)A 49π2 , 0, 2A 27π2 , 0 ) Los coe…cientes se pueden gra…car en función de k utilizando el comando ListPlot[]: ListPlot[Table[{k,Ck/.A->1},{k,0,10}], PlotStyle -> PointSize[0.02] ] obteniéndose el grá…co que se muestra en la Fig. D.3. Finalmente, se puede gra…car la aproximación utilizando el comando Plot[]. En este caso, dentro del comando Plot[] se efectúa la suma de un número …nito de términos de la serie. Si se supone A = 1 y T0 = 1, las instrucciones necesarias para gra…car la aproximación son: Plot[Sum[ 1 12 (1+2Cos[kπ 3 ]) (Sinc[ k 12 ])2Exp[I 2 π k t], {k, -10, 10}], {t, -1, 1}, PlotPoints -> 50, PlotRange -> All] El grá…co de la aproximación para la suma de 21 términos de la serie se muestra en la Fig. D.4(a) , y para 101 términos en la Fig. D.4(b) . Este ejemplo también muestra que el uso de las propiedades de la serie y la transformada facilita el cálculo de los coeficientes, como se detalla a continuación. Procesamiento Digital de Señales U.N.S. 2011
  • 4. 296 D. Cálculos con Mathematica Fig. D.4. Reconstrucción del tren de pulsos triangulares a partir de la suma de 2 10 + 1 (a) y 2 50 + 1 (b) términos de la serie de Fourier. EJEMPLO D.2. Cálculo de los coe…cientes de Fourier del tren de pulsos triangulares utilizando propiedades La idea en este caso es calcular la transformada X(f ) de un período de la señal periódica (por ejemplo, la que se muestra en la Fig. D.2), y a partir de ella calcular los coe…cientes de la serie, ck = 1 T0 X(f )jf =k/T0 . La manera más sencilla parecer ser comenzando con la transformada de Fourier del pulso triangular que se extiende desde T0/12 hasta T0/12. Esta transformada se puede calcular a partir de la convolución de dos pulsos rectangulares de ancho T0/12, y alto p A, como se propone en el Ejercicio 17. Aplicando la propiedad de convolución, se encuentra que la transformada de este único pulso triangular es X1(f ) = AT0 12 h sinc T0 12 f i2 . Los transformadas de los dos pulsos triangulares a la izquierda y a la derecha del pulso central se calculan aplicando la propiedad de desplazamiento. El pulso de la izquierda está adelantado τ = T0/6 unidades de tiempo y el pulso de la derecha está atrasado en la misma cantidad. Por lo tanto, la transformada del pulso de la izquierda es X2(f ) = ej2π T0 6 f X1(f ) y la del pulso de la derecha X3(f ) = e j2π T0 6 f X1(f ). Combinando estos tres resultados, X(f ) = AT0 12 1 + ej2π T0 6 f + e j2π T0 6 f h sinc T0 12 f i2 = AT0 12 h 1 + 2 cos 2π T0 6 f i h sinc T0 12 f i2 . Finalmente, evaluando la transformada en f = k/T0, y escalando por 1/T0 se encuentra que ck = A 12 h 1 + 2 cos π k 3 i h sinc k 12 i2 , que evidentemente coincide con el resultado del ejemplo anterior. Procesamiento Digital de Señales U.N.S. 2011