02 cap02-13-mathematica

4
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 x ax x ın f ( x) dx. El uso de otros comandos se ilustra en el siguiente ejemplo. Fig. D.1. Seæal peridica ˜ x(t). EJEMPLO D.1. CÆlculo de la serie de Fourier de un tren de pulsos triangulares Se desea calcular los coecientes de Fourier del tren de pulsos triangulares que se muestra en la Fig. D.1. La expresin de los coecientes estÆ dada por la ecuacin (2.30), (pÆgina 85) c k = 1 T 0 Z T 0 x(t)e j 2π T 0 kt dt, y en este caso es necesario separar la integral en seis partes, una para cada una de las rectas de 293

Upload: eco0055

Post on 27-Jul-2015

130 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 02 cap02-13-mathematica

DCálculo de series y transformadas de

Fourier usando Mathematica

En este apéndice se presenta una forma sencilla de calcular los coeficientes de Fouriery las transformadas usando Mathematica. No pretende ser una introducción a un pro-grama tan sofisticado, sino proveer algunas herramientas para evitar laboriosos cálculosmanuales.

La principal función a utilizar es Integrate[]. El comando

Integrate[f, {x, xmin, xmax}]

devuelve la integral definida∫ xmax

xmınf (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 triangularesSe desea calcular los coeficientes de Fourier del tren de pulsos triangulares que se muestra en laFig. D.1. La expresión de los coeficientes está dada por la ecuación (2.30), (página 85)

ck =1T0

∫T0

x(t)e−j 2πT0

ktdt,

y en este caso es necesario separar la integral en seis partes, una para cada una de las rectas de

293

Page 2: 02 cap02-13-mathematica

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 =1T0

∫ −T0/6

−T0/4

(12AT0

t+ 3A)

e−j 2πT0

ktdt+1T0

∫ −T0/12

−T0/6

(− 12A

T0t− A

)e−j 2π

T0ktdt+

1T0

∫ 0

−T0/12

(12AT0

t+ A)

e−j 2πT0

ktdt+1T0

∫ T0/12

0

(− 12A

T0t+ A

)e−j 2π

T0ktdt+

1T0

∫ T0/6

T0/12

(12AT0

t− A)

e−j 2πT0

ktdt+1T0

∫ T0/4

T0/6

(− 12A

T0t+ 3A

)e−j 2π

T0ktdt.

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: porejemplo, π se ingresa como ‹Esc›p‹Esc›, α como ‹Esc›a‹Esc›, etc. La etiqueta “In[1]:=” esagregada por el programa cuando comienza a evaluar el comando, lo que ocurre apenas se presionala 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= 1T0

A(6− 6

eI6 kπ−I kπ

)T0

2k2π2 −A(−6+6e

I6 kπ−I kπ

)T0

2eI3 kπk2π2

+

A(

6−6eI6 kπ+I kπ

)T0

2k2π2 +AeI3 kπ

(6−6e

I6 kπ+I kπ

)T0

2k2π2 +

AeI6 kπ

(−6+e

I6 kπ(6−I kπ)

)T0

2k2π2 +A(−6+e

I6 kπ(6−I kπ)

)T0

2eI2 kπk2π2

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

Page 3: 02 cap02-13-mathematica

295

Fig. D.3. Gráfico de los 10 primeros coeficientes de Fourier, para A = 1.

En Mathematica, los nombres de las funciones se escriben con mayúscula, y el argumento quedaencerrado 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 coeficientes ck se puede simplificar aún más (esta vez “a mano”), y finalmentese obtiene que

ck =A12

[1+ 2 cos

(πk3

)] [sinc

(k

12

)]2

La función Sinc[] no está disponible en Mathematica, pero se puede definir de la siguiente manera:In[3]:= Sinc[x_]:=If[x==0,1,Sin[πx]/(πx)];

De esta forma, se puede definir los coeficientes de Fourier como:

In[4]:= Ck = A12

(1+ 2Cos

[πk3

]) (Sinc

[k12

])2;

Algunos valores de los coeficientes se pueden generar utilizando el comando Table[]. En el siguientefragmento de código, este comando está incluido dentro de la instrucción FullSimplify[] paraobtener expresiones numéricas más sencillas:

In[5]:= TCk = FullSimplify[Table[Ck,{k,0,10}] ]

Out[5]:=

{A

12,−6(−2+

√3)A

π2 , 0,− 2A3π2 , 0,

6(2+√

3)A25π2 ,

A

π2 ,−6(2+√

3)A49π2 , 0,− 2A

27π2 , 0

}Los coeficientes se pueden graficar 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áfico que se muestra en la Fig. D.3.

Finalmente, se puede graficar la aproximación utilizando el comando Plot[]. En este caso, dentrodel comando Plot[] se efectúa la suma de un número finito de términos de la serie. Si se suponeA = 1 y T0 = 1, las instrucciones necesarias para graficar la aproximación son:

Plot[Sum[ 112(1+2Cos[

kπ3 ]) (Sinc[

k12])

2Exp[I 2 π k t], {k, -10, 10}], {t, -1, 1},PlotPoints -> 50, PlotRange -> All]

El gráfico 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 transformadafacilita el cálculo de los coeficientes, como se detalla a continuación.

Procesamiento Digital de Señales U.N.S. 2011

Page 4: 02 cap02-13-mathematica

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 coeficientes de Fourier del tren de pulsos triangulares utilizandopropiedadesLa idea en este caso es calcular la transformada X( f ) de un período de la señal periódica (porejemplo, la que se muestra en la Fig. D.2), y a partir de ella calcular los coeficientes de la serie,

ck =1T0

X( f )| f=k/T0.

La manera más sencilla parecer ser comenzando con la transformada de Fourier del pulso triangularque se extiende desde −T0/12 hasta T0/12. Esta transformada se puede calcular a partir de laconvolución de dos pulsos rectangulares de ancho T0/12, y alto

√A, como se propone en el Ejercicio

17. Aplicando la propiedad de convolución, se encuentra que la transformada de este único pulsotriangular es

X1( f ) = AT012

[sinc

(T012 f)]2

.

Los transformadas de los dos pulsos triangulares a la izquierda y a la derecha del pulso centralse 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. Porlo tanto, la transformada del pulso de la izquierda es

X2( f ) = ej2πT06 f X1( f )

y la del pulso de la derecha

X3( f ) = e−j2πT06 f X1( f ).

Combinando estos tres resultados,

X( f ) = AT012

(1+ ej2π

T06 f + e−j2π

T06 f) [

sinc(

T012 f)]2

= AT012

[1+ 2 cos

(2π T0

6 f)] [

sinc(

T012 f)]2

.

Finalmente, evaluando la transformada en f = k/T0, y escalando por 1/T0 se encuentra que

ck =A12

[1+ 2 cos

(π k

3

)] [sinc

(k

12

)]2,

que evidentemente coincide con el resultado del ejemplo anterior. �

Procesamiento Digital de Señales U.N.S. 2011