Práctica 3: -- Transformada de Fourier en tiempo discreto
 

DTFT ·····>Transformada de Fourier en Tiempo Discreto

Introducción.

La transformada de Fourier X(w) de una señal en tiempo discreto x[n] se calcula mediante la expresión

y su inversa es,

La DTFT X(w) toma valores complejos y es una función continua y periódica en w. El periodo es 2p, representándose normalmente en el intervalo [ -p,p]. Al evaluar numéricamente la DTFT se presentan dos problemas:

a) La secuencia x[n] puede tener un numero infinito de puntos
b) X(w) es una función continua de la frecuencia w y debe ser discretizada para trabajar en un procesador digital.

Para resolver el primer problema consideraremos que la secuencia de entrada esta formada por un vector de L puntos siendo 0 para los valores comprendidos entre L+ 1 e infinito.
Para el segundo, consideraremos que X(w) se evalúa en un numero N finito de frecuencias equidistantes en el intervalo [-p,p] con incrementos de 2p/N, es decir se consideran el conjunto discreto de frecuencias wk = 2pk/N con k=0,1,...N-1. Si se elige N lo suficientemente grande los valores X[2pk/N] se aproximan a la función X(w) continua origen del muestreo.
Al muestrear la DTFT de esta manera se obtiene la expresion correspondiente a la trasformada discreta de Fourier DFT que en MATLAB se implementa mediante el algoritmo conocido como FFT (Fast Fourier Transform).

Para evitar problemas de muestreo insuficiente se debe elegir N tal que N>L.

Para implementar la dtft usaremos el archivo dtft.m que se lista (si es necesario use help para averiguar como funcionan las siguientes líneas)

function [H,W]=dtft(x,N)
% uso: [H W]=dtft(x,N)
% x: muestra de longitud L, se supone que de L+1 a infinito la muestra toma valor 0.
% N: número de frecuencias a evaluar. N debe ser mayor que L.
% H: valores complejos de la DTFT
% W: vector de frecuencias correspondiente a la los valores H calculados

N=fix(N); %aproxima a entero redondeando al entero inferior
L=length(x);
if(L>N)
error(' DTFT: numero de muestras, L, debe ser inferior al numero de frec a calcular N')
end
%
% wk=2*pi*k/N con k=0,1,2, ... ,N-1
W=2*pi/N*(0:N-1);
%
medio=ceil(N/2)+1 %aproxima a entero redondeando al entero inferior
%
% evaluamos la DTFT de -pi a pi
%
W(medio:N)=W(medio:N)-2*pi;
W=fftshift(W);
H=fftshift(fft(x,N));

En la función anterior se realizó un desplazamiento (fftshift) en frecuencias con objeto de que los resultados de w se den en el intervalo [ -p,p].

Ejercicios del apartado 1:

3.l.1(*).-  Represente la dtft en módulo y fase de la señal x[n]= 0.88n*exp ( j(2p/5)n), con  L= 40 y N=128
3.1.2.- Compare los resultados y explique que sucede si se toman valores de N=40, N=64 y N=1024.
3.1.3(*).- Con N = 128 cambie el valor de L, por ejemplo L=15 y L=128 y comente los resultados
3.1.4.- Repita los apartados anteriores para la señal x1[n]= exp (j(2p/5)n) y x2[n]=cos((2p/5)n). Explique las diferencias con los apartados anteriores.



  DFT y FFT····>Algoritmto FFT para calcular la Transformada Discreta de Fourier

El algoritmo FFT es una manera eficiente de calcular la DFT. En MATLAB la función es

X=fft(x,N)

x = ifft(X)

Calcula la transformada de Fourier inversa del vector X. También se puede especificar el número de puntos N con ifft(X,N)

X=fftshift(x)

Reordena el vector X en orden creciente de frecuencias de tal manera que la componente continua queda centrada.

Ejercicios del apartado 2:

3.2.1(*).- Sea la secuencia x[n] = cos(0.25pn) + cos(0.5pn)+ cos(0.52pn). Se pide Calcular la DFT utilizando la función matlab fft(x,N) con N=L= longitud de las secuencia x[n] y representar su módulo para diferentes valores de número de muestras L. Pruebe por ejemplo los siguientes valores N=16, N=32, N=64, N=128. Indique a partir de que valor de Nson distinguibles las tres frecuencias de la señal.

3.2.2 ¿Cómo están relacionados los valores de L, N y la resolución en frecuencias?

3.2.3 Compruebe que sucede en el espectro de la señal si la una secuencia de L= 100 muestras de x[n] se rellena con ceros hasta N=128.

5.2.4(*).- Calcule la inversa de la funcion X(w) utilizando la funcion ifft (X) para recuperar la señal en el dominio de tiempos..

3.2.5.- Suponga que se desea estudiar el contenido en fecuencias usando la FFT, de la siguiente señal.

x(t) = 0.0472 cos(2p(200)t + 1.5077) + 0.1362 cos(2p(400)t + 1.8769) + 0.4884 cos(2p(500)t - 0.1852) +

+0.2942 cos(2p(1600)t -1.4488) + 0.1223 cos(2p(1700)t).

¿Cual es su frecuencia fundamental?¿ Que frecuencia de muestreo debe usarse? Estime un valor adecuado de N para obtener suficiente precisión en frecuencias. Represente |X(w)| y la fase de X(w) en funcion de w.

3.2.6 Calcule la inversa de la funcion X(w) utilizando la funcion ifft (X) para recuperar la señal en el dominio de tiempos.


Enventanado, "Leakage" y resolución espectral.

