tutorial org c++ audio signal-processing wave

c++ - org - processing processing



¿Alguna buena biblioteca C/C++ DSP? (3)

Como dijo Kirill, depende de sus requisitos y plataforma.

Para las máquinas basadas en Intel, las Performance Primitives de Intel son geniales. Bastante barato también.

¿Qué biblioteca DSP en C / C ++ recomendaría? Lo necesitaré para sistemas integrados en tiempo real. Sería genial tener el procesamiento de la señal de sonido también, pero no es obligatorio. Si tiene conocimiento de cualquier biblioteca DSP, comparta amablemente.


Estamos pensando en AVR, ARM e incluso algunos chips de rango medio

Ninguno de los dos está especialmente diseñado para DSP, pero si sus requisitos de rendimiento son lo suficientemente modestos, eso puede no ser un problema. ¿Qué necesitas que haga el DSP? Le sugiero que primero elija su plataforma y use la biblioteca del proveedor, ya que se optimizará para la plataforma. Si el proveedor no tiene una biblioteca DSP, entonces la parte puede no ser una buena plataforma DSP.

Por ejemplo, los dispositivos dsPIC de Microchip son microcontroladores con un subsistema DSP que ofrece un buen rendimiento por MHz para algoritmos DSP como FIR y FFT, y Microchip proporciona una biblioteca DSP optimizada para la pieza.

ST proporciona una biblioteca DSP para sus piezas STM32 . Se trata de dispositivos Cortex M3 en lugar de DSP, pero la arquitectura de Harvard y las instrucciones de acumulación múltiple los hacen suficientemente capaces en aplicaciones de gama baja, como el control del motor o el procesamiento de audio en banda de voz. Técnicamente, dado que la biblioteca DSP se proporciona como código fuente, probablemente se transferirá a cualquier dispositivo de conjunto de instrucciones Thumb-2, pero es posible que no tenga licencia para dicho uso. Si bien a la misma frecuencia de operación son considerablemente más lentas que dsPIC en los algoritmos DSP (cuando se utilizan bibliotecas ensambladoras optimizadas), en general son más rápidos en la ejecución del código C, pero su millaje puede variar según el código y la aplicación.

Del mismo modo, Atmel proporciona una biblioteca DSP para su AVR32 . No tengo experiencia directa de esto, pero esperaría un rendimiento comparable a un dispositivo Cortex m3. Quizás de manera significativa, la biblioteca de Atmel es mucho más extensa y mejor documentada que las ST.

Si desea algo más rápido que no sea un DSP puro, considere los dispositivos SH-2 de Renesas , con un asombroso nivel de 2 MIPS por MHz, en muchas aplicaciones que no son un DSP dedicado no es un problema, y ​​algunas partes tienen extensiones DSP en cualquier caso . De nuevo, el proveedor proporciona una biblioteca DSP optimizada.

Además de estos dispositivos de "capacidad general con DSP", es posible que opte por un DSP real. TI produce una amplia gama de dispositivos de baja a alta. En mi experiencia, sin embargo, los costos de desarrollo son altos debido a las altas tarifas de TI para sus herramientas de desarrollo, y muchas partes son un poco ligeras en los periféricos en chip.

[ACTUALIZACIÓN 23 Apri l2012] Las nuevas piezas STM32F4xx están basadas en Cortex-M4, por lo que incluyen DSP y hardware de coma flotante. Tienen la misma API de la biblioteca DSP que las partes de la base Cortex-M3 STM32F1xx / F2xx pero hacen uso del núcleo DSP para un mejor rendimiento.