Complex FFT Tables

| CMSIS-DSP Verison 1.1.0 CMSIS DSP Software Library

- CMSIS
- CORE
- DSP
- RTOS API
- SVD

- Main Page
- Reference

Variables
Complex FFT Tables
Transform Functions

## Variables

const uint16_t | armBitRevTable [1024]
const float32_t | twiddleCoef [6144]
const q31_t | twiddleCoefQ31 [6144]
const q15_t ALIGN4 | twiddleCoefQ15 [6144]

## Variable Documentation

const uint16_t armBitRevTable[1024]

  Pseudo code for Generation of Bit reversal Table is

      for(l=1;l <= N/4;l++)
       {
         for(i=0;i<logN2;i++)
         {
           a[i]=l&(1<<i);
         }
         for(j=0; j<logN2; j++)
         {
           if (a[j]!=0)
           y[l]+=(1<<((logN2-1)-j));
         }
         y[l] = y[l] >> 1;
        }

  where N = 4096 logN2 = 12

  N is the maximum FFT Size supported

Referenced by arm_cfft_radix2_init_f32(), arm_cfft_radix2_init_q15(), arm_cfft_radix2_init_q31(), arm_cfft_radix4_init_f32(), arm_cfft_radix4_init_q15(), and arm_cfft_radix4_init_q31().

const float32_t twiddleCoef[6144]

  Example code for Floating-point Twiddle factors Generation:

      for(i = 0; i< 3N/4; i++)
       {
      	twiddleCoef[2*i]= cos(i * 2*PI/(float)N);
      	twiddleCoef[2*i+1]= sin(i * 2*PI/(float)N);
       }

  where N = 4096 and PI = 3.14159265358979

  Cos and Sin values are in interleaved fashion

Referenced by arm_cfft_radix2_init_f32(), and arm_cfft_radix4_init_f32().

const q15_t ALIGN4 twiddleCoefQ15[6144]

  Example code for Q15 Twiddle factors Generation::

      for(i = 0; i< 3N/4; i++)
       {
      	twiddleCoefQ15[2*i]= cos(i * 2*PI/(float)N);
      	twiddleCoefQ15[2*i+1]= sin(i * 2*PI/(float)N);
       }

  where N = 4096 and PI = 3.14159265358979

  Cos and Sin values are interleaved fashion

  Convert Floating point to Q15(Fixed point 1.15): round(twiddleCoefQ15(i) * pow(2, 15))

Referenced by arm_cfft_radix2_init_q15(), and arm_cfft_radix4_init_q15().

const q31_t twiddleCoefQ31[6144]

  Example code for Q31 Twiddle factors Generation::

      for(i = 0; i< 3N/4; i++)
       {
          twiddleCoefQ31[2*i]= cos(i * 2*PI/(float)N);
          twiddleCoefQ31[2*i+1]= sin(i * 2*PI/(float)N);
       }

  where N = 4096 and PI = 3.14159265358979

  Cos and Sin values are interleaved fashion

  Convert Floating point to Q31(Fixed point 1.31): round(twiddleCoefQ31(i) * pow(2, 31))

Referenced by arm_cfft_radix2_init_q31(), and arm_cfft_radix4_init_q31().