Is there a library function available for a real IFFT - one which does not require memory for the imaginary components (which would have to be zero'ed for manipulation later). Goal is to reduce SRAM usage and processing latency.
I went through the VisualDSP++ manuals, but looks like we don't have such a function available already. I also tried to find out if the existing functions can be used with slight modifications with not much luck. I could find three versions of the ifft functions:
1) "ifft()" in "filter.h" : This function expects the output buffer to in complex (real,imag, real, imag....) float format.
2) "ifftf" in "filter.h" : This function expects two types of buffers: input buffer and temp buffer(for intermediate storage) in form of separate real and imaginary buffers. Though it overwrites input buffer with output buffer, it needs two extra buffers to store the intermediate data.
3) "ifftN" in "trans.h": This function expects both input and output data in separate real and imaginary buffers. Looking at this, one can think that the source code of this function may be modified such that it does't access the output's imaginary buffer at all. However, it looks like it may not be possible as the imaginary buffer is also being used for storing some intermediate data.
In short, it looks like the ifft library functions we have require at least 4*N words of memory( N = number of FFT points) and it may not be possible to use the existing implentations with only slight modifications.
Retrieving data ...