2024-02-16 3:01 AM
2025-04-14 5:40 AM
Yes . I got the solution for more than 4098 point FFT and performed upto 32784 points FFT. For this we need to Add some extra library file to our project .
2025-04-14 5:43 AM
@sa V.1 It would be helpful to say what libraries you had to add.
Then please mark the solution:
https://community.st.com/t5/community-guidelines/help-others-to-solve-their-issues/ta-p/575256
2025-04-14 7:25 AM
Can I know which libraries
2025-04-14 9:51 PM - last edited on 2025-04-15 12:55 AM by Andrew Neil
Hii, Please go to below link and download the complete project clearly understand the project and whichever the files required to your project copy and add to your project then perform FFT.
link--->https://github.com/Treeed/Long_FFTs_for_CMSIS_DSP/tree/master
2025-04-14 10:17 PM
You can try to port fftw (recent version fftw3) to your target MCU : https://www.fftw.org/
> Hello community, In my project requires upto 16384 points of FFT(Fast Fourier Transform) .
I'm not so sure of that.
There are less costly algorithms to evaluate specific spectral components.
2025-04-14 11:30 PM
You can do this with cmsis-dsp but you'll have to add your own implementation using the cmsis-dsp framework. Specifically, you'll need to provide your own twiddle factor and bit-reversal tables. There is a python script in cmsis-dsp that you can use to generate these:
DSP_Lib/SupportFunctions/arm_cfft_radix4_init_f32_gen.py
Then you can quite easily build up the 16k FFT following ARM's existing functions as a reference template.
Regarding performance, memory requirement will be something to pay attention to and you'll need to ensure that optimisation is on for speed and size, and I- and D- cache enabled.
A key thing will be to choose your input number format before starting the implementation. Words (accumulated variables) grow according to log2(FFT length) and unless you're doing a full floating point implementation your implementation will need to use specific cmsis-dsp functions for your data type. e.g. If you were processing data from an ADC you may want to take a q15 as the input number format, but care would then be taken to avoid saturation/overflow, which you could avoid by converting to q32 at the cost of RAM usage and cycles.
Unfortunately this isn't the kind of turn-key solution that you might have hoped for, but even if you're not very familiar with the FFT there are a huge number of very good resources that explain how it works. The algorithms used boil down to simple adds/subtracts and cmsis-dsp has all of the required primitives (butterfly operations).