Vous êtes sur la page 1sur 6

La evaluacin de Transformadas de Fourier con

MATLAB
En la clase estudiamos el enfoque analtico para la determinacin de la
transformada de Fourier de una seal de tiempo continuo. En este tutorial
se utilizan mtodos numricos para encontrar la transformada de Fourier
de seales en tiempo continuo con MATLAB .

Usando MATLAB para trazar la Transformada de


Fourier de una funcin de tiempo.
El pulso aperidico se muestra a continuacin:

x(t)
1
2

tiene una transformada de Fourier:

Xjf4sinc4f
Esto se puede encontrar utilizando la tabla de transformadas de Fourier.
Podemos utilizar MATLAB para trazar esta transformacin. MATLAB tiene una
funcin sinc incorporado. Sin embargo, la definicin de la funcin sinc
MATLAB es ligeramente diferente a la utilizada en la clase y en la
transformada de Fourier tabla. En MATLAB:

sinc(x)

sin ( x)
x

As, en MATLAB escribimos la transformacin, X, usando sinc (4f), ya que el


factor est integrado en la funcin. Los siguientes comandos de MATLAB
trazarn esta transformada de Fourier:

> f=-5:.01:5;
> X=4*sinc(4*f);
> plot(f,X)
En este caso, la transformada de Fourier es una funcin puramente real. Por lo tanto,
podemos trazar como se muestra arriba. En general, las transformadas de Fourier son
funciones complejas y tenemos que trazar el espectro de amplitud y fase por separado.
Esto se puede hacer mediante los siguientes comandos:
>> plot(f,abs(X))

>> plot(f,angle(X))

Tenga en cuenta que el ngulo es cero o . Esto refleja los valores positivos
y negativos de la
funcin de transformacin.

Realizacin de la Integral Numricamente Fourier:


Para el pulso presentado anteriormente, la transformada de Fourier se
puede encontrar fcilmente utilizando la tabla. Sin embargo, para algunas
funciones, tendr que realizarse una integracin para encontrar la
transformada usando:

X ( jf )

x(t) e j 2 ft dt

o, para este ejemplo:


+2

X ( jf )

1e j 2 ft dt
2

Esta integracin se puede realizar utilizando el comando trapz en MATLAB.


Este comando tiene
la forma: trapz (x, y) donde la integral de la funcin y se encuentra con
respecto a la variable dela integracin x. O, utilizando MATLAB:

> clear
> f=0;
> t=-2:.01:2;
> trapz(t,exp(j*2*pi*f*t)) ans
=
4.0000

Esto es consistente con nuestros resultados anteriores. El valor de la


transformada en f = 0 se encontr que era 4 utilizando la transformacin de
la tabla. Con el fin de encontrar la completa transformacin en un rango de
frecuencias podemos utilizar un bucle como se muestra a continuacin:

>>clear
>>t=2:.01:2;
>>k=0;
>>forf=5:.01:5
k=k+1;
X(k)=trapz(t,exp(j*2*pi*f*t));
end
>>f=5:.01:5;
>>plot(f,X)

Esto debe coincidir con la transformada trazada anteriormente. Esta tcnica


tambin se puede utilizar para aproximar la transformada de Fourier de una
seal de duracin infinita. Supongamos que queremos encontrar el espectro
de amplitud de la seal de dos frecuencias:

x(t ) cos(2100t ) cos(2500t )


Comenzamos mediante la creacin de un vector, x, con valores
muestreados de la funcin de tiempo continuo. Si queremos muestrear la
seal de cada 0,0002 segundos y crear una secuencia de longitud 250, esto
cubrir un intervalo de tiempo de longitud 250 * 0,0002 = 0,05 segundos.
Se genera una trama de esta seal usando el siguiente cdigo de MATLAB:

>>clear
>>N=250;
>>ts=.0002;
>>t=[0:N1]*ts;
>>x=cos(2*pi*100*t)+cos(2*pi*500*t);
>>plot(t,x)

Podemos encontrar la transformada de integral de Fourier aproximada para


0 f 800 Hz usando:

>>k=0;
>>forf=0:1:800
k=k+1;
X(k)=trapz(t,x.*exp(j*2*pi*f*t));
end
>>f=0:800;
>>plot(f,abs(X))

Como era de esperar los picos en el espectro se encuentran entre 100 y 500
Hz. Tericamente, esperamos ver las funciones de impulso a estas dos
frecuencias en cero y en otras frecuencias. Esto no es lo que observamos.
Esto es porque el cdigo de MATLAB slo aproxima la transformada. Hay
tres elementos que hacen que los resultados se aproximen.
La secuencia utilizada para calcular la transformada es una versin
muestreada de una seal continua. El valor del intervalo de muestreo (Ts) y
el nmero de muestras tomadas (N) afectan a la aproximacin.
Adems, el comando trapz est utilizando una suma para aproximar la
integral. Podemos
observar los efectos del intervalo de muestreo y nmero de muestras
cambiando sus valores.
Por ejemplo, si aumentamos el intervalo de muestreo en un factor de 10 (a
0.002) y disminuimos el nmero de muestras a 25 (lo que todava cubren el
intervalo de tiempo total de la misma gama), y repetimos el cdigo MATLAB
anterior obtenemos:

En este caso, la aproximacin es menos precisa. Si volvemos el intervalo de


muestreo al valor original de 0,0002 y aumentar el nmero de muestras a
500, la aproximacin al transformador se encuentra para ser:

Tenga en cuenta que la transformacin es ms precisa que la original. Se


espera esto porque estamos incluyendo ms ciclos de la forma de onda en
la aproximacin (aumentando los lmites de integracin).

La Transformada Discreta de Fourier (DFT)


Una alternativa al uso de la aproximacin a la transformada de Fourier es
utilizar la Transformada Discreta de Fourier (DFT). La DFT toma una seal
discreta en el dominio del tiempo y que transforma la seal en su discreta
representacin en el dominio de frecuencia. Esta transformada es
generalmente la utilizada en sistemas DSP. La teora detrs de la DFT se
cubre en ECE 351. En ese supuesto, usted encontrar que la DFT de una
seal puede ser utilizada para aproximar el tiempo continuo de una
transformada de Fourier.

Vous aimerez peut-être aussi