void arm_rfft_f32( const arm_rfft_instance_f32 * S, float32_t * pSrc, float32_t * pDst) { const arm_cfft_radix4_instance_f32 *S_CFFT = S->pCfft; /* Calculation of Real IFFT of input */ if(S->ifftFlagR == 1u) { /* Real IFFT core process */ arm_split_rifft_f32(pSrc, S->fftLenBy2, S->pTwiddleAReal, S->pTwiddleBReal, pDst, S->twidCoefRModifier); /* Complex radix-4 IFFT process */ arm_radix4_butterfly_inverse_f32(pDst, S_CFFT->fftLen, S_CFFT->pTwiddle, S_CFFT->twidCoefModifier, S_CFFT->onebyfftLen); /* Bit reversal process */ if(S->bitReverseFlagR == 1u) { arm_bitreversal_f32(pDst, S_CFFT->fftLen, S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); } } else { /* Calculation of RFFT of input */ /* Complex radix-4 FFT process */ arm_radix4_butterfly_f32(pSrc, S_CFFT->fftLen, S_CFFT->pTwiddle, S_CFFT->twidCoefModifier); /* Bit reversal process */ if(S->bitReverseFlagR == 1u) { arm_bitreversal_f32(pSrc, S_CFFT->fftLen, S_CFFT->bitRevFactor, S_CFFT->pBitRevTable); } /* Real FFT core process */ arm_split_rfft_f32(pSrc, S->fftLenBy2, S->pTwiddleAReal, S->pTwiddleBReal, pDst, S->twidCoefRModifier); } }
void arm_cfft_radix4_f32( const arm_cfft_radix4_instance_f32 * S, float32_t * pSrc) { if(S->ifftFlag == 1u) { /* Complex IFFT radix-4 */ arm_radix4_butterfly_inverse_f32(pSrc, S->fftLen, S->pTwiddle, S->twidCoefModifier, S->onebyfftLen); } else { /* Complex FFT radix-4 */ arm_radix4_butterfly_f32(pSrc, S->fftLen, S->pTwiddle, S->twidCoefModifier); } if(S->bitReverseFlag == 1u) { /* Bit Reversal */ arm_bitreversal_f32(pSrc, S->fftLen, S->bitRevFactor, S->pBitRevTable); } }