FILTROS ANALOGICOS

 

Matlab

Objetivo e Introducción || Matlab || Simulink || Workbench || Conclusión y Referencia

1. MATLAB

    1. Filtros analógicos Butterworth

En Matlab podemos encontrar la instrucción Butter , este comando diseña filtros Butterwoth pasa-bajas, pasa-altas, pasa-bandas y rechaza bandas tanto en forma digital como analógica. Este filtro se caracteriza por una respuesta plana en la banda de transición.

En el dominio analógico tenemos dos opciones:

Ambas opciones generan los coeficientes de s de la función de transferencia:

A continuación diseñaremos un filtro pasa altas de noveno orden que corte en 300Hz.

[b,a]=butter(9,300/500,'high'); [b,a]=butter(n,Wn,'Tipo'), se establecen las

características del filtro.

Freqz(b,a,128,1000) Una vez establecido el filtro lo graficaremos

Figura 1.1.1 Gráfica en decibeles y en fase de un filtro Butterworth de 9no grado.

 

En la figura 1.1.1 podemos observar que al llegar a 300Hz se encuentra el primer polo y se empieza a atenuar las frecuencias arriba de éste punto. De la misma forma en la gráfica de fase se puede ver que tiene una respuesta lineal.

A continuación se graficará la respuesta a impulso de un filtro butterworth pasa bandas de 100 a 200 Hz de quinto orden.

n=5;Wn=[100 200]/500; parámetros del filtro

[b,a]=butter(n,Wn); comando para un filtro butterworth

[y,t]=impz(b,a,101); cambio de dominio

stem(t,y)

Figura 1.1.2 Respuesta a impulso de un BPF de quinto grado.

En la gráfica podemos observar el efecto del filtro, aunque aquí no a parecen las frecuencias, se puede ver que hay un rango en donde la señal puede pasar sin ser atenuada, este ejemplo nos ayuda a visualizar por donde se encuentra las frecuencias de corte y qué tipo de filtro es.

Ahora bien diseñemos un filtro butterworth pasa bajas de quinto orden que corte en 300Hz.

 

[b,a]=butter(5,300/500,'high'); Se establece los parámetros del filtro

Freqz(b,a,128,1000); Gráfica de la frecuencia en decibeles y defazamiento de ángulo.

 

Figura 1.1.3 LPF, butterworth de quinto grado con Fc=300Hz.

En la figura se puede observar que a partir de 300 Hz la señal se empieza a atenuar por lo cual las frecuencias mayores a ésta se filtrarán. Es importante notar que la banda de paso es lineal y plana característica de un filtro butterworth.

1.2 Filtros analógicos Chebyshev

Matlab tiene varias formas para generar filtros Chebyshev, a continuación se verán cada una y se explicarán con un diseño práctico:

1.2.1.- [z,p,k]=cheb1ap(n,Rp)

Esta instrucción regresa ceros, polos y ganancia de un filtro Chebyshev de n orden pasa bajas, donde Rp es la magnitud en decibeles del rizo. La función de transferencia que trabaja este filtro es la siguiente :

La frecuencia de corte está normalizada a W=1rad.

Diseñemos un filtro analógico pasa-bajas ideal de grado 5 y un rizo de 3 decibeles:

n=5;Rp=3; se establece los parámetros del filtro

[z,p,k]=cheb1ap(n,Rp)

A continuación matlab regresará los polos y ganancia que pueden existir para tal filtro.

z =[]

p =-0.0549+ 0.9659i
-0.1436+ 0.5970i
-0.1775+ 0.0000i
-0.1436- 0.5970i
-0.0549- 0.9659i

k =0.0626

1.2.2.- [z,p,k]=cheb2ap(n,Rs)

Regresa los polos, ceros y ganancia de un filtro Chebyshev tipo II de n orden, donde Rs es la magnitud de amortiguamiento después de la frecuencia de corte la cual está normalizada a 1, el inconveniente es que solo sirve para LPF. Este comando responde a la función de transferencia:

Diseñemos un filtro pasa-bajas de quinto grado con una atenuación de 3 decibeles para así poder comparar con el cheb1ap.

n=5;Rp=3; se establece los parámetros del filtro

[z,p,k]=cheb2ap(n,Rp)

De forma inmediata matlab entrega los polos, ceros y ganancia posibles para el filtro establecido

z = 0+ 1.0515i
0- 1.0515i
0+ 1.7013i
0- 1.7013i

p =-0.0584- 1.0321i
-0.3797- 1.5843i
-5.6546- 0.0000i
-0.3797+ 1.5843i
-0.0584+ 1.0321i

k = 5.0119

1.2.3.- [n,Wn]=cheb1ord(Wp,Ws,Rp,Rs,'s') y [b,a]=cheby1(n,Rs,Wn)

