⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fftdef.h

📁 ADSP-TS101S and ADSP-TS201S Real and Complex radix-2 C-callable FFT
💻 H
字号:
//***********************************************************************
//      Defines for the FFT routines for TigerSHARC family of processors
//      FFTDef.h
//***********************************************************************

#if !defined(__FFTDEF_H_)
#define __FFTDEF_H_

//************************************ Macros ***************************

#define mPUSHQ(arg) \
  Q[k27 += -4] = arg;;

#define mPOPQ(arg) \
  k27 = k27 + 4;;  \
  arg = Q[k27 += 0];;

#define mENTER \
  j26 = j27 - 0x40; k26 = k27 - 0x40;; \
  [j27 += 0xFFFFFFF4] = cJMP; k27 = k27 - 0x04;;

#define mRETURN \
  cjmp = [j26 + 0x40];; \
  cjmp(ABS)(NP); j27:24 = Q[j26 + 0x44]; k27:24 = Q[k26 + 0x44];;


//***********************************************************************
/*here N and the fft type must be defined.
-N represents the number of input points of the fft, either real or complex
-The fft type may be real and then FFT_real must be defined or
complex and then FFT_real definition must be commented
-In real FFT case, N may be 64, 128, ..., 32768 for TS201 and 64, 128,..., 8192 for TS101
-In complex FFT case, N may be 32, 64, ..., 16384 for TS201 and 32, 64,..., 4096 for TS101
-for all other cases, an error message is shown on the screen after the project is built
*/

#define N 				1024			// Complex FFT size
//#define FFT_Real
//***********************************************************************

#if N==32
    #ifdef FFT_Real
        #define initialization_error
        #define	MAX_FFT_SIZE	16384
        #define outbuff_size 16384
    #else
        #define	MAX_FFT_SIZE	32
        #define outbuff_size 64
    #endif
#elif N==64
    #define	MAX_FFT_SIZE	64
    #ifdef FFT_Real
        #define outbuff_size 64
    #else
        #define outbuff_size 128
    #endif
#elif N==128
    #define	MAX_FFT_SIZE	128
    #ifdef FFT_Real
        #define outbuff_size 128
    #else
        #define outbuff_size 256
    #endif
#elif N==256
    #define	MAX_FFT_SIZE	256
    #ifdef FFT_Real
        #define outbuff_size 256
    #else
        #define outbuff_size 512
    #endif
#elif N==512
    #define	MAX_FFT_SIZE	512
    #ifdef FFT_Real
        #define outbuff_size 512
    #else
        #define outbuff_size 1024
    #endif
#elif N==1024
    #define	MAX_FFT_SIZE	1024
    #ifdef FFT_Real
        #define outbuff_size 1024
    #else
        #define outbuff_size 2048
    #endif
#elif N==2048
    #define	MAX_FFT_SIZE	2048
    #ifdef FFT_Real
        #define outbuff_size 2048
    #else
        #define outbuff_size 4096
    #endif
#elif N==4096
    #define	MAX_FFT_SIZE	4096
    #ifdef FFT_Real
        #define outbuff_size 4096
    #else
        #define outbuff_size 8192
    #endif
#elif N==8192
        #ifdef FFT_Real
            #define	MAX_FFT_SIZE	8192
            #define outbuff_size 8192
        #else
            #ifdef __ADSPTS201__
                #define	MAX_FFT_SIZE	8192
                #define outbuff_size 16384
            #else
                #define initialization_error
                #define outbuff_size 8192
                #define	MAX_FFT_SIZE	8192
            #endif
        #endif
#elif N==16384
    #ifdef __ADSPTS201__
        #define	MAX_FFT_SIZE	16384
        #ifdef FFT_Real
            #define outbuff_size 16384
        #else
            #define outbuff_size 32768
        #endif
    #else
        #define initialization_error
        #define outbuff_size 8192
        #define	MAX_FFT_SIZE	8192
    #endif
#elif N==32768
    #ifdef __ADSPTS201__
        #ifdef FFT_Real
            #define	MAX_FFT_SIZE	32768
            #define outbuff_size 32768
        #else
            #define initialization_error
            #define outbuff_size 8192
            #define	MAX_FFT_SIZE	8192
        #endif
    #else
      #define initialization_error
      #define outbuff_size 16384
      #define	MAX_FFT_SIZE	16384
    #endif
#else
    #define initialization_error
    #define	MAX_FFT_SIZE	8192
    #define outbuff_size 8192
#endif

#define REAL            0
#define COMPLEX         1

#endif //__FFTDEF_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -