EX26_FFT.rar

  • PUDN用户
    了解作者
  • C/C++
    开发工具
  • 261KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 4
    下载次数
  • 2015-03-01 09:48
    上传日期
基于DSP2812的fft源代码,已验证
EX26_FFT.rar
  • EX26_FFT
  • fft.CS_
  • FILE.FPT
    1.2KB
  • FILE.DBF
    998B
  • SYMBOL.FPT
    536.5KB
  • SYMBOL.CDX
    412.5KB
  • FILE.CDX
    3KB
  • SYMBOL.DBF
    330.3KB
  • Debug
  • DSP281x_DefaultIsr.obj
    11.6KB
  • fir.out
    167.3KB
  • fft.out
    24.1KB
  • DSP281x_Spi.obj
    456B
  • fir.map
    17.5KB
  • DSP281x_CodeStartBranch.obj
    837B
  • DSP281x_PieVect.obj
    13.3KB
  • fft.obj
    10.9KB
  • fir.obj
    3.5KB
  • DSP281x_GlobalVariableDefs.obj
    141.4KB
  • fft.map
    6.2KB
  • DSP281x_PieCtrl.obj
    4.4KB
  • DSP281x_SysCtrl.obj
    8.6KB
  • fft.paf
    3.5KB
  • DSP281x_SysCtrl.h
    12.4KB
  • Debug.lkf
    405B
  • f2812a.h
    617B
  • cc_build_Debug.log
    566B
  • fft.cmd
    1.1KB
  • fft.sbl
    3.6KB
  • DSP281x_Xintf.h
    3.7KB
  • fft.pjt
    1KB
  • DSP281x_XIntrupt.h
    2.2KB
  • sina1.dat
    108B
  • DSP281x_Ev.h
    24.2KB
  • Debug.lkv
    337B
  • DSP281x_GlobalPrototypes.h
    2.3KB
  • DSP281x_ECan.h
    46.7KB
  • DSP281x_Spi.h
    6.3KB
  • DSP281x_CpuTimers.h
    5.8KB
  • DSP281x_DevEmu.h
    2.9KB
  • DSP281x_Adc.h
    8.5KB
  • DSP281x_DefaultIsr.h
    4.8KB
  • DSP281x_SWPrioritizedIsrLevels.h
    143.6KB
  • DSP281x_PieVect.h
    6.4KB
  • DSP281x_Gpio.h
    29.2KB
  • sine.dat
    11.7KB
  • fft.c
    2.4KB
  • DSP281x_PieCtrl.h
    5.8KB
  • Example_281xSpi_FFDLB.paf
    7.6KB
  • DSP281x_Examples.h
    3.4KB
  • DSP281x_Mcbsp.h
    35.1KB
  • DSP281x_Device.h
    4.5KB
  • fft.paf2
    3.1KB
  • DSP281x_Sci.h
    8.2KB
  • Example_281xSpi_FFDLB.gel
    425B
内容介绍
#include "DSP281x_Device.h" // DSP281x Headerfile Include File #include "DSP281x_Examples.h" // DSP281x Examples Include File #include "f2812a.h" #include"math.h" #define PI 3.1415926 #define SAMPLENUMBER 128 void InitForFFT(); void MakeWave(); //void FFT(float dataR[SAMPLENUMBER],float dataI[SAMPLENUMBER]); int INPUT[SAMPLENUMBER],DATA[SAMPLENUMBER]; float fWaveR[SAMPLENUMBER],fWaveI[SAMPLENUMBER],w[SAMPLENUMBER]; float sin_tab[SAMPLENUMBER],cos_tab[SAMPLENUMBER]; void FFT(float dataR[SAMPLENUMBER],float dataI[SAMPLENUMBER]) { int x0,x1,x2,x3,x4,x5,x6,xx; int i,j,k,b,p,L; float TR,TI,temp; /********** following code invert sequence ************/ for ( i=0;i<SAMPLENUMBER;i++ ) { x0=x1=x2=x3=x4=x5=x6=0; x0=i&0x01; x1=(i/2)&0x01; x2=(i/4)&0x01; x3=(i/8)&0x01;x4=(i/16)&0x01; x5=(i/32)&0x01; x6=(i/64)&0x01; xx=x0*64+x1*32+x2*16+x3*8+x4*4+x5*2+x6; dataI[xx]=dataR[i]; } for ( i=0;i<SAMPLENUMBER;i++ ) { dataR[i]=dataI[i]; dataI[i]=0; } /************** following code FFT *******************/ for ( L=1;L<=7;L++ ) { /* for(1) */ b=1; i=L-1; while ( i>0 ) { b=b*2; i--; } /* b= 2^(L-1) */ for ( j=0;j<=b-1;j++ ) /* for (2) */ { p=1; i=7-L; while ( i>0 ) /* p=pow(2,7-L)*j; */ { p=p*2; i--; } p=p*j; for ( k=j;k<128;k=k+2*b ) /* for (3) */ { TR=dataR[k]; TI=dataI[k]; temp=dataR[k+b]; dataR[k]=dataR[k]+dataR[k+b]*cos_tab[p]+dataI[k+b]*sin_tab[p]; dataI[k]=dataI[k]-dataR[k+b]*sin_tab[p]+dataI[k+b]*cos_tab[p]; dataR[k+b]=TR-dataR[k+b]*cos_tab[p]-dataI[k+b]*sin_tab[p]; dataI[k+b]=TI+temp*sin_tab[p]-dataI[k+b]*cos_tab[p]; } /* END for (3) */ } /* END for (2) */ } /* END for (1) */ for ( i=0;i<SAMPLENUMBER/2;i++ ) { w[i]=sqrt(dataR[i]*dataR[i]+dataI[i]*dataI[i]); } } /* END FFT */ main() { int i; InitForFFT(); MakeWave(); for ( i=0;i<SAMPLENUMBER;i++ ) { fWaveR[i]=INPUT[i]; fWaveI[i]=0.0f; w[i]=0.0f; } FFT(fWaveR,fWaveI); for ( i=0;i<SAMPLENUMBER;i++ ) { DATA[i]=w[i]; } while ( 1 ); // break point } void InitForFFT() { int i; for ( i=0;i<SAMPLENUMBER;i++ ) { sin_tab[i]=sin(PI*2*i/SAMPLENUMBER); cos_tab[i]=cos(PI*2*i/SAMPLENUMBER); } } void MakeWave() { int i; for ( i=0;i<SAMPLENUMBER;i++ ) { INPUT[i]=sin(PI*2*i/SAMPLENUMBER*3)*1024; } }
评论
    相关推荐