Está en la página 1de 32

Universidad Nacional Mayor de San Marcos

Decana de Amrica

Ingeniera Electrnica
Curso: Tema:

19.1

Procesamiento Digital de Seales

Implementacin de Filtros Digitales IIR Informe N 6

Nombre: Cdigo: Profeso

Coronado Goytizolo Humberto

07190002

Rafael Bustamante

03-12-2010

Laboratorio de Procesamiento Digital de Seales

IMPLEMENTACIN DE FILTROS DIGITALES IIR


OBJETIVO Mediante MATLAB y lo aprendido en los laboratorios anteriores, se va a implementar filtros digitales IIR.

FUNDAMENTO TERICO

Filtros digitales Se le llama filtrado al proceso mediante el cual se modifica una seal determinada de tal manera que las amplitudes relativas de las componentes en frecuencia cambian o incluso son eliminadas. Dicho de otra manera: un filtro es un dispositivo que impide o permite el paso de una cierta gama de frecuencias, donde permitir o impedir est relacionado con un nivel de atenuacin o ganancia. Tambin sirven para restaurar una seal, cuando haya una seal que haya sido deformada de alguna forma. La separacin de seales es necesaria cuando una seal ha sido contaminada con interferencias, ruidos u otras seales.

Filtro IIR

Estos filtros son conocidos por las siglas IIR (Infinite Impulse Response), ya que su respuesta de impulso no finaliza porque los trminos recursivos (las salidas anteriores) generan energa en la entrada del filtro y ste contina funcionando. Realmente esta nomenclatura no es exacta, ya que en todos los filtros IIR la respuesta de impulso se reduce virtualmente a cero en un tiempo finito. o Tienen respuesta al impulso de duracin infinita. o Tienen realimentacin. o Deben disearse con cuidado para evitar problemas de estabilidad. La caracterstica principal de estos filtros que a diferencia de los filtros FIR aqu si la salida puede estar en funcin de sus previos con respecto al tiempo, es decir, tanto salidas como entradas.

Laboratorio de Procesamiento Digital de Seales

