Si la fase lineal es un requisito, eso probablemente lo guiará hacia una implementación FIR. Es posible construir filtros IIR que tengan una fase lineal aproximada, pero es fácil diseñar un FIR de fase lineal.
Si le preocupa la latencia, el filtrado hacia adelante y hacia atrás como en filtfilt
no es realmente una buena opción. En general, realmente está destinado a usarse como un proceso fuera de línea, ya que para implementar la técnica exactamente, debe ejecutar toda la señal hacia adelante y luego hacer lo mismo a la inversa. Eso implica que tiene acceso a toda la señal a la vez, lo cual no es acorde con un bajo retraso.
En general, un filtro FIR requerirá un orden superior para un conjunto dado de requisitos de rendimiento. Sin embargo, los filtros FIR brindan algunas ventajas reales, como estabilidad garantizada, menor susceptibilidad a errores de redondeo (ya que el error de cuantificación no se retroalimenta a través del filtro, aunque puede compensar esto con una mayor complejidad), y simplemente se logra Respuesta de fase lineal. Además, hay implementaciones eficientes de filtros FIR disponibles para muchas arquitecturas de procesadores, lo que mitiga un poco el costo de los toques adicionales.
Otra forma de mitigar el costo extra de derivación para los filtros FIR en su situación es aprovechar las técnicas eficientes de procesamiento de señales multirate. Específicamente, puede usar un enfoque de diezmado polifásico para reducir significativamente el número de cálculos que realiza en el proceso de diezmar su señal. Esto tiene el efecto de disminuir el número de tomas efectivas (en términos de complejidad computacional) en el filtro de diezmado. Además, si necesita diezmar por un factor importante, los enfoques de varias etapas pueden ayudarlo a reducir aún más su carga. El libro introductorio de DSP de Lyons tiene un buen material fácil de leer sobre estos temas.
Dados parámetros más específicos de su sistema, uno podría hacer recomendaciones más puntiagudas. ¿Cuáles son sus requisitos de diseño de filtro? ¿Qué tipo de capacidades computacionales tiene su plataforma? ¿A qué frecuencia de muestreo diezmarás?
¿Qué tan bajo quiere decir con "baja latencia"?
Si quiere decir menos de 1 mS con una gran reducción de la frecuencia de muestreo, entonces se puede requerir una FIR de fase mínima. Si se refiere a alrededor de 1/30 de segundo, incluso podría implementar un filtro FIR de fase lineal eficiente utilizando un enfoque de adición / guardado de superposición FFT (convolución rápida).
fuente
Un pequeño inconveniente con respecto a la complejidad del tiempo: los filtros FIR son vectorizables, lo que realmente ayuda en las arquitecturas de CPU modernas. Además, los filtros IIR tienen un impacto en el rendimiento porque el valor de salida actual depende de los valores de salida anteriores, lo que elimina la ventaja de la canalización.
fuente