I am developing C / C ++ software for an embedded Linux system with Atmel AT91SAM9G20 processor. I need to quickly calculate the FFT using a fixed point math (or possibly a floating point) using a Linux user space program. I understand that the assembler could be here in relation to the implementation and that when compiling using the gcc compiler, the additional -mpcu switch may be required. What is the best way to get started with this implementation, and are there any good links to books or optimized FOSS libraries?
I need to implement some algorithms that will also require small FFT lengths (e.g. 1024 points), and I would like to wonder if some libraries (e.g. kissfft) will work. I am also interested in long FFT lengths, so FFTW, as suggested in the answer below, will work well too.
As related to this question, I am also interested in how integer division is handled in the ARM9 Linux user program. If I divide two integers (e.g. 25/4), is separation done using floating point floating point numbers? I also need to implement some large-number crunching algorithms, and I wonder if it's better to use a fixed point here than floating point math, and how the gcc compiler really handles things.
source share