Transformada de Fourier
Para una función no periódica P-->∞
La primera integral que obtiene F(ω) se denomina transformada de Fourier de f(t), y la segunda se denomina transformada inversa de Fourier.
El cuadrado f2(t) nos da una idea de cómo la energía contenida en la onda se distribuye en el tiempo, mientas que F2(ω) nos da una idea de como la energía se distribuye en el espectro de frecuencias. Naturalmente,
Pulso rectangular
Sea un pulso rectangular tal que f(t) es cero excepto en el intervalo [-a,a] que vale A, tal como se muestra en la figura
La transformada de Fourier de f(t) vale
>> syms a t w; >> int('exp(-i*w*t)',t,-a,a) ans =(2*sin(a*w))/w
Alternativamente, utilizamos la función fourier de MATLAB
syms a t; ft=heaviside(t+a)-heaviside(t-a); Fw=fourier(ft); Fw=simplify(Fw) ft=subs(ft,a,1); subplot(2,1,1) ezplot(ft,[-2,2]); ylim([-0.2 1.2]) xlabel('t'); ylabel('f(t)') title('Pulso rectangular') Fw=subs(Fw,a,1); subplot(2,1,2) hg=ezplot(Fw,[-10,10]); set(hg,'color','r') ylim([-1 2.2]) xlabel('\omega'); ylabel('F(\omega)') title('Transformada de Fourier') grid on
En la figura vemos un pulso rectangular de semianchura a=1 y su transformada de Fourier
No es necesario utilizar Math Symbolic Toolbox para dibujar la función y su transformada de Fourier como vemos en este script.
t=[-2 -1 -1 1 1 2]; ft=[0 0 1 1 0 0]; subplot(2,1,1) plot(t,ft,'b'); ylim([-0.2 1.2]) xlabel('t'); ylabel('f(t)') title('Pulso rectangular') fw=@(w) 2*sin(w+eps)./w; subplot(2,1,2) fplot(fw,[-10,10], 'color','r'); ylim([-1,2.2]) xlabel('\omega'); ylabel('F(\omega)') grid on
Pulso triangular
La transformada de Fourier es
>> syms t a w; >> f1=(1+t/a)*(heaviside(t+a)-heaviside(t))*exp(-i*w*t); >> f2=(1-t/a)*(heaviside(t)-heaviside(t-a))*exp(-i*w*t); >> Fw=int(f1,t,-a,0)+int(f2,t,0,a) Fw =1/(a*w^2) - (1/exp(a*w*i))/(a*w^2) - (exp(a*w*i) - 1)/(a*w^2) >> Fw=simplify(Fw) Fw =(4*sin((a*w)/2)^2)/(a*w^2)
syms t; ft=(1-t)*(heaviside(t)-heaviside(t-1))+(1+t)*(heaviside(t+1)-heaviside(t)); Fw=fourier(ft); Fw=simplify(Fw) subplot(2,1,1) ezplot(ft,[-2,2]); ylim([-0.2 1.2]) xlabel('t'); ylabel('f(t)') title('Pulso triangular') subplot(2,1,2) hg=ezplot(Fw,[-10,10]); set(hg,'color','r') ylim([-0.1 1.1]) xlabel('\omega'); ylabel('F(\omega)') title('Transformada de Fourier') grid on
En la ventana de comandos aparece la transformada de Fourier, que es la misma que hemos deducido con a=1
>> Fw=-(2*cos(w) - 2)/w^2
Función coseno limitado
Sea la función f(t) definida en el intervalo [-b/2, b/2]
Su transformada de Fourier es
La segunda integral es nula, el intervalo de integración es simétrico y la función es impar
>> syms w w0 b t; >> int(cos(w0*t)*sin(w*t), t,-b/2, b/2) ans =0
El resultado de la primera integral es
b=pi; w0=6; subplot(2,1,1) fplot(@(t) cos(w0*t),[-b/2,b/2]) line([-4,-b/2],[0,0]) line([b/2,4],[0,0]) grid on xlabel('t') ylabel('f(t)') title('Función, f(t)') subplot(2,1,2) f=@(w) sin((w0+w)*b/2)./(w0+w)+sin((w0-w)*b/2)./(w0-w); fplot(f,[-20,20]) grid on xlabel('\omega') ylabel(' F(\omega)') title('Transformada, F(\omega)')
Función exponencial
Transformada de Fourier de la función f(t)=Aexp(-γ|t|)
Primero, calculamos la transformada de Fourier de la función f(t)=Aexp(-γt)·u(t). La integración de f(t) se extiende entre 0 e ∞
A continuación, tenemos en cuenta la propiedad de la transformada de Fourier de la función f(-t) es F(-ω), la transformada de las dos exponenciales es la suma
g=1; ft=@(t) exp(-g*abs(t)); subplot(2,1,1) fplot(ft,[-5,5],'color','b'); ylim([-0.1 1.1]) xlabel('t'); ylabel('f(t)') title('Exponencial') Fw=@(w) 2*g./(g^2+w.^2); subplot(2,1,2) fplot(Fw,[-10,10],'color','r'); ylim([-0.1 2.1]) xlabel('\omega'); ylabel('F(\omega)') grid on
Oscilación amortiguada
En este ejemplo calculamos la trasnformada de Fourier de la función que describe una oscilación amortiguada que parte del instante t=0.
Escribimos f(t) en forma equivalente y calculamos su transformada de Fourier
g=1; %amortiguamiento w0=6; %frecuencia angular ft=@(t) exp(-g*t).*cos(w0*t); subplot(2,1,1) fplot(ft,[0,5],'color','b'); ylim([-1 1.1]) xlabel('t'); ylabel('f(t)') title('Oscilación amortiguada') Fw=@(w) abs(((g-1i*(w-w0))./(g^2+(w-w0).^2)+(g-1i*(w+w0))./(g^2+(w+w0).^2))/2); subplot(2,1,2) fplot(Fw,[-10,10],'color','r'); ylim([-0.1 0.6]) xlabel('\omega'); ylabel('F(\omega)') title('Transformada') grid on
Como F(ω) es complejo, representamos el módulo
Función de Gauss
La función de Gauss es una de las funciones más importantes, se define
donde μ es la media y σ es la desviación estándar de acuerdo con su interpretación estadística.
x=-5:0.05:5; s2=[0.2,1,5,0.5]; %cuadrado de la desviación estándar mu=[0,0,0,-2]; %media col=['b','g','r','k']; hold on for k=1:length(s2) y=exp(-(x-mu(k)).^2/(2*s2(k)))/sqrt(s2(k)*2*pi); str=sprintf('\\mu=%1.1f, \\sigma^2=%1.1f',mu(k),s2(k)); plot(x,y,col(k),'displayName',str) end hold off xlabel('x') ylabel('f(x)') legend('-DynamicLegend','location','NorthEast') title('Función de Gauss') grid on
El máximo de la función se produce para x=μ. Denominamos Δx a la anchura de la función de Gauss para una ordenada igual a la mitad del máximo. Por ejemplo, en la curva de color verde el máximo vale y=0.4, aproximadamente. Determinamos el intervalo de valores de x, Δx cuya ordenada y≥0.2.
Sea f(t) una función de Gauss
>> syms t; >> syms s2 positive; >> f=exp(-t^2/(2*s2))/(sqrt(2*pi*s2)); >> int(f,t,-inf,inf) ans =1
Para calcular la transformada de Fourier tenemos que partir del resultado de la integral
que se justifica del siguiente modo:
Con ayuda de este resultado calculamos la transformada de Fourier de un pulso descrito por una función de Gauss
La tansformada de Fourier de una función de Gauss es otra función de Gauss
>> syms t; >> syms s positive; >> ft=exp(-t^2/(2*s^2))/(s*sym('sqrt(2*pi)')); >> Fw=fourier(ft) Fw =1/exp((s^2*w^2)/2)
Se sugiere comprobar que cuanto es mayor σ, más ancha es la curva f(t) y más estrecha es la curva F(ω) y viceversa.
sigma=2; ft=@(t) exp(-t.^2/(2*sigma^2))/(sigma*sqrt(2*pi)); subplot(2,1,1) fplot(ft,[-7,7],'color','b'); ylim([-0.05 0.25]) xlabel('t'); ylabel('f(t)') title('Función de Gauss') grid on fw=@(w) exp(-w.^2*sigma^2/2); subplot(2,1,2) fplot(fw,[-7,7],'color','r'); ylim([-0.2,1.2]) xlabel('w'); ylabel('F(w)') grid on
Función delta de Dirac δ(t)
La función delta de Dirac tiene la siguiente definición
Se obtiene a partir de una función de Gauss cuyo parámetro σ tiende a cero
Calculamos la transformada inversa de Fourier de la función delta de Dirac.
F(ω) es cero para todos los valores de ω, excepto para ω=ω0. El área bajo la curva δ(ω-ω0) es la unidad.
>> syms w w0; >> Fw=2*pi*dirac(w-w0); >> ft=ifourier(Fw) ft =exp(w0*x*i)
Teniendo en cuenta que
la transformada de Fourier F(ω)=π[δ(ω-ω0)+δ(ω+ω0)]
>> syms w w0; >> Fw=pi*(dirac(w-w0)+dirac(w+w0)); >> ft=ifourier(Fw) ft =(1/exp(w0*x*i))/2 + exp(w0*x*i)/2 >> simplify(ft) ans =cos(w0*x)
De otro modo
Dos funciones delta de Dirac situadas en +k0 y en -k0.
>> syms k0 x; >> fx=cos(k0*x); >> Fk=fourier(fx) Fk =pi*(dirac(k0 - w) + dirac(k0 + w))
Combinación de las funciones coseno y Gauss
En primer lugar, vamos a obtener el resultado de la integral
Haciendo el cambio de variable
Obtenemos
Sabiendo el resultado de la integral
Obtenemos el resultado
que utlizaremos más adelante.
Transformada de Fourier
Vamos a obtener la transformada de Fourier de la función
En primer lugar, obtenemos la transformada de Fourier F1(k) de la función f1(x)
Tenemos una integral del tipo descrito al principio de este apartado
De modo análogo, obtenemos la transformada de Fourier de la función f2(x)
La transformada de Fourier de la función f(x)= f1(x)+ f2(x) es F(k)=(F1(k)+F2(k))/2
x0=0; k0=2; s2=5; x=-10:0.05:10; fx=exp(-(x-x0).^2/(2*s2)).*cos(k0*x); subplot(2,1,1) plot(x,fx,'b') grid on xlabel('x') ylabel('f(x)') title('Función') k=-5:0.05:5; Fk=sqrt(2*pi*s2)*exp(-1i*k*x0).*(exp(1i*k0*x0)*exp(-(k-k0).^2*s2/2)... +exp(-1i*k0*x0)*exp(-(k+k0).^2*s2/2))/2; subplot(2,1,2) plot(k,abs(Fk),'r') grid on xlabel('k') ylabel('F(k)') title('Transformada')
En la parte superior de la figura, vemos la función coseno, cuya envolvente (amplitud) es la función de Gauss.
No hay cambio apreciable en el valor absoluto de F(k) cuando se modifica la posición del centro de la función de Gauss, x0 a un valor distinto de cero. La transformada de Fourier de esta función consiste en dos picos centrados en ±k0.
Si incrementamos el parámetro σ2 a una valor grande por ejemplo, 100, vemos que la amplitud de la función f(x) es casi constante, y su transformada de Fourier son dos picos puntiagudos centrados en ±k0 que se van aproximando a una función delta de Dirac a medida que se incrementa σ2
Tabla de transformadas de Fourier
f(t) | F(ω) |
---|---|
exp(-at)·u(t) | |
t·exp(-at)·u(t) | |
δ(t) | 1 |
1 | 2πδ(ω) |
exp(-iω0t) | 2πδ(ω-ω0) |
cos(ω0t) | π(δ(ω+ω0)+δ(ω-ω0)) |
sin(ω0t) | iπ(δ(ω+ω0)-δ(ω-ω0)) |
u(t) | πδ(ω)+1/(iω) |
exp(-at)·sin(ω0t)·u(t) | |
exp(-at)·cos(ω0t)·u(t) |
>> ft=sym('1'); >> Fw=fourier(ft) Fw =2*pi*dirac(w) >> syms t; >> ft=heaviside(t); >> Fw=fourier(ft) Fw =pi*dirac(w) - i/w >> ft=dirac(t); >> Fw=fourier(ft) Fw =1 >> syms a positive; >> ft=exp(-a*t)*heaviside(t); >> Fw=fourier(ft) Fw =1/(a + w*i) >> ft=t*exp(-a*t)*heaviside(t); >> Fw=fourier(ft) Fw =1/(a + w*i)^2
Transformada de Fourier de una función periódica f(t) de semiperiodo P.
Transformada de f(t-T)
Transformada de exp(iω0t)f(t)
Transformada de f(at) para a>0