Transformadas de Fourier con SageMath
Para el calculo de la transformada de Fourier de x(t) = H(t)Ae−kt
Z ∞
X(ω) = Ae−kt e−jωt dt
0
podés utilizar las siguientes líneas
sage: var('A, k, omega, t') # define las variables
(A, k, omega, t)
sage: assume(k>0) # asume k positiva
sage: Int = integrate(A*exp(-k*t)*exp(-I*omega*t),t); Int # calcula la integral indefinida
-A*e b (-k*t - I*omega*t)/(k + I*omega) # llamada Int para evaluarla
sage: limit(Int(t), t = infinity) # evalua en infinito
0
sage: Int(t=0) # evalua en 0
-A/(k + I*omega)
sage:
Así la transformada es,
A
X(ω) =
k + jω
Si A = k = 1, el espectro de amplitud podes obtenerlo con
sage: assume(omega,'real')
sage: X = 1/(1+I*omega)
sage: plot(abs(X), omega, -10, 10, color='blue')
Launched png viewer for Graphics object consisting of 1 graphics primitive
Figura 1: Espectro de amplitud de la T.F. de H(t)e−t .
Para el espectro de fase podes obtenerlo con
sage: prX = real_part(X); piX = imag_part(X) # parte real e imaginaria de X
sage: plot(arctan2(piX, prX),omega, -10, 10, color='red')# arctan2 proporciona el ángulo de fase
Launched png viewer for Graphics object consisting of 1 graphics primitive
Figura 2: Espectro de fase de la T.F. de H(t)e−t .
Para el calculo de la transformada de Fourier de x(t) = (H(t − 1) − H(t + 1))A cos(ω0 t)
Z 1
X(ω) = A cos(ω0 t)e−jωt dt
−1
podes utilizar las siguientes líneas
sage: var('A, k, omega0, omega, t')
(A, k, omega0, omega, t)
sage: assume(k>0)
sage: Int2 = integrate(A*cos(omega0*t)*exp(-I*omega*t),t);Int2
-(-I*omega*cos(omega0*t) + omega0*sin(omega0*t))*A*e b (-I*omega*t)/(omega b 2 - omega0 b 2)
sage: Int2(t=1)-Int2(t=-1)
(-I*omega*cos(-omega0) + omega0*sin(-omega0))*A*e b (I*omega)/(omega b 2 - omega0 b 2)
-(-I*omega*cos(omega0) + omega0*sin(omega0))*A*e b (-I*omega)/(omega b 2 - omega0 b 2)
el último resultado se interpreta como,
[−jω cos(−ω0 ) + ω0 sin(−ω0 )]Aejω [−jω cos(ω0 ) + ω0 sin(ω0 )]Ae−jω
X(ω) = −
ω 2 − ω02 ω 2 − ω02
simplicando con papel y lápiz
[−jω cos(ω0 ) − ω0 sin(ω0 )]Aejω + [jω cos(ω0 ) − ω0 sin(ω0 )]Ae−jω
X(ω) =
ω 2 − ω02
−jω cos ω0 (ejω − e−ω0 ) − jω0 sin ω0 (ejω + e−jω )
X(ω) = A
ω 2 − ω02
2ω cos ω0 sin ω − 2ω0 sin ω0 cos ω
X(ω) = A
ω 2 − ω02
ω sin(ω − ω0 ) + ω sin(ω + ω0 ) + ω0 sin(ω − ω0 ) − ω0 sin(ω + ω0 )
X(ω) = A
ω 2 − ω02
sin(ω − ω0 ) sin(ω + ω0 )
X(ω) = A +A
ω − ω0 ω + ω0
Si ω0 = 20 y A = 1, las grácas de los espectros se obtienen con
sage: var('omega')
omega
sage: X = sin(omega-20)/(omega-20)+ sin(omega+20)/(omega+20)
sage: plot(abs(X), omega, -40, 40)
Launched png viewer for Graphics object consisting of 1 graphics primitive
Figura 3: Espectro de amplitiud de la T.F. de (H(t − 20) − H(t + 20)) cos(20t).
sage: prX = real_part(x); piX = imag_part(X)
sage: plot(arctan2(piX, prX), omega, -30, 30)
Launched png viewer for Graphics object consisting of 1 graphics primitive
sage:
Figura 4: Espectro de fase de la T.F. de (H(t − 20) − H(t + 20)) cos(20t).
Son las gracas de los espectros de un pulso rectangular desplazados ±ω0 = 20, que corresponde la frecuencia angular
de la función cos(ω0 t) = cos(ω0 t)
Refererncia
Dean,Duy Advanced Engineering Mathematics with Mathlab, Second Edition. 2003. Chapman & Hall/CRC