Cálculo de series y transformadas de Fourier usando Mathematica
Cálculo de series y transformadas de Fourier usando Mathematica
Cálculo de series y transformadas de Fourier usando Mathematica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
DCálculo <strong>de</strong> <strong>series</strong> y <strong>transformadas</strong> <strong>de</strong><strong>Fourier</strong> <strong>usando</strong> <strong>Mathematica</strong>En este apéndice se presenta una forma sencilla <strong>de</strong> calcular los coeficientes <strong>de</strong> <strong>Fourier</strong>y las <strong>transformadas</strong> <strong>usando</strong> <strong>Mathematica</strong>. No preten<strong>de</strong> ser una introducción a un programatan sofisticado, sino proveer algunas herramientas para evitar laboriosos cálculosmanuales.La principal función a utilizar es Integrate[]. El comandoIntegrate[f, {x, xmin, xmax}]<strong>de</strong>vuelve la integral <strong>de</strong>finida R x máxx mínsiguiente ejemplo.f (x) dx. El uso <strong>de</strong> otros comandos se ilustra en elFig. D.1. Señal periódica ˜x(t).EJEMPLO D.1. Cálculo <strong>de</strong> la serie <strong>de</strong> <strong>Fourier</strong> <strong>de</strong> un tren <strong>de</strong> pulsos triangularesSe <strong>de</strong>sea calcular los coeficientes <strong>de</strong> <strong>Fourier</strong> <strong>de</strong>l tren <strong>de</strong> pulsos triangulares que se muestra en laFig. D.1. La expresión <strong>de</strong> los coeficientes está dada por la ecuación (2.30), (página 85)c k = 1 T 0ZT 0x(t)e−j 2πT 0kt dt,y en este caso es necesario separar la integral en seis partes, una para cada una <strong>de</strong> las rectas <strong>de</strong>293
294 D. Cálculos con <strong>Mathematica</strong>Fig. D.2. Detalle <strong>de</strong> un período <strong>de</strong>l tren <strong>de</strong> pulsos triangular.pendientes ±12A/T 0 como se representa en la Fig. D.2. Entonces,c k = 1 T 0Z −T0 /61T 0Z 0−T 0 /4−T 0 /121T 0Z T0 /6T 0 /12 12A−j 2πT kt 1T0t + 3A e 0 dt + 12A −j 2πT kt 1T0t + A e 0 dt +12AT0t − AeZ −T0 /12 T 0 −T 0 /6Z T0 /12 T 0 0ZT kt 1 T0 /4 0 dt + − 12ATT 0 T 0 /6 0−j 2π− 12AT 0− 12AT 0−j 2πT ktt − A e 0 dt +−j 2πT ktt + A e 0 dt +−j 2πT ktt + 3A e 0 dt.El código en <strong>Mathematica</strong> para calcular esta integral es casi una copia <strong>de</strong> 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}])/T0Las letras griegas se pue<strong>de</strong>n 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› <strong>de</strong>l teclado numérico, o la combinación ‹Mayus›+‹Intro› <strong>de</strong>l teclado común.Luego <strong>de</strong> algunos segundos, el programa respon<strong>de</strong> con:Out[1]:= ck= 1T00!A 6− 6B e I −I kπ T06 kπ@−2k 2 π 2A −6+6e I 6 kπ −I kπ T02e I +3 kπ k 2 π 2A 6−6e I 6 kπ +I kπ T0 Ae I k 36−6e π I 6 kπ +I kπ T0++2k 2 π 2 2k 2 π 2Ae I 6−6+e kπ I 6 kπ (6−I k π) T0 A −6+e I 16 kπ (6−I kπ) T0+2k 2 π 2 2e I A2 kπ k 2 π 2Esta expresión se pue<strong>de</strong> reducir utilizando el comando Simplify[] o FullSimplify[]:In[2]:=Ck = Simplify[ck]y, nuevamente, luego <strong>de</strong> algunos segundos, se obtieneOut[2]:=Ck = 12A 1 + 2Cos[ πk 3 ] Sin[ πk12 ]2k 2 π 2Procesamiento Digital <strong>de</strong> Señales U.N.S. 2011
295Fig. D.3. Gráfico <strong>de</strong> los 10 primeros coeficientes <strong>de</strong> <strong>Fourier</strong>, para A = 1.En <strong>Mathematica</strong>, los nombres <strong>de</strong> las funciones se escriben con mayúscula, y el argumento quedaencerrado entre corchetes. Por ejemplo, la expresion Cos[π/2] <strong>de</strong>vuelve 0, pero cos(π/2) <strong>de</strong>vuelve(cos π)/2, que evi<strong>de</strong>ntemente es incorrecta.La expresión <strong>de</strong> los coeficientes c k se pue<strong>de</strong> simplificar aún más (esta vez “a mano”), y finalmentese obtiene quec k = A h i i 21 + 2 cos πk123hsinc k12La función Sinc[] no está disponible en <strong>Mathematica</strong>, pero se pue<strong>de</strong> <strong>de</strong>finir <strong>de</strong> la siguiente manera:In[3]:= Sinc[x_]:=If[x==0,1,Sin[πx]/(πx)];De esta forma, se pue<strong>de</strong> <strong>de</strong>finir los coeficientes <strong>de</strong> <strong>Fourier</strong> como:In[4]:= Ck = A 121 + 2Cosh πk3i Sinch k12i 2;Algunos valores <strong>de</strong> los coeficientes se pue<strong>de</strong>n generar utilizando el comando Table[]. En el siguientefragmento <strong>de</strong> código, este comando está incluido <strong>de</strong>ntro <strong>de</strong> la instrucción FullSimplify[] paraobtener expresiones numéricas más sencillas:In[5]:= TCk = FullSimplify[Table[Ck,{k,0,10}] ]Out[5]:=(A12 , − 6(−2 + √ 3)Aπ 2 , 0, − 2A3π 2 , 0, 6(2 + √ 3)A25π 2 ,Aπ 2 , − 6(2 + √ 3)A49π 2, 0, − 2A27π 2 , 0 )Los coeficientes se pue<strong>de</strong>n graficar en función <strong>de</strong> 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 pue<strong>de</strong> graficar la aproximación utilizando el comando Plot[]. En este caso, <strong>de</strong>ntro<strong>de</strong>l comando Plot[] se efectúa la suma <strong>de</strong> un número finito <strong>de</strong> términos <strong>de</strong> la serie. Si se suponeA = 1 y T 0 = 1, las instrucciones necesarias para graficar la aproximación son:Plot[Sum[ 112 (1+2Cos[ kπ 3 ]) (Sinc[ k 12 ])2 Exp[I 2 π k t], {k, -10, 10}], {t, -1, 1},PlotPoints -> 50, PlotRange -> All]El gráfico <strong>de</strong> la aproximación para la suma <strong>de</strong> 21 términos <strong>de</strong> 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 <strong>de</strong> las propieda<strong>de</strong>s <strong>de</strong> la serie y la transformadafacilita el cálculo <strong>de</strong> los coeficientes, como se <strong>de</strong>talla a continuación.Procesamiento Digital <strong>de</strong> Señales U.N.S. 2011
296 D. Cálculos con <strong>Mathematica</strong>Fig. D.4. Reconstrucción <strong>de</strong>l tren <strong>de</strong> pulsos triangulares a partir <strong>de</strong> la suma <strong>de</strong> 2 × 10 + 1 (a)y 2 × 50 + 1 (b) términos <strong>de</strong> la serie <strong>de</strong> <strong>Fourier</strong>.EJEMPLO D.2. Cálculo <strong>de</strong> los coeficientes <strong>de</strong> <strong>Fourier</strong> <strong>de</strong>l tren <strong>de</strong> pulsos triangulares utilizandopropieda<strong>de</strong>sLa i<strong>de</strong>a en este caso es calcular la transformada X( f ) <strong>de</strong> un período <strong>de</strong> la señal periódica (porejemplo, la que se muestra en la Fig. D.2), y a partir <strong>de</strong> ella calcular los coeficientes <strong>de</strong> la serie,c k = 1 T 0X( f )| f =k/T0.La manera más sencilla parecer ser comenzando con la transformada <strong>de</strong> <strong>Fourier</strong> <strong>de</strong>l pulso triangularque se extien<strong>de</strong> <strong>de</strong>s<strong>de</strong> −T 0 /12 hasta T 0 /12. Esta transformada se pue<strong>de</strong> calcular a partir <strong>de</strong> laconvolución <strong>de</strong> dos pulsos rectangulares <strong>de</strong> ancho T 0 /12, y alto √ A, como se propone en el Ejercicio17. Aplicando la propiedad <strong>de</strong> convolución, se encuentra que la transformada <strong>de</strong> este único pulsotriangular esX 1 ( f ) = AT 012hsincT012 f i 2.Los <strong>transformadas</strong> <strong>de</strong> los dos pulsos triangulares a la izquierda y a la <strong>de</strong>recha <strong>de</strong>l pulso centralse calculan aplicando la propiedad <strong>de</strong> <strong>de</strong>splazamiento. El pulso <strong>de</strong> la izquierda está a<strong>de</strong>lantadoτ = −T 0 /6 unida<strong>de</strong>s <strong>de</strong> tiempo y el pulso <strong>de</strong> la <strong>de</strong>recha está atrasado en la misma cantidad. Porlo tanto, la transformada <strong>de</strong>l pulso <strong>de</strong> la izquierda esy la <strong>de</strong>l pulso <strong>de</strong> la <strong>de</strong>rechaCombinando estos tres resultados,X( f ) = AT 012= AT 012X 2 ( f ) = e j2π T 06 f X 1 ( f )X 3 ( f ) = e −j2π T 06 f X 1 ( f ).1 + e j2π T 0 f 6 + e −j2π T 0 h i 26 fsinc T012 fh i h i 21 + 2 cos 2π T 06f sinc T012 f .Finalmente, evaluando la transformada en f = k/T 0 , y escalando por 1/T 0 se encuentra quec k = A 12h i h i 21 + 2 cos π3k sinc k12,que evi<strong>de</strong>ntemente coinci<strong>de</strong> con el resultado <strong>de</strong>l ejemplo anterior.Procesamiento Digital <strong>de</strong> Señales U.N.S. 2011