Function Descriptions
Example:
The following sample code obtains the complex FFT of the input.
#include "FPU.h"
#define CFFT_STAGES 3
#define CFFT_SIZE (1 << CFFT_STAGES)
/
*
CFFTin1Buff section to 4
*
FFT_SIZE in the linker file
*
/
#pragma DATA_SECTION(CFFTin1Buff,"CFFTdata1");
float CFFTin1Buff[CFFT_SIZE
*
2];
#pragma DATA_SECTION(CFFToutBuff,"CFFTdata2");
float CFFTin2Buff[CFFT_SIZE
*
2];
#pragma DATA_SECTION(CFFTF32Coef,"CFFTdata4");
float CFFTF32Coef[CFFT_SIZE];
CFFT_F32_STRUCT cfft;
main()
{
cfft.InPtr = CFFTin1Buff; /
*
Input data buffer
*
/
cfft.OutPtr = CFFToutBuff; /
*
FFT output buffer
*
/
cfft.CoefPtr = CFFTF32Coef; /
*
Twiddle factor buffer
*
/
cfft.FFTSize = CFFT_SIZE; /
*
FFT length
*
/
cfft.Stages = CFFT_STAGES; /
*
FFT Stages
*
/
... ...
CFFT_f32_sincostable(&cfft); /
*
Initialize twiddle buffer
*
/
CFFT_f32(&cfft); /
*
Calculate output
*
/
... ...
ICFFT_f32(&cfft); /
*
Calculate Inverse FFT
*
/
}
Benchmark Information:
The following table provides benchmark numbers for the function. Note that these include the
cycles used in the call/return from the function
FFTSize C-Callable ASM (Cycle Count)
32 1370
64 2803
128 5948
256 12837
512 27854
1024 60411
Table 3.10: Benchmark Information
Sep 10, 2012 27