I have written an audio processing application in C++ which runs on a desktop windows computer.

My next step is to implement this on an embedded system using a microcontroller, preferably arm-based.

As my application uses fft libraries which does floating point calculations, do I need a microcontroller with a floating point unit, or is there still a way to do this on a microcontroller without floating point hardware?

What type of ARM CPU would be recommended for processing audio with FFT like this? Thanks in advance

  • 1
    $\begingroup$ If it's ARM, then you can already use CMSIS. It offers both fixed-point and floating-point FFT routines. $\endgroup$
    – jojeck
    Oct 27, 2016 at 10:34
  • $\begingroup$ What kind of device to recommend large depends on what you'll need to do – a 44.1 kHz 128-point DFT might be pretty feasible on a small MCU, but if you need to handle 20 channels with 192kSps each and do $2^{16}$-FFTs on those, maybe it looks different. $\endgroup$ Oct 27, 2016 at 13:10

1 Answer 1


Generally, Arm Cortex-A9 type processor can be used for Audio signal processing blocks for effective results. For your case, basic arm processor type can support common floating point operations without any external floating point unit. But, in case of special floating point operations like saturation,rounding and truncation, you shall use some advanced arm processors like cortex-a9 which has specific floating point unit for efficient signal processing.

  • $\begingroup$ notice that the ARM Cortex-M series of cores has several cores with floating point extensions; you'll know them by their "F" suffix, e.g. "ARM cortex-M4F", "-M7F", "-M23F" $\endgroup$ Mar 15, 2019 at 19:08
  • $\begingroup$ Yes. You are right Marcus. Based on the application needs we can choose the processor. For smaller applications, Cortex-M4 is enough which supports floating point operations where COrtex-A9 is pretty cost. $\endgroup$ Jun 5, 2019 at 13:47
  • $\begingroup$ more importantly, the Cortex-A series is application processors – you'd need to add external RAM and storage, whereas -M is for microcontrollers, i.e. self-contained, runs on a single supply voltage, can be used with PCBs with only 2 layers, is robust... $\endgroup$ Jun 5, 2019 at 14:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.