Professional Documents
Culture Documents
0
-8 -6 -4 -2 0 2 4 6 8
DFT
• Resulta que, bajo ciertas condiciones, la DFT
es igual a la DTFT con muestras equidistantes.
• Suponga que XP[k] es el punto P de la DFT de
x[n]. Si x[n] no es cero sobre el dominio
0≤n<M, entonces XP[k] es igual a X(ω) en
intervalos igualmente espaciados de ω.
XP[k]=X(2πk/P), k=0,…,P−1
DFT
• La función de MATLAB que permite calcular la
DFT es fft.
• Calculando la fft del pulso rectangular
tenemos:
• x = ones(1, M); X = fft(x)
• X=80000000
• Este resultado de un valor igual a 8 y luego
varios ceros puede confundirnos.
DFT
• Cuando combinamos este resultado con el de la
DTFT de la señal pulso obtenemos:
P = 8;
w_k = (0:P-1) * (2*pi/P);
X = fft(x);
plot(w, abs(X_dtft))
hold on
plot(w_k, abs(X), 'o')
hold off
DFT de una señal pulsante
8
0
-8 -6 -4 -2 0 2 4 6 8
DFT de una señal pulsante
• Ahora puede ver que los siete ceros en la
salida de fft corresponden a los siete lugares
(en cada período) donde la DTFT es igual a
cero.
• Puede obtenerse más muestras de la DTFT
simplemente aumentando la P.
• Una forma de hacerlo es con el rellenado de
ceros (zero padding).
DFT de una señal pulsante
x16 = [x, zeros(1, 8)];
P = 16;
X16 = fft(x16);
w_k = (0:P-1) * (2*pi/P);
X = fft(x);
plot(w, abs(X_dtft))
hold on
plot(w_k, abs(X16), 'o')
hold off
DFT de una señal pulsante
8
0
-8 -6 -4 -2 0 2 4 6 8
DFT con un incremento en el número
de muestras
P = 50;
x = ones(1, M);
Xp = fft(x, P);
w_k = (0:P-1) * (2*pi/P);
X = fft(x);
plot(w, abs(X_dtft))
hold on
plot(w_k, abs(Xp), 'o')
hold off
DFT con un incremento en el número
de muestras
8
0
-8 -6 -4 -2 0 2 4 6 8
Aplicación de la DFT
• Un uso común de las transformadas de
Fourier es encontrar los componentes de
frecuencia de una señal afectada por una
señal de ruido. Considere datos muestreados
a 1000 Hz. Forme una señal que contenga una
sinusoide de 50 Hz de amplitud 0.7 y 120 Hz
sinusoidal de amplitud 1 y sumada con un
ruido aleatorio de media cero.
Aplicación de la DFT
Señal corrompida por ruido aleatorio gaussiano
8
-2
-4
-6
0 5 10 15 20 25 30 35 40 45 50
tiempo (milisegundos)
Aplicación de la DFT
• NFFT = 2^nextpow2(L);
• % Next power of 2 from length of y
• Y = fft(y,NFFT)/L;
• f = Fs/2*linspace(0,1,NFFT/2+1);
• % Plot single-sided amplitude spectrum.
• plot(f,2*abs(Y(1:NFFT/2+1)))
• title('Single-Sided Amplitude Spectrum of y(t)')
• xlabel('Frequency (Hz)')
• ylabel('|Y(f)|')