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

📄 exp7a.c

📁 基于tms320vc55*系列DSP常用算法
💻 C
字号:
/*
     exp7a.c - Example to test FFT
*/

#include <math.h>   
#include "icomplex.h"    /* integer complex.h header file */
#include "input7_i.dat"

extern void fft(complex *, unsigned int, complex *, unsigned int);
extern void bit_rev(complex *, unsigned int);

#define N 128           /* Number of FFT points */
#define EXP 7           /* EXP=log2(N)              */
#define pi 3.1415926535897  
#define K 3             /* Index of Xk (0<K< N/2) */ 
                       
complex X[N];           /* Declare input array  */
complex W[EXP];         /* Twiddle e^(-j2pi/N) table */    
lcomplex ltemp;
int spectrum[N];
int re1[N],im1[N];

void main()
{
    unsigned int i,j,L,LE,LE1;   

    for (L=1; L<=EXP; L++) /* Create twiddle factor table */
    {
        LE=1<<L;           /* LE=2^L=points of sub DFT */
        LE1=LE>>1;     	   /* Number of butterflies in sub-DFT */
        W[L-1].re = (int)((0x7fff*cos(pi/LE1))+0.5);
        W[L-1].im = -(int)((0x7fff*sin(pi/LE1))+0.5);
    }    
    
    j=0;
    for (;;)
    {
        for (i=0; i<N; i++) 
        {
            /* Construct input samples */
            X[i].re = input7_i[j++];
            X[i].im = 0;        
            /* Copy to reference buffer */
            re1[i] = X[i].re;
            im1[i] = X[i].im;
 
            if (j==1664)
                j=0;
        } 	

        /* Start FFT */
        bit_rev(X,EXP);     /* Arrange X[] in bit-reverse order */
        fft(X,EXP,W,1);	    /* Perform FFT */

        for (i=0; i<N; i++) /* Verify FFT result */
        {
            ltemp.re = (long)X[i].re*X[i].re;
            ltemp.im = (long)X[i].im*X[i].im;        
            spectrum[i] = (int)((ltemp.re+ltemp.im)>>13);
        }
    }
}

⌨️ 快捷键说明

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