Practica 3 Transformada de Fourier en Tiempo Discreto
Short Description
Download Practica 3 Transformada de Fourier en Tiempo Discreto...
Description
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,
[ ]=
1 2
( )
La DTFT X(w) toma valores complejos y es una función continua y periódica en w. El periodo es 2π, representándose normalmente en el intervalo [-π,
π]. Al evaluar numéricamen-
te la DTFT se presentan dos problemas: a) La secuencia x[n] puede tener un número 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 está 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 [-π,
π] con incrementos de 2π/N, es decir se consideran el conjunto discreto de frecuencias wk = 2 π k/N con k=0,1,...N-1. Si se elige N lo suficientemente grande los valores X[2 π k/N] se aproximan a la función X(w) continua origen del muestreo. Al muestrear la DTFT de esta manera se obtiene la expresión correspondiente a la trasformada discreta de Fourier DFT que en MATLAB se implementa mediante el algoritmo conocido como FFT (Fast Fourier Transform).
(
)= ( )=
[ ]
(
/ )
,
= 0,1, … ,
− 1.
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 cómo 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 [-,
].
Ejercicios del apartado 1: 3.1.1(*) Represente la dtft en módulo y fase de la señal x[n]= 0.88n*exp(j(2π/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(2π/5)n)
y
x2[n]=cos((2π/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) Calcula la FFT de N puntos del vector x. El resultado X es un vector de números complejos ordenados con índice k=0,1,...N-1. Si no se da el segundo parámetro se considera como N la longitud del vector. Para que el algoritmo sea eficiente N debe ser potencia de 2. Si la longitud de x es menor que N, el vector se rellena con ceros. Si es mayor el vector es truncado. 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 qué valor de N son 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.
3.2.4(*) Calcule la inversa de la función X(w) utilizando la función ifft(X) para recuperar la señal en el dominio de tiempos. 3.2.5 Suponga que se desea estudiar el contenido en frecuencias usando la FFT, de la siguiente señal. x(t) = 0.0472 cos(2(200)t + 1.5077) + 0.1362 cos(2(400)t + 1.8769) + 0.4884 cos(2(500)t - 0.1852) + 0.2942 cos(2(1600)t -1.4488) + 0.1223 cos(2(1700)t). ¿Cuál es su frecuencia fundamental? ¿Qué 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 función de w. 3.2.6 Calcule la inversa de la función X(w) utilizando la función 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(2n/5)
Limitar la secuencia de entrada al intervalo 0, L-1 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
View more...
Comments