Function Descriptions
Example:
The following sample code obtains the FFT phase.
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 RFFTphaseBuff[RFFT_SIZE/2+1];
#pragma DATA_SECTION(RFFTF32Coef,"RFFTdata4");
float32 RFFTF32Coef[RFFT_SIZE];
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.PhaseBuf = &RFFTphaseBuff[0];/
*
Phase buffer
*
/
RFFT_f32_sincostable(&rfft); /
*
Calculate twiddle factor
*
/
RFFT_f32(&rfft); /
*
Calculate output
*
/
RFFT_f32_phase(&rfft) /
*
Calculate phase
*
/
}
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 14909 1105
64 29096 2152
128 59381 4239
256 106114 8406
512 237106 16733
1024 479424 33380
2048 852535 66667
Table 3.20: Benchmark Information
Sep 10, 2012 43