Está en la página 1de 8

PROCESAMIENTO DIGITAL DE SEALES

LABORATORIO No 6
FILTROS DIGITALES IIR

OBJETIVO:
Implementar filtros digitales IIR.
Diseo de un FILTRO PASA-ALTO CHEVISHEV:
%FILTRO PASA ALTO CHEBYSHEV
[B,A]=cheby2(6,20,0.6,'high');
[H,wT]=freqz(B,A,100);
T=0.001;
%hertz=wT/(2*pi*T)
subplot(2,1,1),plot(wT,abs(H)),
title('Filtro Pasa Altas'),
xlabel('Hz'),ylabel('magnitud'),grid;
hertz=wT/(2*pi*T);
subplot(2,1,2),plot(hertz,abs(H)),
title('Filtro Pasa Altas'),
xlabel('Hz'),ylabel('magnitud'),grid;





Disear un FILTRO PASA-BAJO BUTTERWORTH
%FILTRO PASA-BAJO BUTTERWORTH
[B,A]=butter(6,0.6);
[H,wT]=freqz(B,A,100);
subplot(2,1,1),plot(wT,abs(H));
title('FILTRO PASA-BAJO');
xlabel('Hz'),ylabel('magnitud'),grid;
hertz=wT/(2*pi*T);
subplot(2,1,2),plot(hertz,abs(H));
title('FILTRO PASA-BAJO');
xlabel('Hz'),ylabel('magnitud'),grid;



PROBLEMAS

1) Filtrar la seal por un filtro fc1=200 y fc2=400
BUTTERWORTH.
Para los filtros usaremos una frecuencia de muestreo de 1000Hz.

Para el este problema, tenemos que programar un FILTRO PASABANDA con frecuencias de
cortes de 200 y 400. Normalizando las frecuencias tendramos 0.4 y 0.8. A continuacin la
codificacin:





%PROBLEMA No 1

N=128;
T=1/1000;
k=0:N-1;
x=4*cos(100*pi*k*T);
figure(1)
plot(k,x),grid;

[B,A]=butter(6,[0.4,0.8]); %Filtro Pasa-Banda Wn=[W1,W2] BUTTERWORTH;
[H,wT]=freqz(B,A);
hertz=wT/(2*pi*T);
figure(2)
plot(hertz,abs(H)),
title('Filtro Pasa Banda'),
xlabel('Hz'),ylabel('magnitud'),grid;
figure(3)
y=filter(B,A,x);
plot(k,y),grid;

%Generar espectro de frecuencias
magX=abs(fft(x));
hertz=k*(1/(N*T));
figure(4)
subplot(2,1,1),stem(hertz(1:N/2),magX(1:N/2)),
title('Magnitud de X(k)'),
xlabel('Hz'),ylabel('|X(k)|'),grid;
magY=abs(fft(y));
subplot(2,1,2),stem(hertz(1:N/2),magY(1:N/2)),
title('Magnitud de Y(k)'),
xlabel('Hz'),ylabel('|Y(k)|'),grid;

Grficos:


Seal de entrada El filtro pasabanda Butterworth



Seal se salida filtrada Espectro de frecuencias de la seal de
entrada y salida






2) La misma seal anterior por un filtro fc=300 FPH CHEVISHEV2.


Para el este problema, tenemos que programar un filtro pasaalto confrecuencia de corte de 300.
Normalizando la frecuencia tendramos 0.6. A continuacin la codificacin:


%PROBLEMA No 2

N=128;
T=1/1000;
k=0:N-1;
x=4*cos(100*pi*k*T);
figure(1)
plot(k,x),grid;

[B,A]=cheby2(6,20,0.6,'high');%FPA CHEVISHEV2
[H,wT]=freqz(B,A);
hertz=wT/(2*pi*T);
figure(2)


plot (hertz,abs(H)),
title('Filtro Pasa Alta'),
xlabel('Hz'),ylabel('magnitud'),grid;
figure(3)
y=filter(B,A,x);
plot(k,y),grid;

%Generar espectro de frecuencias
magX=abs(fft(x));
hertz=k*(1/(N*T));
figure(4)
subplot(2,1,1),stem(hertz(1:N/2),magX(1:N/2)),
title('Magnitud de X(k)'),
xlabel('Hz'),ylabel('|X(k)|'),grid;
magY=abs(fft(y));
subplot(2,1,2),stem(hertz(1:N/2),magY(1:N/2)),
title('Magnitud de Y(k)'),
xlabel('Hz'),ylabel('|Y(k)|'),grid;


Grficos:

Seal de entrada Filtro Pasa-Alto CHEVISHEV2



Seal se salida filtrada Espectro de frecuencias de la seal de
entrada y salida


3) La misma seal anterior por un filtro fc=300 FPL ELIPTICO.
Para el este problema, tenemos que programar un filtro pasabajo elpticocon frecuencia de corte
de 300. Normalizando la frecuencia tendramos 0.6. A continuacin la codificacin:

%PROBLEMA No 3
N=128;
T=1/1000;
k=0:N-1;
x=4*cos(100*pi*k*T);
figure(1)
plot(k,x),grid;
[B,A]=ellip(6,0.2,40,0.6);%FPB ELIPTICO
[H,wT]=freqz(B,A);
hertz=wT/(2*pi*T);
figure(2)
plot (hertz,abs(H)),
title('Filtro Pasa Baja'),
xlabel('Hz'),ylabel('magnitud'),grid;
figure(3)


y=filter(B,A,x);
plot(k,y),grid;
%Generar espectro de frecuencias
magX=abs(fft(x));
hertz=k*(1/(N*T));
figure(4)
subplot(2,1,1),stem(hertz(1:N/2),magX(1:N/2)),
title('Magnitud de X(k)'),
xlabel('Hz'),ylabel('|X(k)|'),grid;
magY=abs(fft(y));
subplot(2,1,2),stem(hertz(1:N/2),magY(1:N/2)),
title('Magnitud de Y(k)'),
xlabel('Hz'),ylabel('|Y(k)|'),grid;
figure(5)
holdon
plot(k,y)
plot(k,x,'r')
grid;
holdoff


Grficos:



Seal de entrada Filtro Pasa-BajoELIPTICO





Seal se salida filtrada Espectro de frecuencias de la seal de
entrada y salida

También podría gustarte