Series de Fourier y Transformada de Fourier

18  35  Descargar (0)

Texto completo

(1)

Series de Fourier y Transformada de

Fourier

Series de Fourier

Función Escalón Unidad

La función escalón unidad, UnitStep[x] se define igual a la unidad cuando x es mayor que 0, e igual a 0 cuando x es menor que 0. UnitStep[x-1] será igual a uno cuando x sea mayor que uno y cero cuando x sea menor que uno. El valor de la función no se define para el valor de x en el que se produce el salto. Desgraciadamente no existe una definición standard para este valor. Algunos autores lo definen igual a la unidad, otros a cero y otros lo dejan sin definir.

Ejemplo

Representar la función escalón unidad

Plot@UnitStep@xD,8x, −2, 4<, PlotRange−>8−.2, 1.2<D

-2 -1 1 2 -0.2 0.2 0.4 0.6 0.8 1 Graphics

Ejercicios

(2)

2- La función escalón unidad se suele utilizar para construir una función que coincida con otra dada para valores de la variable independiente mayores que uno determinado y sea nula en el resto del eje real. Definir f(t) = Cos(t) para t>1 y 0 en caso contrario.Representarla en el intervalo [-2,7].

3- Otra función de gran aplicación que se puede definir a partir de la función escalon unitario es la función pulso rectangular. La función pulso rectangular de duranción T y centrada en el origen se define igual a la unidad cuando -T/2<t<T/2, y cero en el resto del eje real.

Definir un pulso rectangular f(t) centrado en el origen y de duración igual a 2. Representarlo en el intervalo [-2,2].Representarlo en el mismo intervalo pero desplazado a t0=1,5.

Series de Fourier

En los siguientes ejemplos se utilizan los comandos dentro del paquete <<Calculus`FourierTransform` que permiten obtener el desarrollo en serie de Fourier en sus formas trigonométrica y exponencial o compleja, así como un coeficiente determinado de dicha serie.

Por defecto, el comando FourierTrigSeries obtiene el desarrollo en serie de Fourier de una función definida en [-1/2,1/2]. Si se desea obtener el desarrollo de una función definida en [-T/2,T/2], siendo T el periodo, se utilizará la opción FourierParametersÆ{-1,1/T}.

El comando FourierSeries nos permite obtener la forma exponencial o compleja del desarrollo en serie de Fourier.

Identificando las fórmulas utilizadas en clase :

an= ÅÅÅÅÅ2T Ÿ-TTêê22fHtL*cosH2nptêTL „t

con las que aparecen en la ayuda en el caso general (<<Calculus`FourierTransform`:FourierCosCoefficient,y FourierParameters ( por defecto {a,b} Ø {0,1} ):

b»H1-aLê2 Ÿ-1ê2»b»

1ê2»b»

fHtLcosH2 pbntL „t,

Para que el resultado de aplicar los comandos FourierCosCoefficient, FourierSinCoefficient y, FourierTrigSeries y FourierSeries, coincida con las expresiones utilizadas en clase haremos {a,b} Ø {-1, 1/T}.

Por otra parte hay que señalar que los resultados de los comandos de Mathematica suponen siempre que el periodo en el que se ha definido la función, es siempre un intervalo simétrico respecto del origen. Si esto no fuera así, por ejemplo si el dato es f(t) definida en [0,T] (ej. 4º) habría que hacer :

1º.- una traslación de ejes para tener un intervalo simétrico respecto del origen. 2º.- aplicar los comandos para obtener el desarrollo en serie.

3º.- deshacer la traslación inicial.

(3)

en forma compleja:

x(t) = 2 + cosHÅÅÅÅÅÅÅÅ23 p tL + 4 senHÅÅÅÅÅÅÅÅ53 p tL

Plot@2+Cos@2Piê3 tD+4 Sin@5Piê3 tD, 8t,−6, 6<D

-6 -4 -2 2 4 6 -2 2 4 6 Graphics f@t_D=2+Cos@2Piê3 tD+4 Sin@5Piê3 tD 2+CosA2πt 3 E+4 SinA 5πt 3 E f@t+6D êêSimplify 2+CosA2πt 3 E+4 SinA 5πt 3 E El periodo es 6 Øw0=ÅÅÅÅÅÅÅÅ2T p= ÅÅÅÅp3

Para obtener el desarrollo utilizando el paquete: <<Calculus`FourierTransform`.

La forma compleja de la serie de Fourier se obtiene mediante el comando FourierSeries. Por defecto supone que la función que toma como argumento tiene un periodo igual a uno y se da en un intervalo centrado respecto al origen. Cuando el periodo es distinto de 1 se utiliza la opción FourierParameters->{-1,1/T}

(4)

FourierSeries@f@tD, t, 5, FourierParameters→8−1, 1ê6<D 2+ 1 2 −2 3 πt+ 1 2 2 πt 3 +2 − 5 3 πt−2 5 πt 3 Ejemplo 2º

Hallar el desarrollo en serie de Fourier de la extensión periódica de periodo 1 de f(t) = 90 -1ê2<t<0 1 0<t<1ê2 Clear@fpD f@t_D=UnitStep@tD−UnitStep@t−1ê2D; f5@t_D=FourierSeries@f@tD, t, 15D 1 2 + −2 πt π − 2 πt π + −6 πt 3π − 6 πt 3π + −10 πt 5π − 10 πt 5π + −14 πt 7π − 14 πt 7π + −18 πt 9π − 18 πt 9π + −22 πt 11π − 22 πt 11π + −26 πt 13π − 26 πt 13π + −30 πt 15π − 30 πt 15π

faux@t_D=UnitStep@t+3D−UnitStep@t+2.5D; Simulando gráficamente la extensión periódica:

(5)

Plot@fp@tD, 8t,−3, 3<D -3 -2 -1 1 2 3 0.2 0.4 0.6 0.8 1 Graphics Plot@8fp@tD, f5@tD<, 8t,−2, 2<,

PlotStyle→8RGBColor@0, 0, 1D, RGBColor@1, 0, 0D<D

-2 -1 1 2 0.2 0.4 0.6 0.8 1 Graphics

Repetimos el ejercicio sin utilizar el paquete. Para ello se definen los coeficientes en función de n.

jk(t) = ⁄n=-k k cnejwnt , cn=ÅÅÅÅÅ1 T Ÿ-Tê2 Tê2 fHtLe-jwntt , wn= ÅÅÅÅÅÅÅÅÅÅÅÅ2 pn T

(6)

c@n_D=‡ −1ê2 1ê2 f@tD∗Exp@−I∗2 Pi n tD têêSimplify 0 c@4D 0

Como vemos la expresión que nos da cn tiene problemas para calcular los coeficientes pares. Calculándolos aparte

se ve que son nulos.(La función , desplazada verticalmente 1/2,f(t)-1/2 presenta una inversión de media onda que da lugar a un desarrollo en armónicos impares)

c@0D=‡ −1ê2 1ê2 f@tD t 1 2 s5@t_D= k=−3 −1 c@2k+1D∗Exp@I∗2 Pi∗H2k+1L∗tD+ k=1 3 c@2k+1D∗Exp@I∗2 Pi∗H2k+1L∗tD+c@0D 1 2 k=1 3 c@2k+1D∗Exp@I∗2 Pi∗H2k+1L∗tD 0

Ejemplo 3º

-1 Definir f(t) = t^2

-2 Representar esta función en el intervalo [-2,2].

-3 Obtener los tres primeros términos del desarrollo en serie de Fourier de f(t). -4 Representar la suma trigonométrica obtenida.

(7)

f@t_D=t2 t2

di1=Plot@f@tD,8t, −2, 2<, PlotRange−>8−.2, 4<D

-2 -1 1 2 1 2 3 4 Graphics <<Calculus`FourierTransform` g@t_D=FourierSeries@f@tD, t, 3, FourierParameters→8−1, 1ê4<D 4 3 − 8 −12 πt π2 − 8 π2t π2 + 2 − πt π2 + 2 πt π2 − 8 −32 πt 9π2 − 8 32πt 9π2

(8)

di2=Plot@g@tD,8t, −2, 2<D -2 -1 1 2 0.5 1 1.5 2 2.5 3 3.5 Graphics

Show@di1, di2D

-2 -1 1 2 1 2 3 4 Graphics

Simulamos la extensión periódica fp(t), y representamos gráficamente en el intervalo [-2,10]como graf1

(9)

graf1=Plot@fp@tD,8t, −2, 10<D -2 2 4 6 8 10 0.2 0.4 0.6 0.8 1 Graphics

Representamos gráficamente g(t), en rojo, en el intervalo [-2,10], llamándole graf2.

graf2=Plot@g@tD,8t, −2, 10<, PlotStyle→RGBColor@1, 0, 0DD

-2 2 4 6 8 10 0.5 1 1.5 2 2.5 3 3.5 Graphics

(10)

Show@graf1, graf2D -2 2 4 6 8 10 0.5 1 1.5 2 2.5 Graphics

Ejemplo 4º

Repetir el ejercicio anterior con la extensión periódica de la función f(t)=t2+t, definida en el intervalo [-1,1]

(T=2), obteniendo los 15 priemeros términos (el independiente, 7 en coseno y 7 en seno). 1º.- Definimos la función y calculamos la serie de Fourier, llamándole g(t):

Clear@f, fpD; f@t_D=t ^ 2+t;

g@t_D=FourierTrigSeries@f@tD, t, 7, FourierParameters→8−1, 1ê2<D 2º.- Simulamos la extensión periódica de f(t), llamándole fp(t) y la representamos gráficamente en el intervalo [-1,5], llamando al gráfico, graf1.

(11)

graf1=Plot@fp@tD,8t, −1, 5<, PlotRange→8−.5, 2<D -1 1 2 3 4 5 -0.5 0.5 1 1.5 2 Graphics

3º.- Representamos g(t) gráficamente en el intervalo [-1,5], en color rojo, llamando al gráfico, graf2.

graf2=Plot@g@tD,8t, −1, 5<,

PlotRange→8−.5, 2<, PlotStyle→RGBColor@1, 0, 0DD

-1 1 2 3 4 5 -0.5 0.5 1 1.5 2 Graphics

(12)

Show@graf1, graf2D -1 1 2 3 4 5 -0.5 0.5 1 1.5 2 Graphics

5º.- Obtenemos los coeficientes del tercer coseno y cuarto seno, comprobando que son los calculados anteriormente. FourierCosCoefficient@t ^ 2+t, t, 3, FourierParameters→8−1, 1ê2<D − 4 9π2 FourierSinCoefficient@t ^ 2+t, t, 4, FourierParameters→8−1, 1ê2<D − 1 2π

Comparando este ejemplo con el anterior, se puede observar, que aunque se calculan más términos de la serie, la aproximación no es tan buena. Esto se debe a la discontinuidad o salto que presenta la función, y en sus proximi-dades es donde hay mas diferencia.

(13)

Ejercicios

1- Sea f(t) la función definida en el intervalo [-2,2] a partir de un pulso rectangular centrado en el origen y de duración igual a 2.

a) Obtener los seis primeros desarrollos distintos de Fourier de f(t) en la forma de senos y cosenos llamándoles

