CMSIS-DSP
CMSIS DSP Software Library
|
Content | |
Complex FFT Tables | |
Functions | |
void | arm_cfft_f16 (const arm_cfft_instance_f16 *S, float16_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Processing function for the floating-point complex FFT. More... | |
void | arm_cfft_f32 (const arm_cfft_instance_f32 *S, float32_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Processing function for the floating-point complex FFT. More... | |
void | arm_cfft_f64 (const arm_cfft_instance_f64 *S, float64_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Processing function for the Double Precision floating-point complex FFT. More... | |
arm_status | arm_cfft_init_f16 (arm_cfft_instance_f16 *S, uint16_t fftLen) |
Initialization function for the cfft f16 function. More... | |
arm_status | arm_cfft_init_f32 (arm_cfft_instance_f32 *S, uint16_t fftLen) |
Initialization function for the cfft f32 function. More... | |
arm_status | arm_cfft_init_f64 (arm_cfft_instance_f64 *S, uint16_t fftLen) |
Initialization function for the cfft f64 function. More... | |
arm_status | arm_cfft_init_q15 (arm_cfft_instance_q15 *S, uint16_t fftLen) |
Initialization function for the cfft q15 function. More... | |
arm_status | arm_cfft_init_q31 (arm_cfft_instance_q31 *S, uint16_t fftLen) |
Initialization function for the cfft q31 function. More... | |
void | arm_cfft_q15 (const arm_cfft_instance_q15 *S, q15_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Processing function for Q15 complex FFT. More... | |
void | arm_cfft_q31 (const arm_cfft_instance_q31 *S, q31_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Processing function for the Q31 complex FFT. More... | |
void | arm_cfft_radix2_f16 (const arm_cfft_radix2_instance_f16 *S, float16_t *pSrc) |
Radix-2 CFFT/CIFFT. More... | |
void | arm_cfft_radix2_f32 (const arm_cfft_radix2_instance_f32 *S, float32_t *pSrc) |
Radix-2 CFFT/CIFFT. More... | |
arm_status | arm_cfft_radix2_init_f16 (arm_cfft_radix2_instance_f16 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Initialization function for the floating-point CFFT/CIFFT. More... | |
arm_status | arm_cfft_radix2_init_f32 (arm_cfft_radix2_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Initialization function for the floating-point CFFT/CIFFT. More... | |
arm_status | arm_cfft_radix2_init_q15 (arm_cfft_radix2_instance_q15 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Initialization function for the Q15 CFFT/CIFFT. More... | |
arm_status | arm_cfft_radix2_init_q31 (arm_cfft_radix2_instance_q31 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Initialization function for the Q31 CFFT/CIFFT. More... | |
void | arm_cfft_radix2_q15 (const arm_cfft_radix2_instance_q15 *S, q15_t *pSrc) |
Processing function for the fixed-point CFFT/CIFFT. More... | |
void | arm_cfft_radix2_q31 (const arm_cfft_radix2_instance_q31 *S, q31_t *pSrc) |
Processing function for the fixed-point CFFT/CIFFT. More... | |
void | arm_cfft_radix4by2_f16 (float16_t *pSrc, uint32_t fftLen, const float16_t *pCoef) |
void | arm_cfft_radix4_f16 (const arm_cfft_radix4_instance_f16 *S, float16_t *pSrc) |
Processing function for the floating-point Radix-4 CFFT/CIFFT. More... | |
void | arm_cfft_radix4_f32 (const arm_cfft_radix4_instance_f32 *S, float32_t *pSrc) |
Processing function for the floating-point Radix-4 CFFT/CIFFT. More... | |
arm_status | arm_cfft_radix4_init_f16 (arm_cfft_radix4_instance_f16 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Initialization function for the floating-point CFFT/CIFFT. More... | |
arm_status | arm_cfft_radix4_init_f32 (arm_cfft_radix4_instance_f32 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Initialization function for the floating-point CFFT/CIFFT. More... | |
arm_status | arm_cfft_radix4_init_q15 (arm_cfft_radix4_instance_q15 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Initialization function for the Q15 CFFT/CIFFT. More... | |
arm_status | arm_cfft_radix4_init_q31 (arm_cfft_radix4_instance_q31 *S, uint16_t fftLen, uint8_t ifftFlag, uint8_t bitReverseFlag) |
Initialization function for the Q31 CFFT/CIFFT. More... | |
void | arm_cfft_radix4_q15 (const arm_cfft_radix4_instance_q15 *S, q15_t *pSrc) |
Processing function for the Q15 CFFT/CIFFT. More... | |
void | arm_cfft_radix4_q31 (const arm_cfft_radix4_instance_q31 *S, q31_t *pSrc) |
Processing function for the Q31 CFFT/CIFFT. More... | |
2*fftLen
interleaved values as shown below. {real[0], imag[0], real[1], imag[1], ...}The FFT result will be contained in the same array and the frequency domain values will have the same interleaving.
fftLen
when computing the forward transform. The inverse transform includes a scale of 1/fftLen
as part of the calculation and this matches the textbook definition of the inverse FFT. arm_const_structs.h
. Include this header in your function and then pass one of the constant structures as an argument to arm_cfft_f32. For example: arm_cfft_f32(arm_cfft_sR_f32_len64, pSrc, 1, 1)
fftLen
when computing the forward transform. The inverse transform includes a scale of 1/fftLen
as part of the calculation and this matches the textbook definition of the inverse FFT. arm_const_structs.h
. Include this header in your function and then pass one of the constant structures as an argument to arm_cfft_q31. For example: arm_cfft_q31(arm_cfft_sR_q31_len64, pSrc, 1, 1)
void arm_cfft_f16 | ( | const arm_cfft_instance_f16 * | S, |
float16_t * | p1, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in] | S | points to an instance of the floating-point CFFT structure |
[in,out] | p1 | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
void arm_cfft_f32 | ( | const arm_cfft_instance_f32 * | S, |
float32_t * | p1, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in] | S | points to an instance of the floating-point CFFT structure |
[in,out] | p1 | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
void arm_cfft_f64 | ( | const arm_cfft_instance_f64 * | S, |
float64_t * | p1, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in] | S | points to an instance of the Double Precision floating-point CFFT structure |
[in,out] | p1 | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
arm_status arm_cfft_init_f16 | ( | arm_cfft_instance_f16 * | S, |
uint16_t | fftLen | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT structure |
[in] | fftLen | fft length (number of complex samples) |
arm_status arm_cfft_init_f32 | ( | arm_cfft_instance_f32 * | S, |
uint16_t | fftLen | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT structure |
[in] | fftLen | fft length (number of complex samples) |
arm_status arm_cfft_init_f64 | ( | arm_cfft_instance_f64 * | S, |
uint16_t | fftLen | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT structure |
[in] | fftLen | fft length (number of complex samples) |
arm_status arm_cfft_init_q15 | ( | arm_cfft_instance_q15 * | S, |
uint16_t | fftLen | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT structure |
[in] | fftLen | fft length (number of complex samples) |
arm_status arm_cfft_init_q31 | ( | arm_cfft_instance_q31 * | S, |
uint16_t | fftLen | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT structure |
[in] | fftLen | fft length (number of complex samples) |
void arm_cfft_q15 | ( | const arm_cfft_instance_q15 * | S, |
q15_t * | p1, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in] | S | points to an instance of Q15 CFFT structure |
[in,out] | p1 | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
void arm_cfft_q31 | ( | const arm_cfft_instance_q31 * | S, |
q31_t * | p1, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in] | S | points to an instance of the fixed-point CFFT structure |
[in,out] | p1 | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
void arm_cfft_radix2_f16 | ( | const arm_cfft_radix2_instance_f16 * | S, |
float16_t * | pSrc | ||
) |
[in] | S | points to an instance of the floating-point Radix-2 CFFT/CIFFT structure |
[in,out] | pSrc | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
void arm_cfft_radix2_f32 | ( | const arm_cfft_radix2_instance_f32 * | S, |
float32_t * | pSrc | ||
) |
[in] | S | points to an instance of the floating-point Radix-2 CFFT/CIFFT structure |
[in,out] | pSrc | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
arm_status arm_cfft_radix2_init_f16 | ( | arm_cfft_radix2_instance_f16 * | S, |
uint16_t | fftLen, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT/CIFFT structure |
[in] | fftLen | length of the FFT |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
fftLen
is not a supported lengthifftFlag
controls whether a forward or inverse transform is computed. Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT 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. fftLen
Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. arm_status arm_cfft_radix2_init_f32 | ( | arm_cfft_radix2_instance_f32 * | S, |
uint16_t | fftLen, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT/CIFFT structure |
[in] | fftLen | length of the FFT |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
fftLen
is not a supported lengthifftFlag
controls whether a forward or inverse transform is computed. Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT 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. fftLen
Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. arm_status arm_cfft_radix2_init_q15 | ( | arm_cfft_radix2_instance_q15 * | S, |
uint16_t | fftLen, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in,out] | S | points to an instance of the Q15 CFFT/CIFFT structure. |
[in] | fftLen | length of the FFT. |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
fftLen
is not a supported lengthifftFlag
controls whether a forward or inverse transform is computed. Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT 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. fftLen
Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. arm_status arm_cfft_radix2_init_q31 | ( | arm_cfft_radix2_instance_q31 * | S, |
uint16_t | fftLen, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in,out] | S | points to an instance of the Q31 CFFT/CIFFT structure |
[in] | fftLen | length of the FFT |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
fftLen
is not a supported lengthifftFlag
controls whether a forward or inverse transform is computed. Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT 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. fftLen
Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. void arm_cfft_radix2_q15 | ( | const arm_cfft_radix2_instance_q15 * | S, |
q15_t * | pSrc | ||
) |
[in] | S | points to an instance of the fixed-point CFFT/CIFFT structure |
[in,out] | pSrc | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
void arm_cfft_radix2_q31 | ( | const arm_cfft_radix2_instance_q31 * | S, |
q31_t * | pSrc | ||
) |
[in] | S | points to an instance of the fixed-point CFFT/CIFFT structure |
[in,out] | pSrc | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
void arm_cfft_radix4_f16 | ( | const arm_cfft_radix4_instance_f16 * | S, |
float16_t * | pSrc | ||
) |
[in] | S | points to an instance of the floating-point Radix-4 CFFT/CIFFT structure |
[in,out] | pSrc | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
void arm_cfft_radix4_f32 | ( | const arm_cfft_radix4_instance_f32 * | S, |
float32_t * | pSrc | ||
) |
[in] | S | points to an instance of the floating-point Radix-4 CFFT/CIFFT structure |
[in,out] | pSrc | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
arm_status arm_cfft_radix4_init_f16 | ( | arm_cfft_radix4_instance_f16 * | S, |
uint16_t | fftLen, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT/CIFFT structure |
[in] | fftLen | length of the FFT |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
fftLen
is not a supported lengthifftFlag
controls whether a forward or inverse transform is computed. Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT 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. fftLen
Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. arm_status arm_cfft_radix4_init_f32 | ( | arm_cfft_radix4_instance_f32 * | S, |
uint16_t | fftLen, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in,out] | S | points to an instance of the floating-point CFFT/CIFFT structure |
[in] | fftLen | length of the FFT |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
fftLen
is not a supported lengthifftFlag
controls whether a forward or inverse transform is computed. Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT 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. fftLen
Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. arm_status arm_cfft_radix4_init_q15 | ( | arm_cfft_radix4_instance_q15 * | S, |
uint16_t | fftLen, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in,out] | S | points to an instance of the Q15 CFFT/CIFFT structure |
[in] | fftLen | length of the FFT |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
fftLen
is not a supported lengthifftFlag
controls whether a forward or inverse transform is computed. Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT 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. fftLen
Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. arm_status arm_cfft_radix4_init_q31 | ( | arm_cfft_radix4_instance_q31 * | S, |
uint16_t | fftLen, | ||
uint8_t | ifftFlag, | ||
uint8_t | bitReverseFlag | ||
) |
[in,out] | S | points to an instance of the Q31 CFFT/CIFFT structure. |
[in] | fftLen | length of the FFT. |
[in] | ifftFlag | flag that selects transform direction
|
[in] | bitReverseFlag | flag that enables / disables bit reversal of output
|
fftLen
is not a supported lengthifftFlag
controls whether a forward or inverse transform is computed. Set(=1) ifftFlag for calculation of CIFFT otherwise CFFT 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. fftLen
Specifies length of CFFT/CIFFT process. Supported FFT Lengths are 16, 64, 256, 1024. void arm_cfft_radix4_q15 | ( | const arm_cfft_radix4_instance_q15 * | S, |
q15_t * | pSrc | ||
) |
[in] | S | points to an instance of the Q15 CFFT/CIFFT structure. |
[in,out] | pSrc | points to the complex data buffer. Processing occurs in-place. |
CFFT Size | Input format | Output format | Number of bits to upscale |
---|---|---|---|
16 | 1.15 | 5.11 | 4 |
64 | 1.15 | 7.9 | 6 |
256 | 1.15 | 9.7 | 8 |
1024 | 1.15 | 11.5 | 10 |
CIFFT Size | Input format | Output format | Number of bits to upscale |
---|---|---|---|
16 | 1.15 | 5.11 | 0 |
64 | 1.15 | 7.9 | 0 |
256 | 1.15 | 9.7 | 0 |
1024 | 1.15 | 11.5 | 0 |
void arm_cfft_radix4_q31 | ( | const arm_cfft_radix4_instance_q31 * | S, |
q31_t * | pSrc | ||
) |
[in] | S | points to an instance of the Q31 CFFT/CIFFT structure |
[in,out] | pSrc | points to the complex data buffer of size 2*fftLen . Processing occurs in-place |
CFFT Size | Input format | Output format | Number of bits to upscale |
---|---|---|---|
16 | 1.31 | 5.27 | 4 |
64 | 1.31 | 7.25 | 6 |
256 | 1.31 | 9.23 | 8 |
1024 | 1.31 | 11.21 | 10 |
CIFFT Size | Input format | Output format | Number of bits to upscale |
---|---|---|---|
16 | 1.31 | 5.27 | 0 |
64 | 1.31 | 7.25 | 0 |
256 | 1.31 | 9.23 | 0 |
1024 | 1.31 | 11.21 | 0 |
void arm_cfft_radix4by2_f16 | ( | float16_t * | pSrc, |
uint32_t | fftLen, | ||
const float16_t * | pCoef | ||
) |