DESARROLLO Comandos para el diseo de los distintos tipos filtros IIR Filtros Butterworth [B,A]=butter(N,Wn);% Filtro Pasabajo, N=orden del filtro [B,A]=butter(N,Wn,'high');% Filtro Pasaalto [B,A]=butter(N,Wn); Filtro% Pasa-Banda Wn=[W1,W2]; [B,A]=butter(N,Wn,'stop');% Filtro Parabanda Wn=[W1,W2]; Filtros Chebyshev-1 [B,A]=cheby1(N,Rp,Wn); %FPB [B,A]=cheby1(N,Rp,Wn, %high');%FPA [B,A]=cheby1(N,Rp,Wn); %FPB Wn=[W1,W2] [B,A]=cheby1(N,Rp,Wn) %FRB Wn=[W1,W2] Filtros Chebyshev-2 [B,A]=cheby2(N,Rs,Wn);%FPB [B,A]=cheby2(N,Rs,Wn,'high');%FPA [B,A]=cheby2(N,Rs,Wn);%FPB Wn=[W1,W2] [B,A]=cheby2(N,Rs,Wn);%FRB Wn=[W1,W2] Filtros Elipticos [B,A]=ellip(N,Rp,Rs,Wn);%FPB [B,A]=ellip(N,Rp,Rs,Wn,'high');%FPA [B,A]=ellip(N,Rp,Rs,Wn);%FPB Wn=[W1,W2] [B,A]=ellip(N,Rp,Rs,Wn);% FRB Wn=[W1,W2] Ejemplo 1 Disear un filtro pasa-alto chebychev2 [B,A]=cheby2(6,20,0.6,'high'); [H,wT]=freqz(B,A,100); T=0.001; 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;

Laboratorio de Procesamiento Digital de Seales


Filtro Pasa Altas 1

magnitud

0.5

0.5

2 Hz Filtro Pasa Altas

1.5

2.5

3.5

magnitud

0.5

50

100

150

200

250 Hz

300

350

400

450

500

Filtro pasaalto chebychev2 Se puede observar un filtro pasa alto que tiene una frecuencia de corte de 300 Hz, con algunas pequeas subidas antes de la frecuencia de corte. Ejemplo 2 Disear un 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 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;
Filtro Pasa Altas 1.5

magnitud

0.5

0.5

2 Hz Filtro Pasa Altas

1.5

2.5

3.5

1.5

magnitud

0.5

50

100

150

200

250 Hz

300

350

400

450

500

Filtro pasabajo Butterworth 4

Laboratorio de Procesamiento Digital de Seales Se puede observar un filtro pasa bajo que tiene una frecuencia de corte de 300 Hz. PREGUNTA 1 Realizar un anlisis comparativo de la respuesta en frecuencia de los filtros Butterworth, chebyshev1, chebyshev2 y elptico. Considerar misma frecuencia de corte, rizado, tipo de filtro y nmero de orden del filtro. (Superponer las grficas) SOLUCIN FILTRO PASABAJA Vamos a trabajar con una frecuencia de 300Hz y el orden de los filtros ser 6. T=1/1000; % Butterworth [B1,A1]=butter(6,0.6); [H1,wT]=freqz(B1,A1,100); hertz1=wT/(2*pi*T); subplot(2,2,1),plot(hertz1,abs(H1),'r'), title('Filtro Pasabaja Butterworth'), xlabel('Hz'),ylabel('magnitud'),grid; % Chebyshev1 [B2,A2]=cheby1(6,0.2,0.6); %FPB [H2,wT]=freqz(B2,A2,100); hertz2=wT/(2*pi*T); subplot(2,2,2),plot(hertz2,abs(H2),'g'), title('Filtro Pasabaja Chebyshev1'), xlabel('Hz'),ylabel('magnitud'),grid; % Chebyshev2 [B3,A3]=cheby2(6,20,0.6);%FPB [H3,wT]=freqz(B3,A3,100); hertz3=wT/(2*pi*T); subplot(2,2,3),plot(hertz3,abs(H3)), title('Filtro Pasabaja Chebyshev2'), xlabel('Hz'),ylabel('magnitud'),grid; % Elipticos [B4,A4]=ellip(6,0.2,20,0.6);%FPB [H4,wT]=freqz(B4,A4,100); hertz4=wT/(2*pi*T); subplot(2,2,4),plot(hertz4,abs(H4),'k'), title('Filtro Pasabaja Elptico'), xlabel('Hz'),ylabel('magnitud'),grid; figure(2) hold on plot(hertz1,abs(H1),'r') 5

Laboratorio de Procesamiento Digital de Seales plot(hertz2,abs(H2),'g') plot(hertz3,abs(H3)) plot(hertz4,abs(H4),'k') grid; hold off Ahora que tenemos la codificacin, obtenemos las siguientes grficas:
Filtro Pasabaja Butterw orth 1.5 1 Filtro Pasabaja C hebyshev 1

magnitud

magnitud 0 200 400 600

0.5

0.5

H z Filtro Pasabaja C hebyshev 2 1.5 1

400 H z Filtro Pasabaja Elptico

200

600

magnitud

magnitud 0 200 H z 400 600

0.5

0.5

200 H z

400

600

Podemos observar la respuesta en frecuencia de los cuatro filtros pasabajos. A continuacin superpondremos los cuatro:

1.4

1.2

0.8

0.6

0.4

0.2

50

100

150

200

250

300

350

400

450

500

Laboratorio de Procesamiento Digital de Seales Aqu tenemos los filtros superpuestos donde: Butterworth es la curva de color rojo. Chebyshev1 es la curva de color verde. Chebyshev2 es la curva de color azul. Elptico es la curva de color negro. Al comparar los 4 filtros, se puede observar que todos son muy parecidos, la diferencia se presenta en las pendientes de los filtros, donde se puede apreciar que el que ms recto est es el filtro elptico y donde el Butterworth es el que menos pendiente tiene. FILTRO PASAALTO Vamos a trabajar con una frecuencia de 300Hz y el orden de los filtros ser 6. T=1/1000; % Butterworth [B1,A1]=butter(6,0.6,'high'); [H1,wT]=freqz(B1,A1,100); hertz1=wT/(2*pi*T); subplot(2,2,1),plot(hertz1,abs(H1),'r'), title('Filtro Pasaalto Butterworth'), xlabel('Hz'),ylabel('magnitud'),grid; % Chebyshev1 [B2,A2]=cheby1(6,0.2,0.6, 'high'); [H2,wT]=freqz(B2,A2,100); hertz2=wT/(2*pi*T); subplot(2,2,2),plot(hertz2,abs(H2),'g'), title('Filtro Pasaalto Chebyshev1'), xlabel('Hz'),ylabel('magnitud'),grid; % Chebyshev2 [B3,A3]=cheby2(6,20,0.6,'high'); [H3,wT]=freqz(B3,A3,100); hertz3=wT/(2*pi*T); subplot(2,2,3),plot(hertz3,abs(H3)), title('Filtro Pasaalto Chebyshev2'), xlabel('Hz'),ylabel('magnitud'),grid; % Elipticos [B4,A5]=ellip(6,0.2,20,0.6,'high'); [H4,wT]=freqz(B4,A4,100); hertz4=wT/(2*pi*T); subplot(2,2,4),plot(hertz4,abs(H4),'k'), title('Filtro Pasaalto Elptico'), xlabel('Hz'),ylabel('magnitud'),grid; figure(2) hold on plot(hertz1,abs(H1),'r') plot(hertz2,abs(H2),'g') 7

Laboratorio de Procesamiento Digital de Seales plot(hertz3,abs(H3)) plot(hertz4,abs(H4),'k') grid; hold off Ahora que tenemos la codificacin, obtenemos las siguientes grficas:
Filtro Pasaalto Butterworth 1 1 Filtro Pasaalto Chebyshev1

magnitud

0.5

magnitud 0 200 400 600

0.5

Hz Filtro Pasaalto Chebyshev2 1 1.5

400 Hz Filtro Pasaalto Elptico

200

600

magnitud

0.5

magnitud 0 200 Hz 400 600

0.5

200 Hz

400

600

Podemos observar la respuesta en frecuencia de los cuatro filtros pasaaltos. A continuacin superpondremos los cuatro:

1.4

1.2

0.8

0.6

0.4

0.2

50

100

150

200

250

300

350

400

450

500

Laboratorio de Procesamiento Digital de Seales Aqu tenemos los filtros superpuestos donde: Butterworth es la curva de color rojo. Chebyshev1 es la curva de color verde. Chebyshev2 es la curva de color azul. Elptico es la curva de color negro. Al comparar los 4 filtros, se puede observar que todos son muy parecidos, la diferencia se presenta en las pendientes de los filtros, donde se puede apreciar que el que ms recto est es el filtro elptico pero que tiende a subir demasiado y luego baja de manera exponencial, en cambio los dems en ese aspecto, si estn correctos, y el Butterworth es el que menos pendiente tiene. FILTRO PASABANDA Vamos a trabajar con frecuencias de corte de 200Hz y 400Hz, el orden de los filtros ser 6. T=1/1000; Wn=[0.4 0.8]; % Butterworth [B1,A1]=butter(6,Wn); [H1,wT]=freqz(B1,A1,100); hertz1=wT/(2*pi*T); subplot(2,2,1),plot(hertz1,abs(H1),'r'), title('Filtro Pasabanda Butterworth'), xlabel('Hz'),ylabel('magnitud'),grid; % Chebyshev1 [B2,A2]=cheby1(6,0.2, Wn); %FPB [H2,wT]=freqz(B2,A2,100); hertz2=wT/(2*pi*T); subplot(2,2,2),plot(hertz2,abs(H2),'g'), title('Filtro Pasabanda Chebyshev1'), xlabel('Hz'),ylabel('magnitud'),grid; % Chebyshev2 [B3,A3]=cheby2(6,20, Wn);%FPB [H3,wT]=freqz(B3,A3,100); hertz3=wT/(2*pi*T); subplot(2,2,3),plot(hertz3,abs(H3)), title('Filtro Pasabanda Chebyshev2'), xlabel('Hz'),ylabel('magnitud'),grid; % Elipticos [B4,A4]=ellip(6,0.2,20, Wn);%FPB [H4,wT]=freqz(B4,A4,100); hertz4=wT/(2*pi*T); subplot(2,2,4),plot(hertz4,abs(H4),'k'), title('Filtro Pasabanda Elptico'), xlabel('Hz'),ylabel('magnitud'),grid; 9

Laboratorio de Procesamiento Digital de Seales figure(2) hold on plot(hertz1,abs(H1),'r') plot(hertz2,abs(H2),'g') plot(hertz3,abs(H3)) plot(hertz4,abs(H4),'k') grid; hold off Ahora que tenemos la codificacin, obtenemos las siguientes grficas:
Filtro Pasabanda Butterworth 1.5 1 Filtro Pasabanda Chebyshev 1

magnitud

magnitud 0 200 400 600

0.5

0.5

Hz Filtro Pasabanda Chebyshev 2 1 1

400 Hz Filtro Pasabanda Elptico

200

600

magnitud

0.5

magnitud 0 200 Hz 400 600

0.5

200 Hz

400

600

Podemos observar la respuesta en frecuencia de los cuatro filtros pasabandas. A continuacin superpondremos los cuatro:
1.4

1.2

0.8

0.6

0.4

0.2

50

100

150

200

250

300

350

400

450

500

10

Laboratorio de Procesamiento Digital de Seales Aqu tenemos los filtros superpuestos donde: Butterworth es la curva de color rojo. Chebyshev1 es la curva de color verde. Chebyshev2 es la curva de color azul. Elptico es la curva de color negro. Al comparar los 4 filtros, nuevamente podemos observar que el filtro elptico es el de mayor pendiente, tanto en la subida como en la bajada de la banda, y tambin el filtro Butterworth es el de menor pendiente en ambas tambin. En este caso, tambin se puede ver que todos los filtros, en la banda tienen atenuadas las deformidades, el que ms destaca en eso es el Butterworth. FILTRO RECHAZA BANDA Vamos a trabajar con frecuencias de corte de 200Hz y 400Hz, el orden de los filtros ser 6. T=1/1000; Wn=[0.4 0.8]; % Butterworth [B1,A1]=butter(6,Wn,'stop'); [H1,wT]=freqz(B1,A1,100); hertz1=wT/(2*pi*T); subplot(2,2,1),plot(hertz1,abs(H1),'r'), title('Filtro Rechaza banda Butterworth'), xlabel('Hz'),ylabel('magnitud'),grid; % Chebyshev1 [B2,A2]=cheby1(6,0.2, Wn,'stop'); %FPB [H2,wT]=freqz(B2,A2,100); hertz2=wT/(2*pi*T); subplot(2,2,2),plot(hertz2,abs(H2),'g'), title('Filtro Rechaza banda Chebyshev1'), xlabel('Hz'),ylabel('magnitud'),grid; % Chebyshev2 [B3,A3]=cheby2(6,20, Wn,'stop');%FPB [H3,wT]=freqz(B3,A3,100); hertz3=wT/(2*pi*T); subplot(2,2,3),plot(hertz3,abs(H3)), title('Filtro Rechaza banda Chebyshev2'), xlabel('Hz'),ylabel('magnitud'),grid; % Elipticos [B4,A4]=ellip(6,0.2,20, Wn,'stop');%FPB [H4,wT]=freqz(B4,A4,100); hertz4=wT/(2*pi*T); subplot(2,2,4),plot(hertz4,abs(H4),'k'), title('Filtro Rechaza banda Elptico'), xlabel('Hz'),ylabel('magnitud'),grid; 11

Laboratorio de Procesamiento Digital de Seales figure(2) hold on plot(hertz1,abs(H1),'r'),plot(hertz2,abs(H2),'g'),plot(hertz3,abs(H3)) plot(hertz4,abs(H4),'k'),grid;hold off Ahora que tenemos la codificacin, obtenemos las siguientes grficas:
Filtro R echaza banda Butterw orth 1.5 Filtro R echaza banda C hebyshev 1 1

magnitud

magnitud 0 200 400 600

0.5

0.5

H z Filtro R echaza banda C hebyshev 2 1.5

400 H z Filtro R echaza banda Elptico

200

600

magnitud

magnitud 0 200 H z 400 600

0.5

0.5

200 H z

400

600

Podemos observar la respuesta en frecuencia de los cuatro filtros pasabandas. A continuacin superpondremos los cuatro:

1.4

1.2

0.8

0.6

0.4

0.2

50

100

150

200

250

300

350

400

450

500

Aqu tenemos los filtros superpuestos donde: 12

Laboratorio de Procesamiento Digital de Seales Butterworth es la curva de color rojo. Chebyshev1 es la curva de color verde. Chebyshev2 es la curva de color azul. Elptico es la curva de color negro. Al comparar los 4 filtros, nuevamente podemos observar que el filtro elptico es el de mayor pendiente, tanto en la subida como en la bajada de la banda, y tambin el filtro Butterworth es el de menor pendiente en ambas tambin. La ventaja del Butterworth es que no presenta deformidades en el rizado como en los dems filtros. PREGUNTA 2 Grabar en voz en un formato wav, luego este archivo de voz, en MATLAB, filtrarlo con un filtro pasabajo Butterworth de 1KHz y ver si la se puede filtrar y escuchar el mensaje bien. Mostrar espectros de frecuencia. SOLUCIN Primero hemos creado un archivo de voz el cual lo he llamado HCG. Luego mediante el comando wav.read(HCG.wav) llamamos al audio y lo guardamos en una variable cualquier, por ejemplo y, y luego procedemos a filtrarlo con lo aprendido. La codificacin se muestra a continuacin: [y,Fs] = wavread('HCG.wav'); %Archivo de voz HCG N = 512; k = [1:length(y)]/Fs; plot(k,y) [num,den] = butter(2,1000/(Fs/2)); [h,fr] = freqz(num,den,200,Fs); semilogx(fr,20*log10(abs(h))); Y = filter(num,den,y); K = (0:(N/2)-1)/(N/2)*Fs/2; fft1 = 20*log10(abs(fft(y,N))); plot(K,fft1(1:N/2)), title('Espectro de frecuencia seal original') xlabel('Hz') figure fft2 = 20*log10(abs(fft(Y,N))); plot(K,fft2(1:N/2)), title('Espectro de frecuencia seal filtrada') xlabel('Hz') Obteniendo las grficas siguientes

13

Laboratorio de Procesamiento Digital de Seales


Espectro de frecuencia seal original 0

-10

-20

-30

-40

-50

-60

-70

500

1000

1500

2000 Hz

2500

3000

3500

4000

Seal de entrada En el grfico se puede ver el espectro de frecuencia de la seal entrada.


Espectro de frecuencia seal filtrada 0 -10 -20 -30 -40 -50 -60 -70 -80

500

1000

1500

2000 Hz

2500

3000

3500

4000

Seal Filtrada En este grfico, se puede ver la seal filtrada donde, comparando con la seal original, esta mnimamente atenuado pero es despreciable, se puede decir entonces que se ha filtrado bien la seal. Adems, sabemos que la frecuencia de la voz est entre 80Hz y 1500Hz, con lo cual, al tener un filtro con frecuencia de corte de 1KHz, se va a poder filtrar la seal. A continuacin, un cuadro con la seal filtrada a distintas frecuencias de corte.

14

Laboratorio de Procesamiento Digital de Seales


E s p e c t r o d e fr e c u e n c i a s e a l fi l t r a d a 0 -1 0 -2 0 -3 0

FC=800Hz

-4 0 -5 0 -6 0 -7 0 -8 0 0

Se puede ver que la seal filtrada es muy similar a la de 1KHz.


500 1000 1500 2000 Hz 2500 3000 3500 4000

E s p e c t r o d e f r e c u e n c i a s e a l fi l t r a d a 0 -1 0 -2 0 -3 0

FC=600Hz

-4 0 -5 0 -6 0 -7 0 -8 0 0

Aqu ya se puede ver unos pequeos cambios con respecto a la intensidad.


500 1000 1500 2000 Hz 2500 3000 3500 4000

E s p e c t r o d e fr e c u e n c i a s e a l fi lt r a d a 0 -1 0 -2 0 -3 0 -4 0

FC=400Hz

-5 0 -6 0 -7 0 -8 0 -9 0 0

Y aqu ya se puede ver una considerable atenuacin en la seal.


500 1000 1500 2000 Hz 2500 3000 3500 4000

En conclusin se puede ver que mientras vayamos disminuyendo la frecuencia de corte se va atenuar ms la seal, en el caso de aumentar la frecuencia de corte, se va a seguir filtrando la seal sin problema alguno. CUESTIONARIO Mostrar en cada caso el espectro de frecuencia de la seal de salida junto al espectro de frecuencia de la seal de entrada. 1) Filtrar la seal 4cos(100pikT) por un filtro fc1=200 y fc2 = 400 buterworth.(FPB). 15

Laboratorio de Procesamiento Digital de Seales 2) La misma seal anterior por un filtro fc=300 FPH chebyschev2. 3) La misma seal anterior por un filtro fc=300 FPL eliptico. 4) Implementar mediante simulink los filtros anteriores. Desarrollo Para los filtros usaremos una frecuencia de muestreo de 1000Hz. Primer problema 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: N=64; 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]; [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; Luego de la programacin obtenemos las siguientes figuras:

16

Laboratorio de Procesamiento Digital de Seales


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

10

20

30

40

50

60

70

Seal de entrada, x = 4cos(100pikT) En esta primera figura podemos observar la seal de entrada 4cos(100pikT) graficada con respecto al tiempo.
Filtro Pasa Banda 1.4

1.2

magnitud

0.8

0.6

0.4

0.2

50

100

150

200

250 Hz

300

350

400

450

500

Filtro Buterworth pasabanda En la figura se puede observar el filtro pasabanda diseado en base al tipo buterworth, donde se puede observar claramente que las frecuencias de corte del filtro son 200 y 400 Hz.

17

Laboratorio de Procesamiento Digital de Seales


1.5

0.5

-0.5

-1

10

20

30

40

50

60

70

Seal de salida filtrada En este grfico se observa la seal filtrada la cual esta demasiado atenuada, no se parece a la entrada debido a que la seal tiene una frecuencia de 50 Hz mientras q nuestro filtro permite pasar frecuencias entre 200 y 400 Hz, comparando podemos ver que la seal no va ha pasar, es por eso la grfica que se tiene.
Magnitud de X(k) 150

100 |X(k)| 50 0 0

50

100

150

200

250 300 Hz Magnitud de Y(k)

350

400

450

500

4 3 |Y(k)| 2 1 0

50

100

150

200

250 Hz

300

350

400

450

500

Espectro de frecuencias, seal de entrada y seal de salida En la figura se puede observar el espectro en frecuencias de tanto la seal de entrada, como la de salida donde se puede observar una clara diferencia debido a lo antes ya mencionado sobre que la entrada no pasa por el filtro porque su frecuencia no est dentro del filtro pasabanda. Simulink Del programa anterior, vamos a obtener los valores de B y A, los valores caractersticos de la funcin de trasnferencia del filtro diseado. >> B B= 18

Laboratorio de Procesamiento Digital de Seales Columns 1 through 10 0.0103 0.1547 0 0 -0.0619 0 0.1547 0 -0.2063 0

Columns 11 through 13 -0.0619 >> A A= Columns 1 through 10 1.0000 2.7454 4.4328 2.0677 1.0588 0.4309 Columns 11 through 13 0.1389 0.0313 0.0050 5.3701 5.6439 4.8592 3.4751 0 0.0103

Entonces, la funcin de transferencia del filtro es:

H(Z )

0.0103-0.0619z -2 +0.1547z-4 -0.2063z-6 +0.1547z.8 -0.0619z -10 +0.0103z -12 = 1+2.75z-1 +4.43z-2 +5.37z -3 +5.65z-4 +4.86z-5 +3.48z-6 +2.07z -7 +1.06z -8 +0.43z -9 +0.14z -10 +0.03z -11 +0.01z -12
Luego, que ya tenemos la funcin de transferencia, procedemos a implementar en Simulink.
b u tt e r

0.0 1 0 3 -0 .0 6 1 9 -2+0.1 5 4 7 -4+ -0 .2 0 6 3z-6+0.1 5 4 7 -8+ -0 .0 6 1 9 -1 0 1 0 3 -1 2 + z z z z +0.0 z 1+2.7 4 5 4 -1+4.4 32 8 -2+5.3 7 0 1 -3+5.6 4 3 9 -4+4.8 5 9 2 -5+3.4 7 5 1 -6+2.06 7 7 -7+1.0 5 8 8 -8+0.4 3 0 9 -9+0.1 3 8 9 -1 0 3 1 3 -1 1 0 5z-1 2 z z z z z z z z z z +0.0 z +0.0 S ign a l G e n e ra to r D is c re t e F ilte r

A n a lo g F ilte r D e s ig n 1

S c ope

S c o p1 e

S c o p2 e

Ah tenemos la seal de entrada, que se conecta al filtro pasabanda Buterworth y luego a un filtro analgico para convertir la seal filtrada que llega en discreta. A continuacin las seales de los osciloscopios.

19

Laboratorio de Procesamiento Digital de Seales

Seal de entrada Se puede ver la seal de entrada, la cual es la seal que se va a filtrar.

Seal a la salida del filtro pasabanda y la seal de entrada Se puede ver que la seal de entrada no ha pasado y esto debido a que su frecuencia no est dentro de los valores del filtro, es por eso que tenemos una seal demasiado atenuada y sin forma alguna.

20

Laboratorio de Procesamiento Digital de Seales Seal a la salida del filtro analgico y la seal de entrada Similar a la grfica anterior con la diferencia de que el filtro analgico nos ha convertido la seal y aqu ya se puede observar una comparacin de la seal de entrada con la seal de salida, ambas en las mismas condiciones. En conclusin, luego de haber desarrollado el problema de dos formas, se deduce que la seal no ha pasado por el filtro debido que la frecuencia de 50 Hz esta fuera del rango del filtro que es de 200 a 400 Hz aproximadamente. SEGUNDO PROBLEMA Para el este problema, tenemos que programar un filtro pasaalto con frecuencia de corte de 300. Normalizando la frecuencia tendramos 0.6. A continuacin la codificacin: N=64; 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 [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; Luego de la programacin obtenemos las siguientes figuras:

21

Laboratorio de Procesamiento Digital de Seales


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

10

20

30

40

50

60

70

Seal de entrada, x = 4cos(100pikT) En esta primera figura podemos observar la seal de entrada 4cos(100pikT) graficada con respecto al tiempo.
Filtro Pasa Alta 1 0.9 0.8 0.7 0.6 magnitud 0.5 0.4 0.3 0.2 0.1 0

50

100

150

200

250 Hz

300

350

400

450

500

Filtro chebyschev2 pasaalto En la figura se puede observar el filtro pasaalto diseado en base al tipo chebyschev2, donde se puede observar claramente que la frecuencia de corte es de 300 Hz. Adems, se puede observar unas pequeas subidas y bajadas en el filtro antes de la frecuencia de corte, pero no son un inconveniente para nuestro caso.

22

Laboratorio de Procesamiento Digital de Seales


1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6

10

20

30

40

50

60

70

Seal de salida filtrada En este grfico se observa la seal filtrada la cual esta bastante atenuada, adems se puede ver que que en algn momento toma la forma consenoidal de la entrara debido a lo mencionado anteriormente de las pequeas subidas antes de la frecuencia de corte en el filtro. Pero est muy atenuada, adems la seal no va a ha pasar correctamente deibo a que la frecuencia de 50 Hz de la entrada no se encuentra en el rango del filtro pasa alta, que es por encima de los 300 Hz.
Magnitud de X(k) 150

100 |X(k)|

50

50

100

150

200

250 300 Hz Magnitud de Y(k)

350

400

450

500

10

|Y(k)|

50

100

150

200

250 Hz

300

350

400

450

500

Espectro de frecuencias, seal de entrada y seal de salida En la figura se puede observar el espectro en frecuencias de tanto la seal de entrada, como la de salida donde se puede observar un cierto parecido pero el problema radica en que la seal de salida est demsaiado atenuada respecto a la seal de entrada, debido a lo antes ya mencionado sobre que la entrada no pasa por el filtro porque su frecuencia no est dentro del filtro pasaaltas. Simulink

23

Laboratorio de Procesamiento Digital de Seales Del programa anterior, vamos a obtener los valores de B y A, los valores caractersticos de la funcin de trasnferencia del filtro diseado. >> B B= 0.1587 -0.1665 >> A A= 1.0000 0.7265 1.2535 0.2506 0.3309 -0.0367 0.0282 0.3482 -0.3256 0.3482 -0.1665 0.1587

Entonces, la funcin de transferencia del filtro es:

H(Z )

0.1587-0.1665z -1+0.3482z -2-0.3256z -3+0.3482z -4-0 .1665z-5 +0.1587z-6 = 1+0.7265z -1+1.2535z -2+0.2506z -3+0.3309z -4-0.0367 z-5 +0.0282z-6

Luego, que ya tenemos la funcin de transferencia, procedemos a implementar en Simulink.

Scope 2

0.1587 -0.1665 z-1 +0.3482 z -2 -0.3256 z -3 +0.3482 z-4 -0.1665 z -5 +0.1587 z -6 1+0.7265 z -1 +1.2535 z-2 +0.2506 z-3 +0.3309 z -4 -0.0367 z-5 +0.0282 z -6 Signal Generator

cheby 2

Discrete Filter

Analog Filter Design 1

Scope

Scope 1

Ah tenemos la seal de entrada, que se conecta al filtro pasaalto chebychev2 y luego a un filtro analgico para convertir la seal filtrada. A continuacin las seales de los osciloscopios.

24

Laboratorio de Procesamiento Digital de Seales

Seal de entrada Se puede ver la seal de entrada, la cual es la seal que se va a filtrar.

Seal a la salida del filtro pasaalta y la seal de entrada Se puede observar que la seal de salida est muy atenuada con respecto a la seal de entrada como tambin se pudo ver anteriormente.

25

Laboratorio de Procesamiento Digital de Seales

Seal a la salida del filtro analgico y la seal de entrada Similar a la grfica anterior con la diferencia de que el filtro analgico nos ha convertido la seal y aqu ya se puede observar una comparacin de la seal de entrada con la seal de salida, ambas en las mismas condiciones. En conclusin, luego de haber desarrollado el problema de dos formas, se deduce que la seal no pasa correctamente por el filtro ya que la seal filtrada est demasiado atenuada y esto debido a que la frecuencia de entrada no est dentro del rango del filtro pasaalto. TERCER PROBLEMA Para el este problema, tenemos que programar un filtro pasabajo elptico con frecuencia de corte de 300. Normalizando la frecuencia tendramos 0.6. A continuacin la codificacin: N=64; 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 [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) 26

Laboratorio de Procesamiento Digital de Seales 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) hold on plot(k,y) plot(k,x,'r') grid; hold off Luego de la programacin obtenemos las siguientes figuras:
4 3 2 1 0 -1 -2 -3 -4

10

20

30

40

50

60

70

Seal de entrada, x = 4cos(100pikT) En esta primera figura podemos observar la seal de entrada 4cos(100pikT) graficada con respecto al tiempo.

27

Laboratorio de Procesamiento Digital de Seales


Filtro Pasa Baja 1 0.9 0.8 0.7 0.6 magnitud 0.5 0.4 0.3 0.2 0.1 0

50

100

150

200

250 Hz

300

350

400

450

500

Filtro elptico pasabajo En la figura se puede observar el filtro pasabajo diseado en base al tipo elptico, donde se puede observar claramente que la frecuencia de corte es de 300 Hz. Adems, se puede observar unas pequeas subidas y bajadas en el filtro antes de la frecuencia de corte, pero no son un inconveniente para nuestro caso.
5 4 3 2 1 0 -1 -2 -3 -4

10

20

30

40

50

60

70

Seal de salida filtrada En este grfico se observa la seal filtrada la cual no est atenuada y es muy parecia a la seal de entrada, con lo cual se puede ver que si se ha filtrado bien la seal, con la salvedad de que posee ciertas deformaciones al principio, pero en general si se ha filtrado bien, y esto dedibo a que la frecuencia de entrada de 50 Hz est dentro del rango del filtro que es menor a 300 Hz.

28

Laboratorio de Procesamiento Digital de Seales


Magnitud de X(k) 150

100 |X(k)| 50 0 0

50

100

150

200

250 300 Hz Magnitud de Y(k)

350

400

450

500

150

100 |Y(k)|

50

50

100

150

200

250 Hz

300

350

400

450

500

Espectro de frecuencias, seal de entrada y seal de salida En la figura se puede observar el espectro en frecuencias de tanto la seal de entrada, como la de salida donde se puede observar y corroborar lo visto en la grfica anterior, ya que los espectros son muy similares.
5 4 3 2 1 0 -1 -2 -3 -4

10

20

30

40

50

60

70

Comparacin seal de entrada y seal filtrada En esta grfica, se puede ver la seal filtrada y la entrada, con lo cual se hace una comparacin y se puede ver que la seal, corroborando lo visto en anteriores grficas, esta bien filtrada ya que no esta atenuada y mantiene su forma. Simulink Del programa anterior, vamos a obtener los valores de B y A, los valores caractersticos de la funcin de trasnferencia del filtro diseado.

29

Laboratorio de Procesamiento Digital de Seales >> B B= 0.1405 >> A A= 1.0000 0.8471 1.7944 0.6186 0.7448 0.0177 0.0874 0.5519 1.1133 1.3823 1.1133 0.5519 0.1405

Entonces, la funcin de transferencia del filtro es:

H(Z ) =

0.1405+0.5519z -1+1.1133z -2+1.3823z -3+1.1133z -4+0 .5519z-5 +0.1405z-6 1+0.8471z -1+1.7944z -2+0.6186z -3+0.7448z -4+0.0177 z-5 +0.0874z-6

Luego, que ya tenemos la funcin de transferencia, procedemos a implementar en Simulink.

0.1405+0.5519z -1 +1.1133z-2 +1.3823z-3 +1.1133z-4 +0.5519z -5 +0.1405z -6 1+0.8471z-1 +1.7944z -2 +0.6186z -3 +0.7448z-4 +0.0177z-5+0.0874z -6 Signal Generator

butter

Discrete Filter

A nalog Filter Design 1

S cope

Scope1

Scope2

Ah tenemos la seal de entrada, que se conecta al filtro pasabajo elptico y luego a un filtro analgico para convertir la seal filtrada. A continuacin las seales de los osciloscopios.

Seal de entrada 30

Laboratorio de Procesamiento Digital de Seales Se puede ver la seal de entrada, la cual es la seal que se va a filtrar.

Seal a la salida del filtro pasabaja y la seal de entrada Se puede ver que la seal filtrada no est atenuada y adems la forma de la seal de entrada se ha mantenido, corroborando lo visto anteriormente.

Seal a la salida del filtro analgico y la seal de entrada Similar a la grfica anterior con la diferencia de que el filtro analgico nos ha convertido la seal y aqu ya se puede observar una comparacin de la seal de entrada con la seal de salida, ambas en las mismas condiciones. En conclusin, luego de haber desarrollado el problema de dos formas, se deduce que la seal pasa correctamente por el filtro ya que la seal filtrada no est atenuada y no ha perdido la forma de la seal de entrada.

CONCLUSIONES 31

Laboratorio de Procesamiento Digital de Seales Hemos aprendido a trabajar seales de distintas frecuencias con filtros digitales haciendo uso de MATLAB y SIMULINK. Se pudo ver en los distintos filtros trabajados la atenuacin que generan a la seales. Las atenuaciones generadas por los filtros se pueden controlar variando la frecuencia de la seal a la entrada del filtro. Se observo las diferencias existentes entre los distintos tipos de filtros IIR. Se aprendi a trabajar con archivos de audio en matlab.

BIBLIOGRAFA www.gii.upv.es/...TIM.../filtros%20digitales.../filtrosdigitales

32