floating point FFT

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

floating point FFT

412 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by biggerfoot on Fri Jan 10 15:55:00 MST 2014
Hi

Does anyone know how many cycles a 1024 point complex floating point FFT would take on LPC43?

Thanks
Labels (1)
0 Kudos
2 Replies

336 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by biggerfoot on Mon Jan 13 10:36:41 MST 2014
Thanks.

I understand it depends on a number of things, I also understand the it would take the same amount of cycles on all M4's.

The question should be phrased as this "How many cycles would an optimized floating point 1024-point complex FFT take on an Cortex M4, under the optimal ( like in a CPU cycle accurate simulator) condition?" Is it like 10k cycles, 50k or 200k?
0 Kudos

336 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by bavarian on Mon Jan 13 05:13:11 MST 2014
Sorry if the answer might sound a little bit callous: it needs as many cycles as on any other Cortex-M4F microcontroller, as long as you use the same code+compiler+settings.

When it comes to the time needed for an FFT at a specific core frequency running from a specific memory then we will see differences between different MCUs.
The LPC4300 is the fastest Cortex-M4F MCU on the market (204MHz), therefore the FFT calculation will be the fastest under the following conditions:
- same code, compiler and settings
- code runs from a memory with 0 waitstates, e.g. internal SRAM.

When you run from internal flash then you will already see dependencies of the flash accellerator implementation between different vendors, but such a comparison is then heavy work.

I think that you could find some numbers for an FFT in the docu of the CMSIS DSP library from ARM.

Note: The LPC4300 has of course another advantage over other Cortex-M4F MCUs:  it has the second core, an M0, which can be used to speed up things on application level

Hope this helps a little bit,
NXP Support Team
0 Kudos