Function Descriptions
Item Description Format Comment
InPtr Input data Pointer to 32-bit float array Input buffer alignment is required. Refer to
the alignment section.
OutPtr Output buffer Pointer to 32-bit float array
CoefPtr Twiddle factors Pointer to 32-bit float array Calculate using CFFT_f32_cossintable ( ).
CurrentInPtr Output Buffer Pointer to 32-bit float array Result of CFFT_f32. This buffer can then be
used as the input to the magnitude and phase
calculations. The output order for FFTSize =
N is:
CurrentInPtr[0] = real[0]
CurrentInPtr[1] = imag[0]
CurrentInPtr[2] = real[1]
...
CurrentInPtr[N] = real[N/2]
CurrentInPtr[N+1] = imag[N/2]
...
CurrentInPtr[2N-3] = imag[N-2]
CurrentInPtr[2N-2] = real[N-1]
CurrentInPtr[2N-1] = imag[N-1]
CurrentOutPtr Output Buffer Pointer to 32-bit float array Result of N-1 stage complex FFT.
Stages Number of stages Uint16 Stages = log2(FFTSize). Must larger than 3.
FFTSize FFT size Uint16 Must be a power of 2 greater than or equal to
8.
Table 3.2: Elements of the Data Structure
to the same output buffer. After bit reversing the input and computing the stage 1 butterflies the
output is stored at the location pointed to be cfft.CurrentOutPtr. The next step is to switch the
pointer cfft.CurrentInPtr with cfft.CurrentOutPtr so that the output from the n
th
stage becomes
the input to the n + 1
th
stage while the previous (n
th
) stage’s input buffer will be used as the
output for the n + 1
th
stage. In this manner the CurrentInPtr and CurrentOutPtr are switched
successively for each FFT stage.Therefore, If the number of stages is odd then at the end of
all the coputation we get:
currentInPtr=InPtr, currentOutPtr=OutPtr.
If number of stages is even then,
currentInPtr=OutPtr, currentOutPtr=InPtr.
Stage3 Stage4 Stage5 ... Stage N
N = odd N = even
InPtr (Buf1) CurrentInPtr CurrentOutPtr CurrentInPtr ... CurrentInPtr CurrentOutPtr
OutPtr (Buf2) CurrentOutPtr CurrentInPtr CurrentOutPtr ... CurrentOutPtr CurrentInPtr
Result Buf Buf1 Buf2 Buf1 ... Buf1 Buf2
Table 3.3: Input and Output Buffer Pointer Allocations
Sep 10, 2012 13