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$ – jojek Oct 27 '16 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$ – Marcus Müller Oct 27 '16 at 13:10

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$ – Marcus Müller Mar 15 at 19:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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