Universidad Autónoma de Nayarit Práctica 5: La FFT
Enviado por yuhc91 . • 29 de Noviembre de 2015 • Trabajo • 948 Palabras (4 Páginas) • 170 Visitas
Universidad Autónoma de Nayarit
Práctica 5: La FFT
1. Conociendo la FFT
FFT = Fast Fourier Transform. La FFT es la versión rápida de la Transformada Discreta de Fourier (DFT). La FFT utiliza algunos algoritmos ingeniosos para hacer lo mismo que la DFT pero en mucho menor tiempo. La FFT es extremadamente importante en el área de análisis frecuencial ya que toma una señal discreta y la transforma en su representación en el dominio de la frecuencia. Sin una transformación de tiempo discreto a frecuencia no sería posible el cálculo de la transformada de Fourier mediante un sistema basado en DSP. Es la velocidad y la naturaleza discreta de la FFT lo que permite analizar el espectro de la señal con Matlab o en tiempo real en un analizador de espectros.
Algunas comparaciones con otros tipos de transformadas.
La transformada de Laplace se usa para encontrar una representación de polos y ceros de una señal o de un sistema en tiempo continuo, [pic 1] en el plano-s. De modo similar, la transformada z (ZT) se usa para encontrar la representación de una señal o sistema en tiempo discreto, [pic 2] en el plano-z.
La transformada de Fourier en tiempo continuo (CTFT) se puede encontrar evaluando la transformada de Laplace en [pic 3]. La transformada de Fourier en tiempo discreto (DTFT) se puede determinar evaluando la transformada z en [pic 4].
2. Matlab y la FFT
La función FFT de Matlab es una herramienta efectiva para calcular la transformada discreta de Fourier de una señal. Los siguientes códigos ayudarán a comprender los detalles del uso de la función FFT.
La sintaxis típica de la FFT de una señal es [pic 5] donde:
- X es un vector de números complejos ordenados desde [pic 6].
- x es la señal x[n], a la que se desea transformar
- N es el número de puntos en la FFT. N debe ser por lo menos de la longitud del x[n]
Si la longitud de x es menor que N, el vector se rellena con ceros. Si es mayor, el vector es truncado.
Parte 1: Obtención de la secuencia. La señal analógica [pic 7], [pic 8], [pic 9]Hz es muestreada a una tasa de 100 muestras por segundo. Graficar tres periodos de la secuencia [pic 10] resultante. Obtener el valor de la frecuencia digital F.
ti=0; % tiempo inicial
A=1; % amplitud máxima
f0=5; %frecuencia fdtal
fs=100;
step=1/fs; % periodo de muestreo
%Generar 3 periodos de la señal
tf=3/f0;
t1=ti:step:tf-step;
xt1=A*cos(2*pi*f0*t1);
figure
plot(xt1,'r')
n=0:length(t1)-1;
F0=f0/fs; %Frecuencia digital
fprintf('Frecuencia digital, Fo = %f\n',F0);
xn1=A*cos(2*pi*F0*n);
hold on %para encimar ambas gráficas
stem(xn1), grid on
pause
Parte 2: Efecto del número de puntos con longitud fija de x[n]. Defina tres valores de N. Posteriormente obtenga la transformada de x[n] para cada uno de los tres valores de N definidos. La función abs() determina la magnitud de la transformada.
N1 = 64;
N2 = 128;
N3 = 256;
X1 = abs(fft(xn1,N1));
X2 = abs(fft(xn1,N2));
X3 = abs(fft(xn1,N3));
La escala de frecuencia comienza en 0 y se extiende hasta N – 1 para una FFT de N puntos. A continuación normalice la escala de frecuencia de forma que se extienda de 0 a [pic 11].
%Frecuencia normalizada, F
F1 = [0 : N1 - 1]/N1;
F2 = [0 : N2 - 1]/N2;
F3 = [0 : N3 - 1]/N3;
Emplee subplot () para visualizar cada una de las transformadas.
figure
subplot(3,1,1)
plot(F1,X1,'-x'),title('N = 64'),axis([0 1 0 30]), grid on
...