Function Descriptions
Example:
The following sample code obtains the FFT of the real input.
#include "FPU.h"
#define RFFT_STAGES 8
#define RFFT_SIZE (1 << RFFT_STAGES)
/
*
RFFTin1Buff section to 2
*
FFT_SIZE in the linker file
*
/
#pragma DATA_SECTION(RFFTin1Buff,"RFFTdata1");
float32 RFFTin1Buff[RFFT_SIZE];
#pragma DATA_SECTION(RFFToutBuff,"RFFTdata2");
float32 RFFToutBuff[RFFT_SIZE];
#pragma DATA_SECTION(RFFTmagBuff,"RFFTdata3");
float32 RFFTmagBuff[RFFT_SIZE/2+1];
#pragma DATA_SECTION(RFFTF32Coef,"RFFTdata4");
float32 RFFTF32Coef[RFFT_SIZE];
RFFT_F32_STRUCT fft;
main()
{
rfft.FFTSize = RFFT_SIZE;
rfft.FFTStages = RFFT_STAGES;
rfft.InBuf = &RFFTin1Buff[0]; /
*
Input buffer
*
/
rfft.OutBuf = &RFFToutBuff[0]; /
*
Output buffer
*
/
rfft.CosSinBuf = &RFFTF32Coef[0]; /
*
Twiddle factor buffer
*
/
rfft.MagBuf = &RFFTmagBuff[0]; /
*
Magnitude buffer
*
/
RFFT_f32_sincostable(&rfft); /
*
Calculate twiddle factor
*
/
RFFT_f32u(&rfft); /
*
Calculate output
*
/
}
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 667
64 1389
128 2999
256 6593
512 14571
1024 32149
2048 70591
Table 3.13: Benchmark Information
Sep 10, 2012 32