Alumno:
Grupo: 3BM3
Objetivos
-Observar la importancia de un muestreo adecuado, en la conversin de
seales en el dominio del tiempo al dominio de la frecuencia.
Introduccin
FFT es la abreviatura usual (del ingls Fast Fourier Transform) de un
eficiente algoritmo que permite calcular la transformada de Fourier
discreta (DFT) y su inversa. La FFT es de gran importancia en una amplia
variedad de aplicaciones, desde el tratamiento digital de seales y
filtrado digital en general a la resolucin de ecuaciones en derivadas
parciales o los algoritmos de multiplicacin rpida de grandes enteros. El
algoritmo pone algunas limitaciones en la seal y en el espectro
resultante. Por ejemplo: la seal de la que se tomaron muestras y que se
va a transformar debe consistir de un nmero de muestras igual a una
potencia de dos. La mayora de los analizadores TRF permiten la
transformacin de 512, 1024, 2048 o 4096 muestras. El rango de
frecuencias cubierto por el anlisis TRF depende de la cantidad de
muestras recogidas y de la proporcin de muestreo.
Programa
% A)Funcin Coseno
f=50;
fs=20*f;
T=1/fs;
A=1;
t=0:T:0.2;
x=A*cos(2*pi*f*t);
subplot(4,2,1),
plot(t,x)
title(['Original Function ',num2str(f),'Hz'])
hold on
xlabel('Time')
hold on
ylabel('Amplitude')
grid on;
% Generate the Frecuency vector for the FFT
X=fft(x);
le=length(X);
le=floor(le/2);
X=X(1:le);
f=(0:le-1)*(fs/2)/(le-1);
subplot(4,2,2),
plot(f,abs(X))
axis([0 fs/2 0 130])
title('Fast Fourier Transform')
xlabel('Frequency')
ylabel('Amplitude')
grid on;
% B) Escaln Unitario
t1=t0:T:-Bm;
t2=-Bm:T:Bm;
t3=Bm:T:tf;
x1=zeros(1,length(t1));
x2=ones(1,length(t2));
x3=zeros(1,length(t3));
t=[t1 t2 t3]; %Concatenamos vectores
x=[x1 x2 x3];
subplot(4,2,3),
plot(t,x,'r')
axis([t0 tf 0 2])
title('Original Function')
xlabel('Time')
ylabel('Amplitude')
grid on;
%Fast Fourier Transform
X=fft(x);
le=length(X);
le=floor(le/2);
X=X(1:le);
f=(0:le-1)*(fs/2)/(le-1);
subplot(4,2,4),
plot(f,abs(X))
title('Fast Fourier Transform')
xlabel('Frequency')
ylabel('Amplitude')
grid on;
f=50;
fs=10*f;
T=1/fs;
t=0:T:(0.5);
x=exp(-1*2*pi*f*t);
subplot(4,2,5),
plot(t(1:100),x(1:100))
title('Exponential Function')
xlabel('Time')
ylabel('Amplitude')
grid on;
%Fast Fourier Transform
X=fft(x);
le=length(X);
le=floor(le/2);
X=X(1:le);
f=(0:le-1)*(fs/2)/(le-1);
subplot(4,2,6),
plot(f,abs(X))
title('Fast Fourier Transform')
xlabel('Frequency')
ylabel('Amplitude')
grid on;
A=3;
B=2;
C=1;
t=0:T:0.2;
x=(A*sin(2*pi*fa*t))+(B*sin(2*pi*fb*t))+(C*sin(2*pi*fc*t));
subplot(4,2,7),
plot(t,x)
title('Original Function')
xlabel('Time')
ylabel('Amplitude')
grid on;
%Fast Fourier Transform
X=fft(x);
le=length(X);
le=floor(le/2);
X=X(1:le);
f=(0:le-1)*(fs/2)/(le-1);
subplot(4,2,8),
plot(f,abs(X))
title('Fast Fourier Transform')
xlabel('Frequency')
ylabel('Amplitude')
grid on;
%ECG
fs=250;
load a01m.mat; %fs=250
figure,
subplot(1,2,1)
plot(val);
title('ECG');
xlabel('Time')
ylabel('Amplitude')
%Fast Fourier Transform
X=fft(val);
le=length(X);
le=floor(le/2);
X=X(1:le);
f=(0:le-1)*(fs/2)/(le-1);
subplot(1,2,2),
plot(f,abs(X))
title('Fast Fourier Transform')
xlabel('Frequency')
ylabel('Amplitude')
grid on;
Resultados:
Conclusiones
Un aspecto importante, es que las grficas en el dominio de la
fs
frecuencia, el lmite de la grfica en el eje x esta en 2 , debido que
Bibliografa
http://paulbourke.net/miscellaneous/dft/
http://cs.cinvestav.mx/~fraga/Cursos/PDI/tdf.pdf
http://iie.fing.edu.uy/ense/asign/dsp/proyectos/2006/analizador_espectro
/FFT.pdf