Diseño de un Filtro Pasa Banda

Reyes López Misael, González Arévalo Elfrich, Ruiz Pérez Christian (christianjord@hotmail.com) 12 Junio 2008

Contents
0.1 0.2 0.3 0.4 Resumen . . . . Introducción . . Problema. . . . Solución 1: . . 0.4.1 Código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 6 6 9 9 9

0.5

0.4.2 Respuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . Solución 2: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.5.1 Código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.5.2 Respuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . Solución 3: . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.6.1 Código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.6.2 Respuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . Solución 4: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.7.1 Código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.7.2 Respuesta. . . . . . . . . . . . . . . . . . . . . . . . . . . Solución 5: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0.8.1 Código. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

0.6

0.7

0.8

0.8.2 Respuesta. 0.9 Conclusiones . . . 0.10 Bibliografía . . . . 0.11 Anexos . . . . . . .

.

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

0.1

Resumen

En esta práctica se realizaron varios tipos de …ltros con funciones de Matlab especí…cas para ello en las que utilizaban diferentes métodos de aproximación, estas fueron FIR1, FIR2, FIRLS, REMEZORD, REMEZ. Cada una de ellas nos proporciona características especi…cas para nuestro …ltro pasabanda con frecuencias de cortes y grado del …ltro dadas. 1

0.2

Introducción

La función FIR1 diseña un …ltro FIR de fase lineal por el método clasico de la ventana. b=…r1(Orden,[0.0086 0.5]); La función anterior diseña un …ltro pasabanda con frecuencias de corte 0.0086 y 0.5 (Normalizada con respecto de la frecuencia de Nyquist (número comprendido entre 0 y 1, donde 1 corresponde a la frecuencia de Nyquist). Y orden es el orden del …ltro. La función FIR2 esta función diseña un …ltro FIR utilizando el método de muestreo en frecuencia. Los parametros de entrada es el orden del …ltro N (longitud N-1) y dos vectores F y M que especi…can la frecuencia y la magnitud,de forma que plot(F,M) es una grá…ca de la respuesta en frecuencia deseada del …ltro. La función FIRLS esta función diseña …ltros FIR usando la minimización del error por mínimos cuadrados. Los argumentos de entrada son el orden del …ltro N, y dos vectores F y M, cuyo formato di…ere de los análogos en la función Fir2. El …ltro obtenido es la mejor aproximacion(F,M) por mínimos cuadrados. Función Remezord permite estimar el orden del …ltro FIR óptimo empleando el algoritmo Parks-McClellan [n,fc,no,w]=remezord(f,m,dev,fs) Calcula el orden N, las bandas de frecuecia normalizada F0, las magnitudes de esas bandas M0 y los factores de ponderacion W que luego seran utilizados como argumentos de entrada de la función remez. Estos valores cumplen las especi…caciones dadas por F, N, DEV. En donde F es un vector de frecuencias de corte en Hz, en orden ascendente entre 0 y Fs/2. Si no se especi…ca Fs, Fs=2 por defecto. El prmer elemento F es siempre 0 y el último es Fs/2, pero no deben ser especi…cados en el vector F. El vector M indica la respuesta deseada en cada banda. DEV es un vector que especi…ca el máximo de rizado permitido en cada banda.

0.3

Problema.

Diseñar un …ltro FIR pasabanda con frecuencias de corte de 30Hz y 3500Hz para los diferentes métodos vistos anteriormente. Utilizando el mismo orden de …ltro y hacer la comparación de las respuestas frecuenciales.

0.4

Solución 1:

Haciendo uso de la función FIR1 mostramos el siguiente código en el que se pasan como parámetros las frecuencias de corte y el grado del …ltro.

2

0.4.1

Código.

Orden=20 b=…r1(Orden,[0.0086 0.5]); …gure freqz(b,1,1024)

0.4.2

Respuesta.

Figura 1. Respuesta en magnitud y fase del …ltro FIR1 para un pasabanda.

0.5

Solución 2:

Haciendo uso de la función FIR2 mostramos el siguiente código en el que se pasan como parámetros los vectores de las frecuencias de corte, las magnitudes en dichas frecuencias y el grado del …ltro. 3

0.5.1

Código.

Orden=20 f = [0 0.006 0.0086 0.5 0.56 1]; m = [0 0 1 1 0 0]; b = …r2(Orden,f,m); …gure freqz(b,1,512) [h,w] = freqz(b,1,512);

0.5.2

Respuesta.

Figura 2. Respuesta en magnitud y fase del …ltro FIR2 para un pasabanda.

0.6

Solución 3:

Haciendo uso de la función FIRLS mostramos el siguiente código en el que se pasan como parámetros los vectores de las frecuencias de corte, las magnitudes 4

en dichas frecuencias y el grado del …ltro.

0.6.1
…gure

Código.

b = …rls(Orden,[0 0.006 0.0086 0.5 0.56 1],[0 0 1 1 0 0]); freqz(b,1,512)

0.6.2

Respuesta.

Figura 3. Respuesta en magnitud y fase del …ltro FIRLS para un pasabanda.

0.7

Solución 4:

Haciendo uso de la función remezord mostramos el siguiente código en el que se pasan como parámetros los vectores de las frecuencias de corte, las magnitudes 5

en dichas frecuencias, la frecuencia de mustreo, el resultado de esta función regresa el grado del …ltro, la frecuencia normalizada, un vector a y los factores de ponderación, que seran utilizados por la función remez.

0.7.1

Código.

rp = 0.0005; rs = 250; fs = 7000; f = [30 3000]; a = [1 0]; dev = [(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)]; [n,fo,ao,w] = remezord(f,a,dev,fs); b = remez(n,fo,ao,w); …gure freqz(b,1,512,fs); title(’ Lowpass Filter Designed to Speci…cations’ );

0.7.2

Respuesta.

Figura 4. Respuesta en magnitud y fase del …ltro REMEZ para un pasabanda haciendo uso de la función Remezord.

0.8

Solución 5:

La función remez recibe como parámetros las frecuencias de corte, las amplitudes en cada una de ellas, y el orden del …ltro.

0.8.1

Código.

f = [0 0.006 0.0086 0.5 0.56 1]; a = [0 0 1 1 0 0]; b = remez(Orden,f,a); [h,w] = freqz(b,1,512); …gure freqz(b,1,512); plot(f,a,w/pi,abs(h)) %-w/pi:-w/pi-1,[abs(hhh) abs(h)]) legend(’ Ideal’ remez Design’ ,’ );

0.8.2

Respuesta.

Figura 5. Respuesta del …ltro pasabanda haciendo uso de la función remez.

6

7

8

0.9

Conclusiones

.

De la respuesta de cada una de las funciones podemos concluir que el cambio notable en cada una de las respuestas de las funciones, era la atenuación y la distribución de las bandas de paso, de transición y la banda de rechazo. Por ejemplo en las respuestas del …ltro FIR1 y FIR2 se pudo observar que en el primero la atenuación era mayor en FIR1que en FIR2 , asi como la distribución que tenian cada una de ellas. También al aplicar las funciones FIRLS y REMEZ se notó la atenuación que sufria nuestro …ltro y de igual manera la distribución de estas.

0.10

Bibliografía

TRATAMIENTO DIGITAL DE SEÑALES PROAKIS, JOHN G. n MANOLAKIS DIMITRIS G. 1998

0.11

Anexos

Programa principal . Orden=20 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% b=…r1(Orden,[0.0086 0.5]); …gure freqz(b,1,512) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% f = [0 0.006 0.0086 0.5 0.56 1]; m = [0 0 1 1 0 0]; b = …r2(Orden,f,m); …gure freqz(b,1,512) [h,w] = freqz(b,1,512); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% …gure b = …rls(Orden,[0 0.006 0.0086 0.5 0.56 1],[0 0 1 1 0 0]); freqz(b,1,512) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% rp = 0.0005; rs = 250; fs = 7000; f = [30 3000]; a = [1 0]; dev = [(10^(rp/20)-1)/(10^(rp/20)+1) 10^(-rs/20)]; [n,fo,ao,w] = remezord(f,a,dev,fs); 9

b = remez(n,fo,ao,w); …gure freqz(b,1,512); title(’ Lowpass Filter Designed to Speci…cations’ ); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% f = [0 0.006 0.0086 0.5 0.56 1]; a = [0 0 1 1 0 0]; b = remez(Orden,f,a); [h,w] = freqz(b,1,512); …gure freqz(b,1,512); plot(f,a,w/pi,abs(h)) %-w/pi:-w/pi-1,[abs(hhh) abs(h)]) legend(’ Ideal’ remez Design’ ,’ );

10

Sign up to vote on this title
UsefulNot useful