El diseño de filtros es el proceso de diseñar un filtro de procesamiento de señales que satisfaga un conjunto de requisitos, algunos de los cuales pueden ser contradictorios. El objetivo es encontrar una realización del filtro que cumpla cada uno de los requisitos en un grado aceptable.
El proceso de diseño de filtros puede describirse como un problema de optimización. Algunas partes del proceso de diseño pueden automatizarse, pero puede ser necesario un diseñador experimentado para obtener un buen resultado.
El diseño de filtros digitales es un tema complejo. [1] Aunque los filtros son fáciles de entender y calcular, los desafíos prácticos de su diseño e implementación son significativos y son objeto de investigación avanzada.
Los requisitos típicos que pueden considerarse en el proceso de diseño son:
La respuesta de frecuencia requerida es un parámetro importante . La pendiente y la complejidad de la curva de respuesta determinan el orden y la viabilidad del filtro.
Un filtro recursivo de primer orden solo tendrá un único componente dependiente de la frecuencia. Esto significa que la pendiente de la respuesta de frecuencia está limitada a 6 dB por octava . Para muchos propósitos, esto no es suficiente. Para lograr pendientes más pronunciadas, se requieren filtros de orden superior.
En relación con la función de frecuencia deseada, puede haber también una función de ponderación acompañante , que describe, para cada frecuencia, qué importancia tiene que la función de frecuencia resultante se aproxime a la deseada.
Ejemplos típicos de función de frecuencia son:
Existe una correspondencia directa entre la función de frecuencia del filtro y su respuesta al impulso: la primera es la transformada de Fourier de la segunda. Esto significa que cualquier requisito sobre la función de frecuencia es un requisito sobre la respuesta al impulso, y viceversa.
Sin embargo, en ciertas aplicaciones puede ser la respuesta al impulso del filtro la que sea explícita y el proceso de diseño apunta entonces a producir una aproximación lo más cercana posible a la respuesta al impulso solicitada, dados todos los demás requisitos.
En algunos casos, puede ser incluso relevante considerar una función de frecuencia y una respuesta de impulso del filtro que se eligen independientemente una de la otra. Por ejemplo, podemos querer tanto una función de frecuencia específica del filtro como que el filtro resultante tenga un ancho efectivo lo más pequeño posible en el dominio de la señal. La última condición se puede lograr considerando una función muy estrecha como la respuesta de impulso deseada del filtro, aunque esta función no tenga relación con la función de frecuencia deseada. El objetivo del proceso de diseño es entonces realizar un filtro que intente cumplir con estos dos objetivos de diseño contradictorios tanto como sea posible. Un ejemplo es el audio de alta resolución en el que la respuesta de frecuencia (magnitud y fase) para señales de estado estable (suma de sinusoides) es el requisito principal del filtro, mientras que una respuesta de impulso sin restricciones puede causar una degradación inesperada debido a la dispersión temporal de las señales transitorias . [2] [3]
Cualquier filtro que funcione en tiempo real (la respuesta del filtro depende únicamente de las entradas actuales y pasadas) debe ser causal . Si el proceso de diseño produce un filtro no causal, el filtro resultante puede volverse causal introduciendo un desfase temporal (o retraso) apropiado.
Los filtros que no funcionan en tiempo real (por ejemplo, para el procesamiento de imágenes) pueden ser no causales. Los filtros no causales pueden estar diseñados para tener un retardo cero.
Un filtro estable garantiza que cada señal de entrada limitada produzca una respuesta de filtro limitada. Un filtro que no cumpla este requisito puede resultar inútil o incluso perjudicial en algunas situaciones. Ciertos enfoques de diseño pueden garantizar la estabilidad, por ejemplo, utilizando únicamente circuitos de retroalimentación, como un filtro FIR. Por otro lado, los filtros basados en circuitos de retroalimentación tienen otras ventajas y, por lo tanto, pueden ser preferibles, incluso si esta clase de filtros incluye filtros inestables. En este caso, los filtros deben diseñarse con cuidado para evitar la inestabilidad.
En ciertas aplicaciones, tenemos que trabajar con señales que contienen componentes que pueden describirse como fenómenos locales, por ejemplo, pulsos o pasos, que tienen una duración determinada. Una consecuencia de aplicar un filtro a una señal es, en términos intuitivos, que la duración de los fenómenos locales se amplía por el ancho del filtro. Esto implica que, a veces, es importante mantener el ancho de la función de respuesta al impulso del filtro lo más corto posible.
Según la relación de incertidumbre de la transformada de Fourier, el producto del ancho de la función de respuesta al impulso del filtro y el ancho de su función de frecuencia debe superar una constante determinada. Esto significa que cualquier requisito sobre la localidad del filtro también implica un límite en el ancho de su función de frecuencia. En consecuencia, puede que no sea posible cumplir simultáneamente los requisitos sobre la localidad de la función de respuesta al impulso del filtro y sobre su función de frecuencia. Este es un ejemplo típico de requisitos contradictorios.
Un deseo general en cualquier diseño es que el número de operaciones (sumas y multiplicaciones) necesarias para calcular la respuesta del filtro sea el menor posible. En ciertas aplicaciones, este deseo es un requisito estricto, por ejemplo, debido a recursos computacionales limitados, recursos de energía limitados o tiempo limitado. La última limitación es típica en aplicaciones en tiempo real.
Existen varias formas en las que un filtro puede tener distinta complejidad computacional. Por ejemplo, el orden de un filtro es más o menos proporcional al número de operaciones. Esto significa que al elegir un filtro de orden bajo, se puede reducir el tiempo de cálculo.
En el caso de los filtros discretos, la complejidad computacional es más o menos proporcional al número de coeficientes del filtro. Si el filtro tiene muchos coeficientes, por ejemplo en el caso de señales multidimensionales como los datos de tomografía, puede ser relevante reducir el número de coeficientes eliminando aquellos que estén suficientemente cerca de cero. En los filtros multifrecuencia, el número de coeficientes se reduce aprovechando sus límites de ancho de banda, donde la señal de entrada se reduce de frecuencia (por ejemplo, hasta su frecuencia crítica) y se aumenta de frecuencia después del filtrado.
Otra cuestión relacionada con la complejidad computacional es la separabilidad, es decir, si un filtro puede escribirse como una convolución de dos o más filtros más simples y cómo hacerlo. En particular, esta cuestión es importante para los filtros multidimensionales, por ejemplo, los filtros 2D que se utilizan en el procesamiento de imágenes. En este caso, se puede obtener una reducción significativa de la complejidad computacional si el filtro se puede separar como la convolución de un filtro 1D en la dirección horizontal y un filtro 1D en la dirección vertical. Un resultado del proceso de diseño de filtros puede ser, por ejemplo, aproximar algún filtro deseado como un filtro separable o como una suma de filtros separables.
También hay que decidir cómo se va a implementar el filtro:
El diseño de filtros analógicos lineales se cubre en su mayor parte en la sección de filtros lineales .
Los filtros digitales se clasifican en una de dos formas básicas, según cómo responden a un impulso unitario :
A menos que la frecuencia de muestreo esté determinada por alguna restricción externa, seleccionar una frecuencia de muestreo adecuada es una decisión de diseño importante. Una frecuencia alta requerirá más recursos computacionales, pero menos filtros anti-aliasing . La interferencia y la vibración con otras señales en el sistema también pueden ser un problema.
Para cualquier diseño de filtro digital, es crucial analizar y evitar los efectos de aliasing . A menudo, esto se hace agregando filtros anti-aliasing analógicos en la entrada y la salida, evitando así cualquier componente de frecuencia por encima de la frecuencia de Nyquist . La complejidad (es decir, la inclinación) de dichos filtros depende de la relación señal-ruido requerida y de la relación entre la frecuencia de muestreo y la frecuencia más alta de la señal.
Algunas partes del problema de diseño se relacionan con el hecho de que ciertos requisitos se describen en el dominio de la frecuencia, mientras que otros se expresan en el dominio del tiempo y que estos pueden entrar en conflicto. Por ejemplo, no es posible obtener un filtro que tenga una respuesta de impulso arbitraria y una función de frecuencia arbitraria. Otros efectos que se refieren a las relaciones entre el dominio del tiempo y la frecuencia son:
Como se indica en el límite de Gabor , un principio de incertidumbre, el producto del ancho de la función de frecuencia por el ancho de la respuesta al impulso no puede ser menor que una constante específica. Esto implica que si se solicita una función de frecuencia específica, correspondiente a un ancho de frecuencia específico, se establece el ancho mínimo del filtro en el dominio de la señal. Viceversa, si se proporciona el ancho máximo de la respuesta, esto determina el ancho más pequeño posible en la frecuencia. Este es un ejemplo típico de requisitos contradictorios en los que el proceso de diseño del filtro puede intentar encontrar un compromiso útil.
Sea la varianza de la señal de entrada y sea la varianza del filtro. La varianza de la respuesta del filtro, , está dada por
Esto significa que la localización de diversas características, como pulsos o pasos, en la respuesta del filtro está limitada por el ancho del filtro en el dominio de la señal. Si se solicita una localización precisa, necesitamos un filtro de ancho pequeño en el dominio de la señal y, a través del principio de incertidumbre, su ancho en el dominio de la frecuencia no puede ser arbitrariamente pequeño.
Sea f(t) una función y sea su transformada de Fourier. Existe un teorema que establece que si la primera derivada de F que es discontinua tiene orden , entonces f tiene un decaimiento asintótico como .
Una consecuencia de este teorema es que la función de frecuencia de un filtro debe ser lo más suave posible para permitir que su respuesta al impulso tenga una caída rápida y, por lo tanto, un ancho corto.
Un método común para diseñar filtros FIR es el algoritmo de diseño de filtros Parks-McClellan , basado en el algoritmo de intercambio Remez . Aquí el usuario especifica una respuesta de frecuencia deseada, una función de ponderación para los errores de esta respuesta y un orden de filtro N. Luego, el algoritmo encuentra el conjunto de N coeficientes que minimizan la desviación máxima del ideal. Intuitivamente, esto encuentra el filtro que está lo más cerca posible de la respuesta deseada dado que puede usar solo N coeficientes. Este método es particularmente fácil en la práctica y al menos un texto [4] incluye un programa que toma el filtro deseado y N y devuelve los coeficientes óptimos. Una posible desventaja de los filtros diseñados de esta manera es que contienen muchas pequeñas ondulaciones en la(s) banda(s) de paso, ya que un filtro de este tipo minimiza el error de pico.
Otro método para encontrar un filtro FIR discreto es la optimización del filtro descrita en Knutsson et al., que minimiza la integral del cuadrado del error, en lugar de su valor máximo. En su forma básica, este enfoque requiere que se especifique una función de frecuencia ideal del filtro junto con una función de ponderación de frecuencia y un conjunto de coordenadas en el dominio de la señal donde se ubican los coeficientes del filtro.
Una función de error se define como
donde es el filtro discreto y es la transformada de Fourier de tiempo discreto definida en el conjunto especificado de coordenadas. La norma utilizada aquí es, formalmente, la norma habitual en espacios. Esto significa que mide la desviación entre la función de frecuencia solicitada del filtro, , y la función de frecuencia real del filtro realizado, . Sin embargo, la desviación también está sujeta a la función de ponderación antes de que se calcule la función de error.
Una vez establecida la función de error, el filtro óptimo viene dado por los coeficientes que minimizan . Esto se puede hacer resolviendo el problema de mínimos cuadrados correspondiente. En la práctica, la norma debe aproximarse mediante una suma adecuada sobre puntos discretos en el dominio de la frecuencia. En general, sin embargo, estos puntos deben ser significativamente más que el número de coeficientes en el dominio de la señal para obtener una aproximación útil.
El método anterior se puede ampliar para incluir un término de error adicional relacionado con una respuesta de impulso de filtro deseada en el dominio de la señal, con una función de ponderación correspondiente. La respuesta de impulso ideal se puede elegir independientemente de la función de frecuencia ideal y se utiliza en la práctica para limitar el ancho efectivo y eliminar los efectos de zumbido del filtro resultante en el dominio de la señal. Esto se hace eligiendo una función de respuesta de impulso de filtro ideal estrecha, por ejemplo, un impulso, y una función de ponderación que crece rápidamente con la distancia desde el origen, por ejemplo, la distancia al cuadrado. El filtro óptimo todavía se puede calcular resolviendo un problema de mínimos cuadrados simple y el filtro resultante es entonces un "compromiso" que tiene un ajuste óptimo total a las funciones ideales en ambos dominios. Un parámetro importante es la fuerza relativa de las dos funciones de ponderación que determina en qué dominio es más importante tener un buen ajuste en relación con la función ideal.