Very interesting results with floating point FFT & IFFT, Ray! I ordered a Teensy 3.5 yesterday (as 3.6 was sold out ;-)) and hope it will arrive soon.
I am not a DSP expert at all, but I wonder if the accuracy of the FFT/IFFT procedure could be better even now, if we used the recent/newest arm_math routines! The version in Teensyduino is very old (version 1.1.0 of 2012 !!!) and the arm_cfft_radix4 should not be used any more ("deprecated" according to the Keil homepage:
https://www.keil.com/pack/doc/CMSIS...f_f_t.html#gaf336459f684f0b17bfae539ef1b1b78a). Instead the arm_cfft_f32 should be used, which is included in the newer versions of the Keil CMSIS pack.
It can make a huge difference to use the new arm_cfft_f32 in my experience: I have used the old radix 4 ARM floating point routine to estimate carrier frequency in the mcHF software defined radio (on an STM32F4) and it was not as accurate as I hoped for. However, after changing to the new arm_cfft_f32 routine (in the newer Keil pack), the accuracy increased dramatically! Do not ask me why, but that was my experience . . . ;-).
So, is it possible and do you think it would be worth to include the newest Keil CMSIS pack in the next version of Teensyduino, so we can use the new cfft?
@Ray: my sophisticated guess is that it will significantly increase the accuracy of your FFT/IFFT test and maybe eliminate more of your spurs.
All the best,
Frank DD4WH