DSP for Cortex-M

Signal processing with all the benefits of developing on a MCU while leveraging the ease of use of Cortex-M

Overview

Arm’s Digital Signal Controllers, the Cortex-M4, Cortex-M7, Cortex-M33 and Cortex-M35P processors, 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 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, Cortex-M7, Cortex-M33 and Cortex-M35P processors, while maintaining the ease of use of the Cortex-M programmer’s model.

Breaking down 32-bit Diagram.

Wide range of DSP and SIMD instructions

The Cortex-M4, Cortex-M7, Cortex-M33 and Cortex-M35P processors 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 the same time within a 32-bit register.

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, Cortex-M33 and Cortex-M35P 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.

Arm's DSP ecosystem partners also provide a broad range of software libraries, including servo motor control, Voice over IP (VOIP) and video & audio codecs. Learn more about DSP ecosystem partners here.

  • Line drawing of letter, email etc.
  • CMSIS-DSP Library

    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.

    Access library
  • Line drawing of letter, email etc.
  • Keyword Spotting

    Explore the Arm keyword spotting (KWS) open source library for microcontrollers on GitHub.


    Access library

Strong ecosystem for DSP applications

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

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

Audio codecs:

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  
  Speex  
  Melp  
MelpE

Useful Resources 

For more help and information, see these resources:

Videos
Hands-On DSP Teaching Using Inexpensive Arm Cortex-M4 Microcontrollers.

Blogs
Cortex-M in DSP applications – Why not?.

5 benefits to replacing analog components with DSP software

Learn how to convert an analog circuit into software using Advanced Solutions Nederlands (ASN) Filter Designer

Arm Cortex-M processors in DSP applications. Why not?

White papers
DSP capabilities of Cortex-M4 and Cortex-M7.

Machine learning in low-power devices brings sound recognition to the smart home market.

DSP capabilities of Cortex-M4 and Cortex-M7

Machine learning in low-power devices bring sound recognition to the smart home market

Education
Digital Signal Processing University Education Kit 

Digital Signal Processing Online Course

Digital signal processing using Cortex-M based microcontrollers: theory and practice textbook

Ecosystem partners
Learn more about our DSP ecosystem partners

Is what you're looking for not here? Get in touch to suggest additional supporting information. 

Webinars
How to choose between analog hardware and digital signal processing

DSP software development masterclass with Arm and MathWorks

Explore the latest software resources from this webinar:

Fast Models

  • **Arm Fast Model support package for MathWorks Embedded Coder

  • Arm Compiler

    DSP in MATLAB and Simulink

    Machine Learning in MATLAB

    Code Generation Workflows

    **Arm Integration with Embedded Coder

    Is what you're looking for not here? Get in touch to suggest additional supporting information.

    Fast Models

    Arm-based SoCs and subsystems with fast virtual prototypes.

    Learn more

    Arm Compiler

    Cortex-M processor software development with the next-generation C/C++ compilation toolchain.

    Learn more

    Find out more

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