Created for Arduino DUE & like boards, word size optimized for 12-bits data input.
FFT takes as input ANY size of array 8, 16, 32, 64, 128, 256, 512, 1024, 2048.
Max. size 2048 defined by LUT.
Library may run on different platform, only PROGMEM macros and variable declaration
type may need to be adjusted accordingly.
Algorithm tested on Arduino DUE and IDE 1.5.6-r2 (Tested on Linux OS only).
Timing results, in usec, fft-2048:
- Hamng – 864
- Revb – 817
- RDX4 – 6968
- GainR – 320
- Sqrt – 5297
- Sqrt2 – 405
There is two sub-functions for magnitude calculation, as you can see second one runs
more than 10x times faster, but it is less accurate, error in worst case scenario
may reach 5 %. Approximation based on
Short summary, DUE is ~15x times faster than UNO.
Analog Input – 0, Default sampling rate 48 000.
Link to file.
Don’t missed out, here UNO version of the RADIX4 library.