Você está na página 1de 23

PRACTICA N3

DISEO DE FILTROS Y ECUALIZADOR DIGITAL


1. DISEAR UN ECUALIZADOR DIGITAL USANDO EL COMANDO ELLIP. TAMBIEN
GRAFICAMOS LAS ONDAS EN EL DOMINIO DEL TIEMPO Y SU RESPECTIVA
TRASFORMADA DE FOURIER.
>> Fs=10000;
>> t=(1:10000)/Fs;
>> f1=sin(2*pi*t*500); f2= sin(2*pi*t*1500); f3=sin(2*pi*t*3000);
f4=sin(2*pi*t*4000);
>> s=f1+f2+f3+f4;
>> figure(1)
>> plot(t,s)
>> axis([0 0.01 -4 4]);
>> [b,a]= ellip(4,0.1,40,[100 1000]*2/Fs);
>> [H w]=freqz(b,a,512);
4
3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009

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));

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


tiempo(seg)

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

MAG. DE TRANSF. DE FOURIER

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));

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


Tiempo(seg)

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

MAG. DE TRANSF. DE FOURIER

250

200

150

100

50

100

200

300
400
FRECUENCIA (HZ)

500

600

>> [b,a]=ellip(4,0.1,40,[2500 3500]*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]);

>> S3= fft(s,513);


>> SF3= fft(sf3,513);
>> w=(0:255/256*(Fs/2));
4

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


Tiempo(seg)

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

MAG. DE TRANSF DE FOURIER

250

200

150

100

50

100

200

300
400
FRECUENCIA(HZ)

500

600

>> [b,a]= ellip(4,0.1, 40,[3500 4500]*2/Fs);


>> [H,w]= freqz(b,a,512);
>> figure(11);
>> plot(w*Fs/(2*pi),abs(H));
>> sf4= 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(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

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


Tiempo(seg)

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

MAG. DE TRANSF DE FOURIER

250

200

150

100

50

>>
>>
>>
>>
>>
>>
>>
>>

100

200

300
400
FRECUENCIA(HZ)

500

600

zf5= 0.8*sf1 + 0.5*sf2 + 0.2*sf3 + 0.4*sf4;


figure(14);
plot(t,zf5);
xlabel('tiempo(seg)');ylabel('forma de onda vs. tiempo')
axis([0 0.01 -4 4]);
S5= fft(s,513);
ZF5=fft(zf5,513);
w=(0:255/256*(Fs/2));

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


Tiempo(seg)

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

MAG. DE TRANSF DE FOURIER

250

200

150

100

50

100

200

300
400
FRECUENCIA(HZ)

500

600

2. VERIFICAR LA RESPUESTA EN FRECUENCIA DE OTROS FILTROS.


MODIFICAMOS SUS VARIABLES COMO ANCHO DE BANDA, AMPLITUD o
ATENUACIN DE LOS 4 FILTROS.
>>
>>
>>
>>
>>
>>
>>
>>

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])

Desired Frequency Response


2
1.8
1.6
1.4

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

N=4; passband=[.4 .6]; ripple=.1;


[Bb,Ab]=butter(N,passband);
[Bc,Ac]=cheby1(N,ripple,passband);
h=[abs(hh) abs(freqz(Bb,Ab,n)) abs(freqz(Bc,Ac,n))];
figure(3);
plot(ff,h)
title('Yule Walk, Butterworth and Chebyshev filters')

Yule Walk, Butterworth and Chebyshev filters


1.4

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

3. DISEAR UN ECUALIZADOR DIGITAL DE CUATRO CANALES, USANDO FILTROS


IIR, SI LA SEAL DE ENTRADA ES:

f = sin( 2..t.500) + sin( 2..t.1500) + sin( 2..t .2500) + sin( 2..t.3500)


GRAFIQUE LA ONDA EN CADA ETAPA DEL ECUALIZADOR EN EL DOMINIO DEL
TIEMPO Y EN EL DOMINIO DE LA FRECUENCIA.
>> Fs=10000;
>> t=(1:10000)/Fs;
>> f1=sin(2*pi*t*500); f2= sin(2*pi*t*1500); f3=sin(2*pi*t*2500);
f4=sin(2*pi*t*3500);
>> s=f1+f2+f3+f4;
>> figure(1)
>> plot(t,s)
>> axis([0 0.01 -4 4]);
>> [b,a]= ellip(4,0.1,40,[100 1000]*2/Fs);
>> [H w]=freqz(b,a,512);
4
3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009

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));

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


tiempo(seg)

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

MAG. DE TRANSF. DE FOURIER

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

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


tiempo(seg)

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

MAG. DE TRANSF. DE FOURIER

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]);

