Al diezmar una señal de banda estrecha con un filtro integrador-peine en cascada (CIC) , ¿qué filtro FIR es más adecuado para compensar la respuesta de frecuencia CIC?
filter-design
Augusto Zebadúa
fuente
fuente
Respuestas:
No hay una respuesta única a su pregunta: como con cualquier problema de diseño de filtro, depende de sus requisitos. Como se describe bastante bien en la página de Wikipedia , los filtros CIC (cascaded-integrator-comb) consisten en una serie de pares de etapas integrador y comb (de ahí el nombre). Cada etapa integrador-peine tiene una respuesta de impulso agregada que es equivalente a un filtro de vagón (es decir, uno con una respuesta de frecuencia rectangular). La respuesta de frecuencia (magnitud) de un vagón tiene una forma que se asemeja a una función sinc, por lo que la estructura CIC general tendrá una respuesta de magnitud que se parece a una función sinc llevada a cierta potencia , donde es el número de etapas de peine integrador.Nnorte norte
Sin embargo, no hay muchos mandos para ajustar en función de los requisitos específicos de la aplicación. Puede ajustar la relación de diezmado / interpolación de la estructura CIC, el retardo de peine y el número de etapas, pero todavía está atascado con la respuesta de frecuencia tipo sinc, que no es particularmente ideal, ya que no es plana en todo el lóbulo principal y tiene lóbulos laterales relativamente altos. Por lo tanto, es típico que un CIC sea seguido por otro filtro que "limpie" la respuesta general.
El problema: lo que necesita de cualquier filtro de compensación que ponga después de que el CIC será definido por su aplicación. Lo realmente importante es la respuesta de la cascada general, que restringiría en función de las necesidades de su aplicación. No hay un filtro específico que sea "más adecuado".
fuente
Hubo una pregunta similar, /signals//a/1551/306 , y la siguiente es un subconjunto de la respuesta de la otra publicación.
En general, para compensar un filtro CIC, se puede usar el inverso de la respuesta de los filtros CIC para generar el filtro de compensación. El CIC tiene una respuesta de 2
Donde D es el retardo diferenciado, M es la tasa de diezmado y N es el orden del filtro (número de filtros en cascada). El inverso se puede especificar como
Una vez que tenemos la respuesta de frecuencia del filtro de compensación, simplemente podemos elegir la longitud del filtro FIR que deseamos. La longitud del FIR es específica de la aplicación. Obviamente, cuanto más largo sea el filtro FIR, mejor será la compensación.
Las siguientes son tramas de esta compensación directa.
El siguiente es el código de Python para crear las respuestas de frecuencia y los gráficos.
importar numpy como np de numpy import sin, abs, pi import pylab
1 Altera, "Comprender los filtros de compensación CIC"
2 R. Lyons, "Comprender el procesamiento de señales digitales", 2ª ed., Prentice Hall, Upper Saddle River, Nueva Jersey, 2004
fuente
Los ISOP (polinomios de segundo orden interpolados) se utilizan a menudo para compensar la caída de la banda de paso CIC.
La respuesta de Matlab de este filtro se puede mostrar usando:
Elegir el alfa para sus requisitos es la parte difícil. En el peor de los casos, simulaciones de fuerza bruta de preformas, haciendo un bucle de 0 a 0.5 en incrementos de 0.001 para encontrar el alfa que resulta en la mejor compensación de caída Definir la mejor compensación de caída como un error mínimo en el borde de su banda de paso.
Para mayor eficiencia, este filtro normalmente se coloca a la velocidad de datos más baja, antes del CIC para la interpolación y después del CIC para la aniquilación.
fuente