Enventanado

Sea la secuencia x[n] = sen(2pn/5)

Limitar la secuencia de entrada al intervalo 0, L-l es equivalente a multiplicar la señal de entrada x[n] por una ventana rectangular w(n) de longitud L= 40 donde

    w[n] = l     para 0 <=  n < L-l
    w[n] = 0   para el resto

Ejercicios del apartado 3:

3.3.1.(*)-Represente el espectro de las señales w[n], x[n] y del producto y[n]=w[n]*x[n]. Utilice la función fft calculando un numero suficiente de valores ( N=128) para explicar los resultados anteriores.

3.3.2. Explique, a partir de los espectros anteriores, la relación del valor máximo obtenido en el eje de ordenadas al representar |Y(w)| con los parámetros L y N.

Leakage

Una consecuencia del enventanado es que el espectro de la señal no se localiza en una única frecuencia. Es decir si tenemos una señal como x(t) = sen wot que solo debería tener una frecuencia fundamental w=wo, al calcular su FFT tomando una ventana cuadrada, apareceran componentes adicionales la frecuencia w y su espectro se extiende por todo el intervalo de frecuencias. Este efecto se conoce como derrame, o bien con el termino ingles "Leakage"

Para comprender este efecto y estimar un valor adecuado para el tamaño de la ventana se pide realizar las siguientes representaciones y estudiar los comportamientos que se presentas en los siguientes casos.

Ejercicios :

Para todo el ejercicio se considera una señal continua infinita dada por x(t) = sen (2pft) con f = 1KHz. El efecto de aplicar una ventana cuadrada es equivalente a reducir el intervalo de muestreo en 0 < t < tamaño de ventana. Para todos los casos se pide calular x[n], X(w)=DTFT(x[n]), y X[k]=DFT(x[k]), Representar |X(w)| y |X[k]|.

3.3.3.(*)- Suponga que toma N= 8 muestras considerando el intervalo 0 < t < 1 ms. ¿Cual es la frecuencia de muestreo Fs?

3.3.4.(*).- Suponga que toma N= 8 muestras considerando el intervalo 0 < t < 0.5 ms. ¿Cual es la frecuencia de muestreo Fs?

3.3.5.- Suponga que toma N= 24 muestras considerando el intervalo 0 < t < 1.5 ms.

3.3.6.- Suponga que toma N= 64 muestras considerando el intervalo 0 < t < 4 ms.

3.3.7.(*)- Explique que valores de tamaño de la ventana son los adecuados para reducir el efecto de "Leakage"

Resolución espectral

El enventanado reduce la resolución espectral (diferencia entre la frecuencia de dos señales para que pueden ser distinguidas).
Para ello considerar que la señal de entrada viene dada por

3.3.8.- Representar la dtft de esta señal para N=128 y para L=25, 50 y 100. ¿Que relación hay entre L y la resolución en frecuencia.?

Con el fin de reducir el derrame es posible elegir una ventana w(n) cuya dtft W(w) tenga lobulos laterales más pequeños, pero esto provoca un aumento en la anchura del lobulo principal, lo que provoca una disminución en la resolución espectral.

3.3.9.-  Comprobar este efecto para la señal x[n] anterior usando una ventana de Hamming definida por

w(n) = 1/2(1-cos(2pn/(L-l))            para 0<= n <L-l
w(n) = 0                                         en el resto

3.3.10.- Comparar la dfft de una ventana rectangular y de una ventana de Hamming usando el mismo valor de L=50

 


Analizador de Espectros.

Un analizador de espectro es un sistema que permite obtener las freccuencias que estan presentes en una señal discreta.

El sistema mas simple que nos permite verificar si una señal tiene una componente con frecuencia wl sería

donde se multiplica la señal de entrada por e-jw1n para desplazar la componente con frecuencia w=w1 al origen de frecuencias w=0 y al aplicar el filtro pasa bajas se obtendrá la contribución de la componente de la señal con w= w1.

Repitiendo este proceso para cada frecuencia w= wk, se obtendría el espectro del sistema.

Un sistema como el descrito adolece de dos grandes inconvenientes:

No obstante tiene su utilidad si se pretende conocer si determinadas frecuencias están presentes en la señal y solo interesan la contribucion de estas componentes.

Para señales periodicas de periodo N el FPBJ puede sustiturise simplemente por un acumulador que suma L puntos

En el caso N=L el comportamiento de este sistema es un filtro pasa baja ideal.

el sistema anterior tiene h[n]= [1, 1, 1, ...1] con L puntos distintos de 0

y su H(w) para L=10 es

 

Ejercicios del apartado 4:

Considere la señal discreta con periodo N=10.

x[n] = 8 + 10 sen (2p/10)n

3.4.1.- Represente la señal x[n] en un rango adecuado de valores para verificar que es periódica

3.4.2.- Utilizando el sitema descito obentenga los componentes X[k]. Recuerde que el caso estudiado en el ejemplo corresponde con N=L=10.

¿Qué componentes de frecuencia son distintos de cero? ¿Qué valores toman y por qué?

3.4.3.- Compare los resultados con los obtenidos mediante la fft

3.4.4.- Conocido el espectro exacto de x[n] y del acumulador empleado, explique razonadamente el funcionamiento del sistema. ¿ Por qué el acumulador se puede utilizar como FPBJ?. Represente en el dominio de frecuencias los diferentes espectros que resultan después de aplicar el desplazamiento en frecuencias y su posterior filtrado.

 


Página mantenida por: Francisco.J. Gómez Arribas

Fecha de última actualización: Abril 2004