6.4.11 IFFTRealIP
Description
IFFTRealIP computes, in place, 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* IFFTRealIP (int log2N, fractcomplex* srcCV, fractcomplex* twidFactors);
Arguments
Parameters |
Description |
---|---|
log2N |
Base 2 logarithm of N (number of complex elements in source vector) |
srcCV |
Pointer to the complex source vector |
twidFactors |
Pointer to complex twiddle factors |
Return
Pointer to the base address of the real destination sample.
Remarks
N must be an integer power of 2.
The complex srcCV vector must be of size N/2 + 1, holding zero to N/2 elements.
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 stored in the same location as that of the source complex vector.
This function operates in-place. srcV must be a complex vector with N/2 + 1 elements. The resultant vector will be a real-vector of size N stored in same location as that of complex srcCV vector.
The dstCV 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 the BitReversal function and parts of the FFTReal function.
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
Program Words |
PIC32A |
68 + program word counts of BitReversalComplex functions |
Cycle count |
Transform Size (N) |
PIC32A | |
Cycles if Twiddle Factors in X-mem |
Cycles if Twiddle Factors in P-mem | ||
32 |
1,229 |
1,712 | |
64 |
2,599 |
3,770 | |
128 |
5,629 |
8,390 | |
256 |
12,250 |
18,618 | |
512 |
26,768 |
41,160 | |
1024 |
57,970 |
90,095 | |
2048 |
125,050 |
195,958 |
System resource usage
- W0…W7 - used, not restored
- W8…W9 - saved, used, restored
- ACCA/ACCB - used, not restored
- CORCON - saved, used, restored
- REPEAT instruction(s) usage – 1
- Plus resources used by the BitReversalComplex function.