hi, recently I'am learning about the FFT. I have some questions about the example code given in the ifft_fr16(...) help document. The example code is as follows:
Here is my question:
(1)as the document said, cfft_fr16 will scale the intermediate result according to the scale mode to prevent overflow. But there is a for-loop following the cfft_fr16 function, I think the result will be overflow again. I can't understand it.
(2) the annotation part that just above the for-loop say if all the values in out_cfft = 0x100, user should apply the shift operation before the call to the ifft_fr16, otherwise, perform the shift operation after the call to ifft_fr16. What is the reason? In fact, I put the shift code after the call to the ifft_fr16, I also get the right result.
(3)when I change the N_FFT >=256, the result turns to be 0.
(4)Sometimes I think we should apply the shift operation after the call to cfft_fr16 and the call to ifft_fr16, cause the two function both scale the intermediate results. But it won't be correct, right? cause with just one shift operation, we get the right result. I just can't understand it.
(5)when I change the scale mode to 2 and 3, and 6 in for-loop to blk_exp, neither I put the shift code before the call to ifft_fr16 nor I put the shift code after the call to ifft_fr16 wouldn't get the right answer.
Thanks in advance.