CMSISDSP
Version 1.10.0
CMSIS DSP Software Library

Content  
Real FFT Tables  
Functions  
void  arm_rfft_f32 (const arm_rfft_instance_f32 *S, float32_t *pSrc, float32_t *pDst) 
Processing function for the floatingpoint RFFT/RIFFT. Source buffer is modified by this function. More...  
void  arm_rfft_fast_f16 (const arm_rfft_fast_instance_f16 *S, float16_t *p, float16_t *pOut, uint8_t ifftFlag) 
Processing function for the floatingpoint real FFT. More...  
void  arm_rfft_fast_f32 (const arm_rfft_fast_instance_f32 *S, float32_t *p, float32_t *pOut, uint8_t ifftFlag) 
Processing function for the floatingpoint real FFT. More...  
void  arm_rfft_fast_f64 (arm_rfft_fast_instance_f64 *S, float64_t *p, float64_t *pOut, uint8_t ifftFlag) 
Processing function for the Double Precision floatingpoint real FFT. More...  
arm_status  arm_rfft_fast_init_f16 (arm_rfft_fast_instance_f16 *S, uint16_t fftLen) 
Initialization function for the floatingpoint real FFT. More...  
arm_status  arm_rfft_fast_init_f32 (arm_rfft_fast_instance_f32 *S, uint16_t fftLen) 
Initialization function for the floatingpoint real FFT. More...  
arm_status  arm_rfft_fast_init_f64 (arm_rfft_fast_instance_f64 *S, uint16_t fftLen) 
Initialization function for the Double Precision floatingpoint real FFT. More...  
arm_status  arm_rfft_init_f32 (arm_rfft_instance_f32 *S, arm_cfft_radix4_instance_f32 *S_CFFT, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag) 
Initialization function for the floatingpoint RFFT/RIFFT. More...  
arm_status  arm_rfft_init_q15 (arm_rfft_instance_q15 *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag) 
Initialization function for the Q15 RFFT/RIFFT. More...  
arm_status  arm_rfft_init_q31 (arm_rfft_instance_q31 *S, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag) 
Initialization function for the Q31 RFFT/RIFFT. More...  
void  arm_rfft_q15 (const arm_rfft_instance_q15 *S, q15_t *pSrc, q15_t *pDst) 
Processing function for the Q15 RFFT/RIFFT. More...  
void  arm_rfft_q31 (const arm_rfft_instance_q31 *S, q31_t *pSrc, q31_t *pDst) 
Processing function for the Q31 RFFT/RIFFT. More...  
arm_rfft_instance_q31 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft}; arm_rfft_instance_q15 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};where
fftLenReal
is the length of the real transform; fftLenBy2
length of the internal complex transform (fftLenReal/2). ifftFlagR
Selects forward (=0) or inverse (=1) transform. bitReverseFlagR
Selects bit reversed output (=0) or normal order output (=1). twidCoefRModifier
stride modifier for the twiddle factor table. The value is based on the FFT length; pTwiddleAReal
points to the A array of twiddle coefficients; pTwiddleBReal
points to the B array of twiddle coefficients; pCfft
points to the CFFT Instance structure. The CFFT structure must also be initialized. arm_rfft_instance_q31 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft}; arm_rfft_instance_q15 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft};where
fftLenReal
is the length of the real transform; fftLenBy2
length of the internal complex transform (fftLenReal/2). ifftFlagR
Selects forward (=0) or inverse (=1) transform. bitReverseFlagR
Selects bit reversed output (=0) or normal order output (=1). twidCoefRModifier
stride modifier for the twiddle factor table. The value is based on the FFT length; pTwiddleAReal
points to the A array of twiddle coefficients; pTwiddleBReal
points to the B array of twiddle coefficients; pCfft
points to the CFFT Instance structure. The CFFT structure must also be initialized. void arm_rfft_f32  (  const arm_rfft_instance_f32 *  S, 
float32_t *  pSrc,  
float32_t *  pDst  
) 
[in]  S  points to an instance of the floatingpoint RFFT/RIFFT structure 
[in]  pSrc  points to the input buffer 
[out]  pDst  points to the output buffer 
void arm_rfft_fast_f16  (  const arm_rfft_fast_instance_f16 *  S, 
float16_t *  p,  
float16_t *  pOut,  
uint8_t  ifftFlag  
) 
[in]  S  points to an arm_rfft_fast_instance_f16 structure 
[in]  p  points to input buffer (Source buffer is modified by this function.) 
[in]  pOut  points to output buffer 
[in]  ifftFlag 

