DISEO DE FILTRO DIGITAL CON VENTANA KAISER
[Estudiantes, Facultad de Ingeniera]
Abstrac
This project was based on the design of FIR II. OBJETIVO
digital filters by means of the ventilation
technique, which helps us to generate filters more Comprender el correcto diseo y
accurate and / or faster according to our needs. funcionamiento de los filtros digitales,
The technique used is windows. The design is mediante ventana de kiser.
done from a programmed interface in MathLab.
III. MARCO TERICO
I. INTRODUCCIN FILTROS FIR
En el caso de un filtro con respuesta impulsional
Los filtros son sistemas que se disean finita (FIR), una muestra de la salida se puede
principalmente para eliminar ciertas componentes definir como una combinacin linear de muestras
no deseadas de una seal. Generalmente estas de la entrada presentes y pasadas. Podemos
componentes no deseadas se describen en funcin expresar esta relacin con una ecuacin del tipo:
de sus contenidos en frecuencias. Un filtro ideal y[n] = a0 x[n] + a1 x[n 1] + a2 x[n 2] + ... + aN
permite el paso de ciertas frecuencias sin x[n N]
modificarlas y elimina completamente otras; esto
en la realidad no se puede lograr con exactitud ya Esta ecuacin expresa que la muestra actual de la
que no existen componentes tan precisos en el salida y[n] es igual a la suma de las muestras de la
mercado razn por lo que se tienen entrada actual x[n] multiplicada por el factor a0 y
aproximaciones. El intervalo de frecuencias que de la muestra anterior x[n 1] multiplicada por el
deja pasar el filtro se le denomina banda de paso y factor a1, y de todas las muestras anteriores hasta
todas las frecuencias que elimina se le llama el instante [n M] multiplicadas por su respectivo
banda de supresin. factor.
Podemos darnos cuenta que la tendencia actual es Los factores ai son los coeficientes del filtro.
la migracin de la tecnologa analgica a la Modificando estos coeficientes podremos variar
digital, en este caso el filtrado digital ofrece varias de forma drstica las caractersticas del filtro. La
ventajas con respecto a los filtrados analgicos: serie de coeficientes a0, a1, ... constituye la
respuesta impulsional del filtro. De hecho,
El ancho de banda de un filtro digital esta podemos verificar que la respuesta del filtro a la
limitado por la frecuencia de muestreo, mientras seal impulso (digital):
que en un filtro analgico, este parmetro depende
x = {1, 0, 0, 0, 0, 0, 0, ...}
de las caractersticas de los componentes fsicos.
es la seal de salida:
Se pueden implementar tanto en software como
en hardware. Se conocen usualmente dos tipos de y = {a0, a1, a2, a3, ..., aN, 0, 0, 0, ...}
filtros que se eligen segn las necesidades y la
naturaleza del problema. Estos filtros se les lo cual explica la denominacin de filtro a respuesta
conocen como FIR e IIR. impulsional finita.
Este trabajo se enfoc al diseo de filtros FIR, ya DISEO DE FILTROS FIR
que son ms rpidos que los IIR y tienen una
Los filtros recursivos (IIR) que se han considerado
repuesta de fase lineal.
anteriormente permiten obtener filtros de alta
selectividad y sencillez computacional. Sin tengan menos variaciones de transicin o
embargo, es muy dificil disear un filtro digital supresin y con esto se logre y filtrado ms
recursivo que tenga alta selectividad y al mismo efectivo.
tiempo un retardo de grupo constante. Mediante la
aproximacin de Bessel y la transformacin IV. MATERIALES
invariante al impulso se puede obtener un filtro
-9 Resistencias de 10k
recursivo con retardo de grupo constante, pero
-11 Resistencias de 20k
esto solamente permite obtener filtros pasabajos o -PIC16F452
pasabanda de baja selectividad. -Cables
-Cristal de 10Mhz
Por el contrario, los filtros no recursivos se -Generador
pueden disear fcilmente para que tengan un -Ociloscopio
retardode grupo constante, al mismo tiempo que
se puede lograr una gran variedad de respuestas en V. PROCEDIMIENTO
frecuencia.
DESARROLLO
Hay diferentes mtodos para resolver la
De las diferentes tcnicas de diseo se desarrollo
aproximacin de filtros no recursivos. El mtodo
la tcnica de ventaneo con la que lo primero es
que se va a considerar est basado en series de
decidir las especificaciones de respuesta en
Fourier. Otro mtodo est basado en el uso de la
frecuencia Hd(w) y determinar su correspondiente
DFT (o FFT), y otra posibilidad es utilizar el
en respuesta al impulso hd(n).
algoritmo de intercambio de Remez. Este ltimo
mtodo permite lograr soluciones ptimas, es Para disear un filtro FIR con caractersticas
decir, un filtro con el mnimo orden posible. La especficas tenemos las siguientes ecuaciones:
desventaja del algoritmo de intercambio de Remez
es la complejidad y volumen de clculos
necesarios para efectuar el diseo. H d ( w) hd n e jwn
n 0
ANTECEDENTES
Los filtros de respuesta finita al impulso (FIR La ecuacin de diseo para el filtro FIR resulta:
finite impulse response) tienen la ventaja de ser
utilizados con facilidad y poseer fase lineal para
1
una respuesta al impulso par o impar, a esta hd n H we
jwn
dw
2
d
propiedad se le llama simetra. Otra de las
caractersticas que debe de tener un filtro FIR es
que debe ser causal, esto significa que debe tener
un retrazo hacia los positivos y no debe existir En general la respuesta hd(n) es infinita pero esta
seal en frecuencias negativas. es truncada mediante el ventaneo, en el punto: y
multiplicando por la ventana rectangular o unitaria
Existen tres tcnicas de diseo de filtros FIR que se obtiene:
son de gran importancia:
hd n n 0,1,...M 1
1.- La tcnica de ventanas; 2.- La tcnica de h n
muestreo en frecuencia; 3.- La tcnica de diseos 0 otrocaso
con rizado uniforme.
La tcnica de ventaneo se basa en a la respuesta Realizando clculos para diferentes filtros
de un filtro aplicarle la ventana deseada por medio tenemos:
de una multiplicacin de sus ecuaciones, la
Filtro pasa altas:
ventana hace que en el filtro real diseado se
sin ( n
M 1
2
) sin wc ( n
M 1
2
)
M 1
( n )
hd (n) wc
2
1
M 1
n
2
Si
Filtro pasa bajas:
sin ( n
M 1
2
) sin wc ( n
M 1
2
)
M 1 M 1
( n ) n La realizacin de la interfaz grfica del usuario se
hd (n) wc
2
2
M 1 realiz por medio de MathLab, esta interfaz
n contiene las opciones de: eleccin de tipo de filtro,
2 tipo de ventana, datos especficos como nmero
de muestras, frecuencia de corte y ancho de banda
Filtro Pasa banda: para casos necesarios.
Procedimiento:
M 1
sin(wc Awc )( n ) sin(wc Awc )( n
M 1
)
2
M 1
2
(n ) 1.) Se implemento un microcontrolador 18F452,
hd (n) wc Aw wc Awc
2
con una fuente de 40MHz como reloj. Para fines
prcticos reales la frecuencia de 40MHz, se logra
utilizando un cristal de 10MHz, y activando la
fuente de reloj HS-PLL en el PIC. Est opcin
implementa internamente en el PIC, un PLL que
Filtro rechazo de banda: multiplica la frecuencia externa por un factor de
cuatro, y el resultado es usado como fuente de
M 1
sin ( n
2
sin(wc Awc )*(n
M 1
2
) sin(wc Awc )( n
M 1
2
) reloj para el procesador del microcontrolador.
M 1
(n )
hd (n) wc Awc wc Awc
2 2.) al usar los generadores de seal virtual en ISIS,
1
este generador tiene por defecto una frecuencia de
1Hz, y una amplitud de 1 voltio. La adquisicin de
seales se hace en el microcontrolador por medio
del mdulo AD, los niveles de tensin que las
h n entradas anlogas admiten, no pueden salirse de
Una vez obtenida la del filtro deseado se le los confines de la polarizacin del
aplica el tipo de ventana ms adecuada a las microcontrolador. En otras palabras los niveles de
necesidades realizando la multiplicacin las entradas anlogas no pueden ser superiores a 5
correspondiente de acuerdo a la siguiente frmula: voltios, ni voltajes negativos. Para evitar las
circunstancias antes nombradas, se debe
manipular la configuracin del generador virtual
de seal.
Al implementar nuestro circuito en ISIS quedara
de la siguiente forma:
(Implementacin del Circuito)
El siguiente cdigo fue el utilizado en Matlab para
el filtro pasa baja con ventana de Kaiser:
Para la reconstruccin de la seal procesada, se Fs = 1291,32KHz.
configuran 10 bits de salida, para hacer un Fc = 150Hz.
convertidor DA, por medio de un arreglo R-2R.
Se determina la frecuencia de corte digital:
Wc = 2 Fc / Fs = 2 150 /
1291,32 = 0,72985.
Primero se utiliza la siguiente herramienta de
Matlab para sacar lo coeficientes
//Declaracin de varales.
float x0, y0;
float x[M];
unsigned int YY;
unsigned short i;
//Declaracin de la funcin de
interrupciones.
void interrupt ( void )
{
if( INTCON.F2 )
{
TMR0L=135;
PORTC.F7=1;
//Timer0 con periodo de 774,4u segundo.
// Fs = 1291,32 Hz.
//Corrimiento continuo de la seal x[n]
for( i=M-1; i!=0; i-- )x[i]=x[i-1];
//Adquisicin de una muestra de 10 bits en,
x[0].
x[0] = (float)(ADC_Read(0)-512.0);
Se configura en Lowpass, Metodo Fir Window,
//Convolucin contina.
Orden del filtro 16 y en ventana tipo Kaiser con y0 = 0.0; for( i=0; i<M; i++ ) y0 +=
un beta de 0.5. Luego se generan los coeficientes, h[i]*x[i];
se copian y pegan en el cdigo de Matlab. //Reconstruccin de la seal: y en 10 bits.
YY = (unsigned int)(y0+512.0);
#define M 17 PORTC = (YY>>8)&3;
//Funcin de trasferencia h[n] PORTB = YY&255;
const float h[]= PORTC.F7=0;
{ INTCON.F2=0;
-0.0171035387965417, //h(0) }
-0.0419431579233366, //h(1) }
-0.0501329294124475, //h(2) void main( void )
-0.0309497847516785, //h(3) {
0.0175345019583181, //h(4) //Inicio del puerto B como salida.
0.0864308262744764, //h(5) TRISB = 0;
0.158173992108178, //h(6) PORTB = 0;
0.212237065988464, //h(7) TRISC = 0;
0.232320416318186, //h(8) PORTC = 0;
0.212237065988464, //h(9) //Se configura el TIMER 0, su interrupcin.
0.158173992108178, //h(10) INTCON = 0b10100000;
0.0864308262744764, //h(11) T0CON = 0b11000101;
0.0175345019583181, //h(12) while(1)//Bucle infinito.
-0.0309497847516785, //h(13) {
-0.0501329294124475, //h(14) }
-0.0419431579233366, //h(15) }
-0.0171035387965417 //h(16)
Por limitaciones de velocidad en este
}; 206
microcontrolador, y teniendo presente la
frecuencia de muestreo de 1291,32Hz no es
posible usar un orden del filtro superior a 17. Sin
embargo es posible usar rdenes menores como;
15, 13, 11, 9, 7, 5, o 3.
(En las imgenes anteriores se muestra como se
atena la seal)
VI. CONCLUSION
(Conexin al generador y al osciloscopio para Como se not en las grficas
observar la seal) de resultados la realizacin
de este programa nos facilita
en gran medida el diseo de
los filtros digitales FIR
mediante la tcnica de
ventaneo y cada ventana a
elegir nos varia los rizos en la
banda de paso y en la de
supresin; con esta interfaz
podemos disear un filtro
adecuado a nuestras
necesidades ya sea en
velocidad o precisin
mostrndonos las grficas de
su funcionamiento y a la vez
valores de rizo en bandas.
VII. REFERENCIAS
Roads, C. "The Computer Music
Tutorial", MIT Press, 1996. pp.
396-440.
Smith, J. O. ntroduction to digital
filters with audio applications",
[Link]
jos/filters/
M. Morris Mano, Logica Digital y
Diseo de Computadores, Primera
Edicion, PRENTICE HALL, ISBN 968- Proakis John, Tratamiento digital de
880-016-3. seales, Cuarta Edicion, PEARSON
Oppenheim Alan, Seales y Sistemas, PRENTICE HALL, ISBN 978-84-8322-
Segunda Edicion, PEARSON 347-5.
PRENTICE HALL, ISBN 970-17-0116-
X.