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

Note: The cycle counts of VectorCopy and FFTRealIP, in their respective sections, include function call and return overheads. Hence, ~4 cycle from each of these will have to be subtracted while calculating the total cycle counts of the FFTReal function.

System resource usage

  • W0…W3 - used, not restored
  • Plus resources used by VectorCopy and IFFTRealIP functions.