任何一个优秀的C / C ++的DSP库? [英] Any good C/C++ DSP library?

查看:157
本文介绍了任何一个优秀的C / C ++的DSP库?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你会推荐哪DSP库在C / C ++?我会需要它的实时嵌入式系统。这将会是巨大的,有声音信号处理陪过,但不是强制性的。如果您有任何DSP库的知识,请您分享一下。


解决方案

  

我们正在考虑AVR,ARM,甚至一些中等范围的芯片


他们都不是特别设计的DSP,但如果您的性能需求是温和的,以至于可能不是一个问题。你有什么需要DSP做什么?我建议你​​首先选择你的平台,并使用供应商的库,因为这会为平台进行优化。如果供应商不具备的DSP库,那么部分可能不是一个很好的DSP平台。

例如Microchip的的dsPIC 设备用DSP微控制器子系统,让每MHz性能良好的DSP算法,如FIR和FFT和Microchip的提供DSP库部分进行了优化。

ST为他们 STM32 部分提供了DSP库。这些都是皮质M3的设备,而不是DSP,但哈佛架构和乘法累加指令使它们在低端应用,如电机控制或语音波段音频处理有足够的能力。从技术上讲,因为DSP库为源 - code提供的,它可能会移植到任何Thumb-2指令集设备,但可能不被许可这样使用。而在同一工作频率它们比的dsPIC大大慢于DSP算法(使用优化的汇编库时),他们是位于C code执行一般的快,但你的里程可能会有所不同,这取决于code和应用程序。

同样爱特梅尔用于提供DSP库中的 AVR32 。我有这个没有直接的经验,但期望相当的性能到皮质立方米设备。显著也许,Atmel的图书馆是更为广泛,更好地记录了ST的。

如果你想要的东西更快,是不是一个纯粹的DSP,可以考虑<一个href=\"http://sg.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family\"相对=nofollow>瑞萨的SH-2 的设备,以惊人的每MHz的MIPS 2,在不被许多应用的专用DSP不是一个问题,一些地方确实有在任何情况下DSP扩展。再次,供应商提供一个优化的DSP库。

除了这些通用与 - DSP-能力的设备,你可能会为一个真正的DSP当然选择的。 TI产生广泛的从低端到高这些设备的。然而,在我的经验,开发成本是由于TI的高费用的开发工具高,许多地方都在片上外设略显清淡。

[更新23 APRI l2012]
新STM32F4xx部分的Cortex-M4基于这样包括DSP和浮点硬件。它们具有相同的DSP库API作为Cortex-M3的基础STM32F1xx之/ F2xx部分,但利用DSP内核获得更好的性能。

Which DSP library in C/C++ would you recommend? I will need it for real-time embedded systems. It'd be great to have sound signal processing accompany too, but not a mandatory. If you have knowledge of any DSP library, please kindly share.

解决方案

We are thinking of AVR, ARM and even some middle range chips

Neither are particularly designed for DSP, but if your performance requirements are modest enough that may not be a problem. What do you need the DSP to do? I suggest that you choose your platform first and use the vendor's library since that will be optimised for the platform. If the vendor does not have a DSP library, then the part may not be a good DSP platform.

For example Microchip's dsPIC devices are microcontrollers with a DSP subsystem that gives good performance per MHz for DSP algorithms such as FIR and FFT, and Microchip provide a DSP library optimised for the part.

ST provide a DSP library for their STM32 parts. These are Cortex M3 devices rather than DSP, but the Harvard architecture and multiply-accumulate instruction make them capable enough in low-end applications such as motor control or speech-band audio processing. Technically since the DSP library is provided as source-code, it would probably port to any Thumb-2 instruction set device, but may not be licensed for such use. While at the same operating frequency these are considerably slower than dsPIC at DSP algorithms (when using optimised assembler libraries), they are faster in general at C code execution, but your mileage may vary, depending on the code and application.

Similarly Atmel provide a DSP library for their AVR32. I have no direct experience of this, but would expect comparable performance to a Cortex m3 device. Significantly perhaps, Atmel's library is far more extensive, and better documented that ST's.

If you want something faster that is not a pure DSP, consider Renesas's SH-2 devices, at an astonishing 2 MIPS per MHz, in many applications not being a dedicated DSP is not an issue, and some parts do have DSP extensions in any case. Again the vendor provides an optimised DSP library.

Other than these 'general-purpose-with-DSP-capability' devices, you might of course opt for a real DSP. TI produce a wide range of such devices from low-end to high. In my experience however, the development costs are high due to TI's high fees for its dev-tools, and many parts are a bit light on on-chip peripherals.

[UPDATE 23 Apri l2012] New STM32F4xx parts are Cortex-M4 based so include DSP and floating-point hardware. They have the same DSP library API as Cortex-M3 base STM32F1xx/F2xx parts but make use of the DSP core for better performance.

这篇关于任何一个优秀的C / C ++的DSP库?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