2011-07-12 6 views
7

¿Conoces alguna biblioteca C++ que implemente filtros IIR? Necesito algo similar a la función de filtro de Matlab (B, A, X). Aunque no es necesario, preferiría una implementación de la forma directa de IIR 2.Una biblioteca C++ para filtro IIR

Respuesta

12

Hay octava, un clon MatLab de código abierto, podría usar su implementación (pero es probable que requiera su uso con su tipo de matriz especial).

La búsqueda de "filtro de C++ IIR" encuentra un montón de otros proyectos, tales como:

También hay una gran variedad de libros sobre el tema, por ejemplo:

En general, la implementación de un filtro IIR es muy fácil. La solidez numérica y el uso eficiente del hardware de su computadora son más difíciles, pero requieren conocimiento de su aplicación específica (por ejemplo, remuestreo, etc.) por lo que no son realmente adecuados para las implementaciones de la biblioteca.

+0

SPUC no se mantiene desde 2005, ¡pero gracias por dspfilterscpp! –

0

Puede probar el proyecto SPUC en sourceforge. Tienen algunas funciones DSP, pero hay poca documentación.

+0

No se mantuvo desde 2005 –

+2

@Andrejs: Pero me imagino que el filtro IIR usando C++ habría cambiado poco. Tal vez algunas optimizaciones aquí y allá ... pero no hay muchos cambios en la teoría ... – Sriram

+0

@Sriram, eso es cierto, pero C++ tiene una nueva versión con cambios significativos a los algoritmos y contenedores estándar de la biblioteca. Además, algunas estructuras de datos de buffer de señal probablemente podrían beneficiarse de tener constructores de movimiento. –

2

También puede probar GNURadio (gnuradio.org), que contiene todo tipo de componentes para la radio definida por software (incluidos los filtros iir). Originalmente era todo C++, ahora es un conjunto de módulos escritos en C++ con enlaces de python, pero aún así debería poder usar el código de C++ directamente.