6.4.12 IFFTReal
Description
IFFTReal computes the inverse Fast Fourier Transform of a source complex vector, which was derived out of a real-vector using the FFTReal function. The algorithm to compute IFFT is based on the efficient computation of IFFT of a 2N point complex vector using the N point complex FFT with additional computations called split functions.
Prototype
fractional * IFFTReal (int log2N, fractcomplex* srcCV, fractional* dstV, fractcomplex* twidFactors);
Arguments
Parameters |
Description |
---|---|
log2N |
Base 2 logarithm of N (number of complex elements in the source vector) |
srcCV |
Pointer to the complex source vector of size N/2 + 1 |
dstV |
Pointer to the destination real vector of size N |
twidFactors |
Pointer to complex twiddle factors. |
Return
Pointer to the base address of the complex destination sample.
Remarks
N must be an integer power of 2.
srcCV must be a complex vector with N/2 + 1 elements.
dstV must be a real vector of size N.
The elements in the source complex vector are expected in a natural order and the resultant vector likewise returned in a natural order. The resulting transform is a real vector of size N.
The dstV vector must be allocated at a modulo alignment of N in y-memory space.
To avoid saturation (overflow) during computation, the values of the source vector should be in the range [-0.5, 0.5].
Only the first N/2 twiddle factors are needed.
This function internally utilizes VectorCopy and IFFTRealIP functions.
The twiddle factors must be initialized with conjFlag set to a value other than zero.
Output is scaled by the factor of N.
Source File
- irfft_aa.s
Function Profile
PIC32A |
Program Words |
Cycle count |
11 |
Cycle counts of VectorCopy + IFFTRealIP + 17 |
System resource usage
- W0…W3 - used, not restored
- Plus resources used by VectorCopy and IFFTRealIP functions.