Functions | |
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) |
void | arm_rfft_f32 (const arm_rfft_instance_f32 *S, float32_t *pSrc, float32_t *pDst) |
arm_status | arm_rfft_init_q31 (arm_rfft_instance_q31 *S, arm_cfft_radix4_instance_q31 *S_CFFT, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag) |
void | arm_rfft_q31 (const arm_rfft_instance_q31 *S, q31_t *pSrc, q31_t *pDst) |
arm_status | arm_rfft_init_q15 (arm_rfft_instance_q15 *S, arm_cfft_radix4_instance_q15 *S_CFFT, uint32_t fftLenReal, uint32_t ifftFlagR, uint32_t bitReverseFlag) |
void | arm_rfft_q15 (const arm_rfft_instance_q15 *S, q15_t *pSrc, q15_t *pDst) |
Variables | |
static const float32_t | realCoefA [2048] |
static const float32_t | realCoefB [2048] |
static const q31_t | realCoefAQ31 [2048] |
static const q31_t | realCoefBQ31 [2048] |
static const q15_t | realCoefAQ15 [2048] |
static const q15_t | realCoefBQ15 [2048] |
Real Fast Fourier Transform:
Real Fast Fourier Transform
fftLenR
samples through the transform. pSrc
points to input array containing fftLenR
values. pDst
points to output array containing 2*fftLenR
values. {real[0], real[1], real[2], real[3], ..}Output for real FFT is complex and are in the order of
{real(0), imag(0), real(1), imag(1), ...}
Real Inverse Fast Fourier Transform:
Real Inverse Fast Fourier Transform
2*fftLenR
samples through the transform. pSrc
points to input array containing 2*fftLenR
values. pDst
points to output array containing fftLenR
values. {real(0), imag(0), real(1), imag(1), ...}Output for real IFFT is real and in the order of
{real[0], real[1], real[2], real[3], ..}
arm_rfft_instance_f32 S = {fftLenReal, fftLenBy2, ifftFlagR, bitReverseFlagR, twidCoefRModifier, pTwiddleAReal, pTwiddleBReal, pCfft}; 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
length of RFFT/RIFFT; fftLenBy2
length of CFFT/CIFFT. ifftFlagR
Flag for selection of RFFT or RIFFT(Set ifftFlagR to calculate RIFFT otherwise calculates RFFT); bitReverseFlagR
Flag for selection of output order(Set bitReverseFlagR to output in normal order otherwise output in bit reversed order); twidCoefRModifier
modifier for twiddle factor table which supports 128, 512, 2048 RFFT lengths with same table; pTwiddleAReal
points to A array of twiddle coefficients; pTwiddleBReal
points to B array of twiddle coefficients; pCfft
points to the CFFT Instance structure. The CFFT structure also needs to be initialized, refer to arm_cfft_radix4_f32() for details regarding static initialization of cfft structure.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 floating-point RFFT/RIFFT.
[in,out] | *S | points to an instance of the floating-point RFFT/RIFFT structure. |
[in,out] | *S_CFFT | points to an instance of the floating-point CFFT/CIFFT structure. |
[in] | fftLenReal | length of the FFT. |
[in] | ifftFlagR | flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. |
[in] | bitReverseFlag | flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. |
fftLenReal
is not a supported value.fftLenReal
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. Definition at line 1629 of file arm_rfft_init_f32.c.
void arm_rfft_f32 | ( | const arm_rfft_instance_f32 * | S, |
float32_t * | pSrc, | ||
float32_t * | pDst | ||
) |
Processing function for the floating-point RFFT/RIFFT.
[in] | *S | points to an instance of the floating-point RFFT/RIFFT structure. |
[in] | *pSrc | points to the input buffer. |
[out] | *pDst | points to the output buffer. |
Definition at line 141 of file arm_rfft_f32.c.
arm_status arm_rfft_init_q31 | ( | arm_rfft_instance_q31 * | S, |
arm_cfft_radix4_instance_q31 * | S_CFFT, | ||
uint32_t | fftLenReal, | ||
uint32_t | ifftFlagR, | ||
uint32_t | bitReverseFlag | ||
) |
Initialization function for the Q31 RFFT/RIFFT.
[in,out] | *S | points to an instance of the Q31 RFFT/RIFFT structure. |
[in,out] | *S_CFFT | points to an instance of the Q31 CFFT/CIFFT structure. |
[in] | fftLenReal | length of the FFT. |
[in] | ifftFlagR | flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. |
[in] | bitReverseFlag | flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. |
fftLenReal
is not a supported value.fftLenReal
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. Definition at line 1119 of file arm_rfft_init_q31.c.
void arm_rfft_q31 | ( | const arm_rfft_instance_q31 * | S, |
q31_t * | pSrc, | ||
q31_t * | pDst | ||
) |
Processing function for the Q31 RFFT/RIFFT.
[in] | *S | points to an instance of the Q31 RFFT/RIFFT structure. |
[in] | *pSrc | points to the input buffer. |
[out] | *pDst | points to the output buffer. |
Input and Output Formats for Q31 RFFT
Input and Output Formats for Q31 RIFFT
Definition at line 70 of file arm_rfft_q31.c.
arm_status arm_rfft_init_q15 | ( | arm_rfft_instance_q15 * | S, |
arm_cfft_radix4_instance_q15 * | S_CFFT, | ||
uint32_t | fftLenReal, | ||
uint32_t | ifftFlagR, | ||
uint32_t | bitReverseFlag | ||
) |
Initialization function for the Q15 RFFT/RIFFT.
[in,out] | *S | points to an instance of the Q15 RFFT/RIFFT structure. |
[in] | *S_CFFT | points to an instance of the Q15 CFFT/CIFFT structure. |
[in] | fftLenReal | length of the FFT. |
[in] | ifftFlagR | flag that selects forward (ifftFlagR=0) or inverse (ifftFlagR=1) transform. |
[in] | bitReverseFlag | flag that enables (bitReverseFlag=1) or disables (bitReverseFlag=0) bit reversal of output. |
fftLenReal
is not a supported value.fftLenReal
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. Definition at line 611 of file arm_rfft_init_q15.c.
void arm_rfft_q15 | ( | const arm_rfft_instance_q15 * | S, |
q15_t * | pSrc, | ||
q15_t * | pDst | ||
) |
Processing function for the Q15 RFFT/RIFFT.
[in] | *S | points to an instance of the Q15 RFFT/RIFFT structure. |
[in] | *pSrc | points to the input buffer. |
[out] | *pDst | points to the output buffer. |
Input and Output Formats for Q15 RFFT
Input and Output Formats for Q15 RIFFT
Definition at line 70 of file arm_rfft_q15.c.
const float32_t realCoefA[2048] [static] |
for (i = 0; i < n; i++) { pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i)); pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i)); }
Definition at line 50 of file arm_rfft_init_f32.c.
const float32_t realCoefB[2048] [static] |
for (i = 0; i < n; i++) { pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i)); pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i)); }
Definition at line 834 of file arm_rfft_init_f32.c.
const q31_t realCoefAQ31[2048] [static] |
for (i = 0; i < n; i++) { pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i)); pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i)); }
Definition at line 51 of file arm_rfft_init_q31.c.
const q31_t realCoefBQ31[2048] [static] |
for (i = 0; i < n; i++) { pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i)); pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i)); }
Definition at line 582 of file arm_rfft_init_q31.c.
const q15_t realCoefAQ15[2048] [static] |
for (i = 0; i < n; i++) { pATable[2 * i] = 0.5 * (1.0 - sin (2 * PI / (double) (2 * n) * (double) i)); pATable[2 * i + 1] = 0.5 * (-1.0 * cos (2 * PI / (double) (2 * n) * (double) i)); }
Definition at line 54 of file arm_rfft_init_q15.c.
const q15_t realCoefBQ15[2048] [static] |
for (i = 0; i < n; i++) { pBTable[2 * i] = 0.5 * (1.0 + sin (2 * PI / (double) (2 * n) * (double) i)); pBTable[2 * i + 1] = 0.5 * (1.0 * cos (2 * PI / (double) (2 * n) * (double) i)); }
Definition at line 330 of file arm_rfft_init_q15.c.