@ -38,6 +38,199 @@
* @ {
*/
/**
* @ brief Initialization function for the 32 pt floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .
* @ return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if an error is detected .
*/
arm_status arm_rfft_32_fast_init_f32 ( arm_rfft_fast_instance_f32 * S ) {
arm_cfft_instance_f32 * Sint ;
if ( ! S ) return ARM_MATH_ARGUMENT_ERROR ;
Sint = & ( S - > Sint ) ;
Sint - > fftLen = 16U ;
S - > fftLenRFFT = 32U ;
Sint - > bitRevLength = ARMBITREVINDEXTABLE_16_TABLE_LENGTH ;
Sint - > pBitRevTable = ( uint16_t * ) armBitRevIndexTable16 ;
Sint - > pTwiddle = ( float32_t * ) twiddleCoef_16 ;
S - > pTwiddleRFFT = ( float32_t * ) twiddleCoef_rfft_32 ;
return ARM_MATH_SUCCESS ;
}
/**
* @ brief Initialization function for the 64 pt floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .
* @ return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if an error is detected .
*/
arm_status arm_rfft_64_fast_init_f32 ( arm_rfft_fast_instance_f32 * S ) {
arm_cfft_instance_f32 * Sint ;
if ( ! S ) return ARM_MATH_ARGUMENT_ERROR ;
Sint = & ( S - > Sint ) ;
Sint - > fftLen = 32U ;
S - > fftLenRFFT = 64U ;
Sint - > bitRevLength = ARMBITREVINDEXTABLE_32_TABLE_LENGTH ;
Sint - > pBitRevTable = ( uint16_t * ) armBitRevIndexTable32 ;
Sint - > pTwiddle = ( float32_t * ) twiddleCoef_32 ;
S - > pTwiddleRFFT = ( float32_t * ) twiddleCoef_rfft_64 ;
return ARM_MATH_SUCCESS ;
}
/**
* @ brief Initialization function for the 128 pt floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .
* @ return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if an error is detected .
*/
arm_status arm_rfft_128_fast_init_f32 ( arm_rfft_fast_instance_f32 * S ) {
arm_cfft_instance_f32 * Sint ;
if ( ! S ) return ARM_MATH_ARGUMENT_ERROR ;
Sint = & ( S - > Sint ) ;
Sint - > fftLen = 64U ;
S - > fftLenRFFT = 128U ;
Sint - > bitRevLength = ARMBITREVINDEXTABLE_64_TABLE_LENGTH ;
Sint - > pBitRevTable = ( uint16_t * ) armBitRevIndexTable64 ;
Sint - > pTwiddle = ( float32_t * ) twiddleCoef_64 ;
S - > pTwiddleRFFT = ( float32_t * ) twiddleCoef_rfft_128 ;
return ARM_MATH_SUCCESS ;
}
/**
* @ brief Initialization function for the 256 pt floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .
* @ return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if an error is detected .
*/
arm_status arm_rfft_256_fast_init_f32 ( arm_rfft_fast_instance_f32 * S ) {
arm_cfft_instance_f32 * Sint ;
if ( ! S ) return ARM_MATH_ARGUMENT_ERROR ;
Sint = & ( S - > Sint ) ;
Sint - > fftLen = 128U ;
S - > fftLenRFFT = 256U ;
Sint - > bitRevLength = ARMBITREVINDEXTABLE_128_TABLE_LENGTH ;
Sint - > pBitRevTable = ( uint16_t * ) armBitRevIndexTable128 ;
Sint - > pTwiddle = ( float32_t * ) twiddleCoef_128 ;
S - > pTwiddleRFFT = ( float32_t * ) twiddleCoef_rfft_256 ;
return ARM_MATH_SUCCESS ;
}
/**
* @ brief Initialization function for the 512 pt floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .
* @ return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if an error is detected .
*/
arm_status arm_rfft_512_fast_init_f32 ( arm_rfft_fast_instance_f32 * S ) {
arm_cfft_instance_f32 * Sint ;
if ( ! S ) return ARM_MATH_ARGUMENT_ERROR ;
Sint = & ( S - > Sint ) ;
Sint - > fftLen = 256U ;
S - > fftLenRFFT = 512U ;
Sint - > bitRevLength = ARMBITREVINDEXTABLE_256_TABLE_LENGTH ;
Sint - > pBitRevTable = ( uint16_t * ) armBitRevIndexTable256 ;
Sint - > pTwiddle = ( float32_t * ) twiddleCoef_256 ;
S - > pTwiddleRFFT = ( float32_t * ) twiddleCoef_rfft_512 ;
return ARM_MATH_SUCCESS ;
}
/**
* @ brief Initialization function for the 1024 pt floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .
* @ return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if an error is detected .
*/
arm_status arm_rfft_1024_fast_init_f32 ( arm_rfft_fast_instance_f32 * S ) {
arm_cfft_instance_f32 * Sint ;
if ( ! S ) return ARM_MATH_ARGUMENT_ERROR ;
Sint = & ( S - > Sint ) ;
Sint - > fftLen = 512U ;
S - > fftLenRFFT = 1024U ;
Sint - > bitRevLength = ARMBITREVINDEXTABLE_512_TABLE_LENGTH ;
Sint - > pBitRevTable = ( uint16_t * ) armBitRevIndexTable512 ;
Sint - > pTwiddle = ( float32_t * ) twiddleCoef_512 ;
S - > pTwiddleRFFT = ( float32_t * ) twiddleCoef_rfft_1024 ;
return ARM_MATH_SUCCESS ;
}
/**
* @ brief Initialization function for the 2048 pt floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .
* @ return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if an error is detected .
*/
arm_status arm_rfft_2048_fast_init_f32 ( arm_rfft_fast_instance_f32 * S ) {
arm_cfft_instance_f32 * Sint ;
if ( ! S ) return ARM_MATH_ARGUMENT_ERROR ;
Sint = & ( S - > Sint ) ;
Sint - > fftLen = 1024U ;
S - > fftLenRFFT = 2048U ;
Sint - > bitRevLength = ARMBITREVINDEXTABLE_1024_TABLE_LENGTH ;
Sint - > pBitRevTable = ( uint16_t * ) armBitRevIndexTable1024 ;
Sint - > pTwiddle = ( float32_t * ) twiddleCoef_1024 ;
S - > pTwiddleRFFT = ( float32_t * ) twiddleCoef_rfft_2048 ;
return ARM_MATH_SUCCESS ;
}
/**
* @ brief Initialization function for the 4096 pt floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .
* @ return The function returns ARM_MATH_SUCCESS if initialization is successful or ARM_MATH_ARGUMENT_ERROR if an error is detected .
*/
arm_status arm_rfft_4096_fast_init_f32 ( arm_rfft_fast_instance_f32 * S ) {
arm_cfft_instance_f32 * Sint ;
if ( ! S ) return ARM_MATH_ARGUMENT_ERROR ;
Sint = & ( S - > Sint ) ;
Sint - > fftLen = 2048U ;
S - > fftLenRFFT = 4096U ;
Sint - > bitRevLength = ARMBITREVINDEXTABLE_2048_TABLE_LENGTH ;
Sint - > pBitRevTable = ( uint16_t * ) armBitRevIndexTable2048 ;
Sint - > pTwiddle = ( float32_t * ) twiddleCoef_2048 ;
S - > pTwiddleRFFT = ( float32_t * ) twiddleCoef_rfft_4096 ;
return ARM_MATH_SUCCESS ;
}
/**
* @ brief Initialization function for the floating - point real FFT .
* @ param [ in , out ] * S points to an arm_rfft_fast_instance_f32 structure .