f1(t), f2(t), ..., f6(t).

b) Introducir las gráficas de estos desarrollos junto con la de la función en una tabla, P, sin mostrar dichos gráfi-cos. Utilizar finalmente los comandos Show, GraphicsArray y Partition para presentar en dos líneas las seis gráficas.

c) Representar gráficamente los errores que se cometen al sustituir la función f(t) por las f1(t), f2(t), ..., f6(t).

2- Calcular el nº de terminos necesarios en el desarrollo en serie de Fourier del ejercicio 1 para que al sustituir dicha función por el desarrollo el error sea menor que eps= .02 , en c= .5 .Dar como resultado: el nº de términos de la serie, el desarrollo correspondiente S(t) y el valor de S(c).Utilizar el comando For.

TRANSFORMADA DE FOURIER

A continuación se presentan dos ejercicios en los que se utilizan comandos contenidos en el paquete <<Calculus`-FourierTransform` relativos al cálculo de la transformada de Fourier. Dentro de las funciones incorporadas en el kernel de Mathematica se dispone también de los comandos FourierTransform e InverseFourierTransform, simi-lares a los de la transformada de Laplace, para el cálculo simbólico de la transformada.

Ejemplo 1º

Sea f(t) = u(t) e-t, calcular su transformada de Fourier de dos formas: a) Utilizando el comando NFourierTransform

b) Directamente mediante la integral que nos da la transformada. En primer lugar cargamos los paquetes

<<Calculus`FourierTransform`

<<Algebra`ReIm`

w /: Im[w] = 0

(14)

f@t_D=UnitStep@tD∗Exp@−tD

−t

UnitStep@tD

