cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F4 - FFT for 32768 input buffer

marcin0x02
Associate
Posted on October 16, 2014 at 14:31

Hi everybody!

I'm going to use STM32f429 with external SDRAM (IS42S16400J 64MBit) in my project. I'm trying to make FFT for 32768 input buffer, my function calculate it in about 250ms.

Functions in CMSIS LIB do it much quicker but support only length 128, 512, 2048. How can I do long FFT with good performance?
4 REPLIES 4
frankmeyer9
Associate II
Posted on October 16, 2014 at 16:42

Functions in CMSIS LIB do it much quicker but support only length 128, 512, 2048. How can I do long FFT with good performance?

 

You can try to extend the DSP lib functions for such buffer sizes, or port other FFT libraries to your platform. Performance will hardly be better. Runtime increases about by factor 4 (square) for doubling of buffer size, if I remember correctly.

I'm trying to make FFT for 32768 input buffer, ...

 

Why do you need such a high frequency resolution ?

There are other algorithms to calculate single frequency points, which might be better suited to your problem. (Just can't remember the names, though ...)

Posted on October 16, 2014 at 18:22

From a processor perspective SDRAM is the SLOWEST available memory to operate on. The CCMRAM is the less contested memory bus.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
marcin0x02
Associate
Posted on October 17, 2014 at 09:55

Why do you need such a high frequency resolution ?

 

I set 32kHz sampling frequwncy and 1s time measurement.

frankmeyer9
Associate II
Posted on October 17, 2014 at 12:59

I set 32kHz sampling frequwncy and 1s time measurement.

 

So sample for a shorter time and use a 1024 or 2048 buffer size.

Use DMA with the appropriate buffer size, and you will get notified by interrupt when a buffer is ready.

This will save you from a lot of trouble.