Академический Документы
Профессиональный Документы
Культура Документы
I. OBJETIVOS
Realizar el anlisis espectral y frecuencial de seales
La transformada de Fourier X(w) de una seal en tiempo discreto x[n] se calcula mediante la
expresin
y su inversa es,
La DTFT X(w) toma valores complejos y es una funcin continua y peridica en w. El periodo es
2, representndose normalmente en el intervalo [ -,]. Al evaluar numricamente la DTFT se
presentan dos problemas:
La secuencia x[n] puede tener un nmero infinito de puntos: 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.
X(w) es una funcin continua de la frecuencia w y debe ser discretizada para trabajar en un
procesador digital: consideraremos que X(w) se evala en un nmero N finito de frecuencias
equidistantes en el intervalo [-,] con incrementos de 2/N, es decir se consideran el
conjunto discreto de frecuencias wk = 2k/N con k=0,1,...N-1. Si se elige N lo suficientemente
grande los valores X[2k/N] se aproximan a la funcin X(w) continua que tuvo que ser
muestreada. Al muestrear la DTFT de esta manera se obtiene la expresin correspondiente a la
trasformada discreta de Fourier DFT que en MATLAB se implementa mediante el algoritmo
conocido como FFT (Fast Fourier Transform). Se debe elegir N tal que N>L.
III. ACTIVIDADES
1. Para:
a = {1, 3, -2, 2, 4, 3}
b = {1, 5, 1, 4, 4, 2}
c = {1, 3, -2, 0, 0, 0, 0, 0}
d = {1, 5, 1, 0, 0, 0, 0, 0}
Encontrar la TDF
a=[1,3,-2,2,4,3];
na=length(a);
b=[1,5,1,4,4,2];
nb=length(b);
c=[1,3,-2,0,0,0,0,0];
nc=length(c);
d=[1,5,1,0,0,0,0,0];
nd=length(d);
A=fft(a);
B=fft(b);
C=fft(c);
D=fft(d);
wa=2*pi/na*(0:na-1);
wb=2*pi/nb*(0:nb-1);
wc=2*pi/nb*(0:nc-1);
wd=2*pi/nb*(0:nd-1);
subplot(1,3,1)
stem((0:na-1),a)
subplot(1,3,2)
stem(wa,A)
subplot(1,3,3)
stem((0:na-1),ifft(A))
stem((0:nb-1),b)
subplot(4,3,5)
stem(wb,B)
subplot(4,3,6)
stem((0:nb-1),ifft(B))
subplot(4,3,7)
stem((0:nc-1),c)
subplot(4,3,8)
stem(wc,C)
subplot(4,3,9)
stem((0:nc-1),ifft(C))
subplot(4,3,10)
stem((0:nd-1),d)
subplot(4,3,11)
stem(wd,D)
subplot(4,3,12)
stem((0:nd-1),ifft(D))
5 20 5
0 0 0
-5 -20 -5
0 5 0 5 10 0 5
5 20 5
0 -20 0
0 5 0 5 10 0 5
5 5 5
0 0 0
-5 -5 -5
0 5 10 0 5 10 0 5 10
5 10 5
0 0
0 -10 -5
0 5 10 0 5 10 0 5 10
>> k1=2;k2=3;
>> y=k1*a+k2*b
y =
5 21 -1 16 20 12
>> Y=fft(y)
Y =
Columns 1 through 5
Column 6
-4.0000 -10.3923i
>> Y2=k1*A+k2*B
Y2 =
Columns 1 through 5
Column 6
-4.0000 -10.3923i
>> subplot(1,2,1);stem(Y);title('Transformada de
fourier');subplot(1,2,2);stem(Y2);title('Linealidad')
20 20
10 10
0 0
-10 -10
-20 -20
-30 -30
0 2 4 6 0 2 4 6
10 10
5 5
0 0
-5 -5
-10 -10
0 5 10 15 0 2 4 6 8
DTFT
4. Crear la funcin dtft.m que calcula la transformada de Fourier en tiempo discreto, comente cada
lnea de programa
function [H,W]=dtft(x,N)
% x: secuencia de L muestras, de la muestra L+1 a infinito la muestra toma valor 0.
% N: nmero 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);
L=length(x);
if(L>N)
error(' DTFT: numero de muestras L, debe ser inferior al numero de frec a calcular N')
end
W=2*pi/N*(0:N-1);
medio=ceil(N/2)+1
W(medio:N)=W(medio:N)-2*pi;
W=fftshift(W);
H=fftshift(fft(x,N));
FFT
>> X=fft(x,N)
>> x = ifft(X)
Calcula la transformada de Fourier inversa del vector X. Tambin se puede especificar el nmero 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.
30
25
20
15
10
0
0 10 20 30 40 50 60 70
L=32;
20
18
16
14
12
10
0
0 5 10 15 20 25 30 35
L=64
35
30
25
20
15
10
0
0 10 20 30 40 50 60 70
L=128
50
45
40
35
30
25
20
15
10
0
0 20 40 60 80 100 120 140
Enventanado
Limitar la secuencia de entrada al intervalo 0, L-l es equivalente a multiplicar la seal de entrada x[n]
por una ventana rectangular w(n) de longitud L= 40 donde
15. Represente el espectro de las seales w[n], x[n] y del producto y[n]=w[n]*x[n]. Utilice la funcin
fft calculando un nmero suficiente de valores (N=128) para explicar los resultados anteriores.
n=0:246;x=sin(2*pi*n/5);
w=[ones(1,128) zeros(1,247-128)];
xw=x.*w;
subplot(3,1,1);stem(fft(x),'b');title('Espectro
x[n]');subplot(3,1,2);stem(fft(w),'m');title('Espectro
w[n]');subplot(3,1,3);stem(fft(xw),'k');title('Espectro seal y[n]')
ParaN=40
Espectro x[n]
40
20
-20
-40
0 50 100 150 200 250
Espectro w[n]
40
20
-20
-40
0 50 100 150 200 250
10
-10
-20
0 50 100 150 200 250
Para N=128
Espectro x[n]
40
20
-20
-40
0 50 100 150 200 250
Espectro w[n]
100
50
-50
-100
0 50 100 150 200 250
-50
0 50 100 150 200 250
Para N=256
Espectro x[n]
200
-200
0 50 100 150 200 250 300 350 400 450 500
Espectro w[n]
200
-200
0 50 100 150 200 250 300 350 400 450 500
Espectro seal y[n]
200
-200
0 50 100 150 200 250 300 350 400 450 500
16. Explique, a partir de los espectros anteriores, la relacin del valor mximo obtenido en el eje de
ordenadas al representar |Y(w)| con los parmetros L y N.
Leakage
17. Tomar N= 8 muestras de 0 < t < 1 ms. Cul es la frecuencia de muestreo Fs? Representar la
seal en el tiempo y su espectro de frecuencias
>> Ts=0.001/8
Ts =
1.2500e-04
>> Fs=1/Ts
Fs =
8000
Seal x en tiempo
1
0.5
-0.5
-1
0 10 20 30 40 50 60
Espectro seal X
10
-5
-10
0 10 20 30 40 50 60
18. Tomar N= 24 muestras considerando el intervalo 0 < t < 1.5 ms. Representar la seal en el tiempo
y su espectro de frecuencias
Seal x en tiempo
1
0.5
-0.5
-1
0 10 20 30 40 50 60
Espectro seal X
20
10
-10
-20
0 10 20 30 40 50 60
19. Tomar N= 64 muestras considerando el intervalo 0 < t < 4 ms. Representar la seal en el tiempo y
su espectro de frecuencias
>> Ts=0.004/64
Ts =
6.2500e-05
>> Fs=1/Ts
Fs =
16000
Seal x en tiempo
1
0.5
-0.5
-1
0 10 20 30 40 50 60
Espectro seal X
20
10
-10
-20
0 10 20 30 40 50 60
20. Explicar que valores de tamao de la ventana son los adecuados para reducir el efecto de
"Leakage"
El valor del tamao de la ventana para evitar el leakage es de 4 ms ya que reduce las
frecuencias que aparecen a continuacin del espectro.
CUESTIONARIO FINAL
CONCLUSIONES