0% encontró este documento útil (0 votos)
67 vistas14 páginas

Transformada de Fourier Con MATLAB

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
67 vistas14 páginas

Transformada de Fourier Con MATLAB

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Transformada de Fourier

Obtenemos la transformada de Fourier de funciones simples. La más importante es


la función de Gauss

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 cómo 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 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.
>> 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 transformada 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)
Tabla de transformadas de Fourier

>> 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

También podría gustarte