Escolar Documentos
Profissional Documentos
Cultura Documentos
0.01
>> figure(2)
>> plot(w*Fs/(2*pi), abs(H));
>> sf1= filter(b,a,s);
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
>>
>>
>>
>>
>>
>>
>>
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
figure(3)
plot(t,sf1);
xlabel('tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
S1= fft(s,513);
SF1= fft(sf1,513);
w=(0:255/256*(Fs/2));
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(4)
>> plot(w(1:512),abs([S1(1:256),SF1(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
>>
>>
>>
>>
>>
100
200
300
400
FRECUENCIA(Hz)
500
600
[b,a]=ellip(4,0.1,40,[1000 2000]*2/Fs);
[H,w]= freqz(b,a,512);
figure(5);
plot(w*Fs/(2*pi),abs(H));
sf2= filter(b,a,s);
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
>>
>>
>>
>>
>>
>>
>>
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
figure(6)
plot(t,sf2)
xlabel('tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
S2= fft(s,513);
SF2= fft(sf2,513);
w=(0:255/256*(Fs/2));
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(7)
>> plot(w(1:512),abs([S2(1:256),SF2(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
100
200
300
400
FRECUENCIA (HZ)
500
600
>>
>>
>>
>>
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
figure(9)
plot(t,sf3)
xlabel('tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(10)
>> plot(w(1:512),abs([S3(1:256),SF3(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
100
200
300
400
FRECUENCIA(HZ)
500
600
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
>>
>>
>>
>>
>>
>>
>>
figure(12)
plot(t,sf4)
xlabel('tiempo(seg)');ylabel('forma de onda vs. tiempo')
axis([0 0.01 -4 4]);
S4= fft(s, 513);
SF4= fft(sf4,513);
w= (0:255/256*(Fs/2));
4
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(13)
>> plot(w(1:512),abs([S4(1:256),SF4(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
>>
>>
>>
>>
>>
>>
>>
>>
100
200
300
400
FRECUENCIA(HZ)
500
600
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(15)
>> plot(w(1:512),abs([S5(1:256),ZF5(1:256)]));
>> xlabel('FRECUENCIA(Hz)'), ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
100
200
300
400
FRECUENCIA(HZ)
500
600
f=[0 .4 .4 .6 .6 1];
H=[0 0 1 1 0 0];
fs=1000; %assumed sampling rate
fhz=f*fs/2;
figure(1)
plot(fhz,H),title('Desired Frequency Response')
xlabel('Frequency (Hz)'); ylabel('Magnitude')
axis([0 500 0 2])
Magnitude
1.2
1
0.8
0.6
0.4
0.2
0
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
50
100
150
200
250
300
Frequency (Hz)
350
400
450
500
450
500
N=8;
[Bh,Ah]=yulewalk(N,f,H);
n=256;
hh=freqz(Bh,Ah,n);
hy=abs(hh);
ff=fs/(2*n)*(0:n-1);
figure(2)
plot(fhz,H,ff,hy)
title('Actual vs. Desired Frequency Response')
xlabel('Frequency (Hz)'); ylabel('Magnitude')
Actual vs. Desired Frequency Response
1.4
1.2
Magnitude
0.8
0.6
0.4
0.2
>>
>>
>>
>>
>>
>>
>>
50
100
150
200
250
300
Frequency (Hz)
350
400
1.2
0.8
0.6
0.4
0.2
50
100
150
200
250
300
350
400
450
500
figure(4)
plot(ff(2:n),20*log10(h(2:n,:)))
title('Yule Walk, Butterworth and Chebyshev filters')
xlabel('Frequency (Hz)'); ylabel('Magnitude in dB')
Yule Walk, Butterworth and Chebyshev filters
50
Magnitude in dB
>>
>>
>>
>>
-50
-100
-150
-200
50
100
150
200
250
300
Frequency (Hz)
350
400
450
500
0.01
>> figure(2)
>> plot(w*Fs/(2*pi), abs(H));
>> sf1= filter(b,a,s);
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
>>
>>
>>
>>
>>
>>
>>
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
figure(3)
plot(t,sf1);
xlabel('tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
S1= fft(s,513);
SF1= fft(sf1,513);
w=(0:255/256*(Fs/2));
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(4)
>> plot(w(1:512),abs([S1(1:256),SF1(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
>>
>>
>>
>>
>>
100
200
300
400
FRECUENCIA(Hz)
500
600
[b,a]=ellip(4,0.1,40,[1000 2000]*2/Fs);
[H,w]= freqz(b,a,512);
figure(5);
plot(w*Fs/(2*pi),abs(H));
sf2= filter(b,a,s);
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
>>
>>
>>
>>
>>
>>
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
figure(6)
plot(t,sf2)
xlabel('tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
S2= fft(s,513);
SF2= fft(sf2,513);
>> w=(0:255/256*(Fs/2));
4
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(7)
>> plot(w(1:512),abs([S2(1:256),SF2(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
>>
>>
>>
>>
>>
100
200
300
400
FRECUENCIA(Hz)
500
600
[b,a]=ellip(4,0.1,40,[2000 3000]*2/Fs);
[H,w]= freqz(b,a,512);
figure(8);
plot(w*Fs/(2*pi),abs(H));
sf3= filter(b,a,s);
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
>>
>>
>>
>>
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
figure(9)
plot(t,sf3)
xlabel('tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(10)
>> plot(w(1:512),abs([S3(1:256),SF3(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
>>
>>
>>
>>
>>
100
200
300
400
FRECUENCIA(Hz)
500
600
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
>>
>>
>>
>>
>>
>>
>>
figure(12)
plot(t,sf4)
xlabel('tiempo(seg)');ylabel('forma de onda vs. tiempo')
axis([0 0.01 -4 4]);
S4= fft(s, 513);
SF4= fft(sf4,513);
w= (0:255/256*(Fs/2));
4
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(13)
>> plot(w(1:512),abs([S4(1:256),SF4(1:256)]));
>> xlabel('FRECUENCIA(Hz)');ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
>>
>>
>>
>>
>>
>>
>>
>>
100
200
300
400
FRECUENCIA(Hz)
500
600
4
3
2
1
0
-1
-2
-3
-4
0.01
>> figure(15)
>> plot(w(1:512),abs([S5(1:256),ZF5(1:256)]));
>> xlabel('FRECUENCIA(Hz)'), ylabel('MAG. DE TRANSF. DE FOURIER')
300
250
200
150
100
50
100
200
300
400
FRECUENCIA(Hz)
500
600
CUESTIONARIO FINAL________________________________
1. Explique en detalle la transformada discreta de Fourier DFT.
Desarrolle 5 ejemplos de la transformada de funciones discretas
y su aplicacin en el procesamiento de seales.
Antes de definir la DFT, analizaremos
FOURIER EN TIEMPO DISCRETO (DTFT).
primero la TRANSFORMADA DE
discretas
x[n]
y[n] = x[n] h[ n] =
h[n],
k =
definimos
la
convolucin
[k ]hS [n k ]
x[ n] = exp( j.2..n. f .t S ) , la
x( f
X S [k ] =
1
T
x p (t ) = X S [k ] exp( j.2..k . f 0 .t )
k =
forma.
xS [ k ] =
X p( f
1
SF
X ( f ). exp( j.2..k . f .t ) df
p
SF
las
series
de
Fourier
la
DTFT
se
de
Fourier
tienen
sus
X( f
) = [k ] exp( j.2..k . f .t S ) =1
k =
discretas
de
Fourier
la
Podemos interpretar los resultados del DFT de una secuencia X S[n] desde
dos puntos de vista:
Como los coeficientes espectrales (series de Fourier) de una
seal peridica discreta cuyos muestreos coinciden con la secuencia
xs[n].
Como el espectro de una seal aperidica discreta cuyos
muestreos corresponden a la secuencia xs[n].
La DFT es una aproximacin al espectro de la seal analgica original.
Su magnitud se ve influenciada por el intervalo de muestreo, mientras
que su fase depende de los instantes de muestreo.
Para hacer la DFT a partir de una seal x(t), muestreada durante D
segundos, con periodo de muestreo tS:
Elegimos el intervalo de muestreo tS de forma que se cumpla el
Teorema del muestreo.
Creamos la expresin peridica (xp(t)) de x(t) con periodo D.
Tomamos N muestras de xP(t) empezando en t=0.
Si hay discontinuidades, los valores de muestreo los tomaremos
en el punto medio de la seal.
D=1ms
N=8
tenemos
la
x[n] ={0,0.7071,1,0.7071,0,0.7071,1,0.7071}
1 Ejemplo
Fs=1000;
t=(1:800)/Fs;
f1=cos(2*pi*t*100);f2=cos(2*pi*t*200);f3=cos(2*pi*t*300);
f4=cos(2*pi*t*400);
s=f1+f2+f3+f4;
figure(1)
plot(t,s)
axis([0 0.1 -4 4])
[b,a]=ellip(4,0.1,40,[10 100]*2/Fs);
[H,w]=freqz(b,a,256);
4
3
2
1
0
-1
-2
-3
-4
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
0.1
2 ejemplo
Fs=1000;
t=(1:100)/Fs;
f1=cos(2*pi*t*5000);f2=cos(2*pi*t*3000);f3=cos(2*pi*t*7000);
f4=cos(2*pi*t*8000);
s=f1+f2+f3+f4;
figure(1)
plot(t,sf1)
xlabel('Tiempo(seg)')
ylabel('FORMA DE ONDA VS TIEMPO')
axis([0 0.1 -4 4]);
S1=fft(s,513);
SF1=fft(sf1,512);
w=(0:255/256*(Fs/2));
4
3
2
1
0
-1
-2
-3
-4
0.01
0.02
0.03
0.07
0.08
0.09
0.1
3 ejemplo
Fs=10000;
t=(1:5000)/Fs;
f1=sin(2*pi*t*500);f2=sin(2*pi*t*3000);f3=sin(2*pi*t*7000);
f4=sin(2*pi*t*8000);
s=f1+f2+f3+f4;
figure(1)
sf3=filter(b,a,s);
plot(t,sf3)
xlabel('Tiempo(seg)')
ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 5]);
S3=fft(s,513);
SF3=fft(sf3,513);
w=(0:255/256*(Fs/4));
5
4
3
2
1
0
-1
-2
-3
-4
0.01
4 ejemplo
Fs=10000;
t=(1:5000)/Fs;
f1=sin(2*pi*t*500);f2=sin(2*pi*t*3000);f3=sin(2*pi*t*7000);
f4=sin(2*pi*t*8000);
s=f1+f2+f3+f4;
figure(1)
sf4=filter(b,a,s);
plot(t,sf4)
xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -2 2]);
S4=fft(s,513);
SF4=fft(sf4,513);
w=(0:255/256*(Fs/2));
1.5
1
0.5
0
-0.5
-1
-1.5
-2
0.01
5 ejemplo
Fs=10000;
t=(1:5000)/Fs;
f1=cos(2*pi*t*500);f2=cos(2*pi*t*3000);f3=cos(2*pi*t*7000);
f4=cos(2*pi*t*800);
s=f1+f2+f3+f4;
figure(1)
sf4=filter(b,a,s);
plot(t,sf4)
xlabel('Tiempo(seg)');ylabel('FORMA DE ONDA VS. TIEMPO')
axis([0 0.01 -4 4]);
S4=fft(s,513);
SF4=fft(sf4,513);
w=(0:255/256*(Fs/2));
4
3
2
1
0
-1
-2
-3
-4
0.01
y n = bK x( n k )
K =0
de
la
N 1
y n = hK x n k
K =0
H ( z ) = hK z k = h0 + h1 z 1 + + hN 1 z ( N 1)
K =0
i =0
j =0
y[n] = bi x[ n i ] a j y[ n j ]
El orden del filtro est dado por el mximo entre P y Q. Una de las
posibles estructuras para un filtro IIR es la siguiente:
y[n] =
b z
i =0
Q
a
j =0
z i
OBSERVACIONES
La gua presento una gran cantidad de errores, presentes en la primera
parte.
Modificacin del Fs=8000
El intervalo es muy reducido para evaluar todas las grficas. Se
estableci un Fs=10000. Al mismo tiempo se vario el intervalo de
t=(1:10000)/Fs.
[b,a]= ellip(4,0.1,40 [100 1000]*2/Fs;
Funcin mal definida. Su sintaxis correcta es:
[b,a]= ellip(4,0.1,40,[100 1000]*2/Fs);
Este error se repite en los 4 canales.
plot(w,abs([S1(1:256)SF1(1:256)]));
Primero debemos establecer un intervalo para w. Luego la correcta
sintaxis sera:
plot(w(1:512),abs([S1(1:256),SF1(1:256)]));
Este error se repite en los 4 canales.
plot(t;sf1)
Error de sintaxis, la correcta sera:
plot(t,sf1)
Este error se repite en los 4 canales.