Un filtro digital es un algoritmo matemático basado en multiplicaciones y sumas, donde el término digital hace referencia al sistema que realiza las operaciones. En la comparación con los filtros analógicos, podemos encontrar las siguientes ventajas: En algunos tipos de filtros digitales, la estabilidad está garantizada. No hay problemas de adaptación de impedancias. Algunos filtros consiguen una linealidad de fase excelente. No precisan ajustes ni se degradan con el tiempo. Varias señales de entrada o canales pueden ser filtradas sin necesidad de añadir más circuitería. En la práctica, la precisión de los filtros analógicos está limitada. Por ejemplo, para En la práctica, la precisión de los filtros analógicos está limitada. Por ejemplo, para conseguir niveles de atenuación de 60 ó 70 db en la banda eliminada debemos emplear filtros activos especiales. En los filtros digitales la precisión viene limitada por la longitud de palabra que se utilice. Son fácilmente reproducibles. Se pueden emplear en la región de muy bajas frecuencias (útil en aplicaciones biomédicas). Pueden modificar el rango de trabajo cambiando la frecuencia de muestreo.
Como desventajas cabe destacar las siguientes: Limitación de velocidad: el ancho de banda de las señales con que pueden operar es mayor para filtros analógicos que para digitales. En situaciones de tiempo real vamos a encontrar limitaciones con los convertidores A/D restringiendo la frecuencia máxima de muestreo. Además, la velocidad del filtro digital va a depender de la velocidad del sistema digital de procesamiento que se emplee y del número de operaciones aritméticas que aparezcan en el algoritmo. Efectos de la longitud de palabra finita: en el sistema digital aparecerán, entre otros, ruidos debidos a la cuantificación de la señal de entrada del convertidor A/D, y al redondeo/truncamiento ocurrido durante los cálculos. Cuantos más lazos recursivos haya, más se acumulan dichos ruidos, pudiendo llevar al sistema a la inestabilidad.
ETAPAS EN EL DISEÑO DE FILTROS DIGITALES El diseño de filtros consta de cinco etapas: 1. Especificación de los requisitos de filtro. 2. Cálculo de los coeficientes del filtro (aproximación). 3. Representación del filtro empleando una estructura (realización). 4. Análisis de los efectos de la longitud de palabra finita. 5. Construcción del filtro empleando software y/o circuitería. Representación del filtro empleando una estructura La etapa de realización implica convertir la función de sistema en una estructura aprovechable. Se emplean con frecuencia diagramas de bloques o flujogramas. La estructura va a indicarnos el procedimiento computacional que hay que seguir para construir el filtro digital y va a depender de si deseamos un sistema FIR o IIR. Estructuras para sistemas IIR Dada una función de un sistema discreto, se pueden obtener una gran variedad de estructuras equivalentes. Se estudiarán algunas de las más empleadas.
Formas directas Se obtienen como reflejo inmediato de las operaciones indicadas en la ecuación en diferencias. Este diagrama de bloques puede modificarse sin que cambie la función de sistema, de manera que se obtenga otra estructura equivalente. Por ejemplo, se puede ver el diagrama de la primera forma directa como la asociación en cascada de dos sistemas.
La estructura así obtenida, eliminando registros de memoria innecesarios, se denomina forma Directa II y es canónica con respecto al número de registros de almacenamiento, ya que es el menor posible. Por simplicidad se considera M=N.
Esta sección canónica es la más popular ya que presenta buenas propiedades con respecto al ruido de redondeo y requiere un número mínimo de elementos de retardo. El problema estriba en que puede ocurrir desbordamiento ("overflow") en nodos internos de la red. Para evitarlo es necesario escalar la entrada con respecto a los nodos conflictivos. Formas indirectas Las formas directas no resultan útiles cuando el orden de la función a realizar es elevado, ya que su sensibilidad con respecto a la cuantificación de los coeficientes aumenta enormemente con el grado de la función. Para evitar este problema se suelen descomponer las funciones del sistema como suma o producto de funciones de primer y segundo orden, las cuales podrán realizarse según algunas de las formas directas estudiadas.
Cascada Se basa en descomponer la función del sistema en productos de funciones de primer y segundo orden. Esta descomposición no es única ya que, en primer lugar, se pueden emparejar los polos y los ceros de diversas maneras y, en segundo lugar, la conexión de los subsistemas se puede llevar a cabo de distintas formas. 1) Factorizamos los polinomios N(z) y D(z), agrupando las raíces conjugadas para que no aparezcan coeficientes complejos. 2) Expresamos H(z) como producto de funciones de segundo orden, donde N es el menor entero mayor o igual que N/2.
3) Se realizan las funciones H(z) en la forma directa II y se conectan en cascada como indica la figura. Hay muchas formas diferentes de emparejar polos y ceros para formar cada una de las H(z). Teóricamente la función global es la misma, pero en la práctica (debido a la aritmética finita) existen grandes diferencias entre unas y otras. También aparecen distintas realizaciones según el orden de conexión de las etapas. Un criterio de selección que reduce la sensibilidad es el siguiente: Los polos más próximos a la circunferencia unidad deben emparejarse con los ceros que tienen más próximos en el plano Z. Se debe repetir el punto anterior hasta que todos los polos y los ceros han sido emparejados. Las secciones de segundo orden resultantes deben ordenarse situándolas de manera que los polos se vayan alejando de la circunferencia de radio uno, o en orden inverso. Esta forma de emparejar los polos y los ceros se basa en la experiencia de diversos autores. Los picos elevados de ganancia son indeseables, ya que pueden ocasionar saturación, amplificando además el ruido de cuantificación. Emparejar un polo próximo a la circunferencia de radio unidad con el cero más cercano a él puede reducir considerablemente esos picos de ganancia.
Paralelo La conexión en paralelo se basa en descomponer la función de partida H(z) en suma de funciones de primer y segundo orden, donde N=N 1 +2N 2 es el grado del denominador y M es el grado del numerador, de manera que si N>=M, entonces N p =M-N. En caso contrario, el primer término de la sumatoria sería nulo. El esquema general para una realización en paralelo consta de una sección FIR (que puede no aparecer) y N secciones IIR de segundo orden conectadas en paralelo.
La realización en cascada es más robusta, siendo la paralela más rápida. Para sistemas IIR con los ceros de la función de sistema en IzI=1, la realización en cascada se puede llevar a cabo con menos multiplicadores y más control sobre la posición de los ceros. Estructuras para sistemas FIR Forma directa
Conexión en cascada Elección entre las estructuras a) Si se trata de un sistema IIR o FIR. b) La facilidad de construcción. Se puede elegir las estructuras menos complejas porque sean más rápidas, ocupen menor espacio o resulten más baratas. c) Cómo de sensible es la estructura a los efectos de longitud finita de palabra, ya que en ocasiones interesa más obtener estructuras que tengan un buen comportamiento frente a la limitación de la longitud de palabra. Las principales fuentes de degradación de la respuesta de un filtro son: a) Cuantificación de las señales de entrada y reconstrucción de las de salida. b) Cuantificación de los coeficientes del sistema. c) Errores aritméticos de redondeo y/o truncamiento. d) Errores de desbordamiento, los cuales ocurren al sumar o acumular resultados parciales en un registro de longitud limitada y cuando el resultado excede del valor máximo representable.
Efectos de Cuantización Cada una de estas formas tienen sus ventajas e inconvenientes en el momento de realizar el filtro. Uno de los problemas más importantes que debe tener en cuenta una realización son los efectos de cuantización. Los efectos de cuantización se producen al tener obligatoriamente que truncar (o cuantizar) los coeficientes del filtro y las señales de entrada y salida. Esta cuantización puede dar lugar a que las características del filtro realizado difieran de las especificaciones del filtro diseñado. Los efectos de cuantización deben ser tenidos muy en cuenta cuando el diseño se realiza en microprocesadores con aritmética de punto fijo (por ejemplo, DSPs). En caso de utilizar micros de 32 bits con aritmética en punto flotante, los efectos de cuantización pueden ser despreciados. Dividiremos los efectos de cuantización en dos partes: los debidos a la cuantización de las señales (de entrada x[n] o de salida y[n], que incluyen los errores de redondeo o truncamiento en las operaciones aritméticas) y los debidos a la cuantización de los coeficientes.
Efectos de Cuantización de los Coeficientes Para sistemas de mayor orden es previsible que la sensibilidad de los coeficientes sea importante, por lo que realizar filtros que contengan polos (filtros IIR) de forma directa (formas directa I o II) no es aconsejable. Los coeficientes en estas forman no nos dicen nada acerca de la situación de sus polos y mucho menos acerca de las consecuencias de su cuantización. La solución es, lógicamente, utilizar las formas Paralelo o Cascada para tener un mayor control sobre la situación de los polos al cuantizar. En el caso de filtros FIR (compuesto exclusivamente por ceros), sabemos que se caracterizan por ser de fase lineal. Esto es debido a que los coeficientes son simétricos (o asimétricos). Por tanto cuantizar los coeficientes no va a variar la linealidad de fase del filtro. Lo que si variará es la magnitud de la respuesta. Se puede demostrar que los ceros de un filtro FIR o bien están sobre la circunferencia de radio 1, o están en parejas con radios recíprocos. Por tanto, en los filtros FIR lo normal es utilizar la forma directa (I o II). También se podría utilizar la forma en cascada pero se utiliza menos.
Efectos de Cuantización Ejemplos en MATLAB Dado el filtro digital IIR pasabanda con frecuencias de corte digitales son wp=[0.3 0.5] y las frecuencias en las que se especifica una atenuación de 55 db son ws=[0.2 0.6]. La atenuación en la banda de paso = 1dB. Verifique el comportamiento de la respuesta el filtro y su ubicación depolos y ceros si se recortan los coeficientes a 3 decimales [N wn]=buttord(wp,ws,65,1) B =[0.0002 0-0.0022 0 0.0109 0-0.0328 0 0.0655 0-0.0918 0 0.0918 0-0.0655 0 0.0328 0-0.0109 0 0.0022 0-0.0002] A =[ 1.0000-4.3399 11.0598-20.8034 32.4958-43.5346 51.2002-53.4433 50.1775-42.5298 32.6821-22.7629 14.3965-8.2353 4.2516-1.9649 0.8086-0.2915 0.0909-0.0237 0.0050-0.0008 0.0001] [H w]=freqz(b,a); plot(w,abs(h)) 1.4 1.2 pzmap(b,a) 1 0.8 0.6 0.4 Pole-Zero Map 1 0.8 0.6 Imaginary Axis 0.2 0-0.2-0.4 0.4 0.2-0.6-0.8 0 0 0.5 1 1.5 2 2.5 3 3.5-1 -1.5-1 -0.5 0 0.5 1 1.5 Real Axis
B1=round(B*1000)/1000; A1=round(A*1000)/1000; B1 =[ 0 0-0.0020 0 0.0110 0-0.0330 0 0.0660 0-0.0920 0 0.0920 0-0.0660 0 0.0330 0-0.0110 0 0.0020 0 0] A1 =[ 1.0000-4.3400 11.0600-20.8030 32.4960-43.5350 51.2000-53.4430 50.1770-42.5300 32.6820-22.7630 14.3960-8.2350 4.2520-1.9650 0.8090-0.2910 0.0910-0.0240 0.0050-0.0010 0] [H1 w1]=freqz(b1,a1); pzmap(b1,a1) 1 0.8 Pole-Zero Map plot(w1,abs(h1)) 1.4 1.2 0.6 0.4 1 Imaginary Axis 0.2 0-0.2 0.8 0.6-0.4-0.6 0.4-0.8 0.2-1 -1.5-1 -0.5 0 0.5 1 1.5 Real Axis 0 0 0.5 1 1.5 2 2.5 3 3.5 En la figura, la respuesta para las funciones de Matlab round (rojo), floor (verde) y ceil (negro) aplicadas a los coeficientes originales. 1.4 1.2 1 0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 2.5 3 3.5
Analizar el comportamiento del filtro en la configuración cascada [sos,g]=tf2sos(b3,a3,'up','inf'); Ht=ones(512,1); for i=1:m, Bsos=sos(i,1:3); Asos=sos(i,4:6); [H F]=freqz(Bsos,Asos); Ht=H.*Ht; end plot(g*abs(ht)) Funciones de Matlab relacionadas. Descomposición en paralelo (Fracciones simples): [R,P,K] = residuez(b,a) [B,A] = residuez(r,p,k) Descomposición en Cascada: [SOS,G] = zp2tf(z,p,k) [SOS,G] = tf2sos(b,a) [Z,P,K] = sos2zp(sos,g) [B,A] = sos2tf(sos,g)