有什么好的C / C ++ DSP库吗?

时间:2009-11-19 06:08:03

标签: c++ audio signal-processing wave

您会推荐使用C / C ++中的哪个DSP库?我需要它用于实时嵌入式系统。伴随声音信号处理也很棒,但不是强制性的。如果您对任何DSP库有所了解,请分享。

3 个答案:

答案 0 :(得分:8)

  

我们正在考虑AVR,ARM甚至一些中档芯片

两者都不是专为DSP设计的,但如果您的性能要求足够适中,那可能不是问题。你需要DSP做什么?我建议您首先选择您的平台并使用供应商的库,因为它将针对该平台进行优化。如果供应商没有DSP库,则该部件可能不是一个好的DSP平台。

例如,Microchip的dsPIC器件是具有DSP子系统的微控制器,可为FIR算法(如FIR和FFT)提供每MHz的良好性能,而Microchip则提供针对该器件优化的DSP库。

ST为其STM32部分提供DSP库。这些是Cortex M3器件而不是DSP,但哈佛架构和乘法累加指令使它们在电机控制或语音频段音频处理等低端应用中足够强大。从技术上讲,由于DSP库是作为源代码提供的,它可能会移植到任何Thumb-2指令集设备,但可能不会被许可用于此类用途。虽然在相同的工作频率下,它们比DSP算法上的dsPIC慢得多(当使用优化的汇编程序库时),它们在C代码执行时通常更快,但您的里程可能会有所不同,具体取决于代码和应用程​​序。

同样,Atmel为他们的AVR32提供了一个DSP库。我没有这方面的直接经验,但期望与Cortex m3设备相当的性能。值得注意的是,Atmel的图书馆更为广泛,并且更好地记录了ST的图书馆。

如果你想要一个不是纯DSP的更快的东西,考虑Renesas's SH-2设备,每兆赫2 MIPS令人惊讶,在许多不是专用DSP的应用中不是问题,有些部分有DSP无论如何都要扩展。供应商再次提供优化的DSP库。

除了这些“通用DSP功能”设备外,您当然可以选择真正的DSP。 TI生产从低端到高端的各种此类器件。然而,根据我的经验,由于TI对其开发工具的高额费用,开发成本很高,许多部分对片上外设有点不了解。

[UPDATE 23 Apri l2012] 新的STM32F4xx器件基于Cortex-M4,因此包括DSP和浮点硬件。它们具有与Cortex-M3基础STM32F1xx / F2xx相同的DSP库API,但利用DSP内核实现更好的性能。

答案 1 :(得分:2)

正如基里尔所说,这取决于你的要求和平台。

对于基于英特尔的机器Intel's Performance Primitives非常出色。相当便宜。

答案 2 :(得分:1)

您可以使用 Aquila ,它很小且易于使用。

Aquila DSP Library