Esta instrucción es similar a las anteriores solo que la única diferencia es que es vez de regresar polos,ceros y ganancia, regresa el grado mínimo y frecuencia que puede tener el filtro con ciertas características deseadas.

Significado de las iniciales:

Wp = Frecuencia de corte, ésta debe estar entre 0 y 1 donde .5 sería la frecuencia de muestreo (teorema de Nyquist).

Ws = Frecuencia de paro, esta es donde la señal es atenuada casi por completo, está en las mismas unidades de Wp, y está entre 0 y 1.

Rp = Atenuación del rizo.

Rs = Atenuación de las frecuencias no deseadas.

Diseñemos un filtro BPF con 3dB de atenuación de 100 a 200 Hz y 30 dB hasta los 50Hz .

Wp=[100 200]/500;Ws=[50 250]/500;

Rp=3;Rs=30;

[n,Wn]=cheb1ord(Wp,Ws,Rp,Rs)

n =4

Wn =0.2000 0.4000

El programa regresa que el grado mínimo para tener dicha atenuación debe de ser de 4 y la frecuencia de corte ideal debe de variar en un .2 ó .4.

Ahora grafiquemos el filtro

[b,a]=cheby1(n,Rs,Wn); como ya se calcularon Wn y n ya no es necesario

establecerlas.

Freqz(b,a,512,1000) graficamos el filtro

Figura 1.2.3.1 PBF, tipo chebyshev tipo I de grado 4.

 

En esta gráfica podemos observar que en la banda de paso tiene risos con un amplitud de 3 dB y que no es lineal el defasamiento del filtro.

 

1.2.4 [n,Wn]=cheb2ord(Wp,Ws,Rp,Rs,'s') y [b,a]=cheby2(n,Rs,Wn)

Regresa el grado mínimo y frecuencia que puede tener el filtro con ciertas características deseadas.

Significado de las iniciales:

Wp= Frecuencia de corte, ésta debe estar entre 0 y 1 donde .5 sería la frecuencia de muestreo (teorema de Nyquist).

Ws= Frecuencia de paro, esta es donde la señal es atenuada casi por completo, está en las mismas unidades de Wp, y está entre 0 y 1.

Rp= Atenuación del riso.

Rs=Atenuación de las frecuencias no deseadas.

Haremos el mismo filtro que en el punto 1.2.3 para comparar la diferencia entre ambos métodos:

Hacer un filtro BPF con 3dB de atenuación de 100 a 200 Hz y 30 dB hasta los 50Hz .

Wp=[100 200]/500;Ws=[50 250]/500;

Rp=3;Rs=30;

[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs)

n = 4

Wn =

    1. 0.4665

El programa regresa que el grado mínimo para tener dicha atenuación debe de ser de 4 y la frecuencia de corte ideal debe de variar en un .1633 ó .4665

Ahora grafiquemos el filtro

[b,a]=cheby2(n,Rs,Wn); como ya se calcularon Wn y n ya no es necesario

establecerlas.

freqz(b,a,512,1000) graficamos el filtro

Figura 1.2.4.1 BPF, Chebyshev tipo II, grado 4.

 

En la figra se puede observar que se aumenta los ceros en la ventana de tal forma que se atenúa más perdiendo así los risos del filtro y denotando más los polos, de igual manera se puede ver cambios muy herráticos en la respuesta de fase del filtro (comparado con el ejercicio anterior).

En Matlab se pueden diseñar filtros elípticos pasa-bajas,pasa-altas ,pasa-bandas, etc..

La caracteristica principal es que la pendiente de corte es más abrupta que los filtros Chebyshev y Butterworth, sin embargo presenta un rizo marcado cerca de la frecuencia de corte. Estos filtros responden a la siguiente función de transferencia:

A continuación diseñemos un filtro pasa bandas de 100 a 200 hez de grado 10, con una atenuación de banda de .5dB y -20dB en la banda de corte.

n=10;Rp=0.5;Rs=20;

Wn=[100 200]/500;

[b,a]=ellip(n,Rp,Rs,Wn);

podemos ver que su corte es más firme llegando casi a un filtro ideal.
Ahora grafiquemos su respuesta a impulso

 

[y,t]=impz(b,a,101)

stem(t,y)

De inmediato se desplegará la respuesta a impulso donde podemos ver que el cambio de magnitud es muy notable lo que quiere decir que corta muy bien. En sí con este último filtro acabamos la sección de matlab.

 

Objetivo e Introducción || Matlab || Simulink || Workbench || Conclusión y Referencia

Departamento de Ingeniería Eléctrica y Electrónica,
Tecnológico de Monterrey, Campus Estado de México
webdiee.cem.itesm.mx/diee