>> S3= fft(s,513);


>> SF3= fft(sf3,513);
>> w=(0:255/256*(Fs/2));
4

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


tiempo(seg)

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

MAG. DE TRANSF. DE FOURIER

250

200

150

100

50

>>
>>
>>
>>
>>

100

200

300
400
FRECUENCIA(Hz)

500

600

[b,a]= ellip(4,0.1, 40,[3000 4000]*2/Fs);


[H,w]= freqz(b,a,512);
figure(11);
plot(w*Fs/(2*pi),abs(H));
sf4= 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(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

forma de onda vs. tiempo

2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


tiempo(seg)

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

MAG. DE TRANSF. DE FOURIER

250

200

150

100

50

>>
>>
>>
>>
>>
>>
>>
>>

100

200

300
400
FRECUENCIA(Hz)

500

600

zf5= 0.8*sf1 + 0.5*sf2 + 0.2*sf3 + 0.4*sf4;


figure(14);
plot(t,zf5);
xlabel('tiempo(seg)');ylabel('forma de onda vs. tiempo')
axis([0 0.01 -4 4]);
S5= fft(s,513);
ZF5=fft(zf5,513);
w=(0:255/256*(Fs/2));

4
3

forma de onda vs. tiempo

2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


tiempo(seg)

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

MAG. DE TRANSF. DE FOURIER

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

La DTFT describe el espectro de seales discretas. Entonces podemos


deducir la DFT a partir de la convolucin discreta.
Sean dos seales
discreta como:

discretas

x[n]

y[n] = x[n] h[ n] =

h[n],

k =

definimos

la

convolucin

[k ]hS [n k ]

Si tenemos una seal de entrada armnica


respuesta y[n] es:

x[ n] = exp( j.2..n. f .t S ) , la

y[n ] = exp[ j.2..( n k ). f .t S .].h[k ]


k =

y[n ] =exp( j.2.. f .t S ) exp( j.2..k . f .t S ).h[k ]


k =

y[n ] = x[n ].H ( f )


H(f) es la DTFT de la seal discreta h[n]. Ntese que la funcin H(f)
es peridica, debido a que h[n] es una funcin discreta.
Se define la DTFT de una seal discreta x[n] como:

x( f

) = x[k ] exp( j.2..k . f .t S )


k =

Viendo la dualidad entre las series de Fourier y la DTFT


Tenemos una seal peridica continua xp(t). Mediante las series
de Fourier transformamos esa seal peridica continua en una funcin
aperidica y discreta (los coeficientes espectrales XS[k]).

X S [k ] =

1
T

x (t ). exp( j.2..k . f .t )dt


p

x p (t ) = X S [k ] exp( j.2..k . f 0 .t )
k =

forma.

xS [ k ] =
X p( f

De una manera dual, podemos intercambiar tiempo y frecuencia de

1
SF

X ( f ). exp( j.2..k . f .t ) df
p

SF

) = xS [n] exp( j.2..k . f .t S )


k =

Donde S F = 1 / t S . Ahora tenemos una seal aperidica discreta xS[k] y la


transformamos en una seal peridica continua (XP(f)) mediante la DTFT.
El comportamiento dual entre
manifiesta en lo siguiente:

las

series

de

Fourier

la

DTFT

se

En las series de Fourier se parte de una seal x(t), temporal,


continua y peridica (periodo T) y obtengo los coeficientes X[k], que
es una funcin de la frecuencia, aperidica y discreta con una
distancia entre dos valores consecutivos de f 0 =1 / T .
En la DTFT se parte de una seal discreta en el tiempo x[n],
con periodo de muestreo t S =1 / f S y aperidica. Se obtiene una funcin
X(f), que es una funcin continua de la frecuencia y peridica con
periodo fS.
Todas
las
propiedades
de
las
series
correspondientes equivalencias en la DTFT.

de

Fourier

tienen

sus

Ejemplo: DTFT de la secuencia x[n]=[n]:

X( f

) = [k ] exp( j.2..k . f .t S ) =1
k =

Si tenemos una secuencia x[n]={1, 0, 3, -2}, a partir de la anterior


ecuacin y aplicando la propiedad del desplazamiento:

X ( f ) =1 + 3 exp( j.4.. f .t S ) 2 exp( j.6.. f .t S )

A la hora de realizar operaciones tenemos los mismos problemas que en


las series de Fourier ya que seguimos tratando con seales continuas o
con series de datos de longitud infinita.
Y sabemos que la
electrnica nos obliga a trabajar con nmero finito de datos discretos
que adems tienen una precisin finita.
Lo que buscamos es conseguir discretizar las variables continuas y de
limitar el nmero de muestras en los dos dominios, temporal y
frecuencial.
Esto nos lleva a definir las series
Transformada Discreta de Fourier (DFT).

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.

DFT de seales peridicas


Siendo x (t ) = sin( 2ft ) , con f=1KHz,
siguiente secuencia de muestreos:

D=1ms

N=8

tenemos

la

x[n] ={0,0.7071,1,0.7071,0,0.7071,1,0.7071}

Desarrolle 5 ejemplos de la trasformada de funciones discretas y su


aplicacin en el procesamiento de seales.

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

FORMA DE ONDA VS TIEMPO

3
2
1
0
-1
-2
-3
-4

0.01

0.02

0.03

0.04 0.05 0.06


Tiempo(seg)

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

FORMA DE ONDA VS. TIEMPO

4
3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


Tiempo(seg)

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));

FORMA DE ONDA VS. TIEMPO

1.5
1
0.5
0
-0.5
-1
-1.5
-2

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


Tiempo(seg)

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

FORMA DE ONDA VS. TIEMPO

3
2
1
0
-1
-2
-3
-4

0.001 0.002 0.003 0.004 0.005 0.006 0.007 0.008 0.009


Tiempo(seg)

0.01

2. Qu es la transformada rpida de Fourier?

3. Explique sobre los fundamentos de los filtros digitales FIR y


IIR
FILTRO DIGITAL FIR FINITE IMPULSE RESPONSE (RESPUESTA AL IMPULSO
FINITA).
Es un tipo de filtro digital, si su entrada es un impulso (una delta
de Kronecker) la salida ser un nmero limitado de trminos no nulos.
Para obtener la salida slo se emplean valores de la entrada actual y

anterior. Tambin se llaman filtros digitales no recursivos. Su


expresin en el dominio discreto es:
N 1

y n = bK x( n k )
K =0

El orden del filtro est dado por N, es decir, el nmero


coeficientes. Tambin la salida puede ser expresada como
convolucin de una seal de entrada x[n] con un filtro h[n].

de
la

N 1

y n = hK x n k
K =0

La estructura de un filtro FIR por tanto es la siguiente:

La cual puede verse reflejada en la aplicacin de la transformada A:


N 1

H ( z ) = hK z k = h0 + h1 z 1 + + hN 1 z ( N 1)
K =0

Se puede ver que es la misma entrada retardada cada vez ms en el


tiempo, multiplicada por diversos coeficientes y finalmente sumada al
final. Si tenemos una respuesta de frecuencia como objetivo,
conseguiremos que la respuesta del filtro se asemeje ms a ella cuanto
ms largo sea o nmero de coeficientes tenga.
Los filtros FIR son estables puesto que slo tienen polos, es decir,
elementos en el numerador en su funcin de transferencia. Tambin
tienen la ventaja que pueden disearse para ser de fase lineal, es
decir, no introducen desfases en la seal a diferencia de los IIR o
los filtros analgicos. Por ese motivo tienen inters en audio.
Pero, tienen el inconveniente de ser ms largos al tener ms
coeficientes que los filtro IIR capaces de cumplir similares
caractersticas. Esto requiere un mayor tiempo de clculo que puede
dar problemas en aplicaciones en tiempo real, como estudios de
grabacin o conciertos en directo.
FILTRO DIGITAL IIR INFINITE IMPULSE RESPONSE (RESPUESTA AL IMPULSO
INFINITA).
Es un tipo de filtro digital que si su entrada es un impulso (una
delta de Kronecker) la salida ser un nmero ilimitado de trminos no
nulos, es decir, que nunca volver a un estado de reposo. Para obtener
la salida se emplean valores de la entrada actual y anterior y adems,
valores de salida anteriores que son almacenados en memoria y
realimentados a la entrada. Tambin se llaman filtros digitales
recursivos. Su expresin en el dominio discreto es:

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:

Se puede ver cmo la salida y(k) es introduccin de nuevo en el


sistema. La transformada Z del mismo es:
P

y[n] =

b z
i =0
Q

a
j =0

z i

Vemos que ahora tenemos un denominador, es decir, ceros adems de


polos, que son los causantes de los posibles inestabilidades que
pueden comprender la estabilidad y causalidad del sistema.
Las ventajas de los filtros IIR respecto a los FIR es que pueden
conseguir una misma respuesta empleando un nmero de coeficientes en
el filtro mucho menor, requiriendo un menor tiempo de clculo. El
inconveniente es, adems de la inestabilidad ya comentada, la
introduccin de desfases en la seal, que pueden ser compensadas pero
a costa de aadir ms coeficientes al filtro.

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.

Você também pode gostar