A friend and I are trying to get an (audio range) FFT up and running on a STM32F4 Discovery board (STM32F407), but we've got some problems:
We're using the ARM CMSIS rfft_fast function (CMSIS V1.4.4) and it works, but not how we want it to...
First of all, it seems, as if it wouldn't be possible to change the frequency span of a bin. Is there any (secret) way of changing that?
What we also don't understand is, how the Output array is put together. We run the conversion function (complex -> real), but why is the output just half of the FFT size?
And why is the rest of the array rubbish, when the numbers are coverted into real values (but only if the array extends a certain size)?
What does 'inf' (Atollic TrueStudio, value of a float)? Infinity?
Why is the DC part of the FFT so high (double the size of the normal peaks)?
Thank you for your answers.
PS: Here are some details:
I'm using Atollic Studio 5.4.2 (Demo version) and the CMSIS Library V1.4.4
Attached are the code and the screenshots of some FFTs.
I calculate the input values from the 12 bit ADC conversion results by the formula OP = (result-4096)/4096; I don't really know why, but I read it somewhere