El comando NFourierTransform da el valor de la transformada en valores concretos de w, es decir, no como función de w. En el siguiente ejemplo se calcula la transformada en un conjunto de puntos w=0, 0.25,0.5,... Despues se calcula la transformada mediante las expresiones vistas en teoría y luego se muestran conjuntamente ambos gráficos. Para que la expresión de la transformada coincida con la vista en teoria hay que utilizar la opción FourierParameters->{1,-1}. val=Table[NFourierTransform[f[t], t, i,FourierParameters->{1,-1}],{i,0,5,.25}] 81., 0.941176−0.235294 , 0.8−0.4 , 0.64−0.48 , 0.5−0.5 , 0.390244−0.487805 , 0.307692−0.461538 , 0.246154−0.430769 , 0.2−0.4 , 0.164948−0.371134 , 0.137931−0.344828 , 0.116788−0.321168 , 0.1−0.3 , 0.0864865−0.281081 , 0.0754717−0.264151 , 0.06639−0.248963 , 0.0588235−0.235294 , 0.052459−0.222951 , 0.0470588−0.211765 , 0.0424403−0.201592 , 0.0384615−0.192308 < r=Table@8i, Re@val@@4∗i+1DDD<,8i, 0, 5, .25<D 880, 1.<,80.25, 0.941176<,80.5, 0.8<, 80.75, 0.64<, 81., 0.5<,81.25, 0.390244<,81.5, 0.307692<, 81.75, 0.246154<, 82., 0.2<,82.25, 0.164948<,82.5, 0.137931<, 82.75, 0.116788<, 83., 0.1<,83.25, 0.0864865<,83.5, 0.0754717<, 83.75, 0.06639<,84., 0.0588235<,84.25, 0.052459<, 84.5, 0.0470588<,84.75, 0.0424403<,85., 0.0384615<<

(15)

g1=ListPlot@r, PlotStyle→PointSize@.02DD 1 2 3 4 5 0.2 0.4 0.6 0.8 1 Graphics

ims=Table@8i, Im@val@@4∗i+1DDD<,8i, 0, 5, .25<D

880, 0<,80.25,−0.235294<,80.5,−0.4<, 80.75,−0.48<,81.,−0.5<, 81.25, −0.487805<, 81.5,−0.461538<,81.75,−0.430769<,82.,−0.4<, 82.25, −0.371134<, 82.5,−0.344828<,82.75,−0.321168<, 83., −0.3<,83.25,−0.281081<,83.5,−0.264151<, 83.75, −0.248963<, 84.,−0.235294<,84.25,−0.222951<, 84.5, −0.211765<, 84.75,−0.201592<,85.,−0.192308<<

g2=ListPlot@ims, PlotStyle→PointSize@.02DD

1 2 3 4 5 -0.5 -0.4 -0.3 -0.2 -0.1 Graphics

(16)

F@w_D=‡ 0 Exp@−tD∗Exp@−I∗w∗tD t − − +w graf1=Plot@Re@F@wDD,8w, 0, 5<D 1 2 3 4 5 0.2 0.4 0.6 0.8 1 Graphics Show@g1, graf1D 1 2 3 4 5 0.2 0.4 0.6 0.8 1 Graphics

(17)

graf2=Plot@Im@F@wDD,8w, 0, 5<D 1 2 3 4 5 -0.5 -0.4 -0.3 -0.2 -0.1 Graphics Show@g2, graf2D 1 2 3 4 5 -0.5 -0.4 -0.3 -0.2 -0.1 Graphics Ejemplo 2º

Sea x(t) un pulso de duración 8 desplazado a t=5, calcular su transformada de Fourier.

(18)

−∞ x@tD∗Exp@−I w tD t 2 −5 wSin@4 wD w Table[NFourierTransform[x[t], t,i,FourierParameters->{1,-1}],{i,0,2,.5}];

NIntegrate::ncvb: NIntegrate failed to converge to prescribed accuracy after 7 recursive bisections in t near t = 9.24`. More…

NIntegrate::ncvb: NIntegrate failed to converge to prescribed accuracy after 7 recursive bisections in t near t = 9.24`. More…

NIntegrate::ncvb: NIntegrate failed to converge to prescribed accuracy after 7 recursive bisections in t near t = 9.24`. More…

General::stop: Further output of

NIntegrate::ncvb will be suppressed during this calculation. More…

Figure

Actualización...

Referencias