Here are some of the most popular and widely used DSP (Digital Signal Processing) (What is a DSP?)libraries for embedded systems:
1. CMSIS-DSP (Arm Cortex-M series)
Platform: ARM Cortex-M (e.g., STM32, NXP, etc.)
Features:
Optimized for: Hardware acceleration using SIMD on Cortex-M4, M7, M33, M55
Maintained by: Arm
License: BSD-like (very permissive)
Best for: STM32 and any Arm-based MCU
2. KissFFT
Platform: Cross-platform (C-based)
Features:
License: BSD
Use case: FFTs in resource-constrained devices
Best for: Small MCUs with custom FFT needs
3. DSP Library from Texas Instruments (TI DSP Library)
Platform: TI C2000, MSP430, and other TI DSPs
Features:
Highly optimized for TI’s proprietary cores (e.g., C28x)
Best for: TI DSP chips and real-time control systems
4. PULP-DSP
Platform: RISC-V (PULP architecture)
Features:
License: Open source (Solderpad/MIT)
Best for: RISC-V based low-power embedded systems
5. Eigen (Header-only C++ Library)
Platform: General embedded systems with C++ support
Features:
Not optimized for MCU scale but usable with fast processors
Best for: Medium/high-end MCUs with C++ needs
6. ARM Compute Library
Platform: ARM Cortex-A (e.g., Raspberry Pi, ARM SoCs)
Features:
Best for: Embedded Linux + DSP/AI workloads
Comparison Table
Conclusion
If you're using STM32, CMSIS-DSP is by far the most compatible and optimized option.
For lightweight or custom use: KissFFT or TI DSP Library (if using TI chips).
For RISC-V systems: go with PULP-DSP.