NMSIS-DSP  Version 1.5.0
NMSIS DSP Software Library

Macros

#define FFTINIT(EXT, SIZE)
 
#define CFFTINIT_F32(LEN, LENTWIDDLE)
 

Functions

RISCV_DSP_ATTRIBUTE void riscv_cfft_f32 (const riscv_cfft_instance_f32 *S, float32_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
 Processing function for the floating-point complex FFT. More...
 
RISCV_DSP_ATTRIBUTE riscv_status riscv_cfft_init_f32 (riscv_cfft_instance_f32 *S, uint16_t fftLen)
 Initialization function for the cfft f32 function with 4096 samples. More...
 

Detailed Description

Macro Definition Documentation

◆ CFFTINIT_F32

#define CFFTINIT_F32 (   LEN,
  LENTWIDDLE 
)

◆ FFTINIT

#define FFTINIT (   EXT,
  SIZE 
)

Function Documentation

◆ riscv_cfft_f32()

RISCV_DSP_ATTRIBUTE void riscv_cfft_f32 ( const riscv_cfft_instance_f32 S,
float32_t p1,
uint8_t  ifftFlag,
uint8_t  bitReverseFlag 
)

Processing function for the floating-point complex FFT.

Parameters
[in]Spoints to an instance of the floating-point CFFT structure
[in,out]p1points to the complex data buffer. Processing occurs in-place
[in]ifftFlagflag that selects transform direction
  • value = 0: forward transform
  • value = 1: inverse transform
[in]bitReverseFlagflag that enables / disables bit reversal of output
  • value = 0: disables bit reversal of output
  • value = 1: enables bit reversal of output
RVV version
The rvv version has a different API. The input and output buffers must be different. There is an optional temporary buffer. If the temporary buffer is not used, the input buffer is modified. The bit reverse flag is not more available in RVV version.
float32_t * pIn,
float32_t * pOut,
float32_t * pBuffer,
uint8_t ifftFlag);
void riscv_cfft_f32(const riscv_cfft_instance_f32 *S, float32_t *p1, uint8_t ifftFlag, uint8_t bitReverseFlag)
Processing function for the floating-point complex FFT.
Definition: riscv_cfft_f32.c:776
float float32_t
32-bit floating-point type definition.
Definition: riscv_math_types.h:267
Instance structure for the floating-point CFFT/CIFFT function.
Definition: transform_functions.h:380
Size of buffers according to the target architecture and datatype:
They are described on the page transform buffers.

◆ riscv_cfft_init_f32()

RISCV_DSP_ATTRIBUTE riscv_status riscv_cfft_init_f32 ( riscv_cfft_instance_f32 S,
uint16_t  fftLen 
)

Initialization function for the cfft f32 function with 4096 samples.

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Initialization function for the cfft f32 function with 2048 samples

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Initialization function for the cfft f32 function with 1024 samples

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Initialization function for the cfft f32 function with 512 samples

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Initialization function for the cfft f32 function with 256 samples

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Initialization function for the cfft f32 function with 128 samples

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Initialization function for the cfft f32 function with 64 samples

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Initialization function for the cfft f32 function with 32 samples

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Initialization function for the cfft f32 function with 16 samples

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT.
Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h

Generic initialization function for the cfft f32 function

Parameters
[in,out]Spoints to an instance of the floating-point CFFT structure
[in]fftLenfft length (number of complex samples)
Returns
execution status
Use of this function is mandatory only for the RVV versions of the FFT. Other versions can still initialize directly the data structure using variables declared in riscv_const_structs.h
This function should be used only if you don't know the FFT sizes that you'll need at build time. The use of this function will prevent the linker from removing the FFT tables that are not needed and the library code size will be bigger than needed.
If you use NMSIS-DSP as a static library, and if you know the FFT sizes that you need at build time, then it is better to use the initialization functions defined for each FFT size.