Function Descriptions
Example:
The following sample code obtains the FFT magnitude.
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 rfft;
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_f32(&rfft); /
*
Calculate output
*
/
RFFT_f32s_mag(&rfft) /
*
Calculate magnitude
*
/
}
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)
Standard Runtime Lib Fast Runtime Lib
32 1367 737
64 2749 1447
128 5507 2861
256 11017 5683
512 22031 11321
1024 44053 22591
2048 88091 45125
Table 3.19: Benchmark Information
Sep 10, 2012 41