void arm_rfft_fast_f32  (  const arm_rfft_fast_instance_f32 *  S, 
float32_t *  p,  
float32_t *  pOut,  
uint8_t  ifftFlag  
) 
[in]  S  points to an arm_rfft_fast_instance_f32 structure 
[in]  p  points to input buffer (Source buffer is modified by this function.) 
[in]  pOut  points to output buffer 
[in]  ifftFlag 

void arm_rfft_fast_f64  (  arm_rfft_fast_instance_f64 *  S, 
float64_t *  p,  
float64_t *  pOut,  
uint8_t  ifftFlag  
) 
[in]  S  points to an arm_rfft_fast_instance_f64 structure 
[in]  p  points to input buffer (Source buffer is modified by this function.) 
[in]  pOut  points to output buffer 
[in]  ifftFlag 

arm_status arm_rfft_fast_init_f16  (  arm_rfft_fast_instance_f16 *  S, 
uint16_t  fftLen  
) 
[in,out]  S  points to an arm_rfft_fast_instance_f16 structure 
[in]  fftLen  length of the Real Sequence 
fftLen
is not a supported lengthfftLen
specifies the length of RFFT/CIFFT process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096. arm_status arm_rfft_fast_init_f32  (  arm_rfft_fast_instance_f32 *  S, 
uint16_t  fftLen  
) 
[in,out]  S  points to an arm_rfft_fast_instance_f32 structure 
[in]  fftLen  length of the Real Sequence 
fftLen
is not a supported lengthfftLen
specifies the length of RFFT/CIFFT process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096. arm_status arm_rfft_fast_init_f64  (  arm_rfft_fast_instance_f64 *  S, 
uint16_t  fftLen  
) 
[in,out]  S  points to an arm_rfft_fast_instance_f64 structure 
[in]  fftLen  length of the Real Sequence 
fftLen
is not a supported lengthfftLen
specifies the length of RFFT/CIFFT process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096. arm_status arm_rfft_init_f32  (  arm_rfft_instance_f32 *  S, 
arm_cfft_radix4_instance_f32 *  S_CFFT,  
uint32_t  fftLenReal,  
uint32_t  ifftFlagR,  
uint32_t  bitReverseFlag  
) 
[in,out]  S  points to an instance of the floatingpoint RFFT/RIFFT structure 
[in,out]  S_CFFT  points to an instance of the floatingpoint CFFT/CIFFT structure 
[in]  fftLenReal  length of the FFT. 
[in]  ifftFlagR  flag that selects transform direction

[in]  bitReverseFlag  flag that enables / disables bit reversal of output

fftLenReal
is not a supported lengthfftLenReal
specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 128, 512, 2048. ifftFlagR
controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. bitReverseFlag
controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. arm_status arm_rfft_init_q15  (  arm_rfft_instance_q15 *  S, 
uint32_t  fftLenReal,  
uint32_t  ifftFlagR,  
uint32_t  bitReverseFlag  
) 
[in,out]  S  points to an instance of the Q15 RFFT/RIFFT structure 
[in]  fftLenReal  length of the FFT 
[in]  ifftFlagR  flag that selects transform direction

[in]  bitReverseFlag  flag that enables / disables bit reversal of output

fftLenReal
is not a supported lengthfftLenReal
specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192. ifftFlagR
controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. bitReverseFlag
controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. arm_status arm_rfft_init_q31  (  arm_rfft_instance_q31 *  S, 
uint32_t  fftLenReal,  
uint32_t  ifftFlagR,  
uint32_t  bitReverseFlag  
) 
[in,out]  S  points to an instance of the Q31 RFFT/RIFFT structure 
[in]  fftLenReal  length of the FFT 
[in]  ifftFlagR  flag that selects transform direction

[in]  bitReverseFlag  flag that enables / disables bit reversal of output

fftLenReal
is not a supported lengthfftLenReal
specifies length of RFFT/RIFFT Process. Supported FFT Lengths are 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192. ifftFlagR
controls whether a forward or inverse transform is computed. Set(=1) ifftFlagR to calculate RIFFT, otherwise RFFT is calculated. bitReverseFlag
controls whether output is in normal order or bit reversed order. Set(=1) bitReverseFlag for output to be in normal order otherwise output is in bit reversed order. void arm_rfft_q15  (  const arm_rfft_instance_q15 *  S, 
q15_t *  pSrc,  
q15_t *  pDst  
) 
[in]  S  points to an instance of the Q15 RFFT/RIFFT structure 
[in]  pSrc  points to input buffer (Source buffer is modified by this function.) 
[out]  pDst  points to output buffer 
void arm_rfft_q31  (  const arm_rfft_instance_q31 *  S, 
q31_t *  pSrc,  
q31_t *  pDst  
) 
[in]  S  points to an instance of the Q31 RFFT/RIFFT structure 
[in]  pSrc  points to input buffer (Source buffer is modified by this function) 
[out]  pDst  points to output buffer 