I'm developing some fixed-point algorithm that requires a relatively large size FFT and IFFT (like 2048 pts or more).
I tried the rfft_fr16 and ifft_fr16 functions and found that when the FFT size is large, the error got large too.
The picture attached here is the result of 2048 pts random input, do FFT, then IFFT, then compute the error between the output and the input. The maximum of error is about 1024 (N/2), which is unacceptable. (The code to reproduce this result is also attached.)
Is there any way to reduce the error of large size FFT? (But except using floating-point)
I'm thinking about increasing the bit length of fft_out might work. So where can I get such FFT & IFFT functions which use 32-bit data to represent the frequency domain data?