Какую библиотеку DSP в C/C++ вы бы порекомендовали? Мне это понадобится для встроенных систем реального времени. Было бы здорово, если бы обработка звукового сигнала тоже сопровождалась, но не обязательным. Если у вас есть знания какой-либо библиотеки DSP, пожалуйста, сообщите об этом.Любая хорошая библиотека DSP C/C++?
ответ
Мы думаем о AVR, ARM и даже некоторые чипы среднего диапазона
Ни специально разработаны для DSP, но если ваши требования к рабочим характеристикам достаточно скромны, что не может быть проблемой. Что вам нужно для DSP? Я предлагаю вам сначала выбрать платформу и использовать библиотеку поставщика, так как это будет оптимизировано для платформы. Если у поставщика нет библиотеки DSP, то эта часть может быть не хорошей платформой DSP.
Например, устройства Microchip dsPIC представляют собой микроконтроллеры с подсистемой DSP, обеспечивающие хорошую производительность на МГц для алгоритмов DSP, таких как FIR и FFT, а Microchip - это библиотека DSP, оптимизированная для этой части.
ST предоставляет библиотеку DSP для своих STM32 частей. Это устройства Cortex M3, а не DSP, но архитектура Harvard и команда умножения-накопления делают их достаточно доступными для низкопроизводительных приложений, таких как управление двигателем или обработка звука в речевой полосе. Технически, поскольку библиотека DSP предоставляется как исходный код, она, вероятно, будет переноситься на любое устройство набора инструкций Thumb-2, но не может быть лицензирована для такого использования. Хотя на той же рабочей частоте они значительно медленнее, чем dsPIC при алгоритмах DSP (при использовании оптимизированных библиотек ассемблера), они быстрее выполняются при выполнении кода C, но ваш пробег может варьироваться в зависимости от кода и приложения.
Аналогично, Atmel предоставляет библиотеку DSP для своих AVR32. У меня нет прямого опыта в этом, но мы ожидаем сопоставимую производительность с устройством 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 и аппаратные средства с плавающей точкой. Они имеют тот же API библиотеки DSP, что и компоненты Cortex-M3 base STM32F1xx/F2xx, но используют ядро DSP для повышения производительности.
Это не библиотеки. Но жалкий набор функций. ARM DSP lib тоже слишком плох, чтобы использовать его. Примером хорошей библиотеки является http://aquila-dsp.org/, но для ее запуска требуется мощное ядро и мощный современный компилятор. – kyb
@kyb: Если у вас есть предложение, вы должны отправить ответ. Очевидно, что библиотека представляет собой «набор функций» (жалкий или другой), я не уверен, что заявление о мнении полезно или уместно. Более того, восемь лет спустя, я уверен, что тоже буду давать разные советы! Сайт, с которым вы связались, даже не существовал, когда задавался вопрос. На самом деле сегодня вопрос почти наверняка будет закрыт как тема. – Clifford
Поскольку Кирилл сказал, что это зависит от ваших требований и платформы.
Для интеллектуальных машин Intel's Performance Primitives являются блестящими. Довольно дешево тоже.
IPP поддерживается в ARM XScale и x86 – Clifford
Вы можете использовать Aquila, он маленький и прост в использовании.
Это хорошая небольшая библиотека, но, к сожалению, в настоящее время она не поддерживает FIR/IIR –
Должна ли она быть открытым исходным кодом, бесплатно или нет? Какой процессор вы используете? –
Открытый исходный код не обязательно, но он хорош. Мы думаем о AVR, ARM и даже о некоторых чипах среднего уровня. Спасибо за ваш ответ. – Viet
Учитывая упомянутые вами части, вы можете пометить это «внедренное», но вы использовали квоту тэга, поэтому я оставлю его вам для повторной передачи. Я предлагаю вам не нуждаться в «DSP» и «обработке цифрового сигнала» – Clifford