DSP for Cortex-M

Signal processing with all the benefits of an MCU

Overview

ARM’s Digital Signal Controllers, Cortex-M4, Cortex-M33 and Cortex-M7, address the need for high-performance generic code processing, as well as digital signal processing applications.

The addition of DSP extensions to the Thumb instruction set, as defined in ARM’s architecture ARMv7-M, ARMv8-M and the optional floating-point unit (FPU), are designed to improve the performance of numerical algorithms. In addition, they provide the opportunity to perform signal processing operations directly on the Cortex-M4/M33/M7, while maintaining the ease of use of the Cortex-M programmer’s model.

Wide range of DSP and SIMD instructions

The Cortex-M4/M33/M7 provide SIMD instructions that operate on 8-or 16-bit integers. All registers are still 32-bits wide, but the SIMD instructions operate on 2 x 16-bit values or 4 x 8-bit values at a time within a 32-bit register.

One 32-bit word can hold 2x16-bit values or 4x8-bit values 

Instructions that work on 8- or 16-bit data types are useful for processing data such as video or audio, as they do not require full 32-bit precision. The SIMD instructions allow these 2x16-bit or4x8-bit operations to be performed in parallel.

Libraries

The CMSIS-DSP library is a suite of common signal processing and mathematical functions that have been optimized for Cortex-M4, Cortex-M7 and Cortex-M33 processors. The library is freely available as part of the CMSIS release from ARM and includes all source code.

The functions in the library are divided into several categories:

  1. Basic math functions, such as Vector Dot Product, Vector Multiply, Vector Addition
  2. Fast math functions, such as Square Root, Sine and Cosine
  3. Complex math functions, such as Complex Dot Product, Complex-by-real Multiplication
  4. Filters, such as FIR, IIR, Biquad and Convolution
  5. Matrix functions, such as Matrix Multiplication, Complex Matrix Multiplication
  6. Transforms, such as Complex FFT functions
  7. Motor control functions, including Vector Clarke Transform, Vector Park Transform, PID Motor Control
  8. Statistical functions, including Root Mean Square (RMS), Standard deviation, Maximum and Power
  9. Support functions, e.g. conversion of datatypes from float to fixed point
  10. Interpolation functions.

The CMSIS-DSP library has separate functions for operating on 8-bit integers, 16-bit integers, 32-bit integers, and 32-bit floating point values.

Visit the CMSIS-DSP library.

Strong ecosystem for DSP applications

A wide range of DSP software packages for Cortex-M4, Cortex-M7 and Cortex-M33 is available.

Learn more about ARM's DSP ecosystem partners who offer these software packages below:

Audio codecs:

Video and speech codecs:

Audio enhancement algorithms:

MP3 Decoder G.711 Echo cancellation
MP3 Encoder G722 Noise suppression
MPEG-2 Layer 2 Decoder G.722.1  Beamforming
MPEG-2 Layer 2 encoder G.722.2 Voice Activity Detection
AAC-LC decoder G.723.1 Key Word Spotting
AAC-LC encoder G.726 AudioZoom
AAC-LD encoder G.727 Equalization
AAC-LD decoder G.728 Wind noise reduction
AAC-ELC encoder G.729 Automatic Gain Control
HE-AAC encoder G.729A  
WMA encoder G.729B  
WMA decoder G.729AB  
SBC bluetooth decoder AMR Narrowband
SBC Bluetooth encoder AMR Wideband
Ogg Vorbis AMR Wideband+
FLAC GSM-HR
GSM-ER
GSM-EFR
Opus  
  iLBC  
  SILK  
  Speez  
  Melp  
MelpE

Find out more

Interested in speaking with someone about licensing Arm technology? Get in touch to speak with one of our